第二章 文獻探討
2.5 基因演算法概述
2.5.1 基因演算法之源起
在達爾文(Charles Darwing)的進化論中提到『適者生存,不適者淘汰』(Survive of the first)的進化理論,解釋了自然界的基本現象,物種在不斷變遷或惡劣的環境 中為了生存及適應環境,而不斷進化,產生生存力及適應力更強的下一代。 大門的賀藍博士(Dr. John Holland),於1975年在密西根大學發表了闡述自然與人工 系統的適應問題著作(Holland, 1975),該書總結了賀藍博士二十年來對於學習、演
解。對於若干無法預知最佳解的狀況下,基因演算法可以快速求得某種程度之滿 意解。因此適合非線性等多變數複雜問題之求解。
基因演算法的基本運算為選擇、交配和突變等機制,而這些機制之操作狀態 通常是根據隨機值而改變的,因此即使在環境參數完全固定不變下,每一次運算 求解所得之答案可能並不相同。演化流程中,相關的機制或參數茲說明如下:
1. 染色體編碼與解碼(encoding and decoding):在基因演算法中需將問題及結果 表 示成可以運算的形式,即染色體編碼與解碼。例如將設計變數以" 0110.... "之 二進制字串表示,例如9 的十進制值為" 9 ",二進制值為" 1001 "。
2. 適應值(fitness):每個生物對於大自然環境都有不同的適應性,適者生存不適者 淘汰。適應函數就如同大自然環境,用來衡量每個染色體對於該問題所對應的分 數,此分數稱為適應值(fitness)。演化的過程,即在尋找最大或最小的適應值。
3. 適應值函數(fitness function):產生適應值的函數,適應值函數是染色體的演化 環境。將染色體解碼後,代入適應函數即可求得其適應值,再依照適應值大小,
來評估染色體所代表解答的好壞。適應函數即代表最佳化問題的目標函數。
4. 選擇(selection):基因演算法的選擇機制是模擬自然界適者生存的現象,適應值 越高的染色體,存活機率較高,反之則存活機率較低。適應值較高的染色體所擁 有的後代可能較多,如果某個染色體的適應值明顯高於其他染色體,就有機會藉 由世代交替,逐漸成為此母體內的主體。常見的選擇方式有:輪盤法(roulette wheel selection)、競爭法(tournament selection)。
(1) 輪盤法:母體中每個染色體的適應值在輪盤上都有相對應的面積,相對面積越 大者被選中的機會越高。此方法只能直接尋找較大值,且適應值不得小於零。
若要搜尋最小值,則必須以一個常數減去原來的適應值作為新的適應值。其優 點是容易使用,而且能區分出適應值之間的差異,缺點是當母體中有一個染色 體的表現特別突出時,尤其是演化初期,則在最佳解尚未出現時可能就會支配 全部母體,落入局部最佳解的問題。輪盤法選擇的程序如下:
a. 首先計算出母體中每個染色體的適應函數值fi。
b. 分別計算出母體中每個染色體的機率,即Pi = fi/
∑
fi 。c. 再計算出母體中每個染色體的累積機率,CP 。 i
d. 隨機選取一介於0~1的數值Ri,當Ri-CP >0時,即還取該條染色體。 i e. 重覆以上步驟,直到所選取的個數與初始母體的個體數相同。
(2) 競爭法:採用競爭式選擇法(Tournament Selection),適應函數值愈高的個體愈
容易被選中,其程序如下:
a. 首先計算出母體中每個染色體的適應函數值fi。
b. 將fi降羃排序,依序取fi作為下一個母體,選取的個數與初始母體的個體數 相同。
5. 交配(crossover):交配的過程是隨機的選擇交配槽中的兩個母代個體,彼此交 換位元資訊進而產生兩個新的個體,藉由累積前代的優秀位元資訊,以期望能繁 殖出更優秀的個體。但是並非所有被選中的母代個體都要進行交配,而是由預先 設定的交配機率(probability of crossover)來決定交配是否進行。最基本的交配法是 單點式交配法(single-point crossover),其程序為先在交配槽中隨選取兩個個體作為 母代,然後在字串的N 個基因中隨機的選取一點做為交換點(crossover point)將位 於交換點右側的母代基因交換,產生兩個新的個體,如此即完成單點交配。除此 之外,也介紹兩點式交配法及均勻式交配法(連立川等人,2006)。
(1)單點交配(One-Point Crossover):隨機挑選一個交配點,將交配點之後的 基因進行互換,如圖2-7,其中「|」為交換點)。
圖 2- 6 單點互換交配法
(2)兩點交配(Two-Point Crossover):每對染色體中隨機挑選兩個交配點,並 於兩個交配點之間進行基因互換,如圖2-8,其中「|」為交換點)。
圖 2- 7 雙點互換交配法
(3)均勻交配(Uniform Crossover):兩個子個體各位元的來源取決於一隨機亂 數的旗標值狀態,若旗標值為1,則子個體一繼承父、子個體二繼承母,
若旗標值為0 則子個體一繼承母、子個體二繼承父,可參考圖5。採用 超過一個切點,其考量是避免在單點交配時,切點之前的基因總是與之
父個體 111|1111 母個體 000|0000 子個體1 111|0000 子個體2 000|1111
父個體 1|1111|1 母個體 0|0000|0 子個體1 1|0000|1 子個體2 0|1111|0
後的基因分開的現象。一般研究認為,採用兩點交配即可獲得良好的效果。因為 可以幫助GA 脫離局部最佳解(local optimal)。以隨機方式抽取染色體中的若干編碼 進行改變(由0變1或由1變0),便可產生突變(mutation)。
搜尋,而非可行解本身。
2. 以一個母體多點來進行搜尋,而非以單獨一點。
3. 直接由目標函數的資訊進行搜尋,而不用輔知識。
4. 以適合度的觀念來決定搜尋點的優劣。
5. 進行搜尋的過程並非經由固定的路徑,而是經由計算出的機率配合隨機性的 產生。
6. 使用一些隨機的操作,這些操作包含選取、交換以及突變,然而這些操作並 非僅是盲目的動作,而是在隨機進行的過程中包含了他們所要傳達的資訊。