遗传算法的选择阶段———“轮盘赌”法

本文详细解析了遗传算法中的轮盘赌选择策略,包括个体选择概率计算、累积概率的作用及轮盘转动过程,通过实例说明了如何根据适应度大小进行个体选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

轮盘赌中个体被选中的概率与其适应度大小成正比。

(1)计算各个个体的被选择概率
设群体的规模为N,F(xi)表示第i个个体的适应值,则第i个个体被选中的概率由下式给出:
在这里插入图片描述
(2)计算累积概率
为什么要计算累积概率?
上一步计算得到每个个体被选择的概率时,可容易看出,各个个体被选择概率的总概率和为1(相当于根据适应度进行归一化处理)。现在需要把这N个体按比例放入0~1范围的线段里,每个个体应该占用多长的线段呢?用线段的长度代表被选择概率。
在这里插入图片描述
因为轮盘没有方向,任何位置开始旋转都允许,代码中,我们生成一个[0,1]中的随机数,落在0~1线段上的哪段位置上的概率就是各个个体被选择的概率。

(3)最后转轮盘

伪代码:选择一个个体进入种群(如要选择多个个体请加外循环)
(a) R=random(0,1), S=0, i=0【R表示从0~1随机选一个数】
(b) IF S>=R,则转到(d)
(c ) S=S+P(xi) , i=i+1, 转到(b)【S记录着累积概率】
(d)即为被选中的个体,输出i,结束.

例子:
(图引自https://www.cnblogs.com/gaosheng12138/p/7534956.html)
在这里插入图片描述
比如,一轮选择中生成随机数R=0.58,则本轮选择的个体是4号;下一轮选择中生成随机数R=0.96,则本轮选择的个体是9号,同理。

*注意:
个体排序顺序会影响“轮盘赌”法;当适应性值相差不大的情况,该方法与随机选没什么区别,此时难于控制进化方向和速度;该方法是属于有放回的选择,不适合不放回的情况。

*如有错误,欢迎联系交流更正。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值