我正在阅读有关调度算法分析的主题:
假设我们显示了四个作业和相关的运行时间 下面。一个可能的时间表j1,j2,j3和j4因为j1完成了 在15(时间单位),j2在23,j3在26,和j4在36,平均 完成时间是25.一个更好的时间表,产生一个平均值 完成时间为17.75,为j3,j2,j4和j1。
工作时间
j1 15
j2 8
j3 3
j4 10
我的问题是作者如何计算平均完成时间,即我们如何在上面的文本中得到25和17.75?
谢谢!
答案 0 :(得分:0)
作业连续运行(一次一个)。
因此,订单j1-j2-j3-j4
,j1
在15
完成,j2
在15+8=23
结束,j3
在15+8+3=26
结束并j4
在15+8+3+10=36
结束。然后,他们使用您的标准15
公式平均23
,26
,36
和25
获取sum/count
:
(15 + 23 + 26 + 36) / 4
= 100 / 4
= 25
换句话说,他们所谈论的完成时间不是一个工作开始时所用的时间,而是从第一个工作开始所需的时间(即一个点)在时间而不是持续时间)。我不确定有用这样的指标是什么,但这就是他们正在做的事情,基于数字。
订单j3-j2-j4-j1
,j3
在3
完成,j2
在3+8=11
结束,j4
在3+8+10=21
结束, j1
在3+8+10+15=36
结束。该平均值(3
,11
,21
和36
)为17.75
。
平均完成时间的最佳(最低)解决方案是按照持续时间的增加来完成工作。
这是因为一组四个中的最后一个作业总是会同时完成,无论顺序如何(在这种情况下为36
)。
因此,为了减少平均终点,其他三个工作的终点应该尽可能低。
并且,适用于四个作业的相同规则也适用于三个作业(一旦运行时间最长的j1
被取出)。一旦你删除了j4
,就会有两个工作。
一旦你删除了三份工作,唯一一份工作就是你应该选择的工作(当然)。