轮盘赌算法

轮盘赌样子

轮盘赌算法_第1张图片

右上边饼图不同颜色的区域,面积大小对应着不同的概率,面积越大,代表概率越大。假想把这张图打印到一张纸上,随机扔一把小米,落在3区域的小米相对来说数量最多。好了,现在我一粒一粒的扔,扔了10粒米(意味着只选了10个样本),假如5个落在3区域,3个落在1区域,1个落在4区域,1个落在5区域。

在这里插入图片描述

在应用中,比方说,7号米粒利用概率38%(因为落在了3号区域),8号米粒利用概率14%,9号米粒利用概率38%,10号米粒利用概率31%。
这样有什么好处?避免了所有的米粒都选择概率最大的区域3(所谓的最优值问题),换句话,各个概率(各种情况)都相应的被使用到了,避免了陷入局部最优的问题。
问题又来了,实际编程中该怎么用?往下看。

轮盘赌算法_第2张图片

把概率整合到一条线上,然后随机产生数据a,a属于[0,1],比方说

在这里插入图片描述
轮盘赌算法_第3张图片

这样,不同的数据对应不同的数据概率,并且整体上还保留了“区域概率越大,对应数据越多”这一分布!

轮盘赌算法

轮盘赌选择方法又称比例选择方法,其基本思想是:各个个体被选中的概率与其适应度大小成正比。

具体操作如下:

(1)计算出群体中每个个体的适应度f(i=1,2,…,M),M为群体大小;

(2)计算出每个个体被遗传到下一代群体中的概率

(3)计算出每个个体的累计概率 (q[i]称为染色体xi的积累概率)

轮盘赌算法_第4张图片

(4)在[0,1]区间内产生一个均匀分布的伪随机r;

(5)若r

(6)重复(4)、(5)共M次。

转载自:
https://blog.csdn.net/u010807846/article/details/51088750
https://blog.csdn.net/xuxinrk/article/details/80158786
https://www.cnblogs.com/adelaide/articles/5679475.html

你可能感兴趣的:(群智能算法)