2012-12-17 58 views
0

我有一个关于如何在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 

这个模式是正确的吗?谢谢

回答

1

无视80%的人口不是GA的意图。为什么你有他们呢?这会增加遗传漂变并导致早熟收敛。

比赛选择的作品,你可以拿n个人,然后把最好的个人当作父母1,然后再把n个人拿回来,并获得父母2.这些就是你穿过的人。

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

0

很可能的,但是这取决于一些的你在一个大纲做了详细介绍:

  • 为选择比赛的个人需要成为一代最适应的个体
  • 选择比赛的个人需要当您生成下一个新种群的个体进行一定比例的选择自己的健身
  • ,你需要生成足够的使人口回升到其p revious水平

另外,说:

  • 扑杀至20%似乎很陡我
  • 通常父母的数量是固定的,不可变或随机
  • 通常(但并不总是)父母的数量是两个,因为你拥有的父母越多,你保存较长的有益图式的可能性就越小