多机房调度的OR工具,考虑准备时间

0 投票
1 回答
45 浏览
提问于 2025-04-12 14:44

我对Google OR工具还很陌生,正在尝试为多台机器设置一个作业车间调度程序,每个作业之间都有设置时间(这些时间是通过字典获取的)。这个例子很好地展示了如何为单台机器整合设置时间:https://github.com/google/or-tools/blob/a0a56698ba8fd07b7f84aee4fc45d891a8cd9828/examples/python/single_machine_scheduling_with_setup_release_due_dates_sat.py#L215

你能给我一些建议,如何将这个例子扩展到多台机器上吗?具体来说,每个作业可以在不同的机器上处理,处理时间也不同,这和灵活作业车间调度的例子类似:https://github.com/google/or-tools/blob/stable/examples/python/flexible_job_shop_sat.py

非常感谢任何提示或建议!

1 个回答

1

你需要考虑可选区间的字面意思。

为此,你需要四个东西:

  • 如果选择了 arc i+1 -> j+1,那么 interval_i 和 interval_j 都得被选中
  • arc i + 1 -> i + 1 是和 interval_i 不活跃相关的
  • arc 0 -> 0 是和一个字面意思相关,表示机器是空的
  • 对于所有的 interval_i,如果 interval_i 是活跃的,就意味着机器不是空的

我把这些内容都写在了这个 说明书里。

撰写回答