• 沒有找到結果。

基因演算法執行流程

在文檔中 中 華 大 學 博 士 論 文 (頁 49-54)

第三章 理論相關背景

3.4 基因演算法

3.4.1 基因演算法執行流程

基因演算法在最佳化之設計應用上,參數的設定往往是最為困難的部 份,其中包括編碼範圍、字串長度、族群的大小、交配率、突變率與適應函 數之設計,以下針對其執行流程逐一說明。

3.4.1.1 初始化

在進行基因演算前必須先將原始數值根據所需之精密度進行編碼程 序,以利後續的運算,待編碼之結構與程序完成後,隨機組合產生初始 族群置於交配池中。其流程與方法說明如下:

一、編碼 (Encoding)

根據所需尋找之目標精確度需求,在編碼前必須先決定字串編碼的 長度,長度越長則精準度越高,但所需編碼、解碼運算也相對增加,因 此字串位元的長度主要依據問題所要求的精確度而定,定得太短可能導 致搜尋不到系統最佳解,太長可能導致耗費太多運算資源在編碼、解碼 上。一般說來,基因的主要編碼方式分為二位元 (Binary)編碼法和順序 (Order)編碼法,其分述如下:

(一) 二位元編碼法

以0和1來表達基因的方式,就是二位元編碼法。這是一種 傳統的編碼方式,例如我們可以用1001的基因來表示數字9,用 1101的基因來表示數字13。

(二) 順序編碼法

以流程順序表達一個基因的方式。這對於排序問題 (生產 排程問題、推銷員行程問題…等)上是最直接的表達方法,例如 推銷員在拜訪客戶上的行程順序依序是客戶二、客戶三再來客 戶一,那麼我們可以用數列 231來表示推銷員的行程順序。

上述兩種編碼方式在使用上並沒有一定的規則,只要能夠正確地將 問題表達出來即可。

二、 產生初始族群(Initial Population)

在基因演算法中,一般使用於產生起始解的方式有兩種:一是由電 腦隨機產生、二是採用與問題相關的啟發式解法產生。雖然基因演算法 本身就是屬於一種隨機的盲目搜尋過程。因此在理論上,起始解的產生 方式對於在求最終解的效益上,應該不會有直接的影響。但在事實上,

當起始解採用隨機的方式產生時,卻容易造成求最佳解的時間明顯增 加,甚至會影響到所求解的品質。若完全採用啟發式演算法產生起始解,

又容易落入區域解。相較之下,採用啟發式演算法求出一些起始解,再 隨機產生一些起始解所合併而成的混合母體,不論在求解的效益和效率 上都會比上述兩種方法好,因此近年來在基因演算法的研究上,大部分 都會採用混和母體的方式求解。

3.4.1.2 解碼與計算適應函數(Fitness Function)

為使適應函數得以運算,因此必須先將基因演算完成之物種進行基 因解碼還原成原來之數值結構或流程,其說明如下:

一、解碼

解碼流程則相反於編碼流程,如編碼採用二位元編碼法之基因為 01001 則回復成十進制數值則為 9。將物種內的所有基因解碼完成後,計 算其適應函數以了解其適應能力。

二、計算適應函數

在原則上,適應函數必須能反映不同基因組合之間適應程度之差 異,為了能增加新物種進入族群的機會,適應函數必須能夠快速的將次 佳的物種淘汰,以增加搜尋的速度。而基因演算法搜尋終止之條件為,

當所有染色體均趨向一致,即不在有更好之適應函數出現時予以終止;

而對於某些線上即時系統而言,為了節省時間,當適應含數值到達系統 要求後即可終止搜尋程序。

由於本研究之研究為尋找物種與目標函數值之差異最佳時為 0的情 況下。因此本研究所採用之適應函數值fi=Min,其中Min為一常數值,一

般而言可以下列四種方式決定是否要將物種遺傳至下一代:

(一) 滿足所輸入的一個任意數值時。

(二) 演算截至目前為止所出現過的最小適應函數值。

(三) 演算至目前運作的群體中,最小的適應函數值。

