首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >整洁算法:如何交叉不相交和多余的基因?

整洁算法:如何交叉不相交和多余的基因?
EN

Stack Overflow用户
提问于 2018-05-27 15:47:58
回答 3查看 1.8K关注 0票数 10

目前,我正在实现肯尼思·斯坦利( Kenneth )开发的Stanley算法,并以原始为参考。

在描述交叉方法的部分,有一件事让我有点困惑。

所以,上面的图说明了above的交叉方法。为了决定一个基因是从哪个父母那里遗传的,文章说:

匹配的基因是随机遗传的,而不相交的基因(中间不匹配的基因)和多余的基因(最终不匹配的基因)则是从更合适的父母那里遗传的。

对于匹配的基因(1-5),很容易理解。您只是随机地从Parent1或Parent2继承(两者都有50%的可能性)。但是对于不相交的(6-8)和多余的(9-10)基因,你不能从更合适的父母那里继承,因为你只有Parent1或Parent2中的那些基因。

例如:

父母1的适应度高于亲本2,不相交的基因6只存在于Parent2中(当然,因为不相交和过量的基因只发生在双亲中),所以不能决定从更适合的父母那里继承这个基因。所有其他不相交和多余的基因也是如此。您只能从它们存在的父级继承它们。

所以我的问题是:你会不会从更健康的父母那里继承所有匹配的基因,然后接管那些不相交和多余的基因呢?还是我在这里遇到什么事了?

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-05-30 23:50:15

查看实际的实现并查看如何处理它可能会有所帮助。在最初的C++代码这里 (看看2085年之前的代码)中,似乎跳过了不适合父母的不相交和多余的基因。

在您的实现中,您可以从不适合的父母那里继承不相交和多余的基因,但是以1的概率禁用它们,这样以后您就可以对它们进行点态突变(切换禁用为已启用)。然而,这可能会导致显着的基因组膨胀,所以测试和看看什么是可行的。

票数 6
EN

Stack Overflow用户

发布于 2018-10-04 10:14:54

从“更健康的父母”中提取不匹配的基因就更有意义了。这将产生强大的后代作为交叉的结果。对于匹配的基因,应用通常的交叉算子。为了提高多样性,从双亲中随机选择错配基因,产生第二个后代。

这样,第一个后代将更健康,第二个后代将保持多样性。希望这个能帮上忙。

票数 1
EN

Stack Overflow用户

发布于 2021-04-21 09:59:14

图中描述的是父母双方具有相同适应度的特殊情况,因此选择又是随机的,因此可能导致所描述的情况。我同意,如果没有额外的资料,这是有误导性的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50553867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档