第五十七章 解读轮盘赌算法

本文详细解读了轮盘赌算法的基本思想,强调了其与遗传算法的区别,并通过实例和代码展示了算法的实现过程。实验结果显示,累积概率选择法有效且结果接近于个体的原始选中概率。

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

文章目录

  • 基础解读
  • 轮盘赌算法原理与实现
    • 轮盘赌选择法操作过程
    • 附上代码

基础解读

轮盘赌算法的基本思想是:各个个体被选中的概率与其适应度函数值大小成正比,它是为了防止适应度数值较小的个体被直接淘汰而提出的。
为了弄清轮盘赌算法,我搜集了相关的文献和教材,发现很多文章都喜欢把轮盘赌算法与遗传算法、蚁群算法、蜂群算法等混入一起来解释,这样轮盘赌算法中就会冒出什么染色体、遗传下一代、信息正反馈、信息素、雇佣蜂等词语,看起来“高大上”,这样也使得简单实用的轮盘赌算法在理解和实现上都变得复杂。话说,轮盘赌算法是可以应用到遗传算法、蚁群算法中去,但其算法的机理和遗传算法、蚁群算法是相互独立的,它的实现机理和遗传算法、蚁群算法、蜂群算法等没有任何关系,也没有什么染色体、遗传下一代、信息正反馈等高大上的词汇。
轮盘赌算法的核心在于两个概率和个体选择策略:
(1)个体选择概率
(2)累积概率
(3)如何选择某个个体
1、个体个体选择概率比较好理解,适应度数值越高,它被选中的概率就越大,使用以下公式来表示。

其中,xi为某个个体。
2、累积概率把各个个体的概率使用不同长度的线段来表示,这些线段组合成一条直线,直线的长度为1(各个个体概率之和),这样在该直线中,某段的线段最长,就代表该个体被选中的概率越大。它的机理为:
(一)任意选择所有个体的一个排列序列(这个序列可以随便排,因为是某线段之间的长度为代表某个体的选择概率)
(二)任意个体的累积概率为该个体对应的前几项数据的累加和。
某个个体的累加概率公式如下:

这样,如果某个个体的适应度数值高,它所对应的个体选择概率就会越大,通过累积概率转换后对应的线段会越长。


3、选择某个个体策略为在区间[0 1]中随机产生一个数,看看该数字落在那个区间,很明显,对于适应度值较大的个体,对应的线段长度会长,这样随机产生的数字落在此区间的概率就大,该个体被选中的概率也大。同时,对于适应度较小的个体,线段长度会相对较短,随机数字在该区间的概率相对较小,但是也有被选中的可能,避免了适应度数值较小的个体被直接淘汰的问题。
综上,轮盘赌算法的实现步骤为
(i)初始化各个个体的适应度值(适应度值就是某个数值,什么数据都可以,只是对于不同的问题,这个适应度值代表的意义不一样)
(ii)根据公式计算各个个体的个体选择概率和累积概率
(iii)在区间[0 1]之间随机生成一个数,判断该数落在哪个区间内,如果落在某个区间,则该区间被选中。
例子:使用轮盘赌算法根据各个个体被选中的概率与其适应度函数值大小成正比原理,使用了[0.23 0.65 0.38 0.96 0.14 0.76 0.99 0.76 0.56 0.77];%10个模拟适应度值做了实验,计算了3次,每次循环100次。根据算法思想应该为适应度值越大,该个体被选择的概率也就越大,也就是说这100次中该个体被选中的次数应该越多。
第一次: 3 8 8 16 3 17 19 9 3 14
第二次: 2 10 8 15 1 8 18 12 11 15
第三次: 4 15 3 19 6 8 14 13 9 9
可以看到,对于适应度值为0.14的个体,这3次中选中的次数分别为:3、1、6,而对于适应度为0.99的个体,这3次中选中的次数分别为:19,18,14。基本满足了轮盘赌算法的原理。

轮盘赌算法原理与实现

轮盘赌选择法(roulette wheel selection)是最简单也是最常用的选择方法,在该方法中,各个个体的选择概率和其适应度值成比例,适应度越大,选中概率也越大。但实际在进行轮盘赌选择时个体的选择往往不是依据个体的选择概率,而是根据“累积概率”来进行选择。

轮盘赌选择法操作过程

以一个实例来讲述轮盘赌选择法的具体过程,现有一个抽奖轮盘如下:

img

抽奖轮盘

显然,当我们直接转动轮盘时抽到“参与奖”的概率最大,因为它占总体的比例最高,这也体现了“轮盘赌选择法”中所占比例越大被选中概率越高的思想。但我们一般不采用抽中“几等奖”的概率这种定性的指标来表述每个部分被选中的概率,而是引入“适应度”与“累积概率”的概念,其中每个部分被选中的概率与其适应度值成比例。设某一部分x(i)的适应度值表示为 f ( x i ) f(xi) f(xi),该部分被选中的概率为 p ( x i ) p(xi) p(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小酒馆燃着灯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值