标签: algorithm job-scheduling greedy
好吧,我们有贪婪的算法用于作业调度(调度最大作业数)。我们可以使用不同的技术
我有前三个策略的反例,但我找不到第四个策略的反例。
这里是前三种方法的反例
最短作业优先:
在这里,我们可以安排2个工作而不是短工作。
最早的开始时间:
在这里,我们可以安排6个较小的作业,而不是之前开始的作业
首先解决冲突最小的工作:
在这里,我们可以安排4个有冲突的工作3,4,4,3而不是3个冲突最小,那就是2,3,3
那么,最后一个最早的结束时间的反例是什么?我找不到这个的反例。那么,它总能为每组数据提供最佳解决方案吗?
更新1:
我有一个执行程序来执行作业,我想执行最大数量的作业。
答案 0 :(得分:6)
最早结束时间首先是贪婪算法,它为上述问题提供了最优算法。 (实际上你提到的问题叫做Interval Scheduling问题)
可以使用charging argument进行证明。您将贪婪算法的输出与最优解决方案进行比较,并认为您的解决方案并不比最优解决方案差。