我正在尝试使用 Google OR-TOOLS CP-SAT 制定时间表。我发现一个问题,因为有一个要求,来自不同工作的一些任务如果属于相同的材料,应该依次安排。
我已将具有相同材料、任务编号和要求完成日期的任务收集到相同的组中。如下我们可以看到,例如材料 F 任务 20 第 13 组处于进度表的中间、接近末尾和末尾。我想让他们在一起。
我尝试最小化小组中每个任务的结束和开始之间的距离,但这会导致将一些任务扔到日历之外,并显着延长找到可行解决方案的时间。
我也试图理解 Laurent Perron 的这个食谱,但我不确定这是否是解决我的问题的方法。
有什么方法可以强制求解器按照我们在处理数据之前选择的顺序将任务分组?
在这些任务之间添加优先级是否足够,或者它们应该是直接后继任务?
对于第一种情况,只需添加这些优先级。
对于第二种情况,您将需要一个电路约束来执行从优先级到后继的传递减少,然后强制相关的后继弧为真。