• 沒有找到結果。

第二章 文獻探討

第三節 基因演算法

本節首先介紹基因演算法流程、設定與運作方式,後半段接著說明本研究所使 用 Kalyanmoy Deb 基因演算法的損失參數方法與優點。

壹、基因演算法流程

基因演算法主要內涵,選擇物種中對於適應力較強的母代,利用隨機相互交換

19

的方式,期許產生比上一代更強的子代,經過篩選後而留下最強的物種,去適應環 境或持續進行交配、繁衍和篩選。其基本運算過程如下所示(Ribeiro Filho & Treleaven, 1994):

一、設定一連串的基因(genes)或染色體(chromosome)用來表示問題可能解,假設每 一基因可以用字串、數字或符號等代表,並且在初始化設定染色體的選擇方式,

還有基因的交配與突變方式、交配率、突變率等。

二、首先建構隨機一組初始族群(population)做為問題的解。

三、計算每一染色體的適合度(fitness)是否符合條件。

四、經由基因運算複製(reproduction)、交配(crossover)、突變(mutation)等,以適合度 優劣篩選產生更佳適合度的下一代族群,重複此種「演化」過程,直至符合終 止條件為止。

貳、基因演算法設定

基因演算法最重要的兩個元素就是基因(genes)及染色體(chromosome),因此在 解決問題時,首先會將問題編製成一串基因或染色體,初始設定如下:

一、評估染色體適合度函數(fitness function)

適合度函數評估可能解的優劣程度,適合度大小需在一定範圍內,基因會較高 機率選擇適合度大的最為下一代。

二、設定染色體選擇方式(selection options)

從產生的染色體中挑選基因,並進行基因運算以產生新的下一代,選擇方式將 影響最佳解的優劣,以下介紹幾種方式:

(一)剩餘選擇(remainder)

20

將染色體經適合度函數運算後,單獨取整數部分,然後剩餘的小數部分採用輪 盤選擇。如:適合度為2.3,取下整數部分登記為2,接著依據小數部分自動選 擇染色體。

(二)均勻選擇(uniform)

根據期望值與染色體數量選擇染色體,此種方式通常使用在除錯或測試上,並 不是有效的方式。

(三)輪盤式選擇法(roulette wheel selection)

每一個染色體經過適合度計算後,先將所有染色體的適合度全部加總,做為輪 盤的總面積大小,各染色體在輪盤中所占面積大小為全部總面積之分量,因此 適合度愈高被選取機率愈高。

(四)競賽選擇法(tournament selection)

根據優劣的觀念通常會選擇較優秀的染色體,以致於彼此之間的變異性變低,

而後很快收斂無法求得最佳解。先隨機選取兩個染色體,再選取兩個之中最佳 的個體做為染色體,選取個體數目通常設為4。

参、基因演算法基本運作

將問題可能的解編碼成一串染色體,再設定適合度及選擇方式,前者將影響可 能解的優劣程度,後者決定挑選基因個體的方式。在基因運作方式中,染色體族群 利用複製、交配、突變三種方式產生新的子代。說明如下:

一、初始化所有參數

在基因演算法中,染色體皆由基因組成,因此每個試題代表基因,每一份測驗 代表染色體(組卷結果),所有試題編碼為二元字串(bitstring),用來代表是否選入 測驗(0代表為選入,1代表選入測驗),將題庫每一題目設為0。

21

二、基因複製(reproduction)

無條件從染色體族群中選擇較好的個體直接保留置下一代。

三、基因交配(crossover)

依據研究方式不同交配方式也會不同效果,利用交配功能演化出更佳的子代,

以下介紹兩種常見方式:

(一)單點交配(one point crossover)

隨機選擇一個位置做交換,假設位置是5其交換後得到新兩個子代即為親代。

A0:10100000 交配後 A1:10101100 B0:11101100 交配後 B1:11100000 (二)同源交配(homologue crossover)

