  In this article we provide a comprehensive review of the different
evolutionary algorithm techniques used to address multimodal optimization
problems, classifying them according to the nature of their approach. On the
one hand there are algorithms that address the issue of the early convergence
to a local optimum by differentiating the individuals of the population into
groups and limiting their interaction, hence having each group evolve with a
high degree of independence. On the other hand other approaches are based on
directly addressing the lack of genetic diversity of the population by
introducing elements into the evolutionary dynamics that promote new niches of
the genotypical space to be explored. Finally, we study multi-objective
optimization genetic algorithms, that handle the situations where multiple
criteria have to be satisfied with no penalty for any of them. Very rich
literature has arised over the years on these topics, and we aim at offering an
overview of the most important techniques of each branch of the field.
