• 沒有找到結果。

第三章 本論文演算法

3.4 田口方法

田口方法是1949 年,由日本田口玄一(Genichi Taguchi)博士發明的,當時剛 好第二次世界剛結束,日本進行戰後的重建工作,面臨成本高昂,以及缺乏生產 設備和工程師。在如此惡劣的環境之下,如何生產利用最低的成本生產最高品質 的產品是一項具有挑戰和重點的課題。當初田口玄一博士發明的動機是因為於工 作時發現傳統的實驗設計方法在實務上並不適用,為了發展「品質工程」,他竭 力於發展出一套新的實驗設計方法。

田口方法通常用來改善品質工程,所發展的方法為為透過實驗來最佳化系統 參數的方法,而非傳統的實驗設計使用統計參數,此方法的原先目的為改善品質 工程,在日本又稱之為品質工程(quality engineering),田口博士發展的方法就簡 稱為田口方法(Taguchi methods),不過近年來也有人用來使用在排程上面發展,

但大多為應用於設計參數部分,只有少數的學者使用在演算法的架構上,特別是 JSSP 問題幾乎無人使用過。

田口方法的優點:假設染色體內含5 個基因的超小型問題,目的為由兩條染 色體中做實驗產生出「最佳配方」染色體,如果用傳統的實驗設計方法,需要做 的實驗次數為25=32 次,但使用田口方法的話只需要做 8 次實驗,相差四倍的差 距;放大到更大的JSSP 問題來看,如果是一個|M|=10、|J|=10 的中小型問題,這 樣一條染色體裡面含有100 個基因,也就是說由兩條染色體產生一條最佳組合的 話,需要做2100的實驗次數才能找到這最佳組合,但使用田口方法的話,只需要 128 次實驗就可以得到,由此可知田口方法具有大量的減少實驗次數的效果。

3.4.1 田口方法架構

田口方法應用再排程問題的主要概念在於「降低實驗次數」,主要期望在使 用一種有系統的實驗方法來產生新母體,簡單的基本流程如下:

1. 由母體 P 隨機抽取兩條染色體。

2. 使用直交表(orthogonal array)做實驗。

3. 根據直交表的實驗結果,挑選出最佳的基因配方組成一條新的染色體。

3.4.2 直交表

田口方法是如何減少實驗次數?,答案就在於它使用了一種實驗設計的方 法,也就是利用直交表(orthogonal array),此種直交表就是經過統計方法設計出 來的一種特定實驗方法。田口博士提出了18 種基本直交表,Phadke (1989),稱 之為標準直交表(standard orthogonal arrays)。為了要能夠直接使用標準直交表,

我們的實驗水準數必須要和直交表中的水準數配合才行(水準數本論文採用機器 數目),且為了減少實驗次數,最好是盡量使用最小的直交表來做實驗,其中本 研究方法的實驗方法裡面採用L16這個標準直交表(表 3.5)。

表3.5 L16標準直交表

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

基底a 基底b 基底c 基底d a+b a+c a+d b+c b+d c+d a+b+c a+b+d a+c+d b+c+d a+b+c+d

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 0 1 0 1 1 0 1 1 1 1 3 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 4 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 5 0 1 0 0 1 0 0 1 1 0 1 1 0 1 1 6 0 1 0 1 1 0 1 1 0 1 1 0 1 0 0 7 0 1 1 0 0 1 0 0 1 1 0 1 1 0 0 8 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 9 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 10 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 11 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 12 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 13 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 14 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 15 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 16 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0

L16

3.4.3 田口實驗

所謂的田口實驗,就是由一組解(包含兩條不相同的解),經過交直表實驗產 生一組最佳配方的新解,方法如下:假設已知兩組解

A、B 且這兩組解分別是

 ∏

A

= { ∏

A

( 1 ,) ∏

A

( 2 ), ∏

A

( 3 )}

B

= { ∏

B

( 1 ,) ∏

B

( 2 ), ∏

B

( 3 )}

,於是可以找到最小值 交表配合有3 基因,也就是 3 水準的標準直交表 L8,如表3.6 所示

表3.6 L8標準直交表

1 2 3 4 6 5 7

基底a 基底b 基底c a+b c+a b+c a+b+c

1 0 0 1 0 1 1 1 2 0 1 0 1 0 1 1 3 0 1 1 1 1 0 0 4 1 0 0 1 1 0 1 5 1 0 1 1 0 1 0 6 1 1 0 0 1 1 0 7 1 1 1 0 0 0 1

L8

表中的0 代表使用解 A 裡面的基因,表中的 1 代表使用解 B 裡面的基因由 此表看來,令

E

i為實驗的基因,其中

i 代表第幾組實驗,於是第一組實驗解果可

以表示為



,第二組實驗解可以表示為



,以此類推到第 8 組解,在分別使用要徑 法計算每一組實驗解的完工時間,會得到下表3.7:

表 3.7 完工時間

1 2 3

基底a 基底b 基底c

完工時間 完工時間

的倒數

1 0 0 1 1 1

2 0 1 0 5 0.2

3 0 1 1 5 0.2

4 1 0 0 10 0.1

5 1 0 1 5 0.2

6 1 1 0 10 0.1

7 1 1 1 5 0.2

L8

最後計算,每個基因的最佳配方,用每一列的累積完工時間倒數當作權重 值,最後權重最大的就是我們要的基因,以此為例的話,新解的第一個基因使用 解

A 的基因權重為 1.4,使用第二個基因的權重為 B,由於 1.4>0.6,所以最佳配

方 解 的 第 一 個 基 因 使 用 解

A 的基因,以此類推可求得最後新解的基因值

)}

3 ( ), 2 ( ), 1 (

{ A B B

new = ∏ ∏ ∏

∏ 為

A 和 B 這兩組解的最佳配方新解。

3.4.4 田口方法實際應用在 JPPS 問題

田口方法的實際應用於JSSP 問題,下面是本論文演算法所使用的程序步驟 如下:

1. 隨機產生 NP組初始解,t = 0,STOP = 0。

2. 把 NP組解放入到母體

P(t),t = t+1,STOP = STOP +1,X = 0。

3. 隨機挑選 P(t)中的兩組解為一組合(同一個世代 t 中,不會抽取到同樣的 組合)。

4. 根據被挑選出來的兩組解,做一次田口實驗,X = X+1。

5. 產生出一組新的解

S

t,x,如果

X<N

new,並回到步驟3。

6. 如果已達停止條件(STOP>Nstop),則停止程序。

7. 由母體 P(t) + X 中挑選出最佳的 NP組解當作下一代的初始母體,回到 步驟2。

其中

N

P代表初始母體數目,

N

new代表新解數目,

N

stop為停止條件累積次數,

t 為世代數, S

t,x為第

t 個世代,所產生的第 X 組新解

相關文件