第三章 模式構建
4.2 遺傳演算法
4.2.1 重要名詞解釋
GAs 有幾個重要名詞解釋如下:
1. 基因(Gene)
代表問題的決策變數,其值稱為基因值(Allele)。一般係以一個基因代表 一個決策變數,基因值即代表決策變數。也可視問題需要,以連續數個基因 代表一個變數。
2. 染色體(Chromosome)
染色體由基因所組成,代表問題的一組可行解。染色體的基因數量(即為
3. 族群(Population)
族 群 由 一 群 染 色 體 所 組 成 。 族 群 內 的 染 色 體 數 量 稱 為 族 群 規 模 (Population size),此數量為主觀設定值,通常以 50 個或 100 個作為設定數值。如 果族群規模大,一次蒐尋的可行解個數較多,達到收斂所需的世代數較少,但每 次搜尋的可行解較少,所需時間較短,但達到收斂所需的世代數較多。
4. 適合度(Fitness)
適合度用來判斷染色體適應環境的程度,亦即該染色體所代表可行解的 目標函數,通常以f(mi)表示,mi為第i 個染色體。適合度值(Fitness value)係用來 代表該染色體在演化過程中,被選中進行交配的機率高低。因此,適合度越高的 染色體越有機會在世代演化中被選中產生子代,以保留其優良基因特質。因此,
如果是最大化的問題,則適合度值可直接以目標函數值表示,但如果是最小化問 題,則適合度可以目標函數值的倒數代表,或以合理大數減去目標函數值代表之。
5. 母代(Parents)與子代(Offsprings)
GAs 的演化過程係重複由現有族群中挑選特定數量的成對染色體進行 遺傳法則的運作,產生新的染色體,再由新染色體形成的族群,產生下一個族群。
因此,由現有族群中挑選出來,用以產生新染色體的,稱為母代,所產生的新染 色體則稱為子代。
6. 遺傳法則(Genetic principle)
GAs 與一般啟發式解法不同,尋優過程不需要原始問題的輔助資訊,而 完全仰賴遺傳法則進行「物競天擇」及「優勝劣敗」的演化尋優。而遺傳法則主 要有選擇(Selection)、交配(Crossover)及突變(Mutation)等三大法則。其中,選擇 法則主要係從現有族群隨機挑選母代以產生子代;交配法則主要是令成對母帶的 基因組合部分互換,以產生子帶;突變法則主要是令子代的一基因進行突變,以 避免現有族群所形成的基因池(Gene pool)過於僵化。
7. 編碼(Encoding)、解碼(Decoding)
GAs 係利用基因代表原始問題的決策變數,因此將決策變數轉換為 GAs 的基因,稱為編碼,將基因轉換;反之,將基因換回決策變數值則稱為解碼。由 此可知,編碼與解碼是GAs 與原始問題的溝通橋樑。
圖4.1 原始問題與 GAs 的關係
原始問題決策變數的基因編碼方式一旦決定,每一基因值的型態及染色體長 度便已確定,可進行遺傳演算法則的運算。但計算每一染色體適合度值時,仍必 須將染色體的基因再解碼回決策變數,帶入目標函數,方可獲得目標函數值。
常見的標碼方式有三種:
(1) 二元編碼(Binary coding)
二元編碼的基因值為 0 或 1,適合區位選擇 0-1 整數規劃問題,此中編碼方 式的蒐尋空間為2L(L 為染色體長度)。
表4.1 二元編碼的染色體型式
染色體 基因值 搜尋空間
A 01010111101010111000101010100101110 2L B 11110100010101000101110101010010100 2L
(2) 排列編碼(Permutation coding)
排列編碼的基因值代表排列順序,適合TSP、VRP 等順序問題,其搜尋空間 為L!。例如某貨物運送公司今日送貨預計配送五個地點,所追求的是最低成本的 路線安排,則基因值所代表的就是運送貨物的順序。如表 4.2 染色體A 所表示,
代表當日的貨物運送順序為:3Æ1Æ4Æ5Æ2,而因此問題特性為貨物運送點不 重複,所以搜尋空間為5!。
表4.2 排列編碼的染色體型式
染色體 基因值 搜尋空間
A 3 1 4 5 2 5!
B 8 3 5 1 6 7 2 4 9 9!
(3) 實數編碼(Value coding)
實數編碼的基因值可能是實數(Real number)、整數(Integer)、自然數(Natural number)或指示動作代號,這樣的編碼適用於一般的數學規劃問題以及整數規劃問 題。搜尋空間視各類而定。也可以連續數個基因代表一決策變數,例如決策變數 值域介於0 至 999 之間,則可以連續三個基因值代表一決策變數。以表 4.3 染色 體A 為例,決策變數為 x1=732、 x2=147、x3=394 以及 x4=501;染色體 B 是以基 因值代表實數變數;染色體 C 是以基因值代表文字變數;染色體 D 是以基因值 代表指令動作。
表4.3 實數編碼的染色體型式
染色體 基因值
A 7 4 3 2 1 4 7 3 9 4 5 0 1 B 32.11 680.2 4.21 65.123 26.8 209.21 C K L M D F M A S F O V D C D 向前 向後 向左 向右