遗传算法选择测试

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值