• 沒有找到結果。

遺傳演算法(Genetic Algorithm, GAs)

第三章 基因模糊邏輯控制理論

3.2 遺傳演算法(Genetic Algorithm, GAs)

GAs 最早由 Holland 於 1975 年提出,係基於「物競天擇」及「遺傳法則」構 建而成的尋優理論。所謂「物競天擇」是指 GAs 會在尋優過程中去蕪存菁,剔除 較差的成員,保留較優良的成員。而「物競天擇」的操作方式則是模仿遺傳學複 製、交配及突變等三大法則,故稱之為遺傳演算法。

3.2.1 GAs 的重要名詞

GAs 有 10 個重要名詞分別解釋如下。

1.基因(gene)

基因是 GAs 最基本的元素,係用來代表問題的決策變數,其值稱為基因值 (allele)。一般係以一個基因代表一個決策變數,基因值即代表決策變數值。當 然也可視問題需要,以連續數個基因代表一個變數。

2.染色體(chromosome)

染色體係由基因所組成,即代表問題的一組可行解。染色體的基因數量(即稱 為染色體長度,length of chromosome)視問題決策變數的多寡及以多少個基因 代表一個決策變數而定。如果問題有 20 個決策變數,且以一個基因代表一個決策 變數,則每一條染色體均由 20 個基因組成,染色體長度為 20。一般而言,所有染 色體的長度均相同。

3.族群(population)

族群係由一群染色體所組成。族群內的染色體數量稱為族群規模(population size),此數量為主觀設定值,通常以 50 個或 100 個作為設定的數值。如果族群 規模大,一次搜尋的可行解個數較多,達到收斂所需的世代數較少,但每次搜尋 的時間較長。反之,如果族群規模小,由於每次搜尋的可行解較少,所需時間較 短,但達到收斂所需的世代數較多。

正由於族群是由一群染色體所組成,而染色體又是一定數量的基因所組成,故 族群內的基因組成,又稱為基因池(gene pool),也就是新的染色體均由此基因 池透過遺傳法則產生其基因組合。

4.適合度(fitness)

適合度用來判斷染色體適應環境的程度,亦即該染色體所代表可行解的目標函 數,通常以f(mi)表之,mi為第i個染色體。適合度值(fitness value)係用來代 表該染色體在演化過程中,被選中進行交配的機率高低。因此,適合度值愈高的 染色體愈有機會在世代演化中被選中產生子代,以保留其優良基因特質。因此,

如果是最大化問題,則適合度值可直接以目標函數值表之,但如果是最小化問題,

則適合度可以目標函數值的倒數代表,或以一合理大數減去目標函數值代表之。

5.母代(parents)與子代(offsprings)

GAs 的演化過程係重複由現有族群中挑選特定數量的成對染色體進行遺傳法 則的運作,產生新的染色體,再由新染色體形成的族群,產生下一個族群。因此,

由現有族群中挑選出來,用以產生新染色體的,稱為母代,所產生的新染色體則 稱為子代。

6.遺傳法則(genetic principle)

GAs 與一般啟發式解法不同,尋優過程不需要原始問題的輔助資訊,而完全仰 賴遺傳法則進行「物競天擇」及「優勝劣敗」的演化尋優。而遺傳法則主要有複 製(production)、交配(crossover)、突變(mutation)等三大法則。其中,複 製法則主要係從現有族群隨機挑選母代以產生子代;交配法則主要是令成對母代 的基因組合部分互換,以產生子代;突變法則主要是令子代的某一基因進行突變,

以避免現有族群所形成的基因池(gene pool)過於僵化。

7.編碼(encoding)、解碼(decoding)

GAs 係利用基因代表原始問題的決策變數,因此將決策變數轉換為 GAs 的基 因,稱為編碼;反之,將基因轉換回決策變數值則稱為解碼。由此可知,編碼與 解碼是 GAs 與原始問題的溝通橋樑,如圖 3-4 所示。

解碼

基因→決策變數

編碼

決策變數→基因

資料來源:馮正民、邱裕鈞[2004]

圖 3-4 原始問題與 GAs 的關係

原始問題決策變數的基因編碼方式一旦決定,每一基因值的型態及染色體長度 便已確定,可進行遺傳法則的運算。但計算每一染色體適合度值時,仍必須將染 色體的基因再解碼回決策變數值,代入目標函數,方可獲得目標函數值。

常用的編碼方式有三種,說明如下:

(1)二元編碼(binary coding)

二元編碼基因的值為 0 或 1,適合背包問題、區位選擇問題等 0-1 整數規劃問 題,此種編碼方式的搜尋空間為:2L(L 為染色體長度)。

(2)排列編碼(permutation coding)

排列編碼的基因值係代表排列順序,適合 TSP、VRP 等順序問題(ordering problem),其搜尋空間為 L!。

(3)實數編碼(value coding)

實數編碼係指基因的值可能是實數(real number)、整數(integer)、自然數

(natural number)或甚至只是動作代號,適用於一般數學規劃問題、整數規劃 問題。其搜尋空間視各類而定,如果為自然數(1-9)則搜尋空間為 9L,如果為實 數則搜尋空間無窮大。例如,求解一個整數數學規劃問題,如果決策變數的值域 介於 0 至 999 之間,則可以三個基因且每個基因值為自然數的方式代表一決策變 數。

8.世代(generation)

當某一族群經複製、交配及突變的遺傳法則運算後,會形成一個新的族群,此 一過程即稱為一個世代,如圖 3-5 所示。

01011101011010101...

01000010101100000...

10010100010010111...

11100100100100100...

10010100010011001...

01001010001100000...

10100101100100101...

01011101011010101...

世代 t 世代 t+1

