• 沒有找到結果。

第三章、 研究方法

3.2 基因演算法

最早是由Holland (1975)所提出,其原始構想是利用生物染色體基因架構的 觀念,來表示一個複雜系統的結構。舉例而言,一個0-1 整數規劃問題中,每個 決策變數皆可視為是一個基因(Genes),而每個可行解視為是染色體

(Chromosome);若任意產生一些可行解做為「父代(Parents)」,再經由基 因間的複製、交配(Crossover)產生新的可行解「子代(Offspring)」,然後保 留最佳的幾個解再產生下一組子代。重複執行此過程多次後,將可找到最佳解或 甚佳的近似解。

1. 初始族群(Initial Population)

在進行基因演算法之前,必頇先隨機產生 S 個染色體(Chromosome),

這 S 個染色體稱為初始族群。族群中的每一個染色體都屬於一個個體 (Individual),而族群之大小一般依據問題之複雜度而定。

初始族群常以隨機方式產生,目的為使用隨機的選擇讓族群中之基因能 具有多樣性,使得搜尋具有多點之特性。

2. 基因編碼(Encoding)

基因演算法包含多種編碼型態,二進位編碼、整數編碼、文字編碼或 符號編碼等,在一個染色體中通常使用同一種編碼型態,但也可同時使用多 種;下列舉兩例說明:

(1) 二元編碼

針對問題模式的型態定義可能的解集合,然後將問題編碼成二進位 碼 0 或 1,接著將二元數字組成一組字串,稱為染色體,多用於數值問 題。

(2) 實數編碼

實數編碼直接以數字的排列來表示染色體,通常用於排列順序型的 問題。

3. 適應函數(Fitness)

適應函數是基因演算法用以衡量染色體優劣的標準,用以評估原始問題 的目標函數。透過此函數的運算,計算每一個染色體的適應值,而此適應值 即表示染色體的優劣程度。

適應值的高低表示個體在族群中的合適程度,當適應值越大,表示生存 力越好,被保留下來遺傳後代的機率就高;反之,適應值較小的容易被淘汰。

4. 複製(Reproduction)

複製運算主要目的在保留族群中優質的染色體,使其得以繁衍優良的後 代。常用的複製方法有兩種:

(1) 輪盤式選擇法(Roulette wheel selection)

每個個體的適應函數值如同在輪盤中所占的面積,所以適應值越大 的越容易被選中。

(2) 競爭式選擇法(Tourment Selection)

由族群中隨機選出數個個體彼此競爭,將適應函數值高的個體放到 交配槽,如此重複直到交配槽的個體數與族群的個體數相同為止。

5. 交配(Crossover)

隨機選取兩個父代染色體,彼此交換位元資訊,族群內適應能力較好的 擁有較大的機會被隨機選取到,透過交配的方式以產生新的子代,以期望可

以得到較高適應值的染色體。常用的交配策略為以下三種:

(1) 單點交配(One-Point Crossover)

隨機挑選一個交配點,將其交配點之後的基因互換。

(2) 兩點交換(Two-Point Crossover)

隨機挑選兩個交配點,將其交配點之間的基因進行互換。

(3) 均勻交配(Uniform Crossover)

每個點都是交配點,由機率決定該點之基因是否該進行交換。

6. 突變(Mutation)

為了避免族群趨向過度單一化,或落入區域最佳解,加入突變因素,增 加母體的變異程度。以生物的觀點來說,突變的機率非常低,但在求解過程 都會提高突變率,以尋找適應性較強的物種;

突變有以下幾種型式:

(1) Swap Mutation(SM)

任選兩個基因,將其互調。

如 5 4 2 3 1 8 7 6 5 1 2 3 4 8 7 6 (2) Three Swap Mutation(TSM)

任選三點,採用隨機分式交換 如 5 4 2 3 1 8 7 6 7 4 5 3 1 8 2 6 (3) Adjustment Swap Mutation(ASM)

任選兩相鄰的點交換

如 5 4 2 3 1 8 7 6 5 4 3 2 1 8 7 6

7. 取代(Replacement)

在經過複製、交配及突變三個過程之後,在交配槽內會產生新世代族群的個 體,這個族群必頇經過取代舊族群並負起繁衍下一代之任務,通常族群取代的方 法有下列兩種:

(1) 整群取代

將舊族群中的舊個體全部以新族群的新個體取代,成為新的族群。

(2) 保留菁英

將舊族群中的適應函數值最高者或前幾名保留下來,新的個體則淘汰

掉適應函數值最低的幾名取代舊族群,成為新的族群。保留菁英法最 大的好處是能夠確保新一代的族群適應函數值不會降低。

8. 終止條件

一般而言,基因演算法之終止條件有三種決定方式:

(1) 當搜尋結果達到所要目標

(2) 當搜尋結果停滯不前或已經達到某種飽和現象 (3) 當搜尋到指定代數時

基因演算法之流程圖如圖 3.1 所示:

圖 3.1 基因演算法流程圖 (本研究整理)