• 沒有找到結果。

本研究的概念來源與標竿演算法

第二章 文獻探討

2.3 本研究的概念來源與標竿演算法

共識因子(consensus operator)是吳政翰(2006)所提出的方法,主要概念在結合 母體間的共識,並利用此共識來產生新一代的母體,以此達到世代循環的觀念(使 用 方 法 我 們 在 3.3 會 說 明 ) , 不 過 當 時 他 主 要 應 用 於 專 案 排 程 (Distributed Heterogeneous Computing ; DHC)的問題,當時在專案排程問題上他有很優異的結 果,所以我們希望可以用以延伸應用於工式排程問題(JSSP)。期待在 JSSP 問題 上也能有所表現。

田口方法是1949 年,由日本田口玄一(Genichi Taguchi)博士發明的,當初他 發明的原因是因為他於工作時發現傳統的實驗設計方法在實務上並不適用,為了 發展「品質工程」,他竭力於發展出一套新的實驗設計方法(Taguchi, 1986, 1987)。

田口方法通常用來改善品質工程,不過近年來也有人用來使用在排程上面發展,

有相當不錯的績效。

禁忌演算法(Taboo search;TS)又稱為塔布演算法,最早由 Glover (1986)所提 出的,為主要使用在「微調解」(local search)的機制,由於禁忌演算法的求解品 質十分受到母體的影響,所以通常都會搭配不同的演算法一起使用,如搭配螞蟻 演算法或是模擬退火法,此外本論文所使用的禁忌演算法的架構為 Nowicki &

Smutnicki (1996)所使用的快速禁忌演算法(fast taboo search;FT;TSAB)。

第三章 本研究演算法

本論文為應用「共識因子」(Consensus operator)和「田口方法」(Taguchi Methods)於 JSSP 問題,此外我們使用瓶頸飄移法(Shifting Bottleneck Procedure;

SB)的分解機制來作為求解基礎,並加上禁忌演算法(Taboo Search;TS)來做修正 解的動作。

根據瓶頸飄移法的概念,我們把 JSSP 問題拆解成許多子問題∏(m),每一 台機器就算是一個子問題(sub-problem),分別求解各個子問題的解,最後把所有 的子問題結合起來就是一組完整的解∏ 。

3.1 解的表達和計算

在說明本論文演算法之前,必須要先說明如何表達一組解,以及演算法原先 計算出來的應該是工作排序的結果,但這種產生解的方式並不能保證產生出來的 工件排序是合理解(feasible solution),因此需要使用另一種機制把產生出來的工 作排序轉換成合理解,本研究演算法使用Dauzere-Peres & Lasserre (1993)提出的 序限制(delayed precedence constraints;DPC)來解決此問題。

3.1.1 分離網路圖

解的概念我們使用圖3.1 來表示,需要兩種元素,第一種就是演算法計算出 來的一組解∏ ,代表每個機器中的工件加工順序,第二種就是一開始已經是先 給定的工件途程(routing);通常我們會使用分離網路圖來表示一個 JSSP 問題,

如圖3.2 就是一組擁有兩個作業,三個機台的分離網路圖,其中工件一的作業途 程為機器1Æ2Æ3,加工時間分別是 3/3/2,而工件二的作業途程為機器 1→3→2,

加工時間分別是4/4/2,框框左上角的代表作業編號,也就是作業代號 1 的是

σ

11代 表工件1 在機器 1 的作業,其中 PT(

σ

11

)=3;我們演算法的目標就是要找出不同

作業彼此的先後關係限制,如圖3.3 即為一組完整的解(包含原先的已知的工件途

程,和演算法計算出來的作業限制),其中機器一的加工順序為作業 1→2,機器 二的加工順序為作業1→2,機器三的加工順序為作業 2→1。

Solution

Job Sequence for Each machine

Given

Job Routing

Makespan Existing

Methods (CPM)

圖3.1 解的概念圖

1/3 2/3 3/2

1/4 3/4 2/2

起點 終點

4 5 6

1 2 3

圖 3.2 起始已知的分離網路圖

1/3 2/3 3/2

1/4 3/4 2/2

起點 終點

4 5 6

1 2 3

圖 3.3 已知的工件途程和演算法計算出來的作業限制

我們使用簡單的要徑法(critical path method;CPM)來計算 JSSP 問題的完工 時間(makespan),概念就如同之前提到的圖 3.1。其中要徑法為根據工件先後關 係圖(有向分離網路圖),分別計算各個作業的最早開始時間(early start time;

EFT)、最早完工時間(early finish time;EFT)、最晚開始時間(late start time;LST)、

