編碼 -> 創造染色體個體 -> 種群
適應度函式
遺傳運算元
選擇交叉
變異
執行引數個人理解的遺傳演算法,給定乙個種群(元素),然後讓這些元素相互組合,允許每次發生小的改變,並且,在適應度函式的選擇下(相當於目標函式?),把與適應度相差比較遠的淘汰,留下比較好的元素,不斷組合,不斷發生小的改變(變異),不斷淘汰,從而獲得滿足適應度函式相近的最終元素。是否選擇精英操作
種群大小
染色體長度
最大迭代次數
交叉概率
變異概率
可以看出,比較關鍵的是適應度函式的定義,以及元素與適應度函式的評估準則的定義。有了這些,淘汰,變異等都比較好辦。
建立乙個染色體的類,其中包括了兩個變數:染色體chrom與適應度fitness。使用github執行的結果:之後就是初始染色體了,其中就牽扯到了各種用來初始化種群、計算適應度、找最優等函式,我在這裡分出了兩個檔案,分別為genetic.py和fitness.py。
這個影象的適應度函式是選出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 隨機生成初...