• 沒有找到結果。

第三章 以基因演算法解傳輸整合步進機排序

3.6 基因演算法求解

本研究利用基因演算法求解此傳輸整合步進機排程問題。基因演算法可以在龐大的 解題空間 n! 工件排序中,找尋近似解,圖3.10為基因演算法求解過程。

圖 3.10 基因演算法的步驟 3.6.1 基因演算法的步驟

Step 1:隨機產生初始群體:以隨機的方式選擇染色體(chromosomes),形成一個啟始 的母體(population)。

Step 2:評估每一個染色體的適合度函數,並視其是否符合終止條件,如果符合,則停 止尋找;反之,則繼續尋找最佳解。

Step 3:使用交配運算法則(crossover operators)產生兩個新染色體。

符合終止? 否

傳回適合度最高的染色體

停止

產生初始群體

評估適合度函數

交配

突變

染色體解讀

擇優

22

Step 4:使用突變運算法則(mutation operators)產生一個新染色體。

Step 5: 將原始母代和運用交配運算子所產生的子代聯合,當作一個新的交配池,經由 染色體解讀後再使用選擇策略(selection strategy)去篩選染色體。

Step 6:若產生的解符合結束條件則停止尋找最佳解,而此解亦為最終之近似最佳解。

3.6.2 Crossover Operators 交配運算子

在本研究所使用的基因演算法中,使用三種交配運法則,進行染色體的交配,分 別為 C1 (單點交配)(Reeves, 1995)、線性順序交配(LOX)(Croce et al., 1995),以及 部分相應交配(PMX)(Goldberg, 1989)。

每一次的交配,會選擇兩個染色體,稱為母代(parents)。經過交配後,會產生兩 個染色體,稱為子代(children)。以下描述各個交配運算方法,本研究將母代以 parent-1 及 parent-2 來命名,子代以 child-1 及 child-2 來命名。

單點交配(C1 Operator) : 如圖 3.11 所示,隨機選擇二個母代的染色體,每一個 母代染色體中的隨機選取一個點,將染色體分成二部分 (head-section and tail-section)。 為了產生子代,如 child-2,其首部(head-section)是從 parent-2 複製一個字串(3,5);

其尾部(tail-section)是由 parent-1 所得到,只要不是與既有的首部基因重複,將 parent-1 的基因依序放入 child-2。結果可得新的 child-2 其尾部為 (1,2,4)。child-1 亦可使 用相同方式得到。

圖 3.11 Crossover C1 運算

線性順序交配(LOX: linear Order Crossover Operator):如圖3.12所示,選二個母代的 染色體,每一個母代染色體中的隨機選取二個點,將染色體分成三部分。母代 parent-1 及parent-2 之中間部分為 (2,3) 及 (4,5),藉由複製 parent-1 的基因,將重複在parent-2 中間部分的基因取代成 “H”基因,此時產生x-child-1 為(1,2,3,H,H)。此時將“H”

基因往染色體的中間部分集中,而其他基因的順序不動,可得 y-child-1為 (1,H,H,

2,3)。最後將y-child-1中間部分以 parent-2 中間部分取代,可得子代 child-1 為(1,4,

5,2,3)。另一個子代child-2 可用相同方式產生。 因,以 parent-1 未被分配的基因值取代。此時產生 child-1 為(1,4,5,3,2)。child-2 使用相同方法亦可得到。

24

圖 3.13 Crossover PMX 運算

3.6.3 Mutation Operators 突變運算子

染色體突變的運算是為了避免在基因演算法的搜尋過程中,過早陷入局部最佳化 的方法。本研究所使用的突變方式有兩種,分別為 Swap (交換)及 Inverse (反轉) (Wang

& Uzsoy, 2002)。

交換:如圖 3.14.a 所示,在母代染色體中隨機選取兩個不同的基因,將其對調產 生新的子代染色體。

反轉:如圖 3.14.b 所示,在母代染色體中隨機選取兩個切點,將染色體分成三部 分,並將中間部分反轉,產生新的子代染色體。

圖 3.14 Mutation 運算 a. SWAP b. Inverse

3.6.4 選擇策略

在完成基因運算後,會先經過染色體解讀的動作將其解讀成 Family-based,完成 此程序後再使用輪盤法的選擇策略,挑選出適合度較佳的下一代。首先求出全部染色 體的適應函數值大小,再由小到大排序。適應函數值最佳的必需要保留到下一代,其 餘的染色體則依序輪盤法的方式被選取。

使用輪盤法的目的是讓每一條染色體都有機會被選擇,但適合度越佳(總完工時間 越小)越容易被選取。它的選擇原理是依照染色體適合度之機率分割輪盤,其機率總合 為 1,適合度越佳,則其機率越大,在輪盤上所佔的面積也越大,被選取的機會也就 更大。

3.6.5 結束條件

若產生的解符合結束條件則停止尋找最佳解,而此解亦為最終之近似最佳解。本研 究使用兩種結束條件,第一種條件為相同的最佳解一直保持 N 代,則此解為最終之最 佳解;另一種條件為設定一個 Y 代,到達 Y 代即結束。

相關文件