我对遗传算法(和其他进化算法)中的精英概念有点困惑。当我保留然后将1个(或更多)精英个体复制到下一代时,
- 我是否应该在当前一代的父母选择中考虑精英解决方案(创建新种群)?
- 或者,我应该使用其他人(将精英放在一边)来制造新人口,然后将精英直接复制到下一代?
如果是后者,精英主义有什么用?只是为了不失去最佳解决方案吗?因为在这个方案中,它根本无助于收敛。
例如,在交叉/突变部分下,说明精英没有参与。
(当然,关于幸存者选择部分也可以问同样的问题。)
我对遗传算法(和其他进化算法)中的精英概念有点困惑。当我保留然后将1个(或更多)精英个体复制到下一代时,
如果是后者,精英主义有什么用?只是为了不失去最佳解决方案吗?因为在这个方案中,它根本无助于收敛。
例如,在交叉/突变部分下,说明精英没有参与。
(当然,关于幸存者选择部分也可以问同样的问题。)
精英主义只意味着最适合的少数人保证在下一代中占有一席之地——通常不会发生突变。除了自己被提出之外,他们仍然应该能够被选为父母。
那篇文章确实对精英主义采取了一种有点奇怪的方法。它建议复制最适合的个体——该个体在下一代中获得两个预留位置。其中一个插槽发生了变异,另一个则没有。这意味着,在下一代中,这些位置中至少有一个将作为父母重新进入普通人群,如果两者都被超越,可能还有两个。
这似乎是一种可行的方法。无论哪种方式——无论是选择精英作为父母同时让他们永存,还是复制精英然后变异一个——精英仍然应该与广大人群紧密相连,以便他们可以分享他们的有益基因。
@Peladao 的回答和评论也绝对是正确的——尤其是关于保持多样性和避免过早收敛的需要,精英应该只代表一小部分人口。
我认为没有理由不以精英为父母,除了可能在多样性方面有一点损失。(因此,与人口规模相比,精英的数量应该很少)。
由于精英是最好的个体,他们是使用交叉创造新个体的有价值的候选人,只要精英本身也被复制(不变)到新的群体中。
保持足够的多样性和避免过早的收敛总是很重要的,当精英不被用作父母时也是如此。
正如其他有效答案所指出的那样,存在用于实施精英主义的不同方法。
一般来说,对于精英主义,只是N
在新一代中复制个人,而不进行任何改变。然而,这些人可以通过适应度排名(真正的精英主义)来选择,以保证最好的人真正“被拯救”,或者他们可以通过比例选择来选择(正如机器学习一书中所指出的那样由米切尔 T.)。后者与轮盘赌选择中使用的相同,但请注意,在这种情况下,个体不用于产生新的后代,而是直接复制到新的种群中(幸存者!)。当精英主义的选择是成比例的时,我们在缺乏多样性和过早的过度拟合情况之间取得了很好的折衷。
应用真正的精英主义并避免使用“精英”作为父母会适得其反,特别是考虑到交叉操作的有效性。
简而言之,使用精英主义的要点是: