Genetic Algorithm 基因演算法
了解有關基因演算法之原理以及方法,從中了解相關的基本知識,找出有關GA的應用,在此整理出一些重點出來。基本上基因演算法就是一個解決最佳化問題的工具,至於什麼叫做最佳化問題,類似於我在大三上學期管理科學課程中所學習到的工作排程問題。
例如:我有N個工作以及M台機器每個工作在每台機器上所執行的時間可能有所不同,而我們要搜尋一個最佳的工作方式,使花費時間達到最短。
首先大概講解一下基因演算法的流程:
一開始產生隨機n個染色體(n由使用者決定)
利用適應函數計算所有染色體的適應值
依每個染色體的適應「選擇、複製」染色體
對留下的染色體做交配及突變的動作
重複以上2~4步驟(執行完一次稱為一次疊代)直到收斂,基因演算法就是經由上面的步驟一步一步搜尋出較好的解。
則透過實際演練個過程為:

假設我們要尋找為適應值小的,故小的適應值會被留下。


經過選擇、複製後,我們發現【0010010】這組染色體多了一個,而0011010】這組染色體消失了,接下來將兩組染色體做兩兩交配,左邊兩個配,右邊兩個配。

利用突變,紫色部分為突變所選擇到的位置。

接著不斷重複以上步驟,直到收斂。
