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]])
def selection(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)
遗传算法选择测试
猜你喜欢
转载自blog.csdn.net/huahua20190514/article/details/103186534
今日推荐
周排行