• 沒有找到結果。

第二章 文獻探討

2.4 基因演算法(Genetic Algorithm)

基因演算法,由 Holland(1975)於密西根大學首度發表,此方法由模仿遺傳學上物 競天擇適者生存的原理而來的。在基因演算法的設計中,為了簡化起見,將母體以染

基因的演化算子有交配(Crossover)、突變(Mutation)以及複製(Reproduction),交配 算子可以透過兩個前一代優秀染色體的結合,合併出具有兩者特性的新一代染色體,

並從中選取較優的染色體,繼續進行演化;突變算子是透過將染色體內部基因重分配 的過程,使新的一代出現前幾代未能出現的排列方式或特徵,功能在於跳脫區域最佳 解,加速逼近最佳解的速度。複製算子相較於前兩算子積極的往最佳解逼近,功能上 趨於保守,目的在於藉由保留上一代的優秀染色體,以保持上一代的特徵。對於複雜 的問題時,也能夠迅速有效的求得全域最佳解(Global Optimum Solution),其演算流程 如圖 2.1 所示。

以下為基因演算法各功能之簡介:

基因編碼

編碼是基因算法中的基礎,為了有效的搜尋,要先定義每個決策變數的搜尋範圍,

並將每個決策變數以固定的長度予以編碼(Encoding)。本研究採用實數編碼(Real Coding)方式,將決策變數以工件編號表示之。

族群

傳統最佳化方法從單一起始點開始進行搜尋,而基因演算法以多點進行搜尋,每 次處理一群設計變數。在基因演算法開始之前,必須先產生P 個初始族群,也就是size 一組原始的設計變數。族群是由染色體所組成的集合,所謂族群大小(Population Size) 即代表一個族群中染色體的數目,而愈複雜的問題所須的族群大小當然愈大,即表示 搜尋的空間愈廣。一般而言,初始族群的產生方式為,亂數隨機產生染色體直到達到 所設定的族群大小。族群中每一個個體代表一個解,因此P 個原始個體便是代表size Psize 個初始解。

適應函數值

利用適應值(Fitness Value)來尋找出每一條染色體於所要求問題中的適合度,這是 基因演算法過程中很重要的性能指標(Performance Index),因為這可以由族群中每一條 染色體的適應值來了解到該染色體的優劣,以做為保留或淘汰的依據。

在求解過程中,本研究的目標為最小化績效衡量指標,必須將染色體的表現轉換 成適應函數值,因為當染色體的目標值(Object Value)越小時適應函數值越高,並且以 染色體目標值+1的倒數當作適應函數值。

選擇與複製

利用適應值來衡量族群中個體的好壞差異,選擇較差的個體將以淘汰,將優秀的 個體保留並加以複製來取代較差的個體,隨者運算代數的增加,優良的個體將被複製 的越來越多。根據每個個體的適應值高低,決定個體被選用複製的機率。如此,適應 值高的個體,就會有較高的機率被選擇到而產生出下一代的新個體。選擇的方式有很 多種,最簡單常用的選擇法為輪盤法(Roulette Wheel Selection) Goldberg (1989)、競賽 法(Tournament Selection)。

(1) 輪盤法:將每一個染色體依適應值之大小在同一個輪盤中分配一個相對的角度,

適應值越大則在輪盤上的面積亦越大,而在輪盤上的面積比例,亦是染色 體被挑至交配池的機率,要選擇能夠繁衍後代的父代時,就任意轉動輪盤 隨機選擇,這種方法的缺點是:如果有染色體的適應度特別好,可能在未 找到最佳解時,容易過早陷入局部最佳解。

(2) 競賽法:隨機選取一些指定數目如兩個或更多的染色體,然後挑出適應函數值最 佳的染色體作為父代,這個方法可以減少染色體太早支配整個族群的狀態 發生。

交配

利用複製後的母代進行隨機配對,將配對的兩條染色體交換其中部分的基因,以 產生兩個新的染色體,此為模擬自然界生物體的交配現象,目的是透過交換部分的基 因後,所產生的新的染色體將可能會有較好的適合度。交配運算子提供了族群中不同 個體可以互相交換基因而產生新的子代的機制。一般排程的交配有單點交配(One-point Crossover)、雙點交配(Two-point Crossover)和多點交配(Multi-point Crossover)這三種。

突變

為了避免搜尋過程中忽略某些可行解空間,因此利用突變來產生新的個體,開發 新的搜尋領域,以防止收斂於問題的區域最佳點(Local Optimum),較容易搜尋到全域 最佳點(Global Optimum)。一般常用的突變有 Swap(交換)、Insert(插入) Wang & Zheng (2003)。

至於本論文中使用之基因演算法之步驟流程以及相關設定,如適應函數的定義、

突變運算子、交配運算子、替換策略以及終止條件,將於第三章中說明。

相關文件