python遺傳演算法的實現

2021-08-14 12:51:49 字數 889 閱讀 5307

編碼 -> 創造染色體

個體 -> 種群

適應度函式

遺傳運算元

選擇交叉

變異

執行引數

是否選擇精英操作

種群大小

染色體長度

最大迭代次數

交叉概率

變異概率

個人理解的遺傳演算法,給定乙個種群(元素),然後讓這些元素相互組合,允許每次發生小的改變,並且,在適應度函式的選擇下(相當於目標函式?),把與適應度相差比較遠的淘汰,留下比較好的元素,不斷組合,不斷發生小的改變(變異),不斷淘汰,從而獲得滿足適應度函式相近的最終元素。

可以看出,比較關鍵的是適應度函式的定義,以及元素與適應度函式的評估準則的定義。有了這些,淘汰,變異等都比較好辦。

建立乙個染色體的類,其中包括了兩個變數:染色體chrom與適應度fitness。

之後就是初始染色體了,其中就牽扯到了各種用來初始化種群、計算適應度、找最優等函式,我在這裡分出了兩個檔案,分別為genetic.py和fitness.py。

使用github執行的結果:

這個影象的適應度函式是選出y值最大的,其中橫座標表示的是,500代每一代的y的最大值。

這個是,函式的曲線圖。

如果要用遺傳演算法來實現,只需要修改適應度函式。

參考:ga github;

python實現遺傳演算法 知乎

python遺傳演算法 Python 遺傳演算法實現

關於遺傳演算法 遺傳演算法是仿照自然界中生物進化而產生的一類優化演算法。個人感覺遺傳演算法簡單粗暴,適應性廣。關於遺傳演算法的介紹網上有很多了,這裡按照我自己的理解簡單概括一下。編碼解碼,將待優化的引數編碼為dna序列,最簡單直接的為二進位制編碼 即有兩種鹼基的dna鏈 生成隨機初代 選擇,適應度 ...

遺傳演算法python實現

i 實現功能 求解函式 f x x 10 sin 5 x 7 cos 4 x 在區間 0,9 的最大值 ii 原理 遺傳演算法 genetic algorithm 遵循 適者生存 優勝劣汰 的原則,是一類借鑑生物界自然選擇和自然遺傳機制的隨機化搜尋演算法。遺傳演算法模擬乙個人工種群的進化過程,通過選...

遺傳演算法 python實現

encoding utf 8 import math import random import operator class ga def init self,length,count 染色體長度 self.length length 種群中的染色體數量 self.count count 隨機生成初...