OrTools 强制按顺序使用车辆

问题描述

我假设有 7 辆车,每辆车代表一周中的一天。
然后,我有一些需要在一周内完成的交付。
问题是通过 or-tools 解决的。
但是如果我有足够的工作来填满,比如说只有四天,它倾向于将这些添加到最后几辆车(周末),尽可能多地填满车辆,然后在本周开始时离开车辆空的。这几乎就是我想要的。
但理想情况下,它应该填满第一辆车,而让最后一辆车空着。我使用 VRPTW 示例作为更多解决方案的基础,并为每辆车设置了仅服务一天的时间窗口,例如0-1440、1440-2880等

如何强制它从第一辆车开始按顺序使用这些车辆?

解决方法

您是否尝试增加车辆的固定成本,以便使用第一辆车比后一辆车“更便宜”?

,

还有 Assignment* CompactAssignment(const Assignment& assignment) const; 可以帮助您,但由于我从未使用过它,我对结果和副作用没有信心...

ref(带评论):https://github.com/google/or-tools/blob/b37d9c786b69128f3505f15beca09e89bf078a89/ortools/constraint_solver/routing.h#L1125-L1147