• 沒有找到結果。

遺傳演算法之運算程序

在文檔中 中 華 大 學 (頁 33-39)

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 0

1

1

原始染色體

新染色體

圖3.12 第四個位元突變圖

在文檔中 中 華 大 學 (頁 33-39)

相關文件