Biological evolution was able to invent the very complex, but very harmonious and efficient, living organisms. Could we imitate such invention ability in some artificial process in order to use it for our human practical needs? Implying such kind of ideas, several scientists attempted to design evolutionary computer algorithms, which could be clever enough to find the solutions of complex problems.
In 1966 L.J. Fogel, A.J. Owens, M.J. Walsh proposed and investigated the evolution of simple automata, which were intended to predict the symbols in digital sequences [1]. In 1975 J.H. Holland, in his seminal book Adaptation in Artificial and Natural Systems, proposed the scheme of the genetic algorithm [2]. Approximately at the same time, I. Rechenberg and H.-P. Schwefel developed the evolutionary strategies [3,4]. These works grounded the main directions of the developments of evolutionary algorithms.
Generally, an evolutionary algorithm (EA) is an optimization technique, which involves an evolving population of individuals. During the evolution, the individuals with high fitness are searched by means of selection, mutations and recombinations of individual genomes. Fitness is a multidimensional function of individual genes that must be optimized.
The main EAs are as follows:
- genetic algorithms, which are intended to optimize discrete structures with a special attention to structure recombinations,
- evolutionary programming, which focuses on optimizing continuous functions without recombination,
- evolutionary strategies, which focus on optimizing continuous functions with recombination,
- genetic programming, which uses the evolutionary technique to optimize computer programs [5].
As compared to usual optimization methods, the EAs have the following specific
particularities: parallel search, random variations, and recombinations of already found
solutions. EAs are well suited for the optimization of multidimensional, bad-defined
functions. In particular, the genetic algorithm is often used as a heuristic method to
solve complex combinatorial problems.
Numerous Internet links, as well as a comprehensive bibliography, concerning EAs, can
be found in Hitch-Hikers
Guide to Evolutionary Computation by J. Heitkoetter and D. Beasley.
Conclusion. Applied evolutionary modeling includes a family of EAs. The
background of EAs is a general understanding of Darwinian evolution features. EAs are
rather simple heuristic optimization techniques, which are well suited for the
optimization of a wide variety of multidimensional, ill-defined functions.
References:
1. Fogel, L.J., Owens, A.J. & Walsh, M.J. (1966) Artificial Intelligence
through Simulated Evolution, New York: Wiley.
2. Holland, J.H. (1975) Adaptation in Natural and Artificial systems, Ann Arbor, MI: The University of Michigan Press. 2nd edn. (1992) Boston, MA: MIT Press.
3. Rechenberg, I. (1973, 1993 2nd edn) Evolutionstrategie: Optimierung
technischer Systeme nach Prinzipien der biologischen Evolution, Stuttgart:
Fromman-Holzboog.
4. Schwefel, H.-P. (1977) Numerische Optimierung von Computer-Modellen mittels
der Evolutionsstrategie, Basel: Birkhaeuser.
5. Koza, J.R. (1992), Genetic Programming: On the
Programming of Computers by means of Natural Selection, Cambridge, MA: MIT
Press.