# Can mutation enable a disabled connection?

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.

• "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. – kuma Mar 3 '18 at 13:20
• 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). – 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 */


http://nn.cs.utexas.edu/soft-view.php?SoftID=4

http://nn.cs.utexas.edu/?neat-c