编程语言
首页 > 编程语言> > c# – 轮盘赌选择程序

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