In the add node mutation, the connection between two chosen nodes (e.g A and B) is first disabled and then a new node is created between A and B with their respective two connections.
I guess that the former A-B connection can be re-enabled via crossover (is it right?).
Can the former A-B connection also be re-enabled via mutation (e.g. "add connection")?


Yes, the original gene is disabled, but is left in the genome. This can be seen on page 10, figure 3 of the paper linked (taken from the original paper NEAT Paper) where gene 3 is disabled, but not removed from the genome. This gene can be re-enabled by receiving the gene with the identical innovation number from a mating partner with the gene enabled during crossover.

The original paper does not mention a mutation to re-enable genes, but various other publications and implementations after the original paper do. This is desirable for a number of reasons. Re-enable mutate allows for dropout to used in the implementation. It is also possible that certain genomes are disabling genes too quickly and this can help to correct for that.

  • 1
    $\begingroup$ "This gene can be re-enabled by an enable mutate". I found no mention of this mutation. Source? NEAT paper says "Each mutation expands the size of the genome by adding gene(s)." Such 'enable' mutation would not add gene. $\endgroup$ – kuma Mar 3 '18 at 13:20
  • 1
    $\begingroup$ Sorry, I had forgotten this was not included in the original publication. Many other publications attempting to improve the NEAT method add this mutation type (See my edit). $\endgroup$ – Andrew Butler Mar 3 '18 at 17:42

Yes. The mutation can either disable or enable a gene.

It's in the original NEAT implementation released by Dr. Kenneth O. Stanley.

Declared in genetics.h:

void mutate_toggle_enable(int times); /* toggle genes on or off */
void mutate_gene_reenable();  /* Find first disabled gene and enable it */




Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.