Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 作业调度算法的反例;“最早结束时间优先”;_Algorithm_Job Scheduling_Greedy - Fatal编程技术网

Algorithm 作业调度算法的反例;“最早结束时间优先”;

Algorithm 作业调度算法的反例;“最早结束时间优先”;,algorithm,job-scheduling,greedy,Algorithm,Job Scheduling,Greedy,我们有贪心算法来进行作业调度(调度最大数量的作业)。我们可以使用不同的技术 最短工作优先 最早开始时间优先 以最小冲突优先的作业 最早结束时间优先 我有前三种策略的反例,但我找不到第四种策略的反例 下面是前三种方法的反例 最短作业优先: 在这里,我们可以安排两个作业,而不是一个较短的作业。 最早开始时间优先: 在这里,我们可以安排6个较小的作业,这些作业开始得晚一些,而不是开始得早一些 冲突最少的作业优先: 在这里,我们可以安排4个冲突为3,4,4,3的作业,而不是3个冲突最小的作业,即2,

我们有贪心算法来进行作业调度(调度最大数量的作业)。我们可以使用不同的技术

  • 最短工作优先
  • 最早开始时间优先
  • 以最小冲突优先的作业
  • 最早结束时间优先
  • 我有前三种策略的反例,但我找不到第四种策略的反例

    下面是前三种方法的反例

    最短作业优先:

    在这里,我们可以安排两个作业,而不是一个较短的作业。

    最早开始时间优先:

    在这里,我们可以安排6个较小的作业,这些作业开始得晚一些,而不是开始得早一些

    冲突最少的作业优先:

    在这里,我们可以安排4个冲突为3,4,4,3的作业,而不是3个冲突最小的作业,即2,3,3

    那么,最后一个最早结束时间优先的反例是什么?我找不到这个反例。所以,它总是为每一组数据提供一个最佳的解决方案

    更新1:


    我有一个执行器来执行作业,我想执行最大数量的作业。

    最早结束时间优先是贪心算法,它为上述问题提供了最佳算法。(实际上你提到的问题叫做问题)


    证明可以通过使用。您将贪婪算法的输出与最优解进行比较,并认为您的解并不比最优解差。

    不清楚您优化的目的是什么。您是否在优化执行最大数量的作业?如果是这种情况,那么它是最优的。你可以证明:)我必须安排最大数量的工作。对不起,我没有提到。也许没有反例,这确实是一个最佳策略。试着证明iit。我认为ElKamina是正确的,一个相当标准的证明方法在这里有效。考虑一个不是最早的结束时间的时间表。找到它做出的第一个选择,而不是最早的结束时间。表明您可以替换此选项,使其在最早结束时间之前完成,而不会打乱其他任何事情,并且仍然保持原计划的良好状态。因此,任何不是最早结束时间优先的计划都可以被一个仍然有效且至少同样有效的计划所取代。