2

我已经使用 Python 中的 OR-Tools 路由求解器工作了几个月,但我仍然不明白如何实现自定义软约束,或者即使它在路由求解器中是可能的。

我知道以下方法会增加累积值的惩罚:

SetCumulVarSoftUpperBound(self, index: int64, upper_bound: int64, coefficient: int64)
SetCumulVarSoftLowerBound(self, index: int64, upper_bound: int64, coefficient: int64)

我无法实施的约束之一如下:

  • 我想惩罚空车消耗的距离/时间。例如,在取货和交付场景中,如果车辆进行交付并变空,我想惩罚空车行驶的距离,直到车辆到达取货节点(下一个节点)或结束路线。

使用上述方法,我只能在超出界限时用固定值进行惩罚,但我想惩罚消耗的距离或时间来转移到下一个节点。

同时,考虑到找到的解决方案的状态(例如,下一个节点和维度的累积量),有没有办法实现具有明确惩罚值的自定义软约束?

4

0 回答 0