㆒個啟發性彈性流程排程演算法
洪宗貝 王姿婷
義守大學資訊工程研究所
摘 要
排程被廣泛地應用在各個領域,如製造、生產管理、資訊工程等等。在簡 單流程問題上,每個製程中心只有一部機器。若每個製程中心有一部以上的機 器,則這排程問題就稱為是一個彈性流程作業。所以彈性流程排程是簡單流程 排程的更一般化型式,而彈性流程排程是屬於相當困難及複雜的 NP-complete 問題。在過去,Sriskandarajah 及 Sethi 提出一種啟發性演算法來解決在兩個 製程中心的彈性流程問題。在本論文中,我們擴展他們的演算法來解決多個製 程中心的彈性流程問題,我們運用啟發性 Palmer 演算法為中心,以解決我們 所要解決的問題。由於在多製程中心的彈性流程問題是屬相當因難且複雜的 NP-complete 的問題,所以當在工作數量相當多的時候,似乎無需達到最佳排 程,只需達到近似最佳排程即可。因此我們所提的方法可達到此一目的。
關鍵詞:排程、彈性流程、LPT 排程、Palmer 排程。
A HEURISTIC ALGORITHM FOR FLEXIBLE FLOW-SHOP SCHEDULING
Tzung-Pei Hong and Tzu-Ting Wang
Institute of Information Engineering I-Shou University Kaohsiung, Taiwan 840, R.O.C.
Key Words: scheduling, flexible flow shop, LPT scheduling, Palmer sche- duling.
ABSTRACT
Scheduling is an important process widely used in manufacturing, production, management, computer science, and so on. In simple flow shop problems, each machine operation center includes just one machine. If at least one machine center includes more than one machine, the scheduling problem becomes a flexible flow-shop problem. Flexible flow shops can thus be thought of as generalizations of simple flow shops. Scheduling jobs in flexible flow shops is commonly seen in real-world applications and is considered an NP-complete problem. In the past, Sriskandarajah and Sethi proposed a heuristic algorithm for solving flexible flow-shop problems of two machine centers. In this paper, we extend their algorithm to solve flexible flow-shop problems of more than two machine centers. The heuristic Palmer algorithm is used as the kernel for achieving this purpose.
Since this problem is NP-complete, optimal solutions seem unnecessary especially when the number of jobs is large.
㆒、前 言
流程問題是排程中最常見的一種問題。所謂流程問 題,即在一個序列上有m 台機器,所有的工作同樣都需要 一一經過每台機器處理。也就是說,每項工作是由數個作 業所組成,每項工作的第一個作業由第一部機器處理,第 一個作業處理完後,接著第二個作業由第二部機器處理等 等依此類推,直到所有的工作完成。在簡單的流程問題上,
每個製程中心只有一部機器。若每個製程中心有一部以上 的機器,則這排程問題就稱為是一個彈性流程作業[1]。所 以彈性流程排程是簡單流程排程的更一般化型式。而彈性 流程排程在工作排程領域上是屬於 NP-complete 的問題 [2-3]。在以往 Sriskandarajah 及 Sethi 提出了一個解決兩 個製程中心的彈性流程排程演算法,在本篇論文中,我們 將具彈性流程排程的觀念擴展,並將這想法運用在具有多 個製程中心的工作排程問題,以便能更適合實際的應用。
我們將整合最長工作優先排程演算法(LPT)及 Palmer 排 程演算法,將其運用在彈性流程排程問題上,並使各項有 限資源達到最適當運用。
本篇論文其餘章節編排如下。在第二節中介紹相關的 排程演算法;在第三節中介紹這演算法的假設及符號;第 四節我們提出了一整合性演算法運用在多個製程中心的彈 性流程問題上;在第五節則舉例說明我們所提的整合性演 算法的演算過程;最後討論及未來發展方向則敘述於第六 節中。
㆓、相關的排程演算法
在前一節提及,彈性流程排程問題是屬 NP-complete 的問題,因此,至今除了沒有任何一個演算法可以提供最 佳解的方法。在文獻上,Sriskandarajak and Sethi 提出一個 啟發性演算法,解決兩個製程中心的工作排程問題,並使 最後完成時間達到近似最短時間。在本論文中,我們擴展 上述的方法,並採用 Palmer 演算法[4]來解決多個製程中 心處理彈性流程排程之問題。
首先以最長工作優先排程演算法(LPT)分配工作流 程群組,再以 Palmer 演算法針對各流程中之作業順序,安 排最適當的作業處理順序。以下將針對各相關演算法做一 個簡短的介紹。
1.LPT 排程演算法
在所有排程演算法之中,最長工作優先(LPT, Longest- Processing-Time-first)排程演算法是最簡單的一種及在真 實狀況下最廣泛被使用的的演算法。假設有n 個作業(T1 to Tn),每個作業都有一個執行時間(t1 to tn),及m 個同質 的處理單元或機器(P1 to Pm),最長工作優先排程演算法 分配作業中執行時間最長的作業優先被空閒的處理單元或
機器處理。以下將描述這演算法的程序。
LPT 排程演算法
輸入:n 個作業,每個作業具有任意的執行時間,及一組 m 部機器
輸出:排程結果及完成所有作業的最後完成時間。
步驟一:依據各個作業的執行時間,依序由大到小排序;
步驟二:對每部機器的目前執行完成時間初始化為零;
步驟三:指定作業序列中第一個作業,由目前執行完成時 間最短的機器來處理;
步驟四:對這部機器設定新的執行完成時間(=舊的執行 完成時間+被執行作業的完成時間);
步驟五:從作業序列中將此項作業刪除;
步驟六:重複步驟三至步驟五,直到作業序列中所有的作 業被執行完為止;
步驟七:在所有機器中,選擇最長的執行完成時間當作最 後完成時間。
這個由最長工作優先排程演算法產生出來的最後完成 時間,在一般而言並不是最短的完成時間,只是其演算法 所花費的計算時間比其他具有最佳排程演算法的計算時間 來得少。
2.Johnson 排程演算法
Johnson 排程演算法[3]是用來解決兩部機器流程問題 中的工作順序。假設在製造生產過程中,有一些工作要完 成,而每一個工作由二個作業所組成(T11, T21, T12, T22, ..., T1n, T2n),而這些作業必需依序的被不同機器處理。對於這 一類的問題 Johnson 提出了一個有效且簡單的方法來處 理。以下茲列舉這演算法的程序。
Johnson 演算法應用在兩個機器流程問題的工作排程:
輸入:n 個工作,每個工作中包含兩個作業,每個作業依 照其相對順序在兩部機器中執行。
輸出:最短的最後完成時間之排程結果。
步驟一:將第二個作業處理時間大於或等於第一個作業處 理 時 間 的 所 有 工 作 組 成 一 工 作 群 U=
} {it1i≤t2i 。
步驟二:將第一個作業處理時間大於第二個作業處理時間 的所有工作組成一工作群V={it1i>t2i}。 步驟三:對U 工作群依工作處理時間由小到大排列。
步驟四:對V 工作群依工作處理時間由大到小排列。
步驟五:將U 工作群的工作依序優先處理,再處理 V 工作 群之工作。
在步驟五之後,可使得全部工作被處理完成時所需的 時間最短。
3.Palmer 排程演算法
Palmer 排程演算法[4]是用來解決在多個機器流程問 題中的工作順序。當給定n 個工作,每個工作是由 m (m>2) 個作業所組成(T11, T21, ..., Tm1, T12, T22, ..., T(m-1)n, Tmn),而
每個作業必須以相同的順序在m 個機器(P1, P2, ..., Pm)中 被執行。比較 Johnson 演算法和 Palmer 演算法,可發現所 要解決的問題皆是以靜態方式適當分配所有工作至兩部或 多部機器處理的排程問題,這些問題皆有一明顯特性,即 對工作順序的安排是以工作處理時間轉換為一指標值,並 將指標值較大的工作優先處理。在兩部機器處理的情況 下,我們可用一數值指標πj(πj=−pj1+pj2)來表示,
而以最大πj值之工作優先處理。而 Palmer 演算法也希望 利用相同的想法運用在多個機器的排程問題上。其演算法 中 之 數 值 指 標 −1 j1−(m 3− )pj2−(m− +
jm
−
= j3
j (m )p )p
π 5
)p (m 1−
+ 為工作的優先權,即最高優先 權者將優先處理,此演算法可求出一近似最短完成時間的 排程。以下是這演算法的程序。
(m− jm1
+ −
L 3)p
Palmer 演算法應用在多個機器流程問題的工作排程:
輸入:n 個工作,每個工作中包含 m (m > 2)個作業,每個 作業依照其相對順序在m 個機器中執行。
輸出:近似最短的最後完成時間之排程結果。
步驟一:對每一個工作Jj,以下述公式求其πj值;
t
t m i j
m
i ij
j /2 m i m i ( 1 )
1
) 1 2 ( ) 1 2
( +−
= − − + + − +
= ∑ π
步驟二:每個工作依據其πj值由大到小排序,若二個或多 個工作的πj值相同,則以任意的順序來排序;
步驟三:依據工作序列的順序來安排工作至各部機器中執 行。
在步驟三之後,所有工作被執行完的最後完成時間即 可求出。
4.Sriskandarajah and Sethi 的排程演算法
Sriskandarajah 和 Sethi 提出一項啟發性演算法[5],
用來解決兩個製程中心的彈性流程問題。Sriskandarajah 和 Sethi 將這個問題區分成三個子問題,每個子問題都以啟 發式的方式去解決問題:
第一部份:組成機器群組,由每個製程中心的一部機器組 成。
第二部份:使用最長工作優先排程方法去指定每個工作至 各個機器群組。
第三部份:使用 Johnson 演算法來處理工作順序及測定完 成時間。
㆔、假設與符號
在這節描述與本論文有關的假設與符號。
1.假設:
1. 每個工作一開始執行須執行至完成才可停止。
2. 每個工作有 m (m > 2) 項作業,且分別在 m 個製程中心
執行。
3. 每個製程中心有相同數量的同質機器。
2.符號:
n 工作的數量。
m 在每個工作中作業的數量。
p 每個製程中心機器的數量。
Fi 第i 個流程群組,i=1to m。
Fji 流程Fi的第j 部機器, j=1to m。
mji 第i 個製程中心 的第 j 部機器, j=1to p。
fi 第i 個流程的執行時間。
fji 在第i 個流程的第 j 部機器的完成時間。
Tij 第j 個工作的第 i 項作業,i=1, 2, ..., m 及 j=1, 2, ..., n。
tij Tij的執行時間。
ttj 第j 個工作的總執行時間。
QFi 在第i 個流程中執行的工作群組。
ff 整個排程的最後完成時間。
㆕、多個製程㆗心的彈性流程排程演算法
在文獻[5]中,Sriskandarajah 和 Sethi 提出一個啟發 性演算法,用來解決兩個製程中心的彈性流程問題。在此 我們將擴展其方法去解決多個製程中心的流程問題。這多 個製程中心的彈性流程排程演算法是基於最長工作優先排 程[6]及 Palmer 演算法[4],用來分配工作流程及作業間的 順序。
我們所提的流程排程演算法被區分為三部分,第一部 分是將製程中心間的機器組成多個製造流程群組;第二部 分是運用最長工作優先排程的方法來分配工作至各個製造 流程群組;第三部分是採用 Palmer 演算法處理製造流程 中的作業順序。以下將詳細敘述這演算法的過程。
1.演算法
輸入:n 個工作,每個工作有 m (m > 2)項作業,將分別被 m 個製程中心來處理,在每個製程中心包含 p 個同 質的機器,每個工作所包含的m 項作業分別經由各 製程中心相對應的機器處理。
輸出:一個工作排程及其完成時間。
(一) 第一部份:組成多個製造流程群組
步驟一:將各製程中心的機器各選擇一部形成一組,將其 分成p 組,分別為 F1, F2, ..., Fp,這p 組可視為 p 個製程流程;
步驟二:將各流程Fi的完成時間f1, f2, ..., fp初始化設為零;
步驟三:對每個工作 Jj,1≤ j≤n,求其所需被執行的總 時間ttj=t1j+t2j+L+tmj;
(二) 第二部份:分配工作至各製造流程群組
步驟四:依據每個工作所需被執行總時間,由大到小排成 一序列,若有相同的平均執行時間,則任意選擇 其一;
步驟五:找目前處理時間最短的流程 Fi,若處理時間相 同,則任意選擇其一;
步驟六:指定工作序列中的第一個工作Jj到前一步驟所選 擇的流程Fi中執行;
步驟七:將工作Jj的總執行時間(ttj)加到被選擇的流程 Fi;
j i
i f tt
f = + ;
步驟八:將工作Jj從工作序列中移除;
步驟九:重複步驟五至八,直到工作序列中的工作被執行 完為止;
在步驟九之後,所有工作被區分成p 組,也分別被配 置在p 個流程中。
(三) 第三部份:處理每一個流程的作業順序 步驟十: 對每個工作 Jj,以下列公式求其πj值;
t
t m i j
m
i ij
j /2 m i m i ( 1 )
1
) 1 2 ( ) 1 2
( +−
=− − + + − +
= ∑ π
步驟十一:每組流程中的作業順序依據πj值由大到小排 列,若πj值相同則任意選擇其一,而構成新的 流程工作群組以QFi表示;
步驟十二:對每組流程 Fi的每個機器Fji設定其初始完成 時間fji (i=1to m, j=1to p)為 0;
步驟十三:指定QFi中的第一個工作至流程F1的機器中執 行,如J1j指定到F1i,J2j指定到F2i等依此類推;
步驟十四:將 t1j作業的處理時間加到流程第一部機器 f1i
的完成時間內,如:
j 1 i 1 i
1 f t
f = + ;
步驟十五:計算第二部至第 m 部機器的完成時間如下:
, k 到(
j k i k ki i
k f f t
f( +1) =max( , ( +1))+ (+1) =1 m−1); 步驟十六:將Jj工作從QFi中移除;
步驟十七:重複步驟十三到十六,直到QFi中所有工作被 執行完;
步驟十八:設定每組流程的最後完成時間 流程中第m 部機器的的完成時間 ;
i= f fmi
步驟十九: 選擇最長的完成時間做為整個排程的最後完成 時間(ff);
在步驟十九之後,最後完成時間(ff) 為所有工作在多 個製程中心所需花費的總時間。
㈤、舉例說明
假設有八個工作(J1 to J8),每個工作有三項作業(J1j,
表㆒ ㈧個工作㆗的各㊠作業所需執行的時間 作業
工作 t1j t2j t3j
J1 4 7 3
J2 1 5 2
J3 5 2 4
J4 2 5 3
J5 5 5 6
J6 7 3 4
J7 4 4 5
J8 3 6 3
表㆓ ㈧個工作分別所需執行總時間 工作 (Jobj) 總執行時間(ttj)
J1 14
J2 8
J3 11
J4 10
J5 16
J6 14
J7 13
J8 12
J2j, J3j),將分別被三個製程中心來處理,在每個製程中心 包含三個同質的機器,每個工作所包含的三項作業分別經 由各製程中心相對應的機器處理。在表一我們假設每個工 作所需執行時間。
(一) 第一部份:組成多個製造流程群組
步驟一:將各製程中心的機器分成三組F1, F2, F3,這三組 就如同是三個製程流程,我們可以假設這些流程 的構成如下:
} { 11 12 13
1 m m m
F → + + ;
} { 21 22 23
2 m m m
F → + + ;
} { 31 32 33
3 m m m
F → + + ,
mji 表示是第i 個製程中心中的第 j 部機器;
步驟二:將各流程 Fi的完成時間 fi初始化設為零,即 f1= f2= f3= 0;
步驟三:對每個工作Jj,j=1 t3j
to 8,求其所需被執行的總 時間ttj=t1j+t2j+ ,其結果如表二所示:
(二) 第二部份:分配工作至各製造流程群組
步驟四:依據每個工作所需被執行總時間,由大到小排成 一序列;
工作序列= {J5, J1, J6, J7, J8, J3, J4, J2}.
步驟五:在流程F1到F3之間找目前處理時間最短的流程,
此時所有流程的平均時間皆為零,所以任意選擇
表㆔ 分配所㈲工作㉃各流程群組的結果
流程 工作分配
F1 J5, J3, J2 F2 J1, J8, J4
F3 J6, J7
表㆕ 每個工作的πj值
Jobj πj
J1 -2
J2 2
J3 -2
J4 2
J5 2
J6 -6
J7 6
J8 -4
其中一個即可,假設選擇第一個流程F1;
步驟六:指定工作序列中的第一個工作J5到流程F1; 步驟七:將工作J5的總執行時間 16 加到流程 F1,
16 16
1=0+ =
f ;
步驟八:將工作J5從工作序列中移除,移除J5之後工作序 列如下:
工作序列={J1, J6, J7, J8, J3, J4, J2} 步驟九:重複步驟五至八,直到工作序列中的工作被執行
完為止;
在步驟九之後,所有工作被區分在三個流程群組中,
其結果如表三所示。
(三) 第三部份:處理每一個流程的作業順序 步驟十:以下列公式對每個工作求其πj值,
j i 1 3 ij
2 3
1
j i/ (3 2i 1)t (3 2i 1)t(+−)
=− − + + − +
= ∑ π
3j 1j 3j
1j t t t
t (3 1) 2 2 )
1 3
( − + − =− +
−
= 。
其結果如表四所示。
步驟十一:每組流程中的作業順序依據πj值由大到小排 列,而構成新的流程群組 ,Q ,Q ,如下 所示:
F1
Q F2 F3
流程一:QF1={J2, J5, J3}, 流程二:QF2={J4, J1, J8}, 流程三:QF3={J7, J6}.
步驟十二:對每組流程 Fi的每部機器Fji設定其初始完成 時間(fji),如下所示:
=0
fji , 到 3, i=1 j=1到 3。
表㈤ 每部機器的完成時間 流程一:
Jobj f11 f21 f31
J2 1 6 8
J5 6 11 17
J3 11 13 21
流程二:
Jobj f12 f22 f32
J4 2 7 10
J1 6 14 17
J8 11 20 23
流程三:
Jobj f13 f23 f33
J7 2 6 11
J6 9 12 16
步驟十三:指定Q , , 中的第一個工作至流程 F1, F2及F3,其結果如下:
F1 QF2 QF3
流程一:F11←J12, F21←J22, F31←J32, 流程二:F12←J14, F22←J24, F32←J34, 及 流程三:F13←J17, F23←J27, F33←J37。 步驟十四:將作業t12, t14, t17的處理時間加到流程F1, F2,
F3的第一部機器,f11, f12, f13的完成時間,其結 果如下:
流程一:f11= f11+t12=0+1=1; 流程二:f12= f12+t14=0+2=2; 流程三:f13= f13+t17=0+2=2。
步驟十五:計算工作J2, J4, J7的作業在其他機器上的完成 時間。先前我們提及流程問題,當第一個作業 做完後,才能執行第二個作業,故第二個作業 的完成時間是採用第一、二作業最長處理時間 來計算,其計算方式如下:
流程一:f21=max(f11, f21)+t22=1+5=6; 8 2 6 ) ,
max( + = + =
= 21 31 32
31 f f t
f ;
流程二:f22=max(f12, f22)+t24=2+5=7; 10 3 7 ) ,
max( + = + =
= 22 32 34
32 f f t
f ;
流程三:f23=max(f13, f23)+t27=2+4=6; 11 5 6 ) ,
max( + = + =
= 23 33 37
33 f f t
f 。
步驟十六:從Q , QF1 F2,QF3中移除工作J2, J4, J7; 步驟十七:重複上述步驟完成其他工作的執行與完成時間
的計算之後,其結果如表五所示。
步驟十八:設定每組流程的最後完成時間 流程中第三 部機器的完成時間 ;
i = f fmi
表㈥ 每組流程的完成時間 流程 完成時間(fi)
F1 21
F2 23
F3 16
Machine Center 2 Machine Center 1
Machine Center 3 t12
t22
t32 t15
t25
t35
5 10 15 20 25
m11 m21 m31
m12 m22 m32
m13 m23 m33
t11
t21
t31 t17
t27
t37 t14
t24
t34 t13
t23
t33 t18
t28
t38 t16
t26
t36
圖 1 所㈲工作排程執行順序及完成時間之結果
31
1 f
f = , f2= f32及f3= f33。 其結果如表六所示。
步驟十九:選擇最長的完成時間做為整個排程的最後完成 時間(ff);
=23 ff 。
最後完成時間(ff)為所有工作在多個製程中心所需花 費的總時間,而整個排程順序如圖 1 所示。
㈥、討論及未來發展方向
一個適當的排程不僅僅是減少製造成本,也是減少延 期交貨的違約。對所有工作尋求一個好的排程可以幫助製 造廠的監督者去控制工作流程及提供近似最佳順序排程。
彈性流程的工作排程是屬 NP-complete 的複雜問題。
在本論文,我們提出了一個啟發性的排程演算法應用於多 個彈性流程製程中心。我們利用了原來 Palmer 演算法擴充 解決 Johnson 演算法於流程排程之能力,將之修改於 Sriskandarajah-Sethi 演算法以解決多彈性流程製程中心的
排程問題。由於 Palmer 演算法已被證實可有效解決多機器 排程問題,且我們所提的啟發性演算法中之第三部份乃擴 充 Johnson 演算法至 Palmer 演算法,因此所提的演算法可 適用於解決多個彈性流程製程中心的排程問題。這排程的 結果可以協助系統管理者對排程問題有更寬闊見解及制定 良好的分析。在未來,我們將考慮其他工作上的限制,如:
執行時間的不確定性、工作的前置時間、訂單交期及優先 權等等問題。
誌 謝
作者要感謝三位匿名評審委員對本篇論文所提出的寶 貴意見,使此篇論文能更趨完整。
參考文獻
1. Dudek, R. A., Panwalkar, S. S. and Smith, M. L., “The Lessons of Flowshop Scheduling Research,” Operations Research, Vol. 40, pp. 7-13 (1992).
2. Chung, S. C., and Liao, D. Y., “Scheduling Flexible Flow Shops with No Setup Effects,” The 1992 IEEE Intern- ational. Conference on Robotics and Automation, pp.
1179-1184 (1992).
3. Morton, T. E., and Pentico, D. W., Heuristic Scheduling Systems with Applications to Production Systems and Project Management, John Wiley & Sons Inc., New York (1993).
4. Hong, T. P. and Chuang, T. N., “Fuzzy Palmer Schedul- ing for Flow Shops with More Tan Two Machines,”
Journal of Information Science and Engineering, Vol. 15, pp. 397-406 (1999).
5. Sriskandarajah, C., and Sethi, S. P., “Scheduling Algorithms for Flexible Flow Shops: Worst and Average Case Performance,” European Journal of Operational Research, Vol. 43, pp. 143-160 (1989).
6. Hong, T. P., Huang, C. M., and Yu, K. M., “LPT Schedul- ing for Fuzzy Tasks,” Fuzzy Sets and Systems, Vol. 97, pp.
277-286 (1998).
88 年 11 月 15 日 收稿 89 年 01 月 15 日 初審 89 年 05 月 03 日 複審 89 年 05 月 15 日 接受