遺傳演算法選擇測試

2021-09-29 20:16:36 字數 991 閱讀 6052

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 是一類借鑑生物界的進化規律 適者生存 優勝劣汰遺傳機制 演化而來的隨機化搜尋方法。其主要特點是直接對結構物件進行操作,不存在求導和函式連續性的限定 具有內在的隱並行性和更好的全域性尋優能力 採用概率化的尋優方法,能自動獲取和指導優化的搜尋空間,自適應地...