遗传算法:初始种群大小为 N 的示例

Genetic algorithms : An example with an initial population of size N

我了解遗传算法的重要部分,例如适应性、选择方法、变异、交叉等。但我还没有看到一个例子来说明下一代如何保持与上一代相同的大小。

可能因此,我尝试编写的所有代码都导致我的解决方案陷入局部最小值。

例如,假设初始种群大小为 100。谁能告诉我下一代如何保持在 100 大小的具体细目分类? (我知道有很多方法可以做到这一点,但一种方法应该让我走上正轨)。

例如

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

非常感谢。

有多种策略可以将人口规模保持在固定值。例如,您可以先将后代添加到整个种群中,评估新的个体,然后根据适应度值对种群进行排序,并不断杀死最差的个体,直到达到所需的规模。这种方法在文献中称为 "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" 策略,然后看看它是否适合您的问题。

一种非常简单且易于实施的方法称为Microbial Genetic Algorithm,它将确保人口规模保持不变。