和最晚完工時間(late finish time;LFT),這樣一來就可以得到寬裕時間(slack time;ST)也就是 ST = EFT-EST = LFT-LST,其中寬裕時間為 0 的就是要徑(critical path;CP),要徑時間就是我們所需要的完工時間(makespan),如圖 3.4 所計算出 來的要徑長度就是14,要徑作業就是 1→2→3→5→6。

3.1.2 延遲作業順序(delayed precedence constraints)

在JSSP 這個問題之中,由於本論文使用的演算法都是產生工件在機器裡面 的順序,這種產生方式並不能保證每次產生的解都會是合理解(feasible solution) 於是Dauzere-Peres & Lasserre (1993)使用了一種轉換機制,稱之為延遲順序限制 (delayed precedence constraints ; DPC),簡單來說,會額外設定一個作業的限制式 來確保工件排定的先後關係,用以避免產生不合理解。如圖3.5 就是一個不合理 的狀態,四個工件彼此間受到牽制。

為了讓人容易了解,本文以一個小例子來說明使用DPC 的程序步驟:

假設已知一組解,M1={1Æ2},M2={2Æ1}並需把原先排定的工件排程轉換 成工件權重,權重數字越小的,有越先排定的能力,比如原先演算法計算出來的 工件排序M1{1Æ2},代表在機器 1 裡面工件的作業順序是 1Æ2,而現在轉換為 機器1 裡面工件 1 的權重為 1,工件 2 的權重為 2(權重值即為原先計算出的工件 順序),所有的機器排序都需要如此的轉換。

假設已知機器2 的工件已排入到分離網路圖,如圖 3.6。圖 3.6 表示的 X / Y 代表,工件

Y 在機器 X 上作業,也就是之前所提到的 σ

YX

下面是我們的排定程序:

1. 根據 TML 值(3.3.3 會仔細說明)決定要排入的機器 M(此例為機器 1) 2. 把該機器 M(此例為機器 1)中所有的作業(此例為 J1

J

2),分別找尋出該

作業的後續作業集合。

i.

σ

11的後續作業集合為:

σ

12Æ

σ

22Æ

σ

12。 ii.

σ

12的後續作業集合為:無。

