我正在使用 OptaPlanner 优化与提供的示例非常相似的车辆路线问题。
我面临以下挑战,并会欣赏一些想法。
一些对客户的访问与其他访问有关系,例如:
- 一次访问必须与另一次访问同时开始。
- 一次访问必须在另一次访问结束后 2 小时开始。
- 一次访问必须分配给分配给另一次访问的同一车辆。
挑战是:如何在移动访问时允许移动访问而不导致分数降低?
每次访问可能在不同的机器上(分配给不同的车辆),因此所有提供的移动选择器很可能会提供仅改变一次访问的移动。由于依赖性,此类移动很可能导致较低的分数,并且永远不会被选中。
相同的开始场景:任何改变一次访问开始时间的动作都会导致较低的分数。相同的车辆场景:任何将一次访问更改为不同车辆的移动都会导致较低的分数。
目前我正在使用禁忌搜索,结果令人满意。迟到可能是答案。
谢谢。