如何使 Google OR 工具部署更多车辆
How to make Google OR Tools Deploy More Vehicle
我正在使用 Google OR-Tools 和 Python 进行 VRP 项目。
目前我时间紧windows限制,要求高,车辆容量大。
当我 运行 求解器时,求解器总是选择部署容量最大的车辆。
我可以让求解器部署较小的车辆,即使它会部署更多的车辆吗?因为实际上部署更大的车辆成本更高。
里面有没有可以让车辆重新出发的功能?
谢谢!
1) 您可以为每辆车设置固定费用。
参考:https://github.com/google/or-tools/blob/5ff76b487a6c2006326765d6417964599eedc8c9/ortools/constraint_solver/routing.h#L844-L848
2) 到 "redeploy" 你可以复制 depot 并使用 "reload".
参见:https://github.com/google/or-tools/blob/master/ortools/constraint_solver/samples/cvrp_reload.py
我发现了我们可以在 or-tools 中执行的另一种策略。
在我的例子中,or-tools 将首先部署大型车辆作为第一个解决方案,并且对于某些 'tight' 问题(时间紧迫 windows 或非常高的重量要求),最大车辆的数量最少.那么,如果我们没有足够的大型车辆资源怎么办?
只要资源还有很多小车,我就可以用'dummy vehicles'达到第一个解。这些'dummy vehicle'的造价应该比真车高很多,我定了1000倍。
求解器得出第一个解后,您可以给它时间来改进解。一段时间后,求解器将部署真正的小型车辆,不再使用 'dummy vehicle'。
我正在使用 Google OR-Tools 和 Python 进行 VRP 项目。
目前我时间紧windows限制,要求高,车辆容量大。 当我 运行 求解器时,求解器总是选择部署容量最大的车辆。 我可以让求解器部署较小的车辆,即使它会部署更多的车辆吗?因为实际上部署更大的车辆成本更高。
里面有没有可以让车辆重新出发的功能?
谢谢!
1) 您可以为每辆车设置固定费用。
参考:https://github.com/google/or-tools/blob/5ff76b487a6c2006326765d6417964599eedc8c9/ortools/constraint_solver/routing.h#L844-L848
2) 到 "redeploy" 你可以复制 depot 并使用 "reload".
参见:https://github.com/google/or-tools/blob/master/ortools/constraint_solver/samples/cvrp_reload.py
我发现了我们可以在 or-tools 中执行的另一种策略。 在我的例子中,or-tools 将首先部署大型车辆作为第一个解决方案,并且对于某些 'tight' 问题(时间紧迫 windows 或非常高的重量要求),最大车辆的数量最少.那么,如果我们没有足够的大型车辆资源怎么办? 只要资源还有很多小车,我就可以用'dummy vehicles'达到第一个解。这些'dummy vehicle'的造价应该比真车高很多,我定了1000倍。 求解器得出第一个解后,您可以给它时间来改进解。一段时间后,求解器将部署真正的小型车辆,不再使用 'dummy vehicle'。