关于交配池、选择和交叉的问题

Question about mating pool, selection and crossover

我目前正在尝试编写一种遗传算法,旨在找到时间表规划的最佳解决方案。我已经成功地创建了种群并且还能够计算出适应度,我混淆的是交配池和 selection.

我打算做锦标赛解决方案。

目前我所知道的是,我需要 select 一个随机数的候选人,并选择 "most fit" 和第一个 parent。重复该步骤并找到第二个 parent。相互交叉。但是我需要做多少次交叉?直到和我设定的人口规模一样大。那么我的原始人口呢?

有人可以帮助我吗?

你原来的人口死亡。如果你想保留最好的解决方案,你可以将它复制到新的人口中(这被称为 elitism)。然后你产生后代,直到你的新人口满了。看看这个 Outline of the Basic Genetic Algorithm.

Cross-over 只是从 parents 生成 children "different" 的一种方法(除了突变)。这与您 select 好 parents 的方式(例如锦标赛)无关。但请注意,GA 变体太多,这可能不适用于所有变体。

我会考虑只从突变开始(没有 cross-over)。这更容易实现,有时也足够好。您可以随时添加 cross-over,看看是否有改进。