我正在使用Google OR-Tools和Python进行VRP项目。
目前,我的时间窗口限制很严格,要求很高,而且车辆的容量也很大。 当我运行求解器时,求解器总是选择部署容量最大的载具。 我可以使求解器部署较小的车辆,即使它将部署更多的车辆?因为实际上部署更大的车辆将花费更高。
里面是否有任何功能可以允许车辆重新出发?
谢谢!
答案 0 :(得分:1)
1)您可以为每辆车设置固定成本。
参考:https://github.com/google/or-tools/blob/5ff76b487a6c2006326765d6417964599eedc8c9/ortools/constraint_solver/routing.h#L844-L848
2)要“重新部署”,您可以复制该仓库并使用“重新加载”。
参见:https://github.com/google/or-tools/blob/master/ortools/constraint_solver/samples/cvrp_reload.py
答案 1 :(得分:0)
我在or-tools中找到了我们可以做的另一种策略。 在我的情况下,or-tools将首先部署大型车辆作为第一个解决方案,而对于一些“紧”问题(紧紧的时间窗或非常高的重量要求),最大的车辆数量最少。那么,如果我们没有足够的资源作为大型工具呢? 只要资源仍然有很多较小的车辆,我就可以使用“虚拟车辆”达到第一个解决方案。这些“虚拟车辆”的成本与真实车辆相比应该很高,我将其设定为高出1000倍。 求解器到达第一个解决方案后,您可以花一点时间来改进解决方案。过了一会儿,求解器将部署真正的较小车辆,并且不再使用“虚拟车辆”。