3.3 遺傳演算法原理
3.3.2 遺傳演算法之運算程序
在利用GA 求解最佳化問題前,需先決定目標函數(objective function)、設計變數(Design variables)和搜尋空間。接著將設計變數編 碼成類似生物染色體的字串,字串中的各個位元相當於基因(Gene),
經由三大運算元─複製(reproduction)、交換(crossover)及突變(mutation) 過程產生適合度(fitness)較佳的新群集,直到找到最佳值或達到收斂 條件為止,流程圖如圖3.7 所示。
解碼 計算適合度函數
複製 交配
突變 產生初始群集
編碼
產生新群集
收斂條件 輸出最佳解
菁英
圖3.7 遺傳演算法演算流程圖 詳細演算步驟如下:
一、編碼(Coding) and 解碼(Decoding)
首先將變數編碼為二位元碼(Binary String)的形式,以利遺傳 演算法進行交換和突變演算。在計算適合度前,則必需將各變數的二 位元碼解碼還原成十進位值,並依映射公式將字串解碼之值轉換至限 制的範圍區間內。假若一單獨參數 k,欲轉換至上限為 ai,下限為 bi 之限制範圍區間,若以二位元編碼,其字串長度為n,則映射公式如 下式所示(Wright,1991)
⎟⎠
⎜ ⎞
⎝ + ⎛ −
= i i i n i
i
a k b
a
X
2其中 Xi 代表字串映射至限制範圍之值 ki 代表字串十進位之值
二、複製(reproduction)或選擇(selection)
複製是指將舊有個體依其對環境的適應程度加以繁殖。目的就是 讓適應力佳的親代保留到子代,使下一代能更適應環境。一般較常使 用的複製方法有輪盤法(roulette Wheel Method)、排序選取法(rank selection)和競爭選取法(tournament selection method)。以下將針對各種 複製方法進行介紹
A.輪盤法(roulette wheel selection)
最簡單的方法是製造一個〝偏態的〞輪盤(biased roulette)。當適 合度愈高時,個體在輪盤上所佔的面積比例也愈大,被選到的機率也 將愈大,如圖3.8 所示。
初始代輪盤機率
11%
29%
30%
30%
圖3.8 複製輪盤圖 B.競爭選取法(tournament selection)
本法在模仿自然界生物彼此競爭情形,當某一個體適合度愈高 時,經由競爭選取後,其存活下來而被複製的機會也將愈高。此種選 取法的優點是染色體被複製下來的機率與染色體本身的適合度無絕 對的關係,而是取決於染色體間適合度的相對大小,如此一來可避免
因某幾條染色體的適合度過大而導致過早收斂於局部最佳解,因此本 法比輪盤法更適合用於染色體間適合度變化很大的問題上。其作法如 下:
1.依每代染色體總數(群集數),設定一個合理的染色體比較個數。
2.每次從母代隨機選取所設定的染色體個數,比較其適合度,選 擇較優者進行複製。
3.重複步驟 2,直到複製的染色體總數等於群集個數。
C.排序選取法(rank selection)
使用排序選取法可避免輪盤法常因某幾條染色體的適合度過 大,佔去大部分輪盤的面積,造成選取的機率過大,導致過早收斂於 局部最佳解;也免去使用單點交換時,遇到適合度變化過大必須用尺 度法(scaling)對適合度作修正;同時當染色體適合度很接近時,也會 因排序的緣故將其被複製的機率差異性表現出來。
排序選取法是依據染色體適合度的大小來排序,被複製的機率是 依據排序的順序,而不是染色體本身的適合度大小,因此排序第i 個 與第i+1 個染色體間被複製的機率是線性的關係,與染色體適合度間 的大小差異沒有關係。
三、交換
複製的過程只是單純的將舊有母體依其適合度的優劣加以複 製,並無法產生出新的搜尋組合。此時便需要導入交換的技巧,交換 的目的是為了讓染色體互相交換有用的資訊,使得染色體獲得更高的 適應度,也可產生更多樣性的搜尋空間。交換的技巧有以下三類:單 點交換、兩點交換和多點均一交換。
A.單點交換
進行單點交換時,交換點依亂數隨機決定一個切斷點,以這個切 斷點將原先挑選出來進行交換的兩條染色體分為兩個部分,互相交換 相同的部分重新組合成新的染色體,如圖3.9 所示。
親代 子代
交換點
圖3.9 單點交換 B.多點交換
多點交換與單點交換極為類似,唯一的不同在於進行多點交換 時,要隨機決定多個切斷點,將染色體分為數個部分再重新組合成新 的染色體,如圖3.10 所示
親代 交換點
子代
圖3.10 多點交換 C.均一交換
使用均一交換時,首先要隨機產生一個和染色體字串長度相等的 二進位一維矩陣,在這個矩陣中,每一個位元均由亂數隨機決定其值 為1 或 0,此一矩陣稱之為模具(mask)。在模具中的某個位元值為 1
000 111 0 111 000 111
親代
子代
圖3.11 均一交換 四、突變(mutation)
純粹由遺傳所得之特性,其組合之多樣性將受限制。雖然搜尋點 聚集的區域可能存在最佳解,但相對的卻易造成其他區域沒有搜尋 到,導致陷入局部最佳解,這種問題常發生在多峰函數求解最佳值的 研究中。為使搜尋的空間更具多樣性,因而引入了突變的觀念。在遺 傳演算法中,突變是指交換後的字串,利用亂數選取字串中某些字元 來作改變,例如在二位元編碼中,將1 換為 0、0 換為 1。圖 3.12 為 第四個位元突變。
1 0 0 1 0 1 0
1
0 0 0 1 0 1 01
1
原始染色體
新染色體
圖3.12 第四個位元突變圖