簡介
演算法(algorithm)是計算機的常用術語,指一套經由有規則的數學運算或邏輯判斷,完成某一特定工作的方法或流程。遺傳(基因)演算法就是依照基因遺傳的原則寫成的程式。
達爾文進化論的基本精神是「物競天擇,適者生存」,弱者會被自然淘汰。染色體具有複製、交配與突變的能力,所以新生代(子代)的染色體通常比母代優良,劣質的染色體則逐漸被淘汰。
最佳化方法大致分成兩類:
- 特定型最佳化法則:針對某些特定的函數特性(例如可微分、凸函數)發展出來的方法,如梯度法。
- 廣義型最佳化法則:不論目標函數的特性為何,都不必修改方法就能處理。遺傳演算法屬於這一類。
遺傳演算法仿效生物界優勝劣敗的進化法則:選出特性較好的母代,隨機交換彼此的基因資訊,期望產生比母代更優秀的子代;如此反覆,最後得到適應性最強的物種。三個最主要的運算子是複製(reproduction)、交配(crossover)與突變(mutation)。
求解的基本流程 Procedure
- 把所有要搜尋的參數編碼成染色體(二進位字串),例如以 4 位元字串 1011 代表一個參數值;隨機產生 \(M\) 個初始物種。
- 依求解的條件設計適應函數(fitness function),計算每個物種的適應值;適應能力較高的物種才有資格被挑選進入下一步,這就是複製的過程。
- 接著進行交配與突變,完成一次演化;如此重複,直到滿足終止條件(例如演化到指定代數,或最佳解不再改進)。
流程圖依原講義重繪;文字為原講義內容,僅做段落與用詞整理。
