gpt4 book ai didi

artificial-intelligence - 遗传算法轮盘赌选择

转载 作者:行者123 更新时间:2023-12-04 08:43:39 24 4
gpt4 key购买 nike

我在理解算法时遇到问题。这是网上看到的最流行的

for all members of population
sum += fitness of this individual
end for

for all members of population
probability = sum of probabilities + (fitness / sum)
sum of probabilities += probability
end for

loop until new population is full
do this twice
number = Random between 0 and 1
for all members of population
if number > probability but less than next probability
then you have been selected
end for
end
create offspring
end loop


for all members of population
probability = sum of probabilities + (fitness / sum)
sum of probabilities += probability
end for

^^^这篇文章特别让我困惑。在人口中个人的背景下,“概率之和”甚至“概率”是什么?这些是个人一开始就有的值(value)观吗?

最佳答案

这是一段非常困惑的代码。

在第二个代码块中,probability 是附加到总体中每个成员的变量,sum of probabilities 是整个总体的全局变量。

现在,轮盘赌的比喻是说,整个种群都可以表示为一个轮盘赌,并且种群中的每个成员都在轮盘赌中占有一席之地,这与其相对适应度成正比。该代码正在执行该隐喻背后的肮脏工作——成员现在由线段 [0,1] 上的比例间隔表示,而不是轮子上的楔子,这是表示概率的惯用方式。

为此,从技术上讲,您需要为每个成员提供两个数字,一个开始和一个结束。但是第一个成员的开始将为 0;第二个成员的开始将是第一个成员的结束;依此类推,直到最后一个成员,其结尾为 1。

这就是代码的作用。 Sum of probabilities 从 0 开始,第一次循环时,probability 就是您凭直觉认为的结果。它标志着第一个成员的终点。然后更新“概率之和”。第二次通过循环时,“概率”是您直觉上认为的……被“概率之和”偏移了。就这样。

所以第一个循环是将适应度值相加作为标准化事物的前奏。您询问的第二个循环是标准化并在单位间隔内排列这些标准化概率。第三个(最复杂的)循环是选择两个随机数,将它们与人口中的两个成员进行匹配,然后将它们交配。 (请注意,假设这些成员采用某种类似于数组的格式,以便您可以根据您滚动的随机数顺序检查它们的端点。)

关于artificial-intelligence - 遗传算法轮盘赌选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8276958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com