Evolutionary algorithm
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