• 沒有找到結果。

基因演算法(Genetic Algorithm , GA)

第二章 文獻回顧

2.5 基因演算法(Genetic Algorithm , GA)

21

22

一、適應度函數(Fitness Function)

進行基因演算法前先依據欲解決的問題定義適應度函數(Fitness Function),適 應度函數乃是基因演化的性能指標(Performance index),基因演算時則依據適應函 數計算適應值,而擁有較高的適應值之基因會有較高的存活率[30]。

二、編碼(Coding)

一般常用的編碼的方式有三種,第一種為二進位(Binary)的方式,是將問題以 0或1的方式編碼表示;第二種為實數值(Real number)方式表達,即將問題以所有 合理數值範圍內之值予以編碼;第三種為順序(Order)編碼的方式,使用情形適用 於問題特性具有先後順序的關係時,編碼的方法亦以1、2、3… 等數值表示,此種編 碼方式之特性為同一基因字串值不會出現重複的數字,至於要選擇何種編碼方式則要 視問題的特性來決定[30]。

三、選取與複製(Selection & Reproduction)

由達爾文進化論的觀念中,可以知道個體的適存值較高時會有較高的存活機率,

而繼續存活至下一個世代,所以選取與複製的概念也是從此產生出來的。一般常用的 選取方法為輪盤式選取法(Roulette Wheel Parent Selection Algorithms),輪盤面積的 比例是依照染色體適存值大小之比值來訂定的,這意味著適存值較大的會被選到的機 會就相對的比較大[30]。

四、交配(Crossover)

交配是提供母體中成對染色體的基因可以互換的機制,期望在交配後可以產生更 佳的個體。而欲交配的染色體則是根據預先設定的交配率(Crossover Rate),以亂 數配合來決定的。一般來說,交配的方式有單點式交配、兩點式交配、字罩式交配以 下將對三種方式做簡單之介紹[30]。

(一)單點式交配(One-Point Crossover):

在兩染色體中,以隨機的方式選取一個交配點,在該點以後的基因均互相交換,

如圖2.10所示。

(二)雙點式交配(Two-point Crossover):

在兩染色體中,以隨機的方式選取兩個交配點,在兩個交配點間的基因互相交換,

如圖2.11所示。

(三)字罩式交配:

23

先以隨機亂數產生和染色體字串長度相同的字罩,做為是否進行交配的指標,其 產生之字元凿括0與1,其中1表示對應的染色體位要交換基因值,反之則不用進行交 配之動作,如圖2.12所示。由於每個基因交配的機率都是獨立且相等的所以又稱為均 等交配。

圖2.10單點式交配示意圖[30]

圖 2.11 雙點式交配示意圖[30]

圖 2.12 字罩式交配示意圖[30]

24

五、突變(Mutation)

突變是母代字串中,部份基因發生改變,增函字串的變化程度,突變可避免求解 過程陷入局部最佳化,可保持染色體的多樣性。而染色體是否進行突變是根據突變率

(Mutation rate)配合亂數來決定的,若產生亂數值小於突變率就進行突變。所以一 般而言,突變率不可設得太大導致於搜尋過程成為隨機的過程。突變的方式一般為「每 個基因都有同樣的突變機率」,做法是產生一個與染色體字串長度相同之矩陣,並於 每個染色體所相對的位置上產生介於0~1之間的隨機數,再與事先設定的突變率比較 決定是否進行突變,而欲進行突變的染色體則是改變其基因值。如圖2.13所示[30]。

圖 2.13 突變示意圖[30]

六、檢查終止條件

基因演算法一直重覆地做複製、交配與突變的動作,但實際上在搜尋最佳解時,

還要考慮到效率的問題,不允許無限制地搜尋。因此對於基因演算法的終止條件通常 有以下的三種方式:

(一)設定一個固定演化世代,瑝演化到此世式時,即停止演化的動作;此時,最佳 的個體將出現在此世代。

(二)如某一世代中的個體已達到預期的準確度,則停止演化,因此個體已成為近似 最佳解或是最佳解。

(三)在演化一定數目的世代後,以後的連續的幾個世代中,仍然沒有更好的個體出 現,代表問題可能已最佳化,所以停止演化。

綜合上述三種判定方式,只要其中一種收歛條件符合時,即停止搜尋的動作,並 認定所求得之解為近似最佳解[30]。

基因演算法之所以會優於其它的傳統的演算法,主要是它具有一些特性:

(一)執行運算時是使用被編碼的參數集合(parameters set),而非參數本身。

25

(二)GA求得最佳化數據是使用參數帶入目標函數,直接作函數值比較,而不使用 相關拘束條件或微分方式。

(三)GA採用機率方式而非決定論的方式。

(四)GA採用多點族群的搜索,而非傳統猜測單點搜索的方式[27]。