由Burke所提出的方式(Burke, Grefenstette, De Jong, Wu, & Ramsey, 1998),先設 定一個相似度s,為一個限制條件,將所選取的兩個個體計算其相似的程度,若 超過此相似度才可以再進行單點或雙點的交配動作,假設s 定為0.4,單點交配,

交配位置為1。

A0:10110000 交配後 A1:11010000 B0:01010000 交配後 B1:00110000

三、突變 (mutation)

基因的突變方式是隨機、不可預測的,因此,可能會造成子代變得更強勢,或 是也有可能變得更劣,常見的突變如下:

(1)單點做突變。

A0:0101001 突變後 A1:0101011 (2)增加或減少基因。

22

A0:01010100 突變後 A1:01010100111 B0:01010100 突變後 B1:0101010 四、精英集合 (elite Set)

根據基因運算後,前一代最好的適合度保存至下一代,放入elite set的同時也要 判別是否有支配到中,假設已在在elite Set則從中剔除,elite count在預設值為2。elite count至少為1,若elite count太大,以致只有淘汰部分基因導致難以有效搜尋。例:

假設染色體大小為20、精英集合大小為2及交配率為0.8,其保留到下一大基因如下 所示。

(1)保留2個基因至精英集合。

(2)餘18個基因,進行輪盤運算0.8*18=14.4,取14個基因進行交配。

(3)剩餘4個基因進行突變。

五、染色體選擇方式

選擇函數功能是依據適合度函數選擇染色體,主要分為兩步驟:

(1)隨機均勻規劃量尺,依據每個染色體適合度整數部分,作正確的分類。

(2)選擇額外的染色體小數部分,作隨機化分的徵選動作。

肆、基因演算執行流程

在基因演算法演化前,首先進行上述說明的初始化動作,接著設定染色體選擇 方式與適合度函數,其它包括族群數目大小、複製率、交配率、突變率的代數與終 止條件。之後,就可以執行基因演算法搜尋最佳解。流程如下圖3所示:

23

註:引自Ribeiro Filho & Treleaven (1994)

伍、基因演算應用與發展

基因演算法不同於過去尋找最短路徑問題,能在空間中找到最接近整體(全域的) 最佳解,適合度的函數計算上也不需要輔助,因此其他許多領域尋找最佳解的問題 應用上也有極佳的表現。例如基因演算法與類神經網路之整合型應用、組合最佳化 求解問題(combinatorial optimization problem)、基因演算法與財務金融(陳建福,

1995)、最佳化工作路徑。

陸、基因演算法種類

使用基因演算法於最佳化問題,通常運用方法會分成五種類,如下所示 開始

隨機產生初代族群

計算親代適合度

運用基因運算產生子代 終止條件 完成

圖 3 基因運算流程

24

(Michalewicz & Schoenauer, 1996):

一、維持合理解法(methods based on preserving feasibility of solutions) 二、損失函數法(methods based on penalty functions)

三、傾向合理解法(methods biasing feasible over infeasible solutions) 四、解譯員法(methods based on decoders)

五、混合雜交法(Hybrid methods)

以上實際上最常使用的是損失函數法(methods based on penalty functions),在執 行最佳化問題時,適合度函數定義如公式(16)所示(Deb, 2000):

2

Minimize 2

1

subject to

q

25

oi:為第i個能力值的測驗訊息量;

j:代表題庫第 j題, n 為題庫題數, j1, 2,...,nwij:代表試題在能力等級i之測驗訊息量;

EI:為目標訊息函數,目標與測驗訊息量之誤差平方和;

q:代表限制式編號,p為限制式總數;

kq:第q個限制式的設定值;

當適合度函數愈小,愈能符合我們所設定的目標訊息量;另外黃國禎教授(1998) 提出以平均分配的概念,將鑑別度參數與難度參數做為選題的依據,平均每一份試 卷的參數值,有別於應用訊息量函數。而多數研究者在研究上應用訊息量函數進行 組卷,因此本研究將單向度適合度函數進行開發,應用於多向度訊息量之適合度函 數組卷,在3-2節做詳細介紹。

二、單向度目標訊息量設定

目標訊息量會依測驗不同其分布將有所差異,分為單峰、雙峰和一致性,可探 討組卷方法是否逼近目標訊訊息量。以下表為例,測驗長度40題,以程式亂數產生 單峰之目標訊息量5組,能力值範圍為-3至3的實數,研究時每組合執行10次組卷,

試題可重複,目標訊息量平均如下表1所示(孫光天,2003):

表 1 單向度目標訊息量

能力等級

1 2 3 4 5 6 7

能力值 -3.0 -2.0 -1.0 0. 1.0 2.0 3.0 訊息量範圍 0.5~2.4 2~4 7~9 9~11 7~9 2~4 0.5~2.4

5組平均值 1.912 3.412 8.423 10.252 8.321 3.121 1.859

26

捌、使用Kalyanmoy Deb基因演算於最化問題

Kalyanmoy Deb 基因演算法具有以下敘述之特點(Deb, 2000):

ㄧ、不需損失參數的方法

二、此方法分類方式使用損失函數法(methods based on penalty functions)與傾向合理 解法(methods biasing feasible over infeasible solutions)。

三、在競爭式選擇中,比較後保留較佳的解。

(1)當合理解與不合理解比較時,選擇合理解。

(2)當兩個合理解做比較時,選擇目標函數較高的合理解。

(3)當兩個不合理解做比較時,選擇限制式違反較少的不合理解。

四、在競爭式選擇(tournament selection)中,當兩個皆為合理解時,利用歐幾里德距 離去維持合理解的多樣性。

五、Kalyanmoy Deb 基因演算法試圖最小化損失函數,而非適合度函數,計算損失 函數定義如下公式(20)所示:

27

由Eberhart & Kennedy(1995)所提出,粒子群演算法(particle swarm optimization, PSO)又翻譯為粒子群演算法,一個社會心理學與演化式的最佳化演算法,社會心理 學為探討人類行為跟社會間的互動關聯,例:溝通能力、互動取向。演算法模擬真 實世界中鳥類群體和魚群覓食行為,而後發展出來的一套基於群體的隨機搜尋演算 法,通常稱為群集智能(swarm intelligence, SI)。研究結果發現當鳥類或魚群移動時,

剛開始每個個體都朝不同方向前進,但透過個體經驗法和群體經驗法產生的演化學 習,使得最後個體能保持距離、群體間都能朝同方向前進。

許多研究者會試著模擬鳥類的飛行及魚群群體的社會行為,也就產生了PSO的 理論基礎,最早的想法為模擬鳥類或魚群,在搜尋空間中,會藉由對於彼此間互動 的資訊分享概念,可以讓粒子能互相溝通及交換資訊,更快速有效的搜尋到近似解 (Reynolds, 1987)。PSO為族群概念的全域最佳搜尋演算法,對於研究一個最佳化問 題的解,就像是一隻飛行的鳥或魚類的群聚,稱作粒子(particle),並且具有演化式演 算法的適合度評估特性,每個粒子皆由目標函數所對應的適合度函數值,且粒子移 動時,往個體本身經驗或當前群體中最佳粒子改變方向與距離 (Kennedy & Eberhart, 2001)。同時粒子獨立搜尋且具有記憶的功能,若個體遇到函數最佳值時,此次最佳 值將被記錄在個體記憶中,即是每個粒子本身具有最佳的搜尋變數記憶,並且根據 本 次 最 佳 搜 尋 變 數 記 憶 去 修 正 下 次 迭 代 的 搜 尋 方 向 , 為 粒 子 的 認 知 模 式 (cognition-only model)。每次搜尋過程中,這些粒子個體最佳搜尋值與群體中最佳搜 尋值會做比較,如果個體最佳搜尋值優於群體最佳搜尋值,則更新群體最佳函數值

相關文件