0

In the NEAT paper it is said that "Genes that do not match are either disjoint or excess, depending on whether they occur within or outside the range of the other parent’s innovation numbers". I can't understand how it is possible for disjoint genes to arise, since I don't see a way for a genome to have a gap between innovation numbers within its connection genes. From what I understand an innovation number is shared within a given genome and is incremented whenever a new gene appears in the genome. Could someone explain it?

mzmyslowski
  • 121
  • 1
  • 2
  • 11

1 Answers1

0

Okay, I think I know the answer now. A list of innovations shared among all genomes is kept. Whenever a structural innovation appears in some genome the list is checked whether it contains such an innovation. If it doesn't, then the global innovation number is incremented, assigned to the structural innovation and the list is being appended with information about the innovation and its corresponding innovation number. If it does, then the innovation number for it is returned and assigned to the structural innovation. For example in two genomes scenario, the first genome could have had 7 innovations and the second one only 5. Suppose first 5 innovations were the same for both. Then the new innovation is added for the second one. It turns out that it's the same innovation as the 7th one in the first genome. Then the new innovation (6th one) for the second genome will have assigned 7 for its innovation number.

mzmyslowski
  • 121
  • 1
  • 2
  • 11
  • That is correct! Also note that NEAT allows to remove links and nodes. And even if you only have one network, consider the link between nodes n1 and n2. That link takes ID = 3 (L3). If we add a node between n1 and n2, NEAT (normally) removes L3 and adds the new neuron n4, plus links L5 (from n1 to n4) and L6 (from n4 to n2). No L3 anymore in the genome :) – Pablo Oct 30 '17 at 10:44