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

这个架构正确吗?谢谢

4

2 回答 2

2

无视 80% 的人口不是 GA 的本意。为什么你还有它们?这将增加遗传漂移并导致过早收敛。

比赛选择的工作方式是,您选择 n 个人,然后将最好的个人作为父母 1。然后您再次选择 n 个人并获得父母 2。这些是您交叉的人。

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

于 2012-12-18T07:46:21.997 回答
0

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

  • 参加比赛的人必须是这一代人中最适合的
  • 比赛中选出的个人需要根据他们的健康状况进行一定比例的选择
  • 当您为下一个种群生成新个体时,您需要生成足够的数量以使种群恢复到以前的水平

另外,上面说:

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