3. 如果有兩相同的作業屬於同一個集合之中,便額外給定一作業順序關係 (此例,由於

σ

11

σ

12在同一個作業集合裡,且

σ

12

σ

11的後續作業,因 此我們便增加一限制式,限制作業

σ

12要在

σ

11之後完工,如圖3.7 所示。

4. 開始排定作業,現在機器 1 有兩個作業可以排定(

σ

11

σ

12),去除後續 作業(2/1),只剩作業 1/1 可以排,

5. 如果還有作業尚未排入,則根據剛剛排序的作業修改作業順序關係,並 回到步驟4。

6. 如果所有機器都已排序完畢,則結束程序,否之回到步驟 1。

1/1 1/2

2/2 2/1

開始 結束

圖3.5 不合理的解

1/1 1/2

2/2 2/1

開始 結束

圖3.6 機器2 的工件已經排序完畢

1/1 1/2

2/2 2/1

開始 結束

圖3.7 增加DPC 限制

1/1 1/2

2/2 2/1

開始 結束

圖3.8 合理的一組解

3.2 本論文演算法架構

下圖3.9 為本論文的整體架構圖,由於本論文演算法的組合太多,光是基本 組合表就有 18 組,此外加上一些參數調整或是流程改變更有 47 組(第四章會詳 細說明),因此本論文把基本的組合情況放在表 3.1,在此種情況之下如果針對所 有的問題去做實驗的話,不但花時間,也很沒有效益,為了快速的搜尋最好的配 方組合,本論文使用一個簡單的想法來挑選最佳配方組合,被挑選出來的配方組 合才開始針對有代表性的問題來實驗求解,比較的部分則是和跟過去的歷年文獻 做比較,用以判斷是否本論文演算法具有優異的表現。

更新解 產生器2

更新解

產生器1 修正器

C2:Consensus (linear weight)

D:Taboo 初始解

A1:RANDOM A2:ACOFT-ACO A3:ACOFT-Taboo

C3:Consensus (double weight) B:Taguchi

C1:Consensus (no weight)

圖3.9 整體架構圖

表3.1 基本組合表

初始解 更新解 1 更新解 2 修正解

(A1)Random 無 (C1)consensus normal (D)Taboo (A2)ACOFT-MWR(ACO) (B)Taguchi (C2)consensus linear

(A3)ACOFT-MWR(Taboo) (C3)consensus double

本論文決定最佳配方的想法相當簡單,先由過去的文獻之中找出一個具代表 性的題目,在本論文使用的是 Lawrence(1984)提出的 La29 這個題目,由於此題 目至今尚無任何演算法能找到最佳解,且需要大量的計算時間,適合做為標竿性 測試的題目;把本論文所有的演算法組合(包含參數改變的組合),都針對 La29 這個題目做 5 次實驗,且最後依據這 5 次實驗找到的平均完工時間(Mean makespan)來判斷這個演算法是否具有良好的發展性,並設定表現最好的演算法 為我們的最佳配方組合。

由於本論文使用許多不同的演算法機制,如果比較固定計算時間(CPU times) 產生的解品質,來判斷各種演算法的優劣,非常的不合情理;畢竟要比較的是求 解的品質,而不是求解的速度,所以採用另外一種停止條件,也就是使用產生的

「總新解數目」當作我們的停止條件,根據實驗結果,平均採用產生2000 萬組 新解為 La29 這個題目的停止條件(不同的題目有不同的停止條件),此外這個停 止條件是根據最主要的指標性方法,Huang & Liao (2006)發展的 ACOFT-MWR 當初在設計時候是使用320 個迭代為停止條件,本論文概括的計算平均產生新解 個數約略為2000 萬。

3.2.1 初始解

本論文演算法一共使用了三種不同的初始解,分別是RANDOM,也就是隨 機產生

N 組母體,並挑選其中最佳的 n 組當做初始母體,根據實驗發現,母體

數越多所計算出來的解品質會越好,但過多則是無意義的浪費新解個數;第二種 產生方法為ACOFT-MWR(ACO),也就是採用 ACOFT-MWR 這個方法產生出來 的 ACO 解當作初始母體,第三種方法則是 ACOFT-MWR(Taboo),也就是採用 ACOFT-MWR 這種方法產生的 Taboo 解當作初始母體,其中所謂的 ACOFT-MWR 法,是由Huang & Liao (2006)所提出的一種混合性螞蟻塔布演算法,演算邏輯如 圖3.10 所示。

初始解 ACO

更新解 Taboo 最佳一組ACO解

根據Taboo結果,修改ACO參數

圖3.10 混合螞蟻塔布演算法邏輯

ACOFT-MWR 的演算想法如下,先由螞蟻演算法(ACO)來產生初始解(大約 3-5 隻螞蟻解),再由這些螞蟻解中,挑選完工時間最短的一組螞蟻解,做禁忌演 算法的計算,之後再把禁忌演算法求得的參數用來更新螞蟻演算法的費洛蒙 (pheromone)矩陣,之後便重複以上步驟,直到找到最佳解或是達到停止迭代 320 次 為 止 。 其 中 每 次 迭 代 裡 面 所 產 生 的 螞 蟻 演 算 法 解 , 就 是 本 論 文 所 謂 的 ACOFT-MWR(ACO) 解 , 而 禁 忌 演 算 法 所 得 到 的 解 就 是 本 論 文 所 謂 的 ACOFT-MWR(Taboo)解。

3.3 共識因子(consensus operator)

共 識 因 子 是 吳 政 翰(2006) 所提出的一種方法,當時他使用在專案排程 (Distributed Heterogeneous Computing; DHC)的問題,基於他的結論有很優秀的表 現,所以本論文希望可以應用到JSSP 的問題上面,期待也能有不錯的發展。以 下將針對共識因子的概念和計算方法做詳細解說。

3.3.1 共識因子架構

共識因子(consensus operator)是根據上一代解的工件排序「共識」來產生新 一代的解,好處是擁有優秀排列順序的解可以用來產生新一代解,不好的解自然 淘汰無法產生新解,在這樣的引導機制之下優秀排列順序的解會被保留起來,不 好的解自然淘汰,導致求解會慢慢的往好的解空間移動。相較於其他演算法如:

螞蟻演算法為最傑出解的更新方式,所以難免有時會落入區域最佳;基因演算法 為盲目的產生新解,缺乏整體的導引性。但本文使用的共識因子是屬於群眾智 慧,相較於單一傑出解的力量,理應會有更好的發展。

由於共識因子的導引機制是由母體所粹取的,所以對於母體的依賴性非常的 大,故在產生共識因子之前,必須要有一套好的方法來產生母體,但經過實驗發 現,光是增加母體數目(隨機產生),並不能很明確的提升共識因子的解品質,所 以借用別人的演算法作為初始母體,也就是之前所提到的ACOFT-MWR (Huang

由於共識因子的導引機制是由母體所粹取的,所以對於母體的依賴性非常的 大,故在產生共識因子之前,必須要有一套好的方法來產生母體,但經過實驗發 現,光是增加母體數目(隨機產生),並不能很明確的提升共識因子的解品質,所 以借用別人的演算法作為初始母體,也就是之前所提到的ACOFT-MWR (Huang

相關文件