如何将维修时间约束添加到具有时间窗约束的车辆路径问题

时间:2019-07-20 12:01:43

标签: python or-tools

我正在建立一个旅游计划者。该旅行计划者将获得所有地点行程的旅行时间矩阵,所有地点的开放和关闭时间以及每个地点的停留/处理时间。我正在使用Google的OR工具来解决问题

我已经成功添加了时间窗口约束,但是无法将停留/处理时间约束添加到求解器中。谷歌OR工具上的文档显示了如何解决具有时间窗约束的车辆路径问题,但是没有提及如何为该问题添加更多约束。

到目前为止,我一直在关注本教程。 https://developers.google.com/optimization/routing/vrptw

计划者的预期输出应考虑上述所有三个时间限制,即开放时间,关闭时间和停留/处理时间

2 个答案:

答案 0 :(得分:1)

这实际上非常简单。由于停留时间/处理时间仅取决于目标节点,因此可以将其直接添加到将用于解决问题的时间矩阵中。对于N * N时间矩阵(其中N是问题中的节点数)和1 * N停留时间矩阵,必须将停留时间矩阵添加到时间矩阵的每一行中,以获得同时包含两个矩阵的矩阵。时间矩阵和停留时间矩阵。将此留给可能遇到相同问题的任何人。

答案 1 :(得分:0)

您的公交回调应返回服务时间和旅行时间的总和。 即transit(i, j) == service_time(i) + travel_time(i, j)

如果您的服务时间取决于车辆,则可以针对每种车辆类型注册运输回调,然后使用AddDimension()重载,该超载采用运输回调索引数组。