进化算法——蛙跳算法Python代码

本文介绍了蛙跳算法的原理,包括种群分组策略和种群更新策略,并详细阐述了如何将局部最差个体进化为局部或全局最优。接着提供了一段Python代码实现,帮助理解算法过程。
摘要由CSDN通过智能技术生成

进蛙跳算法Python代码

蛙跳算法原理

假设种群个数为 c h r o m n u m chromnum chromnum , 分组个数为 g r o u p n u m groupnum groupnum,那么每个组中的个体数量为 c h r o m n u m / g r o u p n u m chromnum / groupnum chromnum/groupnum

  • 种群分组策略:先获得种群的适应度值,将适应度值从大到小排序,然后按照顺序依次分组,即排序第一为第一组第一个,排序第二位第二组第二个。。。直至分组完成。
    假设一个种群有100个个体 c h r o m [ 100 , d i m ] chrom[100,dim] chrom[100,dim],要分成5组,将种群的适应度值从大到小进行排序,得到 o r d e r _ c h r o m order\_chrom order_chrom,则 o r d e r _ c h r o m [ 0 ] order\_chrom[0] order_chrom[0]为全局最优个体, o r d e r _ c h r o m [ 0 : 5 ] order\_chrom[0:5] order_chrom[0:5]为每个组的最优个体,即局部最优个体, o r d e r _ c h r o m [ − 5 : 0 ] order\_chrom[-5:0] order_chrom[5:0]为每个种群的最差个体,即局部最差个体。

  • 种群更新策略主要分为三步

    1. 采用更新策略,将局部最差个体向局部最优个体进化,如果更新后得到的种群适应度值有所提高,则继续进行下一步,否则,继续更新;
      F w = F w + r ( F b − F w ) , F w 为 局 部 最 差 个 体 , F b 为 局 部 最 优 个 体 , r 为 ( 0 , 1 ) 之 间 的 随 机 数 F_w = F_w + r(F_b - F_w), F_w为局部最差个体,F_b为局部最优个体,r为(0,1) 之间的随机数 Fw=Fw+r(F
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值