遗传算法--性别遗传算法与无性繁殖遗传算法相比有哪些优势?

9

直觉上我会认为如果我想找到“最佳”参数集,我可以从许多子代中选择表现最好的1个人,让他生成100个类似于自己的子代,选出表现最佳的人并重复这个过程。那么选择最好的2个人并交叉繁殖有什么意义呢?同样的,为什么不选择3、4或10个父母(“混合衍生”的合子)来创建每一代的子代?

4个回答

4
“从很多孩子的子集中” - 这些孩子是如何产生的,什么机制使它们彼此不同?“生成与他自己类似的100个孩子” - 如果不是完全像他自己,那么是什么机制使它们相似但不完全相同?
性繁殖是回答这些问题的机制。通过性繁殖,您创建由适应性强的个体基因组成的新组合。仅仅使用随机突变作为创造多样性和新组合的机制是随意的尝试。而性繁殖使用成功个体的基因创造新的组合,这不是简单的随机。
探讨哪种更好:有性 vs 无性是一个好问题,在这个性 vs 无性的话题上有很多文章,并且并非所有人都支持性繁殖。有成功的无性机制,虽然我不确定您在问题中提出的替代方案是否在其中。

1
这样想吧:你最出色的员工在10个领域中可能有3个是超过平均水平的。他的后代(通过无性繁殖)可能在同样的3个领域中有优势,也可能是4个或2个,这取决于基因突变。但是,最优秀的男性和女性在10个领域中可能有5个是超过平均水平的(他在3个领域中超过平均水平,她在3个领域中超过平均水平,也许还有1个领域他们重叠)。因此,如果他们有足够多的孩子,其中一个孩子可能在5个领域中超过平均水平(也可能没有继承任何优势——这就是生活)。如果这个有5个优势领域的孩子与另一个有5个优势领域的孩子结婚,那么虽然有更多的机会重叠优势,但在我们的“10基因”世界中,孙子辈仍然有很大的机会拥有更多的优势基因。

遗传算法的核心是在复杂环境中重新组合多个特征。这并不直观,因为我们通常不认为同时调整控制面板上的每个旋钮是优化的好方法,但如果您有许多参数并且它们相当独立,那么这样做是可行的。


1

如果你的父母越少,那么你就越有可能陷入一个本地最优解——可能是一个不太好的本地最优解——很长一段时间。只有一个父母时,唯一剩下的搜索机制是个体突变。

如果你的父母越多,那么你就越不可能捕捉到原始父母在第一次繁殖中被选中的任何特征。具体情况取决于你的n元交叉如何工作,但直观上讲,你拥有的父母越多,你从任何一个特定父母那里获得的遗传物质就越少,孩子们继承(并因此改进)父母的任何有益的多染色体特征的可能性就越小。

这与模式定理有关。


0

从技术上讲,您可以在您的种群中拥有源自群交的合子,但是没有数学证明(至少我所知道的)表明它们会改善多样性或算法找到的最终结果。此外,群交操作符(使用您的术语)比简单的双亲操作符更复杂,并且不容易被学生理解。因此,它们没有被广泛宣传(这并不意味着它们不被允许)。

实际上,您可以在遗传算法中同时使用单亲和双亲操作符。正如一个答案已经指出的那样,单亲元素相当于局部搜索,从技术上讲,您将实现一种模因算法,通常会改进简单的遗传算法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接