Evolutionary algorithms form a subset of evolutionary computation in that they generally only involve techniques implementing mechanisms inspired by
biological evolution such as
reproduction,
mutation,
recombination and
natural selection.
Candidate solutions to the optimization problem play the role of individuals in a population, and the
cost function determines the environment within which the solutions "live" (see also
fitness function).
Evolution of the
population then takes place after the repeated application of the above operators. In this process, there are two main forces that form the basis of evolutionary systems:
Recombination (e.g.
crossover) and
mutation create the necessary diversity and thereby facilitate novelty, while
selection acts as a force increasing quality. Many aspects of such an evolutionary process are
stochastic. Changed pieces of information due to recombination and mutation are randomly chosen. On the other hand, selection operators can be either deterministic, or stochastic. In the latter case, individuals with a higher
fitness have a higher chance to be selected than individuals with a lower
fitness, but typically even the weak individuals have a chance to become a parent or to survive.
Evolutionary algorithms and biology Genetic algorithms deliver methods to model
biological systems and
systems biology that are linked to the theory of
dynamical systems, since they are used to predict the future states of the system. This is just a vivid (but perhaps misleading) way of drawing attention to the orderly, well-controlled and highly structured character of development in biology. However, the use of algorithms and informatics, in particular of
computational theory, beyond the analogy to dynamical systems, is also relevant to understand evolution itself. This view has the merit of recognizing that there is no central control of development; organisms develop as a result of local interactions within and between cells. The most promising ideas about program-development parallels seem to us to be ones that point to an apparently close analogy between processes within cells, and the low-level operation of modern computers. Thus, biological systems are like computational machines that process input information to compute next states, such that biological systems are closer to a computation than classical dynamical system. Furthermore, following concepts from
computational theory, micro processes in biological organisms are fundamentally incomplete and undecidable (
completeness (logic)), implying that “there is more than a crude metaphor behind the analogy between cells and computers. The analogy to computation extends also to the relationship between
inheritance systems and biological structure, which is often thought to reveal one of the most pressing problems in explaining the origins of life.
Evolutionary automata, a generalization of
Evolutionary Turing machines, have been introduced in order to investigate more precisely properties of biological and evolutionary computation. In particular, they allow to obtain new results on expressiveness of evolutionary computation. This confirms the initial result about undecidability of natural evolution and evolutionary algorithms and processes.
Evolutionary finite automata, the simplest subclass of Evolutionary automata working in
terminal mode can accept arbitrary languages over a given alphabet, including non-recursively enumerable (e.g., diagonalization language) and recursively enumerable but not recursive languages (e.g., language of the universal Turing machine). == Notable practitioners ==