第三章 求解多部傳輸整合步進機排序
3.3 以演算法求解多部傳輸整合步進機
3.3.4 基因演算法求解過程
圖 3.7 為基因演算法的求解流程,首先設計問題解的表示方式進行編碼,再以隨 機或是啟發式的方法產生初始的母體,並計算與評估母代中每一個染色體之適應函數 值,接著評估此解是否滿足終止條件,若滿足,則停止基因演算法,即代表此解為最 終近似最佳解;反之,則透過交配、突變等演化方式產生下一代 (稱為子代),依據選 擇策略從染色體池 (pool)中選取下一世代之演化個體,週而復始得進行一代一代的演 化,直至達到設定之終止條件,此解即為最終近似最佳解。
圖3.7 基因演算之求解流程 產生初始解
評估各染色體之適應函數值
滿足終止條件
染色體執行交配、突變
產生新染色體 選擇下一代演化之染色體
No
Yes
產生最佳近似解
染色體交配
交配 (Crossover)是隨機在個體間相互混合與交換彼此特徵的過程,其為基因演算 法中主要的運算元。交配主要為隨機選擇成對之染色體,進行部分基因交換,以增產 更好的染色體。換句話說,交配為透過母代 (Parent)染色體間之訊息交換,產生二條 具有親代特性的子代 (Child)染色體,以達到基因演算法搜尋之目的。本研究所使用的 交配方式有三種,各個交配運算之方法,整理如下所示:
單點交配 (C1 Operator) 此法由 Reeves (1995)提出,以圖 3.8 為例,步驟說明:
步驟 一. 隨機挑選兩條母代染色體,並於此兩條母代染色體中,隨機選取一個切點,
將染色體皆分成二部分。
步驟 二. 將子代 1 繼承母代 1 切點前之基因格 (J1,J2),子代 2 繼承母代 2 兩切點前 之基因格 (J3,J5)。
步驟 三. 選取母代 2 中未和子代 1 重複之基因 (J7,J4,J3,J5,J6),由左往右依序填 入子代1 之空白基因格,完成新的子代染色體之產生 (J1,J2,J7,J4,J3,J5, J6)。
步驟 四. 選取母代 1 中未和子代 21 重複之基因 (J1,J2,J4,J6,J7),由左往右依序填 入子代2 之空白基因格,完成新的子代染色體之產生 (J3,J5,J1,J2,J4,J6, J7)。
圖3.8 染色體交配:C1 運算
線性順序交配 (LOX: linear Order Crossover Operator) ,此法由 Croce et al (1995) 提出。LOX 之染色體交配方式,以圖 3.9 為例,進行步驟式說明:
步驟 一. 隨機挑選兩條母代母代染色體,並於此兩條母代染色體中,隨機選取兩個切 點,將染色體皆分成三部分。
步驟 二. 將子代 1 繼承母代 1 兩切點內之基因格 (J2,J5),子代 2 繼承母代 2 兩切點 內之基因格 (J4,J1)。
步驟 三. 選取母代 2 中未和子代 1 重複之基因 (J7,J4,J1,J3,J6),由左往右依序填 入子代1 之空白基因格,完成新的子代染色體之產生 (J7,J4,J2,J5,J1,J3, J6)。
步驟 四. 選取母代 1 中未和子代 2 重複之基因 (J2,J5,J3,J6,J7),由左往右依序填 入子代2,完成新的子代染色體之產生 (J2,J5,J4,J1,J3,J6,J7)。
圖3.9 染色體交配:LOX 運算
部分相應交配 (PMX: Partially matched crossover Operator),此法由 Goldberg (1989) 提出,以圖3.10 為例,進行步驟式說明。
步驟 一. 隨機挑選兩條母代母代染色體,並於此兩條母代染色體中,隨機選取兩個切 點,將染色體皆分成三部分。
步驟 二. 將子代 1 繼承母代 1 兩切點內之基因格 (J2,J3,J4),子代 2 繼承母代 2 兩切 點內之基因格 (J4,J5,J3)。
步驟 三. 選取母代 2 中未和子代 1 重複之基因 (J7,J5,J1,J6),直接填入相對於子代 1 之空白基因格,若相對位置子非空白基因格之基因 (J5),則保留並依序分 配至子代1 剩餘之空缺,完成新的子代染色體之產生 (J7,J2,J3,J4,J1,J5, J6)。
步驟 四. 選取母代 1 中未和子代 2 重複之基因 (J1,J2,J6,J7),直接填入相對於子代 2 之空白基因格,若相對位置子非空白基因格之基因 (J2),則保留並依序分 配至子代2 剩餘之空缺,完成新的子代染色體之產生 (J1,J4,J5,J3,J2,J6, J7)。
圖3.10 染色體交配:PMX 運算
染色體突變
突變 (Mutation)的功能在於增加群體的變異度,以提供新的搜尋方向,使基因演 算法避免陷入局部最佳解,因此突變通常會與交配一同使用。本研究所使用的突變方 式交換為 (SWAP)以及反轉 (Inverse) (Wang & Uzsoy, 2002),交換為在母代染色體中 隨機挑選兩個不同之基因格,將其對調後可產生一條新的子代染色體,如圖3.11 所示。
反轉則在母代染色體中隨機選取兩個切點,使染色體分割成三部分,再選取中間部分 之基因格作前後順序的反轉,以產生一條新的子代染色體,如圖3.12 所示。
圖3.11 染色體突變:SWAP 運算
圖3.12 染色體突變:Inverse 運算
選擇策略
染色體進行交配與突變後,在交配池中,存有原本母代之染色體,以及交配與突 變後產生之子代染色體,這些染色體會透過染色體解讀的動作,獲取工件分配至哪一 個機台,以及工件在各別機台內的排序之資訊,再按照基因演算法物競天擇的概念,
依據各別之適合度函數值,決定那些染色體可存活並保留,以更新重組母群體。在染 色體選擇策略中,本研究採用菁英政策搭配 Goldberg (1989) 所提出的俄羅斯輪盤法 (Roulette wheel selection),其主要先保留交配池中最佳的染色體到下一代,其餘的採俄 羅斯輪盤法。
終止條件
基因演算在程式正常執行下,母群體演化過程為趨向全域最適解發展,且當演化 的世代數越長,其染色體可進化的越佳,但電腦執行所花費的時間相對的也越長,因 此需要訂定終止條件,使終止條件和最佳解之條件上能兼顧時間和效率。本研究採用 執行世代終止法則,並參考過去文獻使用的代數,已知連續1000 代最佳解皆未改變已 足夠代表此解達至收斂,故本研究假設當最佳解維持 1,000 世代都沒有被替換,或是 演化世代達到100,000 世代時即終止。