• 沒有找到結果。

第三章 研究方法

3.3 遺傳演算

3.3.1 遺傳演算之三大運算元

遺傳演算之三大運算元為複製、交配與突變,是求解結果之精確程度與效率高 低之決定因素,其過程產生適合度較佳的新群集,直到找到最佳值或達到收斂條件 為止。其三大運算元詳細步驟如下:其說明如下:

1. 複製 / 選擇(Selection):

複製是依據每一染色體之適合度高低,決定其繁衍子代多寡之機制,其目 的是讓適應力佳的母代(Parents)保留至子代(Offsprings),使子代更能適應 環境,故適應程度高的物種在子代中將被大量複製,適應程度低的物種在子代 中則被淘汰,遺傳演算之作法是利用適合度來作為評斷群集的標準,適合度較 高之染色體被選中用來產生子代之機率亦較高,故使得較「優良」之遺傳因子 得以流傳與繼承,其處理方法如下:

a. 輪盤法(Roulette Wheel Method):

輪盤法是將每一染色體之適合度高低,轉換於輪盤上所佔之面積大小,

進行複製時,區域面積大者相對被選中機率較大,反之則越小,故若出現強 勢之染色體,則較弱勢之染色體被選取機率則很小,易導致過早收斂於局部 最佳解。

b. 排序選取法(Rank Selection Method)

排序選取法是將染色體之適合度高低,進行優劣依次排序,則複製之機 率是依據排序的順序,而非本身適合度的差異,因此彼此是呈現線性關係,

如此可避免過早收斂於局部最佳解與單點交換時適合度過大,需做正規化,

即尺度化(Scaling)之修正,且若染色體之適合度相當接近時,亦會因排序 而將複製機率表現出較大的差異性。

c. 競爭選取法(Tournament Selection Method)

競爭選取法是模仿自然界生物相互競爭,將適合度較高之染色體經競爭

選取後存活下來的機率會比較高,此優點為染色體被複製機率和個體本身之 適合度並無絕對關係,而是依據於染色體之間適合度的相對大小,因此更可 避免因適合度過大而過早收斂,故適用於適合度值變化很大的問題上,且運 算量較少。

本研究論文所使用遺傳演算為GeneHunter 之套裝軟體,其是以輪盤法方式進 行複製。

2. 交換(Crossover):

交換是隨機選取兩個母代染色體,彼此交換部份基因,而形成兩個新的子 代染色體,並以取代母代染色體之機制,其目的是子代可同時具有母代雙方之 優良因子,合組成更具適應力之染色體,但過程亦可能遺傳到缺點,因此交換 不一定保証能夠產生更好的子代,但演化世代多時,則不好之因子最終仍會被 自然淘汰。其處理方法有 1)單點交換(One-Point Crossover);2)兩點交換

(Two-Point Crossover);3)均勻交換(Uniform Crossover)等,如圖 3-7 所示。

交換率之高低會影響母代能否繼續生存於子代之機率,其越高,母代會被迫以 子代取代;其越低,則產生子代之比率會較低,一般交換率設定於 0.8~0.9 之間。

本研究論文所使用遺傳演算為 GeneHunter 之套裝軟體,其是以單點交換方式 進行交換。

1 1 1 1 1 1

0 0 0 0 0 0 0 0 0 1 1 1

1 1 1 0 0 0

0 0 0 0 0 0

1 1 1 1 1 1

0 1 1 1 0 0

1 0 0 0 1 1

0 0 0 0 0 0

1 1 1 1 1 1

1 1 0 0 1 1

1 1 0 0 1 1

0 0 1 1 0 0

圖3-7 交換方式之示意圖

3. 突變(Mutation):

突變是針對子代之遺傳因子以一定機率,更動某一基因值,如 0→1 或 1→0,以避免染色體於複製與交換過程中,遺漏重要訊息或落入局部最佳解,

亦 即 預 防 群 集 內 各 染 色 體 之 僵 化 , 其 處 理 方 法 有 :1)基因突變(Gene Mutation),即隨機更動某一基因值;2)移轉基因(Shift Mutation),即變動 同一染色體內各基因之位置,而不改變其值,如圖3-8 所示。突變率之設定影 響尋優甚大,該值過小,將無法發揮突變之功能,反之,則可能破壞子代繼承 母代優良因子之,而無法獲得較佳解。一般建議設定突變率等於群集數之倒數 或設定為0.01~0.03 之間(馮正民與邱裕鈞,2004)。

本研究論文所使用遺傳演算為 GeneHunter 之套裝軟體,其是以基因突變方式 進行突變。

1 1 0 0 1 1

1 1 0 1 1 1

1 1 0 0 1 1

1 1 1 0 0 1

圖3-8 突變方式之示意圖

遺傳演算除了遵守遺傳三大法則外,亦進行基因之編寫,會利用基因代表原始 問題之決策變數,將決策變數轉換為遺傳演算之基因,稱之編碼(Encoding);反 之,將基因換回決策變數則稱之解碼(Decoding),因此編碼與解碼是遺傳演算與 原始問題之溝通橋樑,如圖 3-9 所示,其常見編碼方法有:1)二元編碼(Binary Coding);2)排列編碼(Permutation Coding);3)實數編碼(Value Coding)(馮正 民與邱裕鈞,2004),然而本研究論文所使用遺傳演算為 GeneHunter 之套裝軟體,

其是以二元編碼方式進行編碼,且染色體之編碼上可採 8 位元(Bit)、16 位元與 32 位元等,其位元大小表示為多少個基因在染色體裡(對於連續的染色體),轉化 成在電腦裡可維持變數的位元數,更多的位元數代表有更高之精確度,如決定要找 到Y = X2之最低值,X 介於- 5~5 之間,雖已知其答案為 0,但若染色體之長度是 8 位元,那麼可能的解在「區間」範圍內是:1 / 256 或約 0.0039,因為- 5 映射到 0,

而5 映射到 255,且有一個偶數(256)的位置,所以最接近 0 的可得到± 0.00195 ; 若染色體編碼為 32 位元,最好的解會更接近± 0.0000000001,因此,染色體編碼

之位元數越高,可能使解更準確。另軟體內有一參數設定為「代溝(Generation Gap)」,其為是否群集可演化至下一代之比例,如其設定為 0.98,則僅有 2 %之群 集比例可以直接近入下一代,而不需要進行交換與突變之方式,故有98 %會消失。

一旦決定原始問題之決策變數之基因編碼方式,將使每一基因值之型態及染色 體長度便已確定,可進行遺傳法則運算,但計算每一染色體之適合度時,仍須將染 色體之基因解碼回決策變數,並代入目標函數,以得到最後結果。

Decoding Ge ne ← Decision Variables

Genetic Algorithm

Original Problem

Encoding Gene → Dec isi on Va ria bles

圖3-9 原始問題與遺傳演算之關係