我目前正在实现 Kenneth Stanley 开发的 NEAT 算法,以原论文作为参考。
在描述交叉方法的部分中,有一件事让我有点困惑。
因此,上图说明了 NEAT 的交叉方法。为了决定一个基因是从哪个父母那里继承来的,这篇论文说:
匹配的基因是随机遗传的,而不相交的基因(中间不匹配的)和多余的基因(最后不匹配的)是从更合适的父母那里继承的。
对于匹配的基因(1 - 5)很容易理解。您只是从 Parent1 或 Parent2 随机继承(两者都有 50% 的机会)。但是对于不相交的 (6-8) 和多余的 (9-10) 基因,您不能从更合适的父母那里继承,因为您在 Parent1 或 Parent2 中只有这些基因。
例如:
Parent1 的适应度高于 Parent2。不相交的基因 6 只存在于 Parent2 中(当然,因为不相交和多余的基因只出现在一个亲本中)所以,你不能决定从更合适的亲本那里继承这个基因。所有其他不相交和多余的基因也是如此。您只能从它们所在的父级继承它们。
所以我的问题是:你是否可能从更合适的父母那里继承所有匹配的基因,然后接管不相交和多余的基因?或者我在这里误解了什么?
提前致谢。