import numpy as np
import geatpy as ea
import random
pop=np.array([[
1,11,
21],[
2,12,
22],[
3,13,
23],[
4,14,
24],[
5,15,
25],[
6,16,
26],[
7,17,
27],[
8,18,
28]])
defselection
(pop)
: fitnv =[[
1.2],[
0.8],[
2.1],[
3.2],[
0.6],[
2.2],[
1.7],[
0.2]
]# 是乙個多維陣列,對應每個個體染色體的適應度
fitnv_l =
sum(fitnv,
)# 轉化為列表
fitnv2 = fitnv_l[:]
# 通過分片操作將列表fitnv_l的元素全部拷貝給fitnv2,產生乙個新副本
fitnv2.sort(reverse=
true
)# 適應度降序排序,產生乙個排序好的副本,同時保持原有列表不變
usef = fitnv2[5:
]# 精英選擇中未被選擇的個體
usef1=np.array(usef)
.reshape(3,
1)#轉化為多維陣列
return ea.rws(usef1,3)
# 得到被選擇個體的索引
code=selection(pop)
# print(code)
pop_1 = pop[code]
#陣列# print(pop_1)
python遺傳演算法 Python 遺傳演算法實現
關於遺傳演算法 遺傳演算法是仿照自然界中生物進化而產生的一類優化演算法。個人感覺遺傳演算法簡單粗暴,適應性廣。關於遺傳演算法的介紹網上有很多了,這裡按照我自己的理解簡單概括一下。編碼解碼,將待優化的引數編碼為dna序列,最簡單直接的為二進位制編碼 即有兩種鹼基的dna鏈 生成隨機初代 選擇,適應度 ...
遺傳演算法 python 簡書 遺傳演算法
優化的演算法有很多種,從最基本的梯度下降法到現在的一些啟發式演算法,如遺傳演算法 ga 差分演化演算法 de 粒子群演算法 pso 和人工蜂群演算法 abc 舉乙個例子,遺傳演算法和梯度下降 梯度下降和遺傳演算法都是優化演算法,而梯度下降只是其中最基礎的那乙個,它依靠梯度與方向導數的關係計算出最優值...
遺傳演算法歸納
遺傳演算法 genetic algorithm 是一類借鑑生物界的進化規律 適者生存 優勝劣汰遺傳機制 演化而來的隨機化搜尋方法。其主要特點是直接對結構物件進行操作,不存在求導和函式連續性的限定 具有內在的隱並行性和更好的全域性尋優能力 採用概率化的尋優方法,能自動獲取和指導優化的搜尋空間,自適應地...