• 沒有找到結果。

二、 文獻回顧

2.5 基因演算法概述

基因演算法(Genetic Algorithm. GA)是一種求解最佳化的演算工具,其理 論基礎乃源自於 1859 年達爾文的『物種演化』(On the Origin of Species by Means of Nature Selection)書中的「物競天擇,適者生存」的演化及淘汰觀念,

模擬生物之間的生存競爭,幸存者得以繁衍至下一代,如此一代一代演化下 去,最後會演變進而產生一完全適應環境的族群,達到「適者生存」的概念。

1975 年 Holland 提出應用在求解研究問題上,經過各領域相關研究上的應用,

及至 1989 年 Goldberg 運用於求解實務問題後,GA 方引起廣泛討論及擴大應 用[22]。

GA 之主要觀念係透過不同親代(Parents)之染色體(Chromosome)上的基因

(Genetic)進行交換產生子代(Offspring),並遵守適者生存的自然法則以獲得優 良子代,運算邏輯包含了選擇(Selection)、交配(Crossover)、突變(Mutation)等 演算機制,進而達到改善啟始解的目的,GA 架構如圖6所示,以下分別說明 其中各重要步驟運作方式。

圖6 基因演算法架構圖

2.5.1 GA 架構說明

1. 編碼(Encoding)

首先需將求解問題中的搜尋變數轉換為染色體,以代入適當方程式中 求解適合函數值,這也是 GA 的基礎;編碼方式會影響演算邏輯,故須針對 問題特性設計適用的編碼方式,一般常見的編碼方式包含二元(Binary)、字 串(String)、實數(Real-number)及一般資料結構(General Data Structure)等四

編碼

產生初始族群

解碼與計算適合度

滿足終

止條件? 解碼並輸出結果

複製

交配

突變

種。 Function)、成本函數(Cost Function)、性能指標(Performance of Index)等。

GA 會依照每一條染色體依適合度函數所計算出的適合度大小,決定該

三:1)指定演化世代數,2)適合度在演化過程中已無法再有效改進,例如相 臨兩世代的適合度差值除以適合度後低於某一門檻值(如千分之三),3)適合 度已達預設需求值。演算過程中,若符合終止條件時,GA 將終止運算,並 輸出計算結果。

5. 複製(Reproduction)

GA 演化過程中是以親代染色體的複製來進行,而非採親代本身的染色 體,複製是指選擇適當的親代加以複製,複製方式影響 GA 的效率,好的複 製方式收斂速度較快,且會得到較佳的解;複製方式不好時則相反。

常用的複製方法有下列:輪盤法(Roulette wheel)、隨機複製替換法

(Stochastic Sampling with Replacement)、殘數隨機複製替換法(Remainder Stochastic Sampling with Replacement)、殘數隨機複製持續法(Remainder Stochastic Sampling without Replacement)、整體隨機複製法(Stochastic Universal Sampling)這五種方法。

以輪盤法為例,如圖8所示,是將族群中所有染色體(編號 1~4)的適合 度加總後,依照每一條染色體適合度佔該加總數的比例放在輪盤上,最後 依機率於輪盤上決定一點,該點落入哪一條染色體的面積中,則該染色體 即被選擇。因為適合度越高的染色體面積相對較大(如圖中的編號 1 染色 體),故較容易被選上。

圖8 輪盤法示意圖 6. 交配(Crossover)

複製過程完成後,被複製的染色體將被放置到交配池中,以隨機的方 式在交配池中選取兩條染色體進行交配的動作,此二染色體會交換彼此的 基因,產生兩條新的染色體,以作為下一代。

五種較常用交配方法,分別為單點交配(One-point Crossover)、雙點交

配(Two-point Crossover)、多點交配(Multi-point Crossover)、字罩交配(Mask Crossover)及機率均等式交配(Uniform Crossover)。

以單點交配為例,如圖9所示,是隨機決定一個交配位置,然後針對 二條被選擇到的親代候選染色體,將他們在這交配位置的上基因互換,而 得到二個新的子代。

圖9 單點交配示意圖 7. 突變(Mutation)

突變是基因演算法中每一代演算的最後一個步驟,在一個設定的突變 率下,針對所有產生的子代染色體,隨機給定一個 0~1 的值,當其值小於 預先設定的突變率時才發生突變。

以二元編碼為例,當發生突變時,被指定的基因會產生 0 和 1 交換的 形式,即 0 變成 1、1 變成 0。突變的機率不能設定太高,否則容易影響到 優良的個體。

2.5.2 GA 特性

GA 的優缺點可彙整如下[23][24][25]:

1. 演算過程皆以參數之編碼進行,只要將參數作適當編碼即可應用 GA 求解,

即使原問題因故而修改,GA 演算法亦可輕易配合調整內容,不需要重新構 建整個演算法;

2. GA 演算法求解過程為隨機搜尋,因此適用於不同類型的最佳化問題,包含

連續型參數與離散型參數問題均可適用;

3. 可同時考慮搜尋空間(Search Space)上的多個點,因此可以快速獲得整體最 佳解(Global Optimum),並且可以避免落入區域最佳解(Local Optimum);

4. 演算過程中只需要適合度函數的資訊,而不需要其他複雜的數學運算,而 且適合度函數可以自由定義,因此求解問題可以是非線性問題(Non-Linearity Problem);

5. 可應用於平行處理(Parallel Operation)能力的電腦,以加速求解速度與擴大求

解規模;

6. 編碼方式與適合度函數設計良好與否影響求解品質,但目前並無相關證明 任何問題通用的良好編碼方式及適合度函數,故必須針對問題特性妥為規 劃;及

7. 演算法所得結果不一定是最佳解,除非演化過程中能提供最佳解參考值。

相關文件