第四章 建構基因演算法之決策選擇模組
4.2 模組建構說明
4.2.1 參數編碼(representation)
使用基因演算法必須先將所要求解的參數編成碼,以染色體的基因來表示,
染色體的基因可為二元(binary)、整數(integer)、實數或是混合整數與實數。在本 研 究 中 , 染 色 體 的 基 因 即 為 各 檢 測 站 所 能 選 取 的 重 工 決 策 門 檻 值 (h 值 , ),也就是採用整數形式的編碼,而染色體的長度為所有檢測站的個數。
舉例說明編碼方式,假定 Array 製程有 2 個檢測站(以 A1、A2 表示),CF 製程有 5 個檢測站(以 F1~F5 表示),則染色體的編碼如圖 4.1:
N h≤
≤ 1
A1的 h 值
A2的 h 值
F1的 h 值
F2的 h 值
F3的 h 值
F4的 h 值
F5的 h 值
圖 4.1 染色體編碼釋例
由於必須滿足一檢測站的 h 值必須大於或等於其後檢測站的 h 值這個條件,
所以就 Array 製程而言,A1 的 h 值須大於等於 A2 的 h 值,CF 製程以此類推。
所以染色體上基因的編碼皆必須滿足此條件,才視為一合理之染色體。
若 A1 所設定的 h 值為 8、A2 所設定的 h 值為 7、F1 所設定的 h 值為 6、F2 所設定的 h 值為 5、F3 所設定的 h 值為 4、F4 所設定的 h 值為 3、F4 所設定的 h 值為 2,則染色體的表示如下:
8 7 6 5 4 3 2 圖 4.2 舉例說明染色體編碼
4.2.2 初始化母體(initialization)
本研究採用隨機方式產生一初始母體,母體大小設定為 100 個染色體,每個 染色體的編碼方式如 4.2.1 的說明方式。
4.2.3 適應函數(fitness function)
每個染色體可經由適應函數計算出一個適應值,以適應值的優劣來判斷染色 體的好壞,所以本研究將適應函數設定為產品的總利潤,使適應函數越大的染色 體,即為較佳的檢測站重工決策組合。
4.2.4 複製(reproduction)
利用取出放回的隨機抽樣,從母體中一次選取兩個染色體,比較其對應適應 函數值的優劣,較佳者即複製一染色體至交配池中,以進行下一步驟的交配及突 變[19],進行完比較後的兩個染色體,再放回母體中,重複上述取出放回的隨機 抽樣動作。由於本研究所設定的母體大小為 100,所以在複製階段,必須重複進 行 100 次的取出放回隨機抽樣,產生 100 組經由比較過後的較佳染色體,複製並
放置交配池中。
4.2.5 交配(crossover)
利用取出放回的隨機抽樣,從交配池中選取兩個染色體進行交配動作,交配 完的染色體再放回交配池中,重複上述的隨機抽樣動作,經交配完的新染色體組 合即為子代的染色體,之後再進行突變動作。而本研究所採取的交配方式為單點 交配,亦即隨機選取一交配點,兩個染色體在交配點之後的基因皆對調,圖 4.3 舉例說明,染色體 A 與染色體 B 進行交配,若隨機選取的交配點第 4 個基因,
假定交配後的染色體為 A’及 B’,則交配過程若如下:
6 4 5 3 2 1 1 染色體 A
5 4 8 5 5 2 1 染色體 B
5 4 8 3 2 1 1 染色體 B’
6 4 5 5 5 2 1 染色體 A’
進行交配
若隨機選取此點 為交配點
圖 4.3 舉例說明單點交配
交配並不是每次皆會成功,需依據交配率的設定來決定期望成功次數,交配 次數乘以交配率,才是成功交配的期望次數,舉例說明,今欲交配 100 次,若交
配率設定為 0.7,則成功交配的期望次數為 100×0.7=70 次。通常交配率的設定大 致在 0.5~1.0 之間,本研究設定為 0.7。若染色體經由交配後,產生不合理之染色 體,則視為交配不成功。
4.2.6 突變(mutation)
突變過程為隨機抽取子代中任一染色體,並且隨機選取其中一基因作為突變 點,針對該基因進行突變,將該基因原本的值隨機轉變為其他值,圖 4.4 舉例說 明,假定基因的編碼只有 1、2、3 三種可能情形,若染色體 C 進行突變,隨機 選取的突變點為第 4 個基因,突變後的染色體 C’,則突變過程如下:
若此點為突變點
突變的過程受突變率的設定所控制,突變的基因期望個數為子代中所有的基 因總數乘以突變率,舉例說明,假定子代有 100 個染色體,每個染色體有 6 個基 因,突變率為 0.1,則突變的基因期望個數為 100×6×0.1=60 個,也就是將有 60 個基因會發生突變。若染色體經由突變後,產生不合理之染色體,則視為突變不 成功。
2 1 3 1 3 1 2 染色體 C
進行突變
2 1 3 2 or 3 3 1 2 染色體 C
圖 4.4 舉例說明突變過程
4.2.7 終止條件
母代經由複製、交配、突變的過程後,稱為完成一個世代(generation),而最 後一個突變步驟完成所產生的新子代,即為下一個世代開始的母代,在進行複 製、交配、突變的動作。每一個世代適應函數值最佳的染色體(本研究中為檢測 站重工決策組合),為該世代的最佳解,通常會設定一終止條件,以決定基因演 算法的停止時點,終止條件的設定並沒有固定的規則,可依據問題特性,自行訂 定合理的終止條件,而最常見的終止條件為:若某一世代的最佳解所對應的適應 函數值,在連續數個世代皆無法產生比該世代更佳的適應函數值,也就是接下來 的數個世代皆無法繼續改進(一般稱為收斂),則運算停止。
4.2.8 種子(seed)
完成上述所有過程,產生一組經由數個世代運算收斂而得的一最佳解後,即 完成一個 seed 的運算,也就是一次基因演算法的運算,但由於基因演算法未必 能求得整體最佳解,所以必須利用多次 seed 的運算,比較各個 seed 運算所求得 的最佳解,取出一最佳者,才是整個演算流程的最終解。
4.2.9 控制參數設定
在整個演算流程中,許多過程都會受到控制參數的設定影響,控制參數的設 定也是影響運算收斂速度的一項因素,而經由本研究試誤的結果,最終設定控制 參數如下:
母代大小:100
交配率:0.7
突變率:0.1
終止條件:若一世代的最佳解,連續 300 個世代未被改進,即終止運算。
Seed 數:30
交配過程
複製過程
突變過程
計算適應函數值
完成 1 個 Seed 運算
重複 30 個 Seed 運算
取 30 個 Seed 中最佳者,
即為本研究最佳決策。
是
圖 4.5 本研究基因演算法流程 否
是否滿足終止條件 隨機產生初始母代