又到了歡樂星期二(到底哪裡歡樂了???)
給自己一點活力(動力)
今天又是一個追公車下山的日子(嘆氣)
上週已經講解了基因演算法的複製與選擇(reproduction & selection) 、 **交配(crossover)**兩個部分
那今天就要進入 突變(mutation) 的流程
那什麼是 突變(Mutation) 呢?
突變(Mutation)是基因演算法中的最後一個步驟
也是基因演算法中很特殊的機制
而突變(Mutation)並不是每一個染色體(Chromosome)都會發生
會根據所設定的突變率(Mutation Rate)
突變機制有兩個目的
- 開發新的搜尋區域,讓尋求解的時候產生更多的可能性
- 重新發現新的搜尋區域
在撰寫程式時,每一染色體都有一個突變率
當染色體的突變率低於設定的突變率則會進行突變
這邊先假定突變率為0.6
一般來說不會設定這麼高
普遍的 突變率設定在0.001~0.05之間
當符合突變條件後,會隨機選擇染色體(Chromosome)上的某一基因(Gene)
進行變換,將0變成1;1變成0
由於每一個基因都有機會發生突變
所以會使得整體的搜尋更加的零散
突變的過程可以防止在運算過程中過早收斂
導致結果只有局部最佳值而無法得到全域最佳解
今天給大家講一般所理解的突變方式
明天會給大家帶來其他突變的方式
敬請期待~~~
相關資料來源: