关于批处理作业调度问题中“完成时间和“的疑问

算法设计与分析(第4版)——王晓东

动态规划:

F1k = F1(k-1)+t1k;

F2k = max{F1k, F2(k-1)}+t2k;

解释:

第一个公式:对于机器1来说,它一定是不停的工作,即机器1第k个作业的完成时间 = 机器1第(k-1)个作业完成时间 + 机器1第k个作业的处理时间。

第二个公式:对于机器2来说,它在处理第k个作业前有两个可能的状态,

状态一:在处理第k个作业前,机器2空闲着,即机器2第k个作业的完成时间 = 机器1第k个作业完成时间 + 机器2第k个作业的处理时间。

状态二:在处理第k个作业前,机器2忙碌着,即机器2第k个作业的完成时间 = 机器2第(k-1)个作业完成时间 + 机器2第k个作业的处理时间。

这3个作业的6种可能的调度方案是1,2,3;1,3,2;2,1,3;2,3,1;3,1,2;3,2,1;它们所相应的完成时间和分别是19,18,20,21,19,19。易见,最佳调度方案是1,3,2,其完成时间和为18。

疑问:

1."批处理作业调度"和"流水作业调度问题"有什么区别?

2.为什么是"结束时间和",而不是“要求确定这n个作业的最优处理顺序,使得从第1个作业在机器1上处理开始,到最后一个作业在机器2上处理结束所需时间最少”,哪些情况下,查看其“结束时间和”?

(结果待老师回复,或者大牛指点迷津)

下面试分析疑问2的两个结果不等价,即"结果时间和"与"处理结束时间"结果不相同:

同样以n=3为例,考虑以下实例:

调度方案分析:

处理结束时间:10

“结束时间和”:3+6+10=19

处理结束时间:8

“结束时间和”:3+7+8=18

处理结束时间:10

“结束时间和”:4+6+10=20

处理结束时间:9

“结束时间和”:4+8+9=21

处理结束时间:8

“结束时间和”:5+6+8=19

处理结束时间:8

“结束时间和”:5+6+8=19

综上,对比不同调度下的情况:

调度方案

批处理作业调度

流水作业调度

(1, 2, 3)

19

10

(1, 3, 2)

18

8

(2, 1, 3)

20

10

(2, 3, 1)

21

9

(3, 1, 2)

19

8

(3, 2, 1)

19

8

补充内容:

上面的画图方法太过复杂,如何快速求解批处理作业调度问题的不同方案的完成时间:(对角时间取最大方法

方案(1, 2, 3)的完成时间:

作业1的处理时间:2 + 1 = 3

作业2的处理时间:2 + max{1, 3} + 1 = 6

作业3的处理时间: 2 + max{1, 3} + max{1, 2} + 3 = 10

方案(1, 2, 3)总完成时间: 3 + 6 + 10 = 19

 

老师的相关问题的回复:

猜你喜欢

转载自blog.csdn.net/caigen0001/article/details/90047299