我们正在努力解决以下问题的某些方面:
公共交通巴士时间表包括班次(〜轨道部分),每个班次都有固定的开始和结束时间
公交车司机需要被分配到每个班次
[有问题的约束]法律规定要求每位公交车司机在驾驶 4 小时后(即轮班后)有30 分钟的休息时间
换句话说,驾驶员在换班时累积的驾驶时间不得超过 4 小时,除非驾驶员休息 30 分钟,在这种情况下,累积的时间“重置为零”
总之,我们需要跟踪每个司机的累积驾驶时间,以抑制轮班分配以强制执行 30 分钟的休息时间。
潜在的问题似乎介于作业车间和分配问题之间:
像工作车间问题一样,它有许多不重叠和优先约束的班次(或任务、工作)......
...但是我们的轮班(~任务/工作)没有预先分配给司机;与作业车间问题相比,任务(~班次)需要在特定机器(~驱动程序)上执行,因此是预先分配的,因此分配它们不是问题的一部分
就像分配任务一样,我们需要将轮班分配给尽可能少的司机......
...但是我们还需要处理前面提到的无重叠和优先约束,在分配问题中没有考虑到这些约束
所以我的问题是,如何使用or-tools在约束问题中最好地模拟上述约束?
提前致谢!