车辆在仓库重新装填并继续

时间:2018-07-03 11:42:27

标签: python or-tools

我尝试使用ORTOOL和Python生成交付计划。 我的约束如下:

  1. 每辆车都有开始时间和结束时间
  2. 每辆车都有自己的储存物品能力,可以在车场取走
  3. 每辆车都有自己的速度。

对于1和3,使用AddDimensionWithVehicleTransits可以正常工作。 对于第二个约束,如果车辆为空,则必须返回仓库以取回物品并重新启动。

我看过加油示例,因此设置容量小于0的节点可以正常工作。但是在我的情况下,维修站是加油站,而求解程序不会使车辆返回加油站。

我的尺寸设置如下:

postMessage

基本上,最大容量为4:

routing.AddDimensionWithVehicleCapacity(
    capacity_evaluator,
    0,
    [capacity[vehicle].get('capacity', dataconfig.default_capacity) for vehicle in data.vehicles], 
    True, 
    'Capacity'
)

我需要什么:

Route for Vehicle1
[LOCATION, START, CAPACITY]
['Depot', '4:0', 0]
[u'7', '9:0', 1]
[u'6', '10:0', 4]
['Depot', '11:00', 4]

关于如何将加油站放到仓库的任何想法?

致谢

1 个答案:

答案 0 :(得分:1)

通过Mizux Dev的评论获得了成功,可以使用slackvar或AddDimensionWithVehicleTransitAndCapacity使用具有补充容量的可选仓库。