蛙跳算法原理
假设种群个数为 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]为每个种群的最差个体,即局部最差个体。 -
种群更新策略主要分为三步
- 采用更新策略,将局部最差个体向局部最优个体进化,如果更新后得到的种群适应度值有所提高,则继续进行下一步,否则,继续更新;
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
- 采用更新策略,将局部最差个体向局部最优个体进化,如果更新后得到的种群适应度值有所提高,则继续进行下一步,否则,继续更新;