我理解遗传算法的重要部分,例如健身,选择方法,变异,交叉等等,但我没有看到一个例子,展示下一代如何保持与上一代相同的尺寸。
可能因此,我尝试编码的所有内容都导致我的解决方案陷入局部最低点。
例如,假设最初的人口数是100,有人可以告诉我下一代如何保持100的特定细分吗? (我知道有很多方法可以做到这一点,但有一种方法可以让我走上正轨)。
e.g。
1. Choose 20 best solutions using roulette wheel selection
2. ...
...
k. You now have 100 solutions. Use this as your new population and repeat from step 1
非常感谢。
答案 0 :(得分:2)
有几种策略可以将人口规模保持在固定值。例如,您可以先将后代添加到整个群体中,评估新个体,然后按适合度对群体进行排序,并持续杀死最差的个体,直到达到所需的大小。这种方法在文献中被称为“mu + lambda”(因为mu通常用于表示种群大小,而lambda是每代产生的后代的大小)。
在伪代码中:
1. Generate initial population (size mu)
2. Evaluate initial population
3. Choose parent individuals and produce offspring (size lambda)
4. Evaluate offspring, then add offspring to population
5. Sort population (now of size mu+lambda) by fitness value
6. Kill the worst individuals until population is again of size mu
7. Unless a termination condition is satisfied, goto 3
在文献中还有其他解决方案:另一种流行的选择是“mu,lambda”,其中固定的一部分人口被后代取代,无论它们的价值如何,但在我看来,最好先从“ mu + lambda“策略,然后看看它是否适合你的问题。
答案 1 :(得分:1)
一种非常简单易行的方法称为Microbial Genetic Algorithm,它将确保种群大小保持不变。