遗传算法 - 与无性遗传算法相比,性有哪些好处?

时间:2012-07-07 22:53:38

标签: genetic-algorithm evolutionary-algorithm genetic-programming

直觉我认为,如果我想找到“最佳”参数集,我可以简单地从一大群孩子中选出表现最好的1个人,让那个人产生100个与自己相似的孩子,挑选最好的表演者和重复。具体目的是挑选最好的2和杂交?那么,为什么不选择3个,4个或10个父母(“狂欢衍生的”受精卵)来创造每一代孩子呢?

4 个答案:

答案 0 :(得分:4)

“来自很多孩子的子集” - 这些孩子是如何制作的,以及他们彼此不同的机制是什么? “产生100个与自己相似的孩子” - 如果不完全像他自己,那么是什么机制使它们相似但又不相同呢?

有性生殖是回答这些问题的机制。通过有性生殖,您可以创建新的组合,由适合个体的基因组成。仅使用随机变异作为创建多样性和新组合的机制就是它所说的 - 随机 - 在黑暗中拍摄。有性繁殖利用成功个体的基因创造了新的组合,这不仅仅是随机的。

质疑哪个更好,性与无性是一个很好的问题,有很多关于性与无性这个话题的文章,并不是所有人都喜欢性。有成功的无性机制,虽然我不确定你在问题中提出的替代方案是否属于他们之中。

答案 1 :(得分:1)

以这种方式思考:你表现最佳的人可能比平均水平更好,我只想说,10个区域中的3个区域。他的小变化(他的无性繁殖的孩子)可能会有优势同样的3个区域:可能是4个,也许是2个,取决于突变。但表现最好的男性和表现最好的女孩在10个区域中可能有5个区域更好(3个区域的平均成绩优于平均水平,3个区域的平均成绩优于平均水平,并且可能有1个区域重叠)所以如果他们有很多孩子,其中一个可能在5个方面优于平均水平(也许其中一个可能没有继承优势 - 例如休息时间)。如果这个有利于5个区域的孩子与另一个5区优势孩子交配,那么虽然更有可能重叠优势,但仍有很大机会(在我们的“10基因”世界中)孩子将拥有更有利的基因)。

这是复杂环境中几个特征的重组,它实际上是遗传算法的核心。这并不直观,因为我们通常不认为一次调整控制面板上的每个旋钮都是一种很好的优化方法,但是如果你有很多参数并且它们非常独立,那就可以了。

答案 2 :(得分:1)

你拥有的父母越少,你就越有可能陷入局部最佳状态 - 可能是一个不太好的局部最佳状态 - 很长一段时间。只有一个父母,剩下的唯一搜索机制是个体突变。

你拥有的父母越多,你就越不可能捕捉原始父母所带来的任何东西,这些父母首先会选择他们进行繁殖。细节将取决于您的n-ary交叉的确切工作方式,但直观地说,您拥有的父母越多,您可能从任何一个特定父母那里获得的遗传材料就越少,并且孩子继承的可能性就越小(从而改善父母的任何有益的多染色体特征。

这与Schema定理有关。

答案 3 :(得分:0)

从技术上讲,你可以在你的人群中拥有狂欢衍生的受精卵,但是没有数学证据(至少据我所知)它们可以改善你的算法所发现的多样性或最终结果。此外,狂欢运营商(使用你的术语)比简单的双亲类更复杂,并且不容易被学生理解。因此,它们不会被广告(并不意味着它们不被允许)。

实际上,您可以在GA中同时使用单亲和双父。正如一个答案已经指出的那样,单个父元素相当于本地搜索,从技术上讲,你将实现一个模因算法,这通常是对简单GA的改进。