複製 交配 突變

演化

資料來源:馮正民、邱裕鈞[2004]

圖 3-5 GAs 的世代演化過程 9.成熟(mature)

當族群中絕大部分的染色體都具有相同基因時,交配法則已無法產生一個不同 的子代,此時即已收斂(即稱為成熟)。但如果此一現象發生在尋優的初期,將使 尋優結果陷於局部解,而無法尋得最佳解,此現象則稱為早熟(premature)。

族群中有多少比例的染色體具有相同基因,稱為成熟率(mature rate),GAs 也常以演化過程是否達到設定的成熟率,來判斷尋優過程是否要結束。因為若成 熟率達到某一水準時,表示族群中的大部分染色體均相同,因此挑選出來用以產 生子代的成對母代極可能完全相同,而無法產生差異較大的子代,故可考慮停止 演化。

10.樣版理論(schemata theory)

有些染色體的基因組成雖不全然相同,在適合度的表現上卻具有極為類似的績 效。若細究它們的基因組成卻可以發現它們的部分基因具有十分類似的組成。這 種現象稱為樣版(schemata)。所謂樣版係指一種類似的基因組成結構,用以代表 一群在這些特定基因位置上具有相同值的染色體。

在基因編碼時,我們會以*代表 don't care,也就是該位置的基因可以是基 因值域內的任一個數值。例如,010*1*1 即代表一種基因組成型態,其包括屬此類 型的染色體群組,即:0100101、 0100111、0101101 及 0101111。同理,01**1*1 即代表由 8 個染色體所組成的群組。

所謂樣版位置(order of schemata)代表染色體中具有固定值的基因總數,

通常以o(H)表之。例如,o(01*1*0*)=4,而 o(10****)=2。而樣版長度(length of

schemata)代表染色體中第 1 個具有固定值的基因與最後具有固定值基因的間距,

通常以δ(H)表之。例如,δ(01*1*0*)=6-1=5,而δ(10****)=2-1=1。

由於 GAs 的交配及突變的運作方式,通常是以隨機選取交配點或突變點,以進 行基因之互換及改變。因此,當樣版長度愈長愈容易在交配及突變的演化過程中 被破壞,而無法保存。因此,適合度高、樣版長度短的樣版(稱為 building blocks)

會容易在世代演化過程中保存。

茲將原始問題與 GAs 的對應名詞彙整如表 3-1。

表 3-1 GAs 與原始問題的專有名詞對應一覽表

GAs 原始問題

基因 決策變數

染色體 可行解

族群 可行解組合

適合度 目標函數值

世代 搜尋週期

資料來源:馮正民、邱裕鈞[2004]

3.2.2 基本特性

GAs 具有與傳統尋優方法明顯不同的四個特性:

1.機率尋優法(stochastic search),即以機率作為遺傳法則之運作依據,而沒 有固定尋優型態可依循。

2.多點尋優法(multipoint search),一次對於整個族群進行運算,而不是對於 單一個體進行運算,不像傳統啟發式解法由某一可行解推演至下一個解,一次僅 尋優一個。

3.直接尋優法(direct search),直接以適合度值作為研判染色體之優劣與否之 評估指標,而無需其他輔助資訊(如梯度)。

4.平行尋優法(parallel search),即各染色體於遺傳法則下之運作係平行獨立 地進行。

因此,採用 GAs 求解最佳解時,某些特殊型態之遺傳因子,因較適合環境(適 合度較高者)而得以交配與繁衍,藉以產生更接近最佳解之染色體(即一組可行 解),並以突變方式,減少尋得局部最佳解之可能性。

由於 GAs 尋優時,主要是靠三個遺傳法則的運作,不需要輔助資訊(如梯度), 亦略有差異。以下僅就 Goldberg(1989)所提出之簡單 GAs(simple GAs; SGAs)

為例,簡單說明此三法則之運作方式:

1.複製或稱選擇(selection)

複製(選擇)係依據每一染色體之適合度高低,決定其繁衍子代多寡之機制。

其處理方式多以蒙地卡羅轉盤(Monte Carlo wheel)之概念加以篩選(如圖 3-6), 即每一染色體被選中進行繁衍後代之機率為該染色體之適合度值占族群每一染色

「優良」之遺傳因子得以流傳與繼承。

2.交配

交配乃是將經過複製過程篩選出之成對染色體以一設定機率(交配率)決定 是否進行配對,再經由彼此間所進行之基因交換行為產生子代。以隨機方式產生 的 0-1 均勻分配(uniform distribution)亂數值若低於交配率,則進行交配,

以新的子代取代母代。反之,則被挑選的母代不進行交配,直接置入新的族群中。

藉由交配機制,子代可同時具有母代雙方的優良基因,合組成更具適應能力之染 色體。其處理方式主要有兩步驟:(1)進行篩選後族群之隨機配對;(2)隨機產生 成對染色體之配對點,再依配對點之位置,進行基因互換。交配的方法亦有數種,

較常採用的方法有三:單點交配(one-point crossover)、雙點交配(two-point crossover)以及均勻交配(uniform crossover),如圖 3-7 所示。

交配率的高低會影響母代能否繼續生存於下一世代的機率。交配率愈高,母 代會被強迫以子代取代。交配率愈低,則產生子代的比率則會較低。一般交配率 設定為 0.8~0.9 間。但如果交配的機制是由兩個母代產生兩個子代時,不一定以

交配率的高低會影響母代能否繼續生存於下一世代的機率。交配率愈高,母 代會被強迫以子代取代。交配率愈低,則產生子代的比率則會較低。一般交配率 設定為 0.8~0.9 間。但如果交配的機制是由兩個母代產生兩個子代時,不一定以