在锦标赛选择中选择父母

Und*_*ned 2 artificial-intelligence genetic-algorithm

我正在写一个 GA,我不确定在选择父母时我是否想通过我的人口循环找到每个使用锦标赛选择的父母,或者我是否打算为每个解决方案使用比赛选择找到两个父母在我的人口中。

哪一个?

deo*_*ong 5

我不太清楚你的意思是你建议的替代方案之间的区别,但一般来说,它的工作方式是你随机选择两个人,保留最好的一个,然后成为父#1。然后你再随机选择两个人,保留最好的一个,它就成为 Parent #2。这两个父母然后重组产生进入儿童群体的后代。重复直到你有足够的后代。

因此,您可以使用类似以下循环的方式生成子种群。(您可以为每组父母生成多个后代……调整循环边界以适应您的情况)。

for i = 1 to N 
    pick individual t1 at random from parent population
    pick individual t2 at random from parent population
    parent1 = winner(t1, t2)

    pick individual t1 at random from parent population
    pick individual t2 at random from parent population
    parent2 = winner(t1, t2)

    generate offspring from parent1, parent2
    mutate offspring
    evaluate offspring
    add offspring to child population
end for
Run Code Online (Sandbox Code Playgroud)