Evolutionary algorithm
An evolutionary algorithm (often abbreviated to EA, and otherwise known as Evolutionary Computation, Artificial Evolution) is a class of algorithm that use computational approaches inspired by mechanisms from biological evolution such as natural selection, mutation and recombination for computational searching or optimisation.
Many types of evolutionary algorithms exist but they can, generally, be classified as:
- genetic algorithms which use the gene transmission and mutation mechanism as an optimization technique for parameters.
- genetic programming which use the gene transmission and mutation mechanism as an optimization technique for programs or instructions.
- evolutionary programming, which allows one to parameterize computer programs to find optimal solutions according to a goal function.
- evolution strategies, which work with vectors of real numbers as representations of optimization problems; mutation and adaption of mutation rates are important working mechanisms there.
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.
Contents |
EC as framework for evolutionary modeling
Evolutionary computation and algorithms have also been 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
- Evolutionary Computation Repository
- Evolutionary Computing European Network Of Excellence
- Project DEMO at Brandeis
- Tierra homepage
- The Hitch-Hiker's Guide to Evolutionary Computation (FAQ for comp.ai.genetic)
Software
- ECJ - Java Library for Evolutionary Programming
- GAUL - C/C++ library of evolutionary Computation
- - A fortran genetic algorithm
- Simple Generalized GA - A Perl genetic algorithm
See also: fitness landscape
References
- Adapted from the Wikipedia article, "Evolutionary_algorithm" http://en.wikipedia.org/wiki/Evolutionary_algorithm, used under the GNU Free Documentation License