锦标赛选择的一般算法

时间:2012-12-17 23:19:10

标签: selection genetic-algorithm tournament

我有一个关于如何在GA中使用锦标赛选择的问题。假设我有100个人作为初始人口,然后我想在n代中应用锦标赛选择,所以每次迭代我最终只有20%的染色体。我想出的算法是:

choose 20% of the initial population
while (not end of iterations)
    select randomly n individuals from the left population (20%)
    if (number of chromosomes greater than two)
        select the best and mutate
        add to the population
    if (number of chromosomes greater than three)
        select best two of each pair and crossover them
        add crossover product to the population
    repeat process with new population
end while

这个架构是否正确?感谢

2 个答案:

答案 0 :(得分:1)

无视80%的人口并非GA的意图。为什么你还有它们?这会增加遗传漂移并导致早熟收敛。

比赛选择的工作方式是你拿n个人,然后把最好的个人作为父母1.然后再拿n个人获得父2个。这些就是你穿过的人。

对于100人的二元锦标赛,通常应该有足够的选择压力。

答案 1 :(得分:0)

可能是,但这取决于你在该大纲中所做的一些细节:

  • 选择参加锦标赛的个人需要成为这一代人中最适合的人
  • 选择来自锦标赛的个人需要选择一定比例的健身
  • 当你为下一个人口生成新的个体时,你需要产生足够的数量来使人口恢复到以前的水平

另外,那说:

  • 剔除20%对我来说似乎非常陡峭
  • 通常父母的数量是固定的,而不是变量或随机的
  • 通常(但并非总是)父母的数量是两个,因为你拥有的父母越多,你保留更长的有益图式的可能性就越小