事先声明,我没有系统的学习过该工具箱的函数细节,所以下面的都是我个人的推测而已。

计算公式是这个 2-0+2*(0-1)*(pos-1)/(nind-1)。就这么看,我看了半天也没明白这东西有什么用,后来我写了个栗子,突然明白了。看下图。

Sheffield大学的遗传算法工具箱--Ranking函数

不知道读者在使用工具箱之前有没有手写过遗传算法的选择函数,染色体的选择过程比较精巧,使用轮盘赌来对染色体进行选择,而轮盘赌的第一步就是将个体的适应度值取倒数,以便轮盘赌对染色体进行选择。之前我们要取适应度值最小的染色体,但是一旦适应度取了倒数,所有的操作就是相反的了,即轮盘赌取适应度倒数的最大值。

回到上图,有没有异曲同工之处。ranking函数做了一个比取倒数还牛的事,就是它可以把“倒数”控制在任意范围,一般默认是0到2之间,这个范围就叫做压差。

适应度最差的6号值高达10,于是在排序的过程中,ranking(6号的值)=0,最小,最不容易被选择,而ranking(1号的值)=2,相对来说最容易被选择。

相关文章:

  • 2021-10-09
  • 2021-07-19
  • 2022-01-03
  • 2021-07-24
  • 2022-12-23
  • 2021-11-28
  • 2021-04-10
  • 2022-12-23
猜你喜欢
  • 2022-01-13
  • 2022-12-23
  • 2022-12-23
  • 2021-09-04
  • 2022-12-23
  • 2021-03-31
  • 2022-12-23
相关资源
相似解决方案