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