Scientific Journal of Information Engineering December 2014, Volume 4, Issue 6, PP.152-157
A Heuristic Algorithm for Flowshop Scheduling Problem Yilin Liu Design department/China Petroleum Sichuan Sales Branch/ Petro China Company Limited, Chengdu 610000, China Email: yilin_liu@foxmail.com
Abstract In this paper, we propose a new heuristic algorithm based on the analysis and research, the new method of introducing an evaluate mechanism of the relative position of any two jobs at the completion time, and the efficiency and performance has been improved. The result of simulation experiments shows that, our new heuristic algorithm has good performance, and the average quality and stability of scheduling sequences generated by the new method are significantly better than other heuristic algorithm which has the same complexity. Keywords: Flow Shop; NEH; Production Scheduling; Heuristic Algorithm
流水车间调度问题的一种启发式算法 刘易麟 中国石油四川销售分公司科研设计所,四川 成都 610000 要:在过去的 20 多年中,NEH 算法一直被认为是解决以最小完工时间为目的的流水车间问题的最好启发式算法,该
摘
算法在实际的工件调度中也得到了广泛的应用。近年来,在对流水车间工件调度问题的研究过程中,也有不少的启发式 算法被提出,但是,这些算法提出的大多是对 NEH 算法的继承和改进,算法性能的提升并不明显。在对流水车间调度问 题充分分析和研究的基础上,提出了一种全新的启发式算法,该算法引入任意两个工件的相对位置对于完工时间的影响 比较机制,有效提高了算法效率和性能。仿真实验表明,新算法的性能和稳定性均优于包括 NEH 算法在内的经典和常见 的构造型启发式算法。 关键字:流水车间;NEH;生产调度;启发式算法
引言 流水车间调度问题是当前很多以流水线方式生产的制造业车间调度的抽象模型,也被证明是一个典型的 NP 完全问题 [1] ,具有很高的理论研究价值和实践价值。自从 1954 年 Johnson 发表第一篇流水车间调度 (Flowshop Scheduling)问题的文章以来,流水车间调度问题一直被很多学者所关注。总完工时间(makespan) 是流水车间调度问题中的一个非常重要的性能指标,总完工时间最小可使得资源更加有效利用、任务更迅速 传递及在制品库存最小。对于以最小 makespan 为目标的流水车间调度问题我们可以做如下描述:n 个工件在 m 台机器上加工,每个工件需要经过 m 道工序,每道工序要求不同的机器,这 n 个工件通过 m 台机器的顺 序相同,它们在每台机器上的加工顺序也相同;定义 Oi , j 为第 j 个工件在第 i 台机器上操作, pi , j 为 Oi , j 的执 行时间而 ci , j 表示 Oi , j 的完成时间,其中 i 1, 2,
, m; j 1, 2,
, n ;问题的求解目标是确定 n 个加工任务在每
台机器上的最优加工顺序,使所有加工任务全部完工的时间最短。该问题通常需要作如下假设:每个加工任 务在机器上的加工顺序为 1, 2,
, m ;每台机器同时只能进行 1 个加工任务;1 个加工任务不能同时在不同的
机器上进行;各任务在加工完后立即送下一道工序;任务在机器上开始加工,必须一直进行到该工序完工, 中途不允许停下来插入其它任务;所有任务在 0 时刻已准备就绪,机器调整时间包括在加工时间内;允许任 - 152 http://www.sjie.org
务在工序之间等待;允许机器在任务未到达时闲置。而本问题的目标是找到一个所有工件的排列 ,使得 makespan 最小。通常,对以最小 makespan 为目标的流水车间调度问题的分析一般分为两种思路,求的最优 解和取得次优解。求最优解一般使用的是动态规划法、分支定界法等方法,此类方法从某种意义上来说都是 属于穷举法,只是在穷举的过程中根据一些计算结果排除某些明显不必要的计算。但是由于这些算法的搜索 空间会随着工件数的增加呈指数式急剧增长,所以它们在解大规模问题上有着较大的局限性。正是在这种情 况下,就产生了以求可行解或次优解为目的的启发式算法。启发式算法是相对于最优算法提出的,可作如下 定义:一个基于直观或者经验构造的算法,在可接受的花费(时间、空间等)下,给出待解决组合优化问题 的每一个实例的一个可行解,该可行解与最优解的偏离程度不一定可以事先预计。启发式算法以其计算量小、 算法简单并且能得到较好的解而吸引了众多的研究者。启发式算法一般可以划分为元启发式算法[2~4]和构造式 启发式算法[5~9]。通常情况下,元启发式算法获得的调度是优于构造式启发式算法,但却需要更多的机器时间 和空间,在满足制造业生产车间实时性的需求上有一定的困难,因此,本文的研究重点将放在构造式启发式 算法。目前经典的构造式启发式算法有 Palmer[5]、Gupta[6]、CDS[7]、RA[8]和 NEH[9]算法,其中又以 NEH 算 法的性能为最佳。此外,近年来也不断有新的启发式被提出[10~13],而多数是基于 NEH 的算法思想或是对其 的改进。本文在综合考虑了多种影响流水车间 makespan 的因素的同时引入越韩定理[14],提出了一种新的构 造式启发式算法,而仿真实验表明在算法复杂度相当的条件下,新算法的性能优于 NEH 算法。
1 新的启发式算法 本章将提出一种以最小 makespan 为目标的流水车间调度问题的构造式启发式算法,在对算法进行设计 和描述之前,首先给出一些重要的定义和引理。
1.1 相关基本理论 假设有 n 个工件在 m 台机器上加工( m, n 1 ),如上一章的描述,使用 pi , j 表示第 j 个工件在第 i 台机器 上的加工执行时间( i 1, 2,
, m; j 1, 2,
因此当加工顺序 {1 , 2 ,
, n } 确定后,所有的加工执行时间 pi , j 可以由一个矩阵来表示,称作加工时间
,而在流水车间中每一个工件需要在每一个机器上进行加工, ,n )
矩阵,记作矩阵 P。 p1,1 p2,1 P pm, 1
p1, 2 p2, 2 pm, 2
p1, n p2, n pm, n
矩阵 P 的第 i 行表示第 i 台机器而第 j 列表示第 j 个工件,而 i 行 j 列对应的值为 pi , j 。而对于一个特定 的排列 ,可将加工时间矩阵在形式上简写为: p1,1 p2,1 P pm,1
p1,2 p2,2 pm,2
p1, n p2, n pm, n
下面引入与本文算法相关的一些定义和定理[14]。 定义 1. 将加工时间矩阵 P 的左上角与右下角用一条只能向右水平或向下垂直延伸的折现连接起来,以 这样的方式构成的线称为可行线。 例如, L1 =( p1,1 , p1,2 ,..., p1,n , p2,n ,..., pm, n )即是一条可行线,而 L2 =( p1,1 , p2,1 ,..., pm,1 , pm,2 ,..., pm, n )是另一条可 行线。而本文使用 L( ) 表示加工顺序为 时的所有可行线集合。 定义 2. 假设 L 为一条可行线,则定义 p
i , j L ( )
pi , j 为可行线 L 的可行和。
- 153 http://www.sjie.org
引理 1. 使用 T ( ) 表示在工件加工顺序为 时所有工件的加工总时长,则有如下等式成立: T ( ) max pi , j pi , j L ( )
L
(1)
证明:首先证明 m=2 的情况,因矩阵 P 仅有两行,故显然有: max L
pi , j L
s
n
j 1
js
pi , j max{ p1, j p2, j } 1 s n
(2)
当 n=1 时,总加工时间为 a11 a12 ,故等式(2)成立。假设等式(2)对 n 成立,现要证明等式(2)对 n+1 成立。 显然,工件 J n 1 在机器 M 2 上经历的过程只有两种: (1)工件 J n 1 在机器 M 2 上不需要等待,可以立即被加工,此时有 n 1
, n 1) p1, j p2, n 1 ,
T (1, 2,
j 1
, n 1) T (1, 2,
T (1, 2,
, n) p2, n 1
此时有 , n 1) max{T (1, 2,
T (1, 2,
n 1
, n) p2, n 1 , p1, j p2, n 1} j 1
(2)工件 J n 1 在机器 M 2 上加工前需要等待,此时有 T (1, 2, , n 1) T (1, 2,
(3)
, n) p2,n1 ,
n 1
T (1, 2,
, n 1) p1, j p2, n 1 j 1
故也可推出式(3)成立,根据假设即得: T (1, 2,
s
n 1
n 1
j 1
j s
j 1
, n 1) max{ p1, j p2, j , p1, j p2, n 1} 1 s n
(4)
故当 m 为 2 时,引理得证。 再假设式(1)对 m 成立,工件 J j 在机器 M m 上的加工完毕时刻为 T j ,而视 Tj Tj 1 视为工件在 M m 上的加 工时间,且它在机器 M m 1 上的加工时间为 pm 1, j ,则 M m 和 M m 1 可视为两台机器的情况,此时有 n
T (1, 2,
, n) max{Ts pm 1, j } , j s
由归纳假设,有 Ts max pk ,i Ls
pk ,i
其中的 Ls 为连接 p1,1 和 pm , s 的一条可行线,将上式代入式(4),可得 n
T (1, 2,
, n) max{max pk ,i pm1, j } 。 1 s n
Ls
pk ,i
j s
证毕。 引理 2. 设工件序列 (i, 列 ' (i,
, i '', j, i, j ',
, i '', i, j, j ',
, j '') , ' 为置换工件序列 的 i 和 j 两列之后得到的新的工件序
, j '') , d ( pu ,i , pv , j ) 为连接 pu ,i , pv, j 所有可行线的最大可行和,则有下述不等式成立:
当 d ( pu ,i , pv, j ) d ( pu , j , pv,i ),1 u v m 成立,则有 T ( ) T ( ') 成立。 证明: T ( ) max{d ( p1,i ' , pk ,i '' ) d ( pk ,i ' , pm,i '' ) pk ,i pk , j , d ( p1,i ' , pu ,i '' ) d ( pv ,i ' , pm ,i '' ) d ( pu ,i , pv , j ), 1 k m,1 u v m}
T ( ') max{d ( p1,i ' , pk ,i '' ) d ( pk , j ' , pm, j '' ) pk ,i pk , j , d ( p1,i ' , pu ,i '' ) d ( pv , j ' , pm, j '' ) d ( pu ,i , pv , j ),1 k m,1 u v m}
由条件可知 d ( pu ,i , pv, j ) d ( pu , j , pv,i ),1 u v m ,比较式(5)和式(6),定理得证。 - 154 http://www.sjie.org
(5) (6)
1.2 启发式算法设计 假设 n 个工件在 m 台机器( m, n 1 )上加工,任意工件在每台机器上的加工时间矩阵 P 如上一章中的 定义,仍然使用 pi , j 表示第 j 个工件在第 i 台机器上的加工执行时间,而使用 Pj 表示矩阵 P 的第 j 列构成的向 量( i 1, 2,
, m; j 1, 2,
。此外,根据上一节中引理 2,定义如下参数: ,n ) m
sumi pi , j ,( j 1, 2, i 1
, n)
1, min( pu ,i , pv , j ) min( pu , j , pv ,i ) , R(u, v) 0, min( pu ,i , pv , j ) min( pu , j , pv ,i ) i, j 1, 2, 1, other conditions
, n;1 u v m
上述参数中, sumi 表示加工时间矩阵 P 中的第 j 列之和, R(u, v) 表明两个工件之间的相对先后关系,若 R(u, v) 1 则 u 列在 v 列之前,而 R(u, v) 0 则 u 列在 v 列之后。
将工件最终的排列记作 ,初始时 为空。新的启发式算法描述如下: (1)按照矩阵 P 中各个工件的位置将所有列顺序放入序列 ' 中。 (2)寻找矩阵 P 中的两列 Pi 和 Pj ( 0 i, j n ),使得这两列满足 R( Pi , Pj ) 1 或者 R( Pi , Pj ) 0 ;如果矩 阵 P 中存在这样两个列则顺序执行步骤(2),否则转向步骤(6) 。 (3)按照列 Pi 和 Pj 的相对关系,将这两列加入到 中,并从序列 ' 中删除。 (4)从序列 ' 中顺序取出一列,记作 Pk ,计算该列与 中各列的相对位置关系,确定 k 个可能的插入 位置,并分别将列 Pk 插入这 k 个位置计算流程时间,取计算结果最小的位置为列 Pk 在 中的插入位置并将该 列插入其中,同时在 ' 中删除列 Pk 。 (5)重复步骤(4) ,直到序列 ' 为空。 (6)计算 中各列的加工时间和 sumi ( 1 i n ),按结果递减排列,存入 ' 中。 (7)取 ' 中的前两列存入 中,并将这两列从 ' 中删除。 (8)将 ' 中第一列(记作 P1 ' )取出,插入序列 中的各个可能位置,计算流程时间,取计算结果最小 的位置为列 P1 ' 的插入位置,将列 P1 ' 插入 ,同时将该列从 ' 中删除。 (9)重复步骤(8) ,直至 ' 为空。 例 有一个 F4 || Fmax 问题,工件在各个机器上的加工时间矩阵 P 如下所示,按照方法求解其工件排列顺序。 4 3 6 6 2 P 6 11 8 7 14 8 7 10 3 12 按照本章提出的方法计算过程如下: 首先初始化 {} , ' {P2 , P4 , P5 } ;计算 ' 中各列的位置关系,首先得到 R( P1 , P3 ) 1 ,因此列 P1 应该 排在列 P3 之前,此时 {P1 , P3 } , ' {P2 , P4 , P5 } ;从 ' 中顺序取出列 P2 ,计算得到 R( P2 , P1 ) R( P2 , P3 ) 1 , 即列 P2 与列 P1 和 P1 的关系不明确,因此在 中存在 3 个列 P2 可能的位置,分别计算列 P2 在这三个位置的流 程时间,取计算结果最小的一个作为列 P2 的位置,此时 {P1 , P3 , P2 } , ' {P4 , P5 } ;从 ' 中顺序取出列 P4 , 计算得到 R( P4 , P1 ) R( P4 , P3 ) R( P4 , P2 ) 0 ,即列 P4 应该放在当前 的最后一个位置,此时 {P1 , P3 , P2 , P4 } ,
' {P5 } ;取出 ' 中最后一个元素列 P5 ,计算得到 R( P5 , P1 ) R( P5 , P3 ) 1 , R( P5 , P2 ) R( P5 , P4 ) 1 ,即列 P5 应该放在列 P2 和 P4 之前,因此在 中存在 3 个列 P5 可能的位置,分别计算列 P5 在这三个位置的流程时间, 取计算结果最小的一个作为列 P5 的位置,则 {P1 , P3 , P5 , P2 , P4 } , ' {} ;此时 ' 为空,计算结束。最终的 工件排列位置应该为 1 3 5 2 4 ,makespan 为 54,在此例中这也是最优解。
2 测试与分析 为了说明启发式方法的实际效果,定义最优率 Y,表明在特定样本规模中,使用某种启发式算法得出最 - 155 http://www.sjie.org
优解占所有样本数量的比例。此外,参照文[7]而定义出最优偏差率 E (MK MKp) 100 / MKp ,其中 MK 为 使用启发式方法排序后工件的实际 makespan,MKp 为该组工件的最优 makespan,最优偏差率越小则表明该 启发式算法对工件顺序的排列越好,而 E 0 则说明此次对工件的排列为最优。本章将给出新算法的测试数 据并对比新算法与当前各经典启发式算法。 测试所用到的工件在各机器上的加工时间矩阵 P 中的各个元素 Pi , j 为 0 到 9 的随机整数( 1 i m,1 j n ) ,且测试用例的规模从 n 3, m 3 到 n 30, m 20 ,可代表大多数 实际的生产车间。表 1 给出了多个以样本规模 200 为单位的测试数据,显示了机器数量和工件数量的变化对 新算法得出结果的影响。 表 1 算法最优偏差率 E 的测试样本数据 m
n
样本规模
3 4 5 6 7 8 3 4 5 6 7 8 3 4 5 6 7 8
3 3 3 3 3 3 5 5 5 5 5 5 7 7 7 7 7 7
200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200
最优偏差率 E 0%(最优)
(0,5%]
(5%,10%]
200 195 189 194 191 193 181 170 159 158 149 153 156 134 119 107 91 101
0 4 5 6 7 6 16 26 32 33 43 45 37 54 65 80 101 94
0 1 6 0 2 1 2 4 8 8 8 2 7 12 16 13 8 5
(10%,1] 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0
最优率 Y
平均最优偏差率
100% 97.5% 96.5% 97% 95.5% 96.5% 90.5% 85% 79.5% 79% 74.5% 76.5% 78% 67% 59.5% 53.5% 45.5% 50.5%
0% 0.098% 0.111% 0.080% 0.146% 0.091% 0.263% 0.475% 0.702% 0.756% 0.714% 0.600% 0.639% 1.024% 1.317% 1.375% 1.394% 1.243%
从表 1 容易分析出本文所提出启发式算法的基本性能,随着样本测试规模的扩大,新算法的最优偏差率 几乎完全控制在 10%之内。而表 2 则对新启发式算法和当前经典的流水车间启发式算法的性能进行了对比。 表 2 流水车间启发式算法性能对比 算法
复杂度
样本规模
Pamler
n log(n) nm
200
CDS
nm2 nm log(n)
200
RA
n log(n) nm
200
Gupta
n log(n) nm
200
NEH
n2 m
200
本文提 出算法
n log(n) nm
200
性能指标(%)
m=3n =3
m=4n =3
m=4n =5
m=3n =4
m=5n =4
m=6n =5
m=6n =6
最优率
74.5
66.5
33
53
42.5
23
16
平均最优偏差率
2.13
2.11
4.28
3.66
3.37
4.52
6.28
最优率
93.5
91.5
59.5
77
75
62
39.5
平均最优偏差率
0.44
0.41
1.66
1.6
0.98
1.42
2.22
最优率
81.5
76
38.5
66
42
28
16.2
平均最优偏差率
1.62
1.52
3.91
2.24
3.75
4.04
5.97
最优率
88.5
70
43.5
68
44
24.5
10
平均最优偏差率
0.85
20.8
4.08
2.98
4.34
6.02
7.3
最优率
99
97
84.5
92
88.5
77.5
67.5
平均最优偏差率
0.03
0.13
0.45
0.32
0.39
0.64
0.93
最优率
100
97.5
94
97
90.5
84
76
平均最优偏差率
0
0.09
0.02
0.01
0.27
0.32
0.78
从上表中不难看出,本文所提出的方法无论是从结果的最优性还是平均最优偏差率上均明显高于包括 NEH 在内的当前经典或常用的构造型启发式算法。 - 156 http://www.sjie.org
3 结论 本文在在综合考虑了以最小 makespan 为目标的流水车间调度问题特点的同时引入越韩定理,提出了一 种新的构造型启发式算法。相比 NEH 算法,新算法可以有效比较任意两个工件的相对位置对于完工时间的 影响,有效提高了算法效率和性能。仿真实验表明,新算法的性能和稳定性均优于包括 NEH 在内的经典启 发式算法。
REFERENCES [1]
Garey, M. R., Johnson, D.S., Sethi, Ravi. The Complexity of Flowshop and Jobshop Scheduling. Mathematics of Operations Research, May 76, Vol. 1 Issue 2, p117-129
[2]
Ling Wang, Liang Zhang, Da-Zhong Zheng, An Effective Hybrid Genetic Algorithm for Flow Shop Scheduling with Limited Buffers, Computers and Operations Research, v.33 n.10, p.2960-2971, October 2006
[3]
I-Hong Kuo , Shi-Jinn Horng , An efficient flow-shop scheduling algorithm based on a hybrid particle swarm optimization model, Expert Systems with Applications: An International Journal, v.36 n.3, p.7027-7032, April, 2009
[4]
Guenther Fuellerer, Karl F. Doerner, Richard F. Hartl. Ant colony optimization for the two-dimensional loading vehicle routing problem. Computers & Operations Research, Vol. 36, No. 3. (March 2009), pp. 655-673
[5]
Palmer D S. Sequencing Jobs through a Multi-Stage Process in the Minimum Total Time-a Quick Method of Obtaining a near Optimum [J]. Operational Research Quarterly, 1965, 16: 101-107
[6]
Gupta J. A Functional Heuristic Algorithm for the Flowshop Scheduling Problem [J]. Operational Research Quarterly, 1971, 22: 39-47
[7]
Campbell H G, Dudek R A, Smith M L. A Heuristic Algorithm for the n-Job, m-Machine Scheduling Problem. [J]. Management Science, 1970, 16: 630-637
[8]
Dannenbring D G. An Evaluation of Flow Shop Sequencing Heuristics [J]. Management Science, 1977, 23(11): 1174-1182
[9]
Nawaz M, Enscore E, Ham I. A Heuristic Algorithm for the m Machine, n Job Flow Shop [J]. OMEGA: The International Journal of Management Sciences, 1983, 11(1): 91-95
[10] Pawel Jan Kalczynski, Jerzy Kamburowski. On the NEH heuristic for minimizing the makespan in permutation flow shops[J]. Omega. 2007, 35(1): 53-60 [11] Pawel J. Kalczynski, Jerzy Kamburowski.An improved NEH heuristic to minimize makespan in permutation flow shops[J]. Computers & Operations Research, 2008, 35(9): 3001-3008 [12] Xingye Dong, Houkuan Huang and Ping Chen. An improved NEH-based heuristic for the permutation flowshop problem[J]. Computers & Operations Research, 2008,35(12): 3962-3968 [13] Tsung-Che Chiang, Hsueh-Chien Cheng and Li-Chen Fu.NNMA: An effective memetic algorithm for solving multiobjective permutation flow shop scheduling problems[J]. Expert Systems with Applications,2011, 38(5): 5986-5999 [14] 越民义, 韩继业. N 个零件在 m 太机床上的加工顺序问题(Ⅰ)[J]. 中国科学. 1975, (5): 462-470
【作者简介】 刘易麟(1981-) ,男,汉族,硕士,工程师,计算机算法设计、工程设计。Email: yilin_liu@foxmail.com
- 157 http://www.sjie.org