流水作业调度问题

一、 问题描述

给定n 个作业,每个作业有两道工序,分别在两台机器上处理。一台机器一次只能处

理一道工序,并且一道工序一旦开始就必须进行下去直到完成。一个作业只有在机器1上的处理完成以后才能由机器2处理。假设已知作业i 在机器j 上需要的处理时间为t[i,j]。流水作业调度问题就是要求确定一个作业的处理顺序使得尽快完成这n 个作业。

二、 算法分析

n 个作业{1,2,…,n}要在由2台机器1M 和2M 组成的流水线上完成加工。每个作业加工

的顺序都是先在1M 上加工,然后在2M 上加工。1M 和2M 加工作业i 所需要的时间分别为t[i,1]和t[i,2], n i ≤≤1.流水作业调度问题要求确定这n 个作业的最优加工顺序,使得从第一个作业在机器1M 上开始加工,到最后一个作业在机器2M 上加工完成所需的时间最少。 从直观上我们可以看到,一个最优调度应使机器1M 没有空闲时间,且机器2M 的空闲

时间是最少。在一般情况下,机器2M 上会有机器空闲和作业积压两种情况。

设全部作业的集合为},....,2,1{n N =。N S ?是N 的作业子集。在一般情况下,机器

1M 开始加工S 中作业时,机器2M 还在加工其他作业,要等时间t 后才能利用。将这种情况下完成S 中作业所需的最短时间计为),(t S T 。流水作业调度问题的最优解为)0,(N T 。 1. 证明流水作业调度问题具有最优子结构

设a 是所给n 个流水作业的一个最优调度,它所需要的加工时间为']1),1([T a t +。

其中,'

T 是在机器2M 的等待时间为]2),1([a t 时,安排作业)(),......,

3(),2(n a a a 所需的时间。

记)}1({a N S -=,则我们可以得到])2),1([,('a t S T T =。

事实上,有T 的定义可知])2),1([,('a t S T T ≥.若])2),1([,('a t S T T >,设'a 是作业

集S 在机器2M 的等待时间为]2),1([a t 情况下的一个最优调度。则

)('),.....,2('),1(n a a a 是N 的一个调度且该调度所需的时间

']1),1([])2),1([,(]1),1([T a t a t S T a t +<+。这与a 是N 的一个最优调度矛盾,所以

])2),1([,('a t S T T ≤。从而])2),1([,('a t S T T =。这就是证明了流水作业调度问题具有

最优子结构的性质。

2. 建立递归式计算最优解

由流水作业调度问题的最优子结构的性质我们可以得到,

])}2,[},{(]1,[{)0,(min 1i t i N T i t N T n

i -+=≤≤。推广到更一般的情形,我们便有:

})}0],1,[max{]2,[},{(]1,[{min ),(i t t i t i S T i t t S T S

i -+-+=∈。其中,}0],1,[max{i t t -这一项是由于机器2M 上,作业i 需在]}1,[,max{i t t 时间之后才能开工。因此,在机器1

M 上完成作业i 之后,在机器上还需

}0],1,[max{]2,[]1,[]}1,[,max{]2,[i t t i t i t i t t i t -+=-+时间才能完成对作业i 的加工。

按照上面所叙述的递归式,可以设计出解决流水作业调度问题的动态规划算法。

通过对递归式的分析,算法可以得到进一步的改进。

3. 流水调度问题的Johnson 法则

设a 是作业集S 在机器2M 的等待时间为t 时的任意一个最优调度。如果在调度中,

安排在最前面的两个作业分别为i 和j ,即j a i a ==)2(,)1(。则由动态规划的递归式

可以得到:

)},,{(]1,[]1,[})0],1,[max {},{(]1,[),(ij i t j i S T j t i t i t t b i S T i t t S T -++=-+-+=

其中,}0],1,[}0],1,[max {]2,[max {]2,[j t i t t i t j t t ij --++=

]}2,[]1,[,0},0],1,[max{max{]1,[]2,[]2,[i t j t i t t j t i t j t --+-+=

}0],2,[]1,[],1,[max{]1,[]2,[]2,[i t j t i t t j t i t j t --+-+=

]}1,[],2,[]1,[]1,[,max{]1,[]1,[]2,[]2,[i t i t j t i t t i t j t i t j t -++--+=

如果作业i 和j 满足]}1,[],2,[min{]}1,[],2,[min{i t j t j t i t ≥,则称作业i 和j 满足

Johnson 不等式。如果作业i 和j 不满足Johnson 不等式,则交换作业i 和j 的加工

次序后,作业i 和j 满足Johnson 不等式。

在作业集S 当机器2M 的等待时间为t 时的调度a 中,交换作业i 和作业j 的加工次

序,得到的作业集S 的另一个调度a ’,它所需要的加工时间为 )},,{(]1,[]1,[),('ji t j i S T j t i t t S T -++=。

其中,]}1,[],2,[]1,[]1,[,max {]1,[]1,[]2,[]2,[j t j t j t i t t i t j t i t j t t ji -++--+=

当作业i 和j 满足Johnson 不等式]}1,[],2,[min{]}1,[],2,[min{i t j t j t i t ≥时,我

们有]}1,[],2,[max{]}1,[],2,[max{i t j t j t i t --≤--

从而,]}1,[],2,[max{]1,[]1,[]}1,[],2,[max{]1,[]1,[i t j t j t i t i t i t j t i t --++≤--++

由此可得,]}1,[],2,[]1,[]1,[max{]}1,[],2,[]1,[]1,[max{i t j t j t i t i t i t j t i t -+≤-+

因此任意t 有

]}1,[],2,[]1,[]1,[,max{]}1,[],2,[]1,[]1,[,max{i t j t j t i t t i t i t j t i t t -+≤-+

从而,ji ij t t ≤。由此可见),('),(t S T t S T ≤。

换句话说,当作业i 和作业j 不满足Johnson 不等式时,交换它们的加工顺序后,

作业i 和作业j 就满足Johnson 不等式了,且不增加加工时间。由此可得,对于流水

作业调度问题,必存在一个最优的调度a ,使得作业)(i a 和)1(+i a 满足Johnson 不

等式:

11]},1),([],2),1([min{]}1),1([],2),([min{-≤≤+≥+n i i a t i a t i a t i a t ,称这样的调度

a 为满足Johnson 法则的调度。

相关文档
最新文档