第三章 基礎理論
第五節 基因演算法
31
圖32 倒傳遞類神經網路學習流程
32
成,而基因用編碼(Encoding)的方式以離散數值或二進位的字串來表示。染色體會透 過適應函數(Fitness Function)計算其適應值。適應值越高的物種,生存下來的機率也 愈高,且繁衍後代時在下一代的染色體中能佔有更多的比例。最後經過幾世代不斷的 演化,應能產生適應能力最佳的物種(最佳解)。基因演算法的主要架構如圖33所示。
圖33 基因演算法架構
關於基因演算法如何運作,以下進一步說明:
(一)編碼
在應用基因演算法前,必須先將問題之變數進行編碼,編碼過後的字串即為染色 體。編碼的方式依問題性質及精確度需求而定,通常有下列兩種方式:
1.二元編碼
二元編碼法為一種傳統的編碼方式,以0 與 1 來表示基因。如圖 34 所示,可用 1100 表示數字 12 與 1、0011 表示數字 19。
33 圖34 二位元編碼法
2.順序編碼
以數字、字母或是符號來表示基因。這對於生產排程、旅行者行程以及車輛繞徑 等問題是最直接的表達方法。例如推銷員想找出一條通過所有城鎮並回到原出發點的 最短路線,那麼我們可以用數列54231來表示推銷員的最短行程順序。
編碼方式並沒有一定的規則,能夠正確地將問題描述即可。除此之外,每個解所 對應的編碼都應該是唯一。
(二)產生初始族群
初始族群即為第一代染色體之組合,亦可稱母體,為演化的開始點。通常初始族 群的產生方式有兩種,一為隨機產生,二為以啟發解的方式產生。隨機產生為基因演 算法之初衷,其缺點在於搜尋最佳解的時間較長,而以啟發方式產生初始解,可以給 予初始族群較好的條件,往往能夠在短時間之內搜尋到不錯的解。
染色體的數目亦需適當,以30至200個最為常見,數目太大時雖可降低陷入局部 最佳解的機率,但會增加搜尋的時間;若數目變小時,演化速度會過於緩慢,不容易 產生好的染色體,則容易造成提早收斂的情況發生。
(三)解碼並計算適應函數
解碼流程與編碼流程相反,將基因轉換為編碼前之數值。在眾多染色體中,我們 必須判斷染色體適應環境的能力,而此判斷的標準或準則之函數即為適應函數,可能 是極小化問題,如成本、花費時間以及行程問題等;也可能是極大化問題,如利潤。
34
(四)複製
複製是依據每一物種的適應程度來決定其在下一代是被淘汰或複製的一種運算 過程,因此適應值較佳的物種,就會有較高的機率被複製,其優良基因被保存到後代 的機率也愈大,而基因演算法就是利用此機制使較優良的物種得以留存,較差的物種 予以淘汰。用來模擬物競天擇的選擇方式有很多種,常用的有以下兩種:
1.輪盤式選擇
Goldberg(1989)提出了一種比率分配的方式,類似賭博中的輪盤。在每一代的演 化過程中,依據每個染色體的適應值大小來分配輪盤上所佔之面積比例,適應函數越 佳者,能在輪盤上佔有較大的面積,被挑選至交配池的機率也愈大。
2.競爭式選擇
在每一代的演化過程中,隨機選取兩個或是更多個物種,具有最佳適應值的物種 即被挑選至交配池中。
(五)交配
交配是隨機選取交配池中的兩個母代物種字串,並且彼此交換位元資訊,目的是 希望產生的新物種能有更高的適應值,常見的交配方式有下列四種:
1.單點交配
如圖35所示,選擇兩個母體,於字串中任選一交配點,交換交配點後的所有位元。
圖35 單點交配
35
2.雙點交配
如圖36所示,選擇兩個母體,於其字串中任選兩個交配點,交換兩交配點之間所 有位元。
圖36 雙點交配
3.均勻交配
如圖37所示,均勻的分割兩母體,再將其互換位元。
圖37 均勻交配
4.字罩交配
如圖38所示,產生與物種字串長度相同的字罩,由0與1隨機組成,只要字罩中為 1的位置,母代即進行位元交換。
36
圖38 字罩交配
(六)突變
若物種在演化過程中,其初始族群本來就不具備某些特質,無論經過幾世代的複 製與交配,也無法突破此困境。舉例來說,若初始族群為10011101與01111010兩個染 色體所構成,可以看出四與五位元均為1,因此不論使用複製或是交配機制所產生的 染色體,四與五位元永遠為1,此時就需要靠突變機制創造新的基因組合方式,如圖 39所示。
圖39 單點突變
37