evolutionary algorithm definition
(EA) An algorithm
which incorporates aspects of natural selection or survival of the fittest. An evolutionary algorithm maintains a population of structures (usually randomly generated initially), that evolves according to rules of selection, recombination, mutation and survival, referred to as genetic operators. A shared "environment" determines the fitness or performance of each individual in the population. The fittest individuals are more likely to be selected for reproduction (retention or duplication), while recombination and mutation modify those individuals, yielding potentially superior ones.
EAs are one kind of evolutionary computation
and differ from genetic algorithms
. A GA generates each individual from some encoded form known as a "chromosome" and it is these which are combined or mutated to breed new individuals.
EAs are useful for optimisation when other techniques such as gradient descent or direct, analytical discovery are not possible. Combinatoric and real-valued function optimisation in which the optimisation surface or fitness landscape is "rugged", possessing many locally optimal solutions, are well suited for evolutionary algorithms.