我正在阅读算法设计手册第 2 版。有人可以解释一下 ShortestJobFirst 和 OptimalScheduling 算法之间的区别。给出的算法如下
ShortestJobFirst(I) {
- 虽然 (I = ∅) 做
- 接受来自 I 的最短的工作 j。
- 删除 j,以及与 i 相交的任何区间。
}
最优调度(一)
- 虽然 (I = ∅) 做
- 接受 I 中最早完成日期的工作 j。
- 删除 j,以及与 i 相交的任何区间。
我无法理解其含义 “我们的调度问题和机器人问题之间的区别在于,有一种算法可以正确有效地解决电影调度问题。想想第一个终止的作业 - 即包含最右边的点的间隔 x 最左边在所有区间中。这个角色由图 1.5 中的“离散”数学扮演。其他工作很可能在 x 之前开始,但所有这些必须至少部分重叠,所以我们最多可以从组中选择一个。首先要终止的工作是 x,因此任何重叠的工作都可能会阻止它右侧的其他机会。显然,我们永远不会因为选择 x 而失败。这表明了以下正确、有效的算法——”
示例在算法设计手册(本 PDF 第 10/11 页)中。