I was wondering if a genetic algorithm is useful if the optimization problem has several optimal solutions.

My thought was that I should not use it since when combining two members of a population who have good fitness but are close to different optimal solutions, the child will get retarded.

Is this thinking wrong? If so, why?

  • $\begingroup$ It sounds as though your approach results in a single child. In our genetic implementations, we always have multiple children; some are averages, some are mutations, etc. However, our generations always additionally contain $n$ top performers from the previous generation and slightly mutated versions of those top performers. We find this allows us to find multiple optimal solutions since we allow multiple paths to be followed. $\endgroup$ Nov 26, 2021 at 1:35
  • $\begingroup$ have you checked this article on wikipedia about evolutionary multimodal optimization? en.wikipedia.org/wiki/Evolutionary_multimodal_optimization $\endgroup$
    – Sanyou
    Dec 26, 2021 at 15:33
  • $\begingroup$ I don't think I've ever seen a genetic algorithm applied to a problem where there was a unique optimal solution! $\endgroup$
    – Stef
    Apr 26 at 12:17

1 Answer 1


Genetic algorithms (GA) have populations where it has an offspring in every generation usually the same quantity than the original population, so, if a child results from two good solutions (parents) but very different and it has a bad fitness, it will be not selected for being part of the next generation (elitism, where only the best n individual survive). But maybe you can find a new and good solution from that combination, and, in that case, it will be part of the new generation.

Maybe, if your problem has multiple solutions, the population can be formed by clusters of solutions that improve between them.

But there are many algorithms in GA (and Evolutionary Algorithms in general), so you need to read the details. Fortunately, there are many frameworks where only you need to define your problem and it can rapidly make comparisons between them.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .