2012-02-08 85 views
2

我写了一个GA,我不知道如果选择父母时,我想通过我的人口循环找到每个父母使用锦标赛选择或如果我打算找到两位父母在我的人群中为每种解决方案使用了特征选择。选择锦标赛选择的父母

这是哪一个?

回答

4

我不太清楚你的建议选择之间的区别是什么,但一般来说,它的工作方式是你挑选两个随机个体,保持最佳状态,然后变成父母#1。然后你再挑选两个随机个体,保留最好的一个,然后它变成父母#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 
+1

谢谢。 这是否意味着你有时会交叉同一父母? 值得一提的是,锦标赛的大小不一定限于两个。你可以随意选择许多随机父母,并找到最适合的人选。 – Undefined 2012-02-08 16:17:34

+0

如果你自己与父母交叉,你显然会得到一个原始的克隆,以及一些典型的突变机会。我想,这是一个判断的呼叫,但我不会这样做,因为如果你有一两个成员比其他成员更合适,你可以很快地消灭你的多样性。 – Novak 2012-02-08 18:32:51

+0

而且我经常保留一代人的头号一两名成员克隆。除了我的预订外,我不希望发生这种意外。 – Novak 2012-02-08 18:33:31