colgreen / sharpneat

SharpNEAT - Evolution of Neural Networks. A C# .NET Framework.
https://sharpneat.sourceforge.io/
Other
380 stars 97 forks source link

Can mutation be safely ignored after sexual crossover? #28

Closed mdalvi closed 6 years ago

mdalvi commented 6 years ago

With reference to method public NeatGenome CreateOffspring(NeatGenome parent, uint birthGeneration) in NeatGenome.cs @here I observed that there is no call to offspring.Mutate(); post sexual crossover!

Is it safe to completely ignore mutation after sexual crossover?

colgreen commented 6 years ago

Hi. Yes that's intentional. Most genetic algorithms do this as far as I know, i.e. crossover produces a child (or children) that have a mixture of genes from two or more parent's, and no mutation is applied. In biology I guess mutations are most likely to occur at this point, so there is an argument for always performing mutation when we perform crossover, but that's not how I chose to do it, and I think that's typical of GAs in general.

mdalvi commented 6 years ago

@colgreen Thank you for your reply.