0018
算法笔记—?/p>
【动态规划?/p>
流水作业调度问题?/p>
Johnson
法则
1
、问题描述:
n
个作?/p>
{1
?/p>
2
?/p>
?/p>
?/p>
n}
要在?/p>
2
台机?/p>
M1
?/p>
M2
组成的流水线?
完成加工。每个作业加工的顺序都是先在
M1
上加工,然后?/p>
M2
?/p>
加工?/p>
M1
?/p>
M2
加工作业
i
所需的时间分别为
ai
?/p>
bi
?/p>
流水作业调度?
题要求确定这
n
个作业的最优加工顺序,使得从第一个作业在机器
M1
上开始加工,到最
后一个作业在机器
M2
上加工完成所需的时间最?/p>
?/p>
2
、问题分?/p>
直观上,一个最优调度应使机?
M1
没有空闲时间,且机器
M2
?
空闲时间最少。在一般情况下,机?/p>
M2
上会有机器空闲和作业积压
2
种情况。设全部作业的集合为
N={1
?/p>
2
?/p>
?/p>
?/p>
n}
?/p>
S
?/p>
N
的作业子
集。在一般情况下,机?/p>
M1
开始加?/p>
S
中作业时,机?/p>
M2
还在?/p>
工其他作业,要等时间
t
后才可利用。将这种情况下完?/p>
S
中作业所
需的最短时间记?/p>
T(S,t)
。流水作业调度问题的最优值为
T(N,0)
?/p>
?/p>
π
是所?/p>
n
个流水作业的一个最优调度,它所需的加工时间为
a
π(1)
+T?/p>
。其?/p>
T?/p>
是在机器
M2
的等待时间为
b
π(1)
时,安排作业
π(2)
?/p>
?/p>
?/p>
π(n)
所需的时间?/p>
?/p>
S=N-{
π(1)
}
,则?/p>
T?T(S,b
π(1)
)
?/p>