4
$\begingroup$

genetic algorithm usually use a "mutation rate" to control the rate of chromosome mutation. Most of the researchers at researchgate recommend to keep this rate low in order to converge quickly, to be able to find local optima and not to make the optimization a random walk. However, I see one major problem with keeping a low mutation rate. If the breeding at one point doesn't result into "new" children/chromosomes, the algorithm will run very inefficiently. Assume that all individuals in the population have the same chromosome, then crossovers will result into the same individuals until a mutation occurs in one of the chromosomes. With a low rate this can take quite long (until then the fitness function with the same chromosomes is repated again and again).

Isn't it much more efficient to mutate on purpose as soon as children/chromosomes would repeat in the next generation in order to assure that we explore new solution space? Wouldn't this make a "mutation rate" obsolete and the entire algorithm more efficient or do I miss a major point here?

$\endgroup$

1 Answer 1

1
$\begingroup$

If the breeding at one point doesn't result into "new" children/chromosomes, the algorithm will run very inefficiently. Assume that all individuals in the population have the same chromosome, then crossovers will result into the same individuals until a mutation occurs in one of the chromosomes

This is correct, but in theory this case should happen only when the algorithm has already converged, meaning that the chromosome is actually optimal. If this happens by chance before reaching an optimal solution, then it's probably because the size of the population is too low and should be higher in order to maintain diversity and allow mutations from time to time.

For example, if the population size is 100 and the mutation rate is 0.02 then there are in average two mutations for a particular gene at every generation. This maintains a bit of diversity, as the mutated gene is likely to be reproduced at the next generation if it turns out to be beneficial.

My experience with genetic algorithms is that many variants are possible and imho it's a good idea to explore various variants with a dataset, including non-standard parameters such as this idea of "automatically mutating", because why not? The danger I can imagine with that is that this could cause too much variation and prevent or slow down the convergence, but testing is the best way to see what happens.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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