c# – 轮盘赌选择程序
作者:互联网
是否有可能使用适应度值来评估群体中的每个个体,而不会将概率视为下面的伪代码
For all members of population
sum += fitness ( member)
End for
Loop until new population is full
Do this twice
Number = Random between 0 and sum
Currentfitness = 0.0
For each member in population
Currentfitness += fitness (member)
if Number > Currentfitness then select member
End for
End
Create offspring
End loop
以及代码的以下部分是做什么的?
Do this twice
我真的很困惑轮盘赌轮如何选择一对父母.有什么帮助吗?提前致谢
解决方法:
该代码用于选择随机元素,但具有根据特定权重的概率.
例:
>我们想要从具有以下权重的双元素数组中进行选择:{1,9}
>累积权重为{1,10}
>总重量是10
>我们选择1到10之间的随机数
>我们查看累积权重数组并找到我们的随机数所在的第一个索引
大于元素
>此索引是随机选择的元素的索引
直觉上,这个例子是有道理的:随机数的十分之九将落在1到9之间,导致第一个元素以0.9的概率绘制(就像指定的权重一样).
标签:c,c-4-0,genetic-algorithm,genetic-programming 来源: https://codeday.me/bug/20190620/1249593.html