我正在尝试使用c#实现NEAT算法,参考了Kenneth O. Stanley的论文。在第109页(PDF中的第12页)提到:“匹配的基因随机继承,而不匹配的基因(那些中间不匹配的)和多余的基因(那些末端不匹配的)则从更适合的父辈继承。”
这是否意味着后代总是具有与更适合的父辈完全相同的结构?似乎只有在两个父辈同样适合的情况下,结构才可能因交叉而不同。
回答:
如果你说的“结构”是指基因的序列,那么是的,这是正确的,后代将从与更适合的父辈相同的基因序列开始。只有在两个父辈同样适合的情况下,后代的序列才可能与两个父辈的结构都不同。
尽管后代的初始基因序列与更适合的父辈相同,但这些基因中的属性(权重、启用状态)不一定与更适合父辈中的属性完全相同。匹配的基因(在父辈中具有相同“创新号”的基因)可以从任一父辈传给后代,且在不太适合的父辈中匹配基因的属性可能与在更适合的父辈中该基因的属性不同。