第三章、 研究方法
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 基因演算法流程圖 (本研究整理)