一個例子理清楚遺傳演算法
阿新 • • 發佈:2019-02-18
一、 遺傳演算法的三個主要操作
1、選擇
2、交配
3、變異
遺傳演算法廣泛的應用於最優化問題求解之中!
簡單遺傳演算法SGA的實現步驟:
1、編碼
2、評價
3、適應函式
4、交配規則
5、停止條件
二、選擇採用的演算法
採用確定性演算法:
交配規則:
變異:
就是將隨機指定某個位進行變異,0變成1,1變成0!目的是近親繁殖的時候出來的資料變化不大,需要變異新的基因以跳出區域性最優解。
例題
1、編碼:採用二進位制形式編碼,由於變數的最大值31,固採用5個位即可表達全部的值。
由於x的定義域是[0, 31]間的整數,剛好可以用5位二進位制數表示,因此可以用5位二進位制數表示該問題的解,即染色體。如00000表示x=0,10101表示x=21,11111表示x=31等。
2、適應函式,這裡可以直接採用f(x)上面的函式作為適應函式。
假設群體的規模N=4,交配概率Pc=100%,變異概率Pm=1%。
設隨機生成的初始群體為:
01101,11000,01000,10011
這裡選擇的演算法採用上面的確定演算法:得到第0代如下
配對進行交配,其中交配位是隨機選擇的rand(5):位的話是從左邊往右邊數。
交配的結果得到第一代的情況表:
繼續交配:
由第1代和第0代的結果可知交配結果變化不是很大,因而需要選擇變異!
變異位也是隨機。
得到第二代的情況表:
交配結果:
看到下面的圖,平均值已經趨近於平緩,因此可以停止交配,關於停止交配的終止條件可以是:1、到達設定的迭代次數,2、輸出結果日漸平緩
最後得到的問題最優解為:
x:11111
對應的整數是x=31