Professional Documents
Culture Documents
tw
或來電(02)2705-5066
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
序 言
近年來,遺傳演算法(或稱基因演算法(genetic algorithm))是一門被提
出來用於搜尋近似最佳解的方法。遺傳演算法主要是依據對搜尋解好壞的判斷,
利用基因遺傳的法則;也就是所謂的擇優,經過交配(crossover)運算以及突變
(mutation)運算,將表現優良的基因經過演化保存且遺傳至下一代的子代中以達
到搜尋最佳解的目的。反之,表現差的基因將在演化中逐漸被淘汰掉,透過這些
演化規則遺傳演算法可以用在尋求近似最佳化的議題上。因此,在許多領域的研
究學者像計算機科學、電機工程、機械……等等,都努力從不同角度來探討遺傳
演算法。我們相信在透過眾多的學者的齊心合力下,遺傳演算法的研究將更蓬勃
的發展。目前,遺傳演算法多應用於圖形識別、控制、預測、最佳路徑規畫……
等研究上,至於商業化的產品並不多見。
本書僅從工程研究者的角度來探討遺傳演算法,本書並不著重遺傳演算法與
大自然物種遺傳觀念間異同的探討,而是著重於遺傳演算法的理論、學習架構、
相關應用……等等,透過詳細說明遺傳演算法的演化步驟以及詳細的程式虛擬碼
簡介,讓讀者可以了解遺傳演化的相關學習流程,並更進一步的了解如何設計遺
傳演算法。此外,本書也將遺傳演算法的相關理論以電腦模擬的方式應用於分
類、時間序列分析、以及控制系統上,並比較不同遺傳演演化架構的差異。基於
這個原則,本書的章節順序盡量依照遺傳算法的架構來介紹。當然,有時為了理
論上的連貫性,本書也將這個順序作了些調整。本書從遺傳演算法的理論、學習
架構一直介紹到遺傳演算應用於模糊系統、類神經系統、以及模糊類神經系統,
讀者可以透過這些介紹更了解目前遺傳演算法的趨勢。而且,本書在每章的末尾
都附上參考文獻以方便讀者查閱原始資料。
研讀完此書,我們相信讀者已經站在遺傳演算法這個領域的先端,並且具有
能發展新的遺傳演算法架構的研究能力。我們期盼與各位讀者在這個領域一起努
力、收穫。
本書能順利完成,得感謝五南圖書出版股份有限公司的鼎力支持,以及我們
家人、親友的諒解以及協助。本書雖經過多次的仔細校對,然才疏學淺,如有疏
漏,誤謬之處,尚祈請海內外先進專家不吝賜教。
林昇甫、徐永吉
謹識於新竹國立交通大學電機學院電控工程研究所
iv 本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
目 錄
序 言 .................................................................................................. iii
1.2.2 基因的集合──染色體................................................................008
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
遺傳演算法及其應用
2.2.2 遺傳演算法演化架構....................................................................037
....................................................................................................... 061
3.3.1 隨機方式產生初始母體................................................................088
3.3.2 啟發式產生初始母體....................................................................091
vi 本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
目 錄
3.4.1 監督式適應函數設計....................................................................094
3.4.2 增強式適應函數設計....................................................................095
3.4.3 靜態比率適應函數調整................................................................097
3.4.4 動態比率適應函數調整................................................................098
3.9 基因演算法參數設計..........................................................152
3.9.1 遺傳演算法參數控制....................................................................152
5.2.3 基因調整曼特寧模糊法則............................................................233
5.3.2 基因調整TSK模糊法則 ...................................................................255
6.1 遺傳類神經網路系統..........................................................280
6.2 遺傳模糊類神經系統..........................................................307
6.2.1 遺傳演算法調整曼特寧模糊類神經系統學習................................308
6.2.2 TSK模糊類神經系統權重學習 .......................................................323
7.1 分類 .....................................................................................348
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw ix
或來電(02)2705-5066
第一章
遺傳演算法簡介
1.1 緣起
1.2 遺傳演算法定義
1.3 遺傳演算法架構
1.4 本書的架構
參考文獻
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
遺傳演算法及其應用
近年來,人工智慧成為電腦資訊科學中一項熱門的研究領域。人工智慧應
用的領域包含了傳統的非線性控制系統、圖形辨識系統(pattern recognition
system)、混沌系統(chaos system)控制,以及時間序列(time series)預測……
等方面,由於在這些應用領域中的豐富成果使得愈來愈多的學者投入這項領域
的研究,希望能找到更有效率、更準確讓結果收斂到最佳解(optima solution)
的方法。
人類的研究總是希望不斷地追求更好的問題解答,以及希望能達到最佳的
狀態,但是在事實上往往得到的結果是:最佳的解決方案雖然存在,但有時候
可能是無法衡量或者是需要用很大的代價來尋找。有鑑於此,有很多的理論和
方法都是為了用來搜尋近似最佳解(near optima solution)而發展出來的,最
有名的例子如:數學規劃(mathematical programming)
、作業研究(operational
research),以及最佳化理論(theory of optimization)等學門都在探討如何
搜尋近似最佳解的方法。近年來,遺傳演算法〔或稱基因演算法(genetic
algorithm)〕也是一門被提出來用於搜尋近似最佳解的方法,遺傳演算法主要
是依據對搜尋解好壞的判斷,利用基因遺傳的法則;也就是所謂的擇優,經過
交配(crossover)運算以及突變(mutation)運算,達到將表現優良的基因經
過演化後可以被保存且遺傳至下一代子代中的目的。反之,表現差的基因將在
演化中逐漸被淘汰掉,透過這些演化規則,遺傳演算法可以用在尋求近似最佳
化的議題上。
1.1 |緣起
遺傳演算法最早是由 Holland[1] 在 1960 年所提出的,主要以自然界進化
現象為其參考來源進而發展出遺傳演算法。1967 年 Bagley[2] 在其論文中提
出了遺傳演算法一詞,主要的目的在處理一些遊戲的程式。直到 1975 年,由
Holland 所著作的 Adaptation in Natural and Artificial System 一書 [3],奠定了遺
傳演算法的基礎。其後 1989 年 Goldberg 出版 Genetic Algorithms in Search,
遺傳演算法
圖 1.1 遺傳演算法演進分類圖
1.2 |遺傳演算法定義
遺傳演算法或稱基因演算法(genetic algorithm)主要是透過模擬自然界
生物的進化過程來達到求解問題的人工智慧方法。其主要的組成元素有基因、
染色體、族群以及適應函數(fitness function,也就是模擬達爾文進化論中的
「天擇」部分)
。簡單來說遺傳演算法就是透過遺傳的方式在目前這一代的染色
體中找到較佳的染色體進行演化,使得下一代的染色體能更佳的適應環境的過
程,而同一演化世代中的染色體進行演化以適應環境的行為也就是所謂的學習
行為。所以遺傳演算法可以說是一種嘗試錯誤、選擇優良後代,以及淘汰較差
母代的尋優過程。
遺傳演算法根據其組成元素可以分為:基本元素-基因、基因的集合-染
色體、染色體所組成的集合-族群,以及染色體進化的依據-適應值。這些基
本組成元素是遺傳演算法中最重要的部分。在以下的章節中本書將針對各項元
素分別介紹之。
1.2.1 遺傳演算法的基本元素──基因
在遺傳演算法中最基本的元素為基因(gene)
,基因是遺傳演算法中最基
本的運算元。在進行遺傳演算法時最重要的事就是決定個體的編碼方式,而基
因就是最基本的編碼單位,換言之就是將所欲處理的問題予以編碼成基因型
式。在生物界中基因為組成染色體的基本單元,而其中的 DNA 是具有遺傳的
物質,DNA 是由 ATGC 四種核酸鹼基所構成的序列。講到 DNA 的序列,可
能就會讓很多讀者望而卻步,因為 DNA 的組成是相當複雜的,所幸在遺傳演
算法中,只需要了解基因為組成染色體的基本單元即可,所以在實作時並不需
要考慮到 DNA 的組成以及生物學方面的知識。
一般來說基因編碼型式在遺傳演算法是非常重要的,因為這是設計遺傳演
算法的第一步,所以必須根據所需解決問題的類型來決定編碼形式,一般而
言,基因編碼形式可以分實數編碼形式、二進位編碼形式,以及符號編碼形
式,分別說明如下:
實數編碼形式
由於其較為直觀所以是最常使用且最方便的編碼形式 [18]-[20],實數編碼
形式顧名思義就是將基因以實數型態表示,如圖 1.2 所示即為實數型基因的
編碼,在圖 1.2 中基因位置 1,2,3,分別對應實數編碼的 35.77,11.57,
11.36。
基因位置 1 2 3
基因數值 35.77 11.57 11.36
圖 1.2 實數型基因編碼
二進位編碼形式
圖 1.3 中為二進位基因編碼方式 [12]-[14],在圖 1.3 中,每 3 個位元代表一
個數值,如基因位置 1 代表實數 7,而基因位置 2 代表實數 5。在二進位的基
因編碼方式下,衡量基因效能時須進行二進位元的解碼,解碼的方式則依據編
碼的反轉換進行,例如在圖 1.3 中,將基因位置 1 的 111 轉換成實數的 7。
代表數值 7 5 4
基因位置 1 2 3
基因數值 1 1 1 1 0 1 1 0 0
圖 1.3 二進位型基因編碼
符號編碼形式
最後一個基因編碼方式為符號編碼形式 [16][17],也就是將基因以特殊符號
來進行編碼,符號的定義主要是依據問題來決定。圖 1.4 是符號編碼的例子,
基因位置 1,2,3 分別對應符號變數 A,E,C。
基因位置 1 2 3
基因數值 A E C
圖 1.4 符號型基因編碼
1.2.2 基因的集合──染色體
在介紹完遺傳演算法的基本組成元素-基因的編碼方式後,接下來就是介
紹基因的集合-染色體(chromosome)
,染色體是指由一群基因所組成的集
合,跟基因不一樣的地方在於,染色體定義為一組完整的解(例如:代表整個
神經網路的權重值、最短路徑、投資組合……等等)
,因此在進行遺傳演算法
設計時,首先要做的步驟就是先識別問題,以及將問題所需的解編碼至染色體
中,而要編碼至染色體中則須對染色體中的每個基因值編碼。
染色體的編碼方式如同 1.2.1 節中的基因編碼一般可以分為:以實數編碼
為主的染色體編碼方式、以二進制編碼為主的染色體編碼方式以及以符號編碼
為主的染色體編碼方式,如同基因編碼一般,染色體編碼方式的抉擇也與所欲
解決的問題屬性有關,以下將介紹各項染色體編碼方式:
以實數編碼為主的染色體編碼方式
顧名思義就是染色體所組成的基因是以實數來編碼的,實數編碼形式的染
色體較適用於神經網路求解權重值 [30] 以及模糊系統求解模糊歸屬函數 [31]……
等可以將問題用實數型態表現出來的例子。圖 1.5 即為實數編碼型式的染色
體,在圖 1.5 中的染色體是將圖 1.6 中的神經網路權重以實數編碼的呈現。在
圖 1.5 中的染色體有六個基因,每個基因都是以實數編碼而成,而每個基因代
表著圖 1.5 中神經網路的權重值,例如基因位置 1 代表圖 1.6 中的權重 w11。
基因位置 1 2 3 4 5 6
代表參數 w11 w12 w21 w22 w1 w2
基因數值 35.77 11.57 11.36 34.25 12.36 15.58
圖 1.5 實數型編碼染色體
圖 1.6 神經網路架構
以二進制編碼為主的染色體編碼方式
這類型的染色體編碼跟實數型染色體編碼一樣,也可以用作適合將問題用
實數型態表現出來的例子,但是通常二進制的編碼方式會造成染色體過長的問
題(因為將實數編碼成二進制可能會造成染色體過長)
,所以一般較常應用的
方面為適合較少參數的問題(如:函數求解 [32] 以及最短路徑 [33]……等等)
。
圖 1.7 中為染色體是以一位元的二進位基因編碼方式所組成,在圖 1.7 中染色
體的編碼是依據圖 1.8 中的路徑節點的連通情況來進行編碼的,其中 0 代表不
連通而 1 代表連通,圖 1.7 中所代表的路徑為 1-2-4-6-9-10(如圖 1.9 的虛線
部分)
。
基因位置 1 2 3 4 5 6 7 8 9 10
基因數值 1 1 0 1 0 1 0 0 1 1
圖 1.7 位元型基因編碼
圖 1.8 路徑節點連通狀況
2 5 8
1 4 7 10
3 6 9
以符號編碼為主的染色體編碼方式
最後一個染色體編碼方式為符號編碼形式,主要是染色體基因以符號編碼
組成。這個編碼方式適合的是可以將問題以符號方式呈現的類型(例如:股市
投資組合 [34]、銷售員旅行問題 [16][17]……等等)
。圖 1.10 是以符號編碼為主的
染色體編碼方式,在圖 1.10 的染色體主要是將圖 1.11 的股市資料中的個股資
料(鴻海、友達、聯電……等等)經過編號後任選五個個股的投資組合來編碼
染色體,例如在圖 1.10 中的染色體基因 A,E,C,B,F 分別代表圖 1.11 中
的鴻海、台積電、聯電、友達、以及精業。
基因位置 1 2 3 4 5
基因數值 A E C B F
代表值 鴻海 台積電 聯電 友達 精業
圖 1.10 符號型基因編碼
圖 1.11 股市資料
1.2.3 染色體所組成的集合──族群
在介紹完基因編碼以及由一組基因組合成的染色體的編碼方式之後,接下
來要介紹的是染色體所組成的集合-族群(population)
。在遺傳演算法中族群
被定義為由多個染色體所組成的集合,如 1.2.2 節所述,染色體代表著一組解
(例如一個神經網路的權重集合)
,所以換言之族群也可以說是由一組候選解所
組成的集合,在族群中每個染色體都視為一組解,而最佳解的搜尋則是透過遺
傳演算法的學習步驟得到的。在設計族群的時候有時為了方便進行遺傳演算法
的學習步驟,通常會先將族群中的染色體進行編號,這樣在進行遺傳演化時,
可以提升效能,這一部分在後面幾個章節會詳加敘述。族群的架構如圖 1.12 所
示,在圖 1.12 中說明了一個具有 PSize 條染色體的族群,其中每條染色體有 5
個基因,PSize 被定義為族群大小參數。在這個族群中,每條染色體都被賦予一
個屬於自己的編號,這個編號就代表著染色體,在後面的章節中本書將說明如
何利用這個編號來增進遺傳演算法的效能。
染色體編號 基因值
1 35.77 11.57 11.36 34.25 12.36
2 31.24 12.71 12.61 31.31 10.64
…… …… …… …… …… ……
PSize 31.17 10.71 14.61 36.46 14.98
圖 1.12 染色體族群
1.2.4 染色體進化的依據─適應函數
在介紹完遺傳演算法中基因、染色體,以及族群等組成元素後,接下來要
介紹的是染色體進化的依據,也就是仿效達爾文進化論中「天擇」的機制。這
個「天擇」的機制也就是適應函數(fitness function)的設計。在遺傳演算法
中,適應函數或稱適應值(fitness value)主要是用來代表染色體表現的效能,
如 1.2.2 節所述,染色體代表著所欲解決問題的一組解,但是如何去衡量染色
體所代表的解和目標解之間的差異有多少則是依據適應函數的設計來衡量的。
例如:圖 1.5 的染色體代表著圖 1.6 神經網路的解,而如何去衡量圖 1.5 染色
體的好壞就需要透過適應函數的設計,例如可以使用錯誤函數(error function)
的倒數來代表圖 1.5 染色體的好壞。一般而言,遺傳演算法中的適應函數值越
大代表著染色體的適應程度越好,反之,適應函數值越小代表著染色體的適應
程度越差。
雖然適應函數可用來評量染色體的適應程度(fitness degree)
,然而由於用
來代表每個問題的目標衡量方法未必相同,因此適應函數的設計必須根據問題
來調整後才能適用,但是有些問題並沒有明確目標(例如使用增強式學習的系
統)[35] 亦或根本無目標(例如使用非監督式學習的系統)[36] 可供衡量,所以
適應函數的設計可以說是遺傳演算法中一個很重要的課題。
適應函數的設計對染色體所產生的影響為:若產生的適應值範圍過於狹
窄,會降低染色體的多樣性,容易發生族群中染色體過早收斂的情況,而過早
收斂所造成的影響是在學習過程中找不到族群最佳解。在這種情況下可能需要
做適應函數的調整,大致來說有兩種調整適應函數的類型:靜態比率調整(static
scaling)[32][37] 與動態比率調整 [38](dynamic scaling),分別說明如下:
靜態比率調整
靜態比率調整簡單來說是將適應函數做線性轉換,所以也可以稱為線性調
整,此即:
其中 B(t) 是隨著每一個演化世代動態變化的。
在以上的兩種方法中,又以靜態比率調整較被大家所採用,主要的原因是
此類的方法設計上較簡單(因為是線性的轉換不需要考慮時變的問題)
,所以
只需要決定 A 以及 B 的值即可進行調整。相較之下動態比率調整就顯得比較複
雜(因為需要考慮 B(t) 值隨時間改變的情形)且較難設計。關於適應函數設計
的細節,本書將在後面的章節詳細的說明。
1.3 |遺傳演算法架構
在前一章節介紹完遺傳演算法的基本元素:基因、染色體、族群,以及適
應函數設計之後。在這一章節中將針對遺傳演算法的學習架構來說明,圖 1.13
為基因演算法的學習流程圖,在圖 1.13 的流程圖中,首先針對族群中的染色
體進行初始化的運算,再將族群染色體初始化後,接著進行染色體適應值的計
算,在計算完染色體的適應值後,依據所設定的終止條件決定結束演化或是繼
續進行演化,若為終止演化則結束學習程序,若為繼續進行演化則挑選染色體
進行遺傳演化的運算,遺傳演化的運算可以分為交配以及突變的運算,而這兩
個運算如圖 1.13 所示都是依據某一機率值(交配機率與突變機率)來決定是否
需要執行交配運算以及突變運算。
產生第 0 代族群
否
終止條件 挑選機制 交配機制
結束演化
圖 1.13 基因演算法學習流程圖
可,其它的運算(衡量染色體效能、排序染色體、複製優良染色體、交配運
算,以及突變運算)則必須在每一個演化世代中重複的執行直到演化步驟結束
(根據所定義的終止條件判斷是否結束演化)為止。以下本書將針對這些遺傳
演化中的主要演化步驟做詳細的說明:
起始
初始化染色體
衡量染色體效能
排序染色體
原始族群 新族群
編號 染色體 編號 染色體
1 染色體 1 1 染色體 1
2 染色體 2 2 染色體 2
複製染色體
N 染色體 N N 染色體 N
選擇適合染色體
圖 1.14 基因演算法架構
1.3.1 初始化染色體
遺傳演算法的第一個步驟為初始化(initialization)族群中的染色體。在這
個步驟中,主要是將族群初始化,在遺傳演算法中族群代表著染色體的集合,
而染色體的編碼主要是根據問題來決定,所以初始化族群的方法,也根據不同
的問題的種類而有所不同。一般而言,初始染色體的方法有非常多的方式,其
中大略可以分為兩種類型:隨機產生方式 [39]-[42],以及根據資料分佈決定族群
中染色體的初始值 [43]-[45],以下將分別說明這兩種方法:
隨機產生族群中染色體初始值方式
顧名思義,這個方法就是將族群中染色體的基因值隨機產生。隨機產生族
群染色體方式是最常見且最容易的方法,因為在這個方法中只需要將染色體中
的基因值隨機產生即可。隨機產生的方法,一般而言是根據問題本身的值域來
決定的。
根據資料分佈產生族群中染色體初始值方式
在根據資料分佈產生族群中染色體初始值這個方法中,主要是希望族群中
的染色體可以在初始化的時候就擁有較好的基因值,以利於後續的遺傳演化。
通常較常使用的方法是根據資料的分佈來決定的,這種產生族群染色體的方式
往往涉及到圖型識別的技術,如:C-mean 以及 fuzzy C-mean ……等等。近年
來這種做法也逐漸出現在遺傳演算法的設計上,例如文獻 [44],作者利用自我
(self-clustering algorithm)
分群演算法 分析資料的分佈並決定染色體的基因值。
1.3.2 衡量染色體
在進行完族群染色體初始化的步驟後,接下來就是進行染色體的衡量
(evaluation)
,在 1.2.4 節中說過,染色體的衡量是整個遺傳演算法中很重要 2
的一個步驟,主要是在這個步驟中,族群中染色體的好壞將被決定,這個步驟
將會持續直到整個演化過程結束為止。衡量染色體的方法也就是適應函數的設
計,如 1.2.4 節所述,適應函數設計時若適應值範圍過於狹窄,會降低染色體
的多樣性,容易發生族群中染色體過早收斂的情況。而在這種情況下適應函數
的調整就有在本書 1.2.4 節中所介紹的靜態比率調整(static scaling)與動態比
率調整(dynamic scaling)兩種方式。
1.3.3 排序染色體
在利用適應函數計算出族群中每條染色體的效能之後,接下來就是根據所
計算出染色體的適應值大小進行排序(sorting)的步驟了。在排序族群染色體
這個程序中,有相當多的方法被提出來,例如:氣泡排序法(bubble sort)[46]、
選擇排序法(selection sort)[47]、快速排序法(quick sort)[48]、堆積排序法(heap
sort)[49]、合併排序法(merge sort)[50]……等等著名的排序法。在排序演算
法的實作中,也有相當多的演算法設計技巧可以用來幫助增加遺傳演算法的效
能,例如在 1.2.3 節中所述將族群中的染色體進行編號,可以有助於在排序演
算法中針對這些染色體序號進行排序以節省執行排序的時間。詳細的排序演算
法,以及其設計技巧將在本書之後的章節有更詳細的敘述。
1.3.4 複製優良染色體
在將族群中染色體依照適應值大小排序後接下來就是針對排序結果在族群
中進行複製(reproduction)優良染色體的步驟。在這個步驟中主要是希望將
族群中優良的染色體保留下來,使得接下來的演化可以根據表現較佳的染色體
進行演化。複製的方法主要可以分為:競爭式選擇以及輪盤式選擇兩種方法,
以下將分別針對這兩種方法說明如下:
競爭式選擇
在競爭式選擇 [51] 中主要是利用隨機選取多條染色體並透過所挑選出染色
體的適應值挑選出較佳適應值的染色體保留至下一個世代,詳細的步驟將在本
書後面的章節中說明。
輪盤式選擇
輪盤式選擇 [52] 和競爭式選擇一樣也是透過染色體的適應值來決定保留的
染色體,不一樣的地方是輪盤式選擇主要是算出各染色體效能的差異比例,再
根據這個差異比例將較佳的染色體保留至下一個世代之中,詳細的步驟將在本
書後面的章節中說明。
1.3.5 交配運算
介紹完初始化族群、衡量染色體、排序、複製等步驟之後,接下來要介紹
的就是遺傳演算法中主要的學習運算-交配(crossover)
。交配在遺傳演算法
中是主要的運算子,在交配過程中主要是將兩個經過選擇的染色體(又稱為母
代)經過交換基因值的運算程序來產生出新的子代,讓所產出的子代可以含有
優良雙親的部分特性。交配的目的是希望可以藉著優良母代的基因值組的交
換,而希望子代能夠產出擁有更高適應度的染色體,但是也有可能在交換過程
中遺傳到母代較差的基因,所以在遺傳演算法中交配並無法保證所產出的子代
擁有更好的適應值,不過由於在遺傳演算法中有複製的步驟,所以在族群中表
現較差的子代將會在演化中慢慢被淘汰,反之,表現較佳的子代則可以繼續繁
衍。在交配運算中主要有 4 種常見的交配方式:(1) 多點 [53]、(2) 雙點 [54]、(3)
單點 [55],以及 (4) 定點交配 [56]……等等。這些交配運算將在本書中的後面章
節作詳細的說明。圖 1.15 是交配程序的流程,在圖 1.15 中在交配之前先從排
序好的染色體中選擇出適合的母代,接著根據定義的交配機率判斷是否執行交
配運算,若要執行交配運算,則根據不同的交配策略(多點、雙點、單點,以
及均一交配)交換母代基因以產生新的子代。
結束交配 是 是否產生足夠
程序 子代
根據不同交
挑選合適 隨機產生 產生的機率值 > 是
配策略執行
母代 機率值 交配機率 交配運算
圖 1.15 交配程序的流程
1.3.6 突變運算
在遺傳演算法中突變(mutation)會讓染色體的基因值隨意的產生變化,
藉以讓染色體跳脫出目前的搜尋空間以搜尋更佳的解。和交配運算一樣突變並
無法保證所產出的染色體擁有更好的適應值,不過由於複製步驟,所以在族群
中表現較差的染色體將會慢慢被淘汰。常見的突變方法是在染色體上針對一個
基因來改變其值 [57]。突變的作用會使得染色體搜尋未找過的空間,並將所改
變的新基因透過交配加入至群體中其他的染色體。須注意的是突變運算類似隨
機搜尋演算法,所以有可能會破壞染色體的結構,造成子代與母代間關聯性的
降低。所以在執行突變運算時要注意執行的時機。在突變中也因為染色體編碼
的方式而有不同的作法,而詳細的突變運算,將在本書的後面章節做詳細的說
明。
圖 1.16 是突變程序的流程,在圖 1.16 中在突變之前先從族群中的染色體
選擇出適合的染色體,接著根據定義的突變機率判斷是否執行突變運算,若要
執行突變運算,則根據染色體編碼方式執行不同的突變演算法,改變所選取染
色體的基因值以產生新的染色體。
結束突變 是 是否產生足夠
程序 染色體
根據染色體
挑選合適 隨機產生 產生的機率值 > 是
編碼執行突
染色體 機率值 突變機率 變運算
圖 1.16 突變程序的流程
1.4 |本書的架構
本書的架構說明如下:第二章中本書將介紹遺傳演算法理論,內容首先是
介紹遺傳演算法理論,接著針對遺傳演算法內容進行介紹,主要針對:遺傳演
算法的特性(包含全域搜尋、平行搜尋,以及簡易的計算……等等)
、遺傳演
算法相關理論以及基因演算法演化架構(分別以染色體編碼的型式分為二元編
碼型基因演算法演化架構,以及實數編碼型基因演算法演化架構介紹)
,之後
將會介紹其它相關的遺傳演算法(包含進化策略、進化型程式化,以及基因型
程式化等遺傳演算法的相關研究)
。
在第三章中本書將介紹遺傳演算法的學習架構,在這一章中本書主要分
為:基因演算法學習程序概述、染色體中基因值的編碼方式(分為二元編碼、
符號編碼,以及實數編碼的介紹)
、染色體效能的衡量-適應函數設計、選擇
與複製策略(分為競爭式選擇以及輪盤式選擇的選擇染色體策略,以及複製染
色體策略介紹)
、交配策略(分別以多點、雙點、單點、均一交配的交配運算,
以及各方法的適用時機分別介紹)
、突變策略(依染色體突變的種類,以及適
用時機分別介紹之)
,以及基因演算法參數設計(依遺傳演算法的初始參數,
以及最佳化參數設計分別介紹之)
。
在第四章中,本書針對遺傳模糊系統作介紹,主要內容分為:模糊系統的
基礎理論介紹(包含模糊及和歸屬函數以及推論……等等的相關介紹)
、接著
介紹遺傳演算法整合到模糊系統中的方法(在這裡本書將介紹模糊遺傳演算法
的架構)
、遺傳模糊系統的介紹(分別以遺傳模糊法則系統、模糊法則學習,
以及知識庫學習分別介紹之)
。
第五章中將延續第四章中所介紹的遺傳模糊系統,本章著重的是遺傳模糊
系統的學習程序,內容主要分為:利用遺傳演算法調整模糊法則的介紹(包
、接著將針對曼特寧模糊法則系統(Mamdani
含模糊遺傳演算法的相關介紹)
type fuzzy system)介紹基因調整歸屬函數的方法(其中將針對曼特寧模糊法
則系統的歸屬函數型態,以及利用染色體基因調整歸屬函數的方法分別介紹
面; 公分
參考書目:面
1.遺傳工程 2.演算法
368.4 96019957
5DC1
遺傳演算法及其應用
作 者 ─ 林昇甫(138.3)徐永吉(181.5)
發 行 人 ─ 楊榮川
總 編 輯 ─ 龐君豪
主 編 ─ 穆文娟
責任編輯 ─ 蔡曉雯 陳俐穎
封面設計 ─ 簡愷立
出 版 者 ─ 五南圖書出版股份有限公司
地 址:106台 北 市 大 安 區 和 平 東 路 二 段 3 3 9 號 4 樓
電 話:(02)2705-5066 傳 真:(02)2706-6100
網 址:http://www.wunan.com.tw
電子郵件:wunan@wunan.com.tw
劃撥帳號:0 1 0 6 8 9 5 3
戶 名:五南圖書出版股份有限公司
台中市駐區辦公室/台中市中區中山路6號
電 話:(04)2223-0891 傳 真:(04)2223-3549
高雄市駐區辦公室/高雄市新興區中山一路290號
電 話:(07)2358-702 傳 真:(07)2350-236
法律顧問 元貞聯合法律事務所 張澤平律師
出版日期 2 0 0 9 年 9 月 初 版 一 刷
定 價 新 臺 幣 5 5 0 元
※版權所有.欲利用本書內容,必須徵求本公司同意※
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066