4
$\begingroup$

I have a genetic algorithm which is working fairly well. It's got all the standard operators, including initial random population, crossover ratio, mutation rate, degree of mutation, etc.

This works fairly well, and I have tuned and optimized the hyperparameters as much as possible, including some adaptive variants. The one thing that ruins the results EVERY TIME is when I implement elitism. It does not seem to matter if I include 1 elite, or a certain percentage of elites. I have tried 1% through 10%, tried a decay variable so that elites would only survive a certain number of generations, and numerous other tactics. Every single time I add elitism, the solution gets stuck in a local optimum so deeply that there is no escape.

Most of the literature recommends to have elites, but the elites ruin my GA every single time, without fail.

Ideas?

$\endgroup$
3
$\begingroup$

There are many ideas to escape from local optima in GA. One solution is selecting the population for the next iteration based on the probability that is defined based on the individual score. In that case, you have a chance to select a bad score individual to escape from the local optima.

Another efficient solution is playing with the mutation rate to get rid of local optima. In that way, you can increase the rate smoothly, to find a proper rate.

$\endgroup$
3
  • $\begingroup$ Thank you. The fitness selection for the next generation is using the roulette wheel selection method. With respect to the mutation rate, I've tried 0.1% all the way up to 5%. The mutation range is from a Gaussian distribution, and I've tried parameters from 5% of the range up to 30% of the range. The implementations that do not use elites will consistently find a better solution. When I add elitism, it always gets stuck several degrees of fitness below the previously recorded maximums and just sort of hangs there. $\endgroup$ – Pittsburgh DBA May 28 at 3:07
  • 1
    $\begingroup$ @PittsburghDBA So, you can play with the selection probability of individuals. Try to use a different distribution function based on the individuals' scores. $\endgroup$ – OmG May 28 at 19:05
  • $\begingroup$ Thanks! I will try it $\endgroup$ – Pittsburgh DBA May 28 at 19:20

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.