本文實(shí)例為大家分享了python遺傳算法的具體代碼,供大家參考,具體內(nèi)容如下
1、基本概念

遺傳算法(GA)是最早由美國Holland教授提出的一種基于自然界的“適者生存,優(yōu)勝劣汰”基本法則的智能搜索算法。該法則很好地詮釋了生物進(jìn)化的自然選擇過程。遺傳算法也是借鑒該基本法則,通過基于種群的思想,將問題的解通過編碼的方式轉(zhuǎn)化為種群中的個體,并讓這些個體不斷地通過選擇、交叉和變異算子模擬生物的進(jìn)化過程,然后利用“優(yōu)勝劣汰”法則選擇種群中適應(yīng)性較強(qiáng)的個體構(gòu)成子種群,然后讓子種群重復(fù)類似的進(jìn)化過程,直到找到問題的最優(yōu)解或者到達(dá)一定的進(jìn)化(運(yùn)算)時間。
Ga算法中的幾個重要名詞概念。
個體(染色體):自然界中一個個體(染色體)代表一個生物,在GA算法中,個體(染色體)代表了具體問題的一個解。

基因:在GA算法中,基因代表了具體問題解的一個決策變量,問題解和染色體中基因的對應(yīng)關(guān)系如下所示:

種群:多個個體即組成一個種群。GA算法中,一個問題的多組解即構(gòu)成了問題的解的種群。
2、主要步驟
GA算法的基本步驟如下:
Step 1. 種群初始化。選擇一種編碼方案然后在解空間內(nèi)通過隨機(jī)生成的方式初始化一定數(shù)量的個體構(gòu)成GA的種群。
Step 2. 評估種群。利用啟發(fā)式算法對種群中的個體(矩形件的排入順序)生成排樣圖并依此計(jì)算個體的適應(yīng)函數(shù)值(利用率),然后保存當(dāng)前種群中的最優(yōu)個體作為搜索到的最優(yōu)解。
Step 3. 選擇操作。根據(jù)種群中個體的適應(yīng)度的大小,通過輪盤賭或者期望值方法,將適應(yīng)度高的個體從當(dāng)前種群中選擇出來。
Step 4. 交叉操作。將上一步驟選擇的個體,用一定的概率閥值Pc控制是否利用單點(diǎn)交叉、多點(diǎn)交叉或者其他交叉方式生成新的交叉?zhèn)€體。
Step 5. 變異操作。用一定的概率閥值Pm控制是否對個體的部分基因執(zhí)行單點(diǎn)變異或多點(diǎn)變異。
Step 6. 終止判斷。若滿足終止條件,則終止算法,否則返回Step 2。
流程圖如下所示:

3、主要操作介紹
3.1 種群初始化
種群的初始化和具體的問題有關(guān)。比如一個問題有n
新聞熱點(diǎn)
疑難解答
圖片精選