我正在尝试使用两辆相同类型并在同一位置启动的车辆创建VRP。我希望解决方案能够以最具成本效益的方式为问题中的每辆车创建路线。我正在使用GraphHopper来计算每个服务地点之间的道路距离和时间,并使用该信息创建运输成本矩阵。
我的问题是所有服务都放在一条路线上,而第二辆车从未使用过。在输出中,我可以看到问题包含两辆车,但解决方案只显示一条路线和一辆车。
如果我设置车辆容量和服务大小,我就可以使用两辆车。我知道如果我不指定它们,它们将被忽略,但这会导致所有服务都使用同一辆车吗?
我错过了什么吗?
如果需要,我可以发布代码示例。
谢谢!
如果没有容量限制,使用单辆车始终是最佳的(如果满足三角形不等式,则适用于道路距离)。换句话说,没有容量限制的VRP = TSP。
可以这样想:假设您有两条路线,一条在城市 A 结束(返回仓库之前),另一条从城市 B 开始(离开仓库后)。现在想象一下,删除从 A 到仓库的腿和从仓库到 B 的腿,并添加一条从 A 到 B 的腿。通过三角形不等式,c_AB <= c_A,仓库 + C_depot,B,因此新解决方案比旧解决方案便宜。