An evolutionary algorithm (also EA, Evolutionary Computation, Artificial Evolution) is an algorithm using evolutionary techniques inspired by mechanisms from biological evolution such as natural selection, mutation and recombination to find an optimal configuration for a specific system within specific constraints.

Evolutionary algorithms include:

  • genetic programming and genetic algorithms which use the gene transmission and mutation mechanism as an optimization technique
  • evolutionary programming, which allows one to parameterize computer programs to find optimal solutions according to a goal function.

Most of these techniques are similar in spirit, but differ largely in the details of their implementation and the nature of the particular problem domains they have been applied to. Evolutionary algorithms are often used to design engineering systems in the place of manual design where the complexity of the optimisation problem is beyond human comprehension.

EC as framework for evolutionary modeling

Evolutionary computation and algorithms have also used as an experimental framework within which to validate theories about evolution and natural selection, particularly through the work in artificial life. Techniques from evolutionary algorithms applied to the modelling of biological evolution mostly model microevolutionary processes, however some computer simulations commonly called artificial life such as Tierra attempt to model macroevolutionary dynamics.

External links

See also: fitness landscape