关键路径是解决parallel precedence-constrained scheduling
问题的本质。
问题:给定一组指定持续时间的作业要完成,优先约束指定必须在某些其他作业开始之前完成某些作业,我们如何在相同的处理器上安排作业(多达需要)这样他们都在最短的时间内完成,同时仍然尊重约束?
我很难理解这个与图表中最长路径之间的联系,这显然是解决方案。我认为答案是最短的时间,因为我们想要最少的时间。为什么这与最长路径有关,而不是最短路径?
答案 0 :(得分:1)
最短时间表的长度与最长路径有关,因为无论您拥有多少台处理器,您都无法做到完成工作,而不是最长路径。在上一个作业完成之前,最长路径上的作业都不能开始,所以你必须一个接一个地完成它们。
如果您的处理器从未耗尽,您可以在所有依赖的作业完成后立即开始工作,因此每个作业在到达其终点的最长路径完成后立即完成,并完成整个工作完成最长路径后即可完成。
答案 1 :(得分:0)
然后,关键路径是图表中最长的路径。想一想,并说服这是真的。
这一系列思路对我有所帮助:
关键路径必须以没有依赖关系的任务开始,并以最终状态结束。在满足所有依赖关系之前,任何任务都无法完成。
如果任务A必须在B之前完成,并且B必须在C之前完成,则从任务A到任务C的时间至少为A-> B + B-> C.
如果C具有依赖性A的另一依赖性B',则从A到C的时间至少为A-> B'+ B' - > C。
因此,从A到C的最长的路径才是最重要的。
如果必须满足某个依赖关系,那么最短路径将解决问题。当所有依赖关系都必须得到满足时,最长的路径解决了这个问题。