(四) 截至目前遺傳世代中,在最後n 代裡所出現的最小適應函數值。

其中以第三種方法對於目前所評估的群體為最具代表性,因此本論 文在稍後的演算過程中,亦將採用第三種方法來評估群體中各個物種的 合適程度,以決定是否要遺傳至下一代。

3.4.1.3 基因運算

基因的運算過程中主要有從前一代複製較佳物種到交配池的過程、

從交配池中隨機挑出物種進行交配出新物種的過程以及避免物種落於區 域解的突變過程,其說明如下:

一、複製:

複製是依據每一物種的適應程度來決定其在下一代中是被淘汰或複 製的一種運算過程,而適應程度之標準是根據每一個物種的適應函數高 低來決定,所以適應函數值較佳的物種,就會有較高的中選機率,進而 複製出下一代的新物種。此運算的目的在使較優良的物種得以留存,繼 續交配重組更優良的後代。

經由適應函數來計算反應其適應程度。一般常所採用之複製過程有 兩種形式:(一)輪盤式選擇、(二)競爭式選擇,說明如下:

(一) 輪盤式選擇

在每一個世代演化過程中,首先依每一個物種的適應函數值的大 小來分割輪盤上的位置。適應函數越佳者,則在輪盤上所佔的面積也 越大,每一個物種輪盤上所佔的面積比例大小也就代表被挑選至交配 池的機率。其方式為隨機選取輪盤上的一點,其所對應的物種即被選 中送至交配池中。假設交配池中共有N 個物種,fi表第 i 個適應函

數 值( 若適應函數是取越大越好的情況) ,理論上每個物種會有

i i

N i i

N f f

f f

• =

個會被複製到後代交配池中,其中

1

1 N

i i

f f

N =

=

代表所

有物種的平均適應函數值。

(二) 競爭式選擇

在每一代的演化過程中,隨機選取兩個或更多個物種,具有最佳 適應函數值的物種即被選中送至下一代的交配池中。

基本上不論是輪盤式選擇或競爭式選擇都能達到複製過程中的適者 生存的要求,由於競爭式選擇所需之計算量較小,且可以經由一次選取 物種個數的多寡來控制競爭的速度,因此本研究採用競爭式選擇來進行 複製過程,將較佳之子代複製至下一世代的交配池中。

二、交配:

交配的過程為隨機的在交配池中選取兩個父代物種字串,並且彼此 交換位元資訊,進而促成另一新的物種的產生。藉著累積前代的優秀位 元資訊以期望能夠產生更優秀於前代的子代。交配過程所發生之機率由 交配機率所決定。而交配之機率一般可分成:(a)單點交配、(b)兩點交配 與(c)字罩交配等三種型式。其說明如下:

(一) 單點交配

在所選的兩個父代物種字串中,隨機選取一交配點,並交換兩字 串中彼此交配點後的所有位元。本研究即採用此法進行交配,其過程 如圖3.17 所示:

圖3.17 單點交配過程 (二) 兩點交配

在所選的兩個父代物種字串中,隨機選取兩個交配點,並交換兩 字串中,兩個交配點中間的所有位元。其過程如圖3.18 所示:

圖3.18 兩點交配過程 (三) 字罩交配

首先產生與物種字串長度相同的字罩當作交配時之指標器,字罩 是隨機由0 與 1 所組成,兩組父代配合字罩,只要字罩中為 1 的位元,

父代即進行位元資訊交換。其過程如圖3.19 所示:

三、突變(Mutation):

突變的過程在基因演算法中有著非常重要的功能,因為此過程可以 帶入新的基因組成成分,防止在複製與交配過程中,遺漏了重要的訊息。

因此,突變過程通常被視為跳脫區域解的一個重要關鍵功能。而突變運 算的機率則是經由突變率來控制調整的。突變的過程可以是單一位元、

整個字串進行突變運算或以字罩方式進行,本研究所用之突變則是採單 一位元突變。其突變過程如圖3.20 所示

圖3.19 兩點交配過程

圖3.20 單一位元突變過程

在文檔中 中 華 大 學 博 士 論 文 (頁 49-54)

相關文件