Share on Facebook Share on Twitter Email
Answers.com

Evolutionary computation

 
Sci-Tech Encyclopedia: Evolutionary computation

A rapidly growing interdisciplinary science area that is concerned with modeling aspects of natural evolution in order to solve real-world problems. Living organisms, as well as those long extinct, demonstrate optimized complex behavior at all levels: cells, organs, individuals, and populations. Charles Darwin wrote of “organs of extreme perfection” when describing the ability of evolution to craft ingenious solutions to complex problems such as vision. Evolution is the great unifying principle of biology, but it extends beyond biology and can be used as an engineering principle where individuals in a population of candidate solutions to some particular problem undergo random variation (mutation and recombination) and face competition and selection based on their appropriateness for the task at hand.

The common use of an evolutionary algorithm requires four elements: (1) an evaluation (fitness) function that describes the quality of any candidate solution in quantitative terms, (2) a representation or data structure that the computer uses to store solutions, (3) a random variation operator (or operators) that transform “parents” into “offspring,” and (4) a means for selecting which solutions will survive to the next generation and which will be eliminated. In addition, the process must be initialized with a population of candidate solutions to the task at hand. This is often accomplished by seeding the first population with completely random solutions; however, if domain-specific knowledge is available regarding which solutions may be better than others, these hints can be used to bias the initial population and may accelerate the evolutionary optimization procedure.

An evolutionary algorithm (see illustration) is executed over a series of generations of random variation and selection. The variation to the existing solutions can come in the form of single-parent or multiparent operators. Alternative choices offer different sampling distributions from the space of all possible solutions. Each of the individuals in the population is scored with respect to how well the individual accomplishes the task at hand (fitness), and selection is used to eliminate some subset of the population or to amplify the percentage of above-average solutions. The algorithm terminates when some extrinsic criterion has been satisfied, such as prescribed maximum number of generations, or a suitable error tolerance. Over time, by eliminating poor solutions and extending the evolutionary search around those that appear better, the population can discover superior solutions to complex problems.

Typical flowchart for an evolutionary algorithm.
Typical flowchart for an evolutionary algorithm.

In comparison to traditional problem-solving techniques, evolutionary algorithms are often much faster and more adaptable to changes in the environment because whatever knowledge has been learned about how to solve a problem is contained in the collection of individual solutions that has survived up to that point. In contrast with, say, dynamic programming, an evolutionary algorithm need not be restarted when facing new data. This feature promises to have a significant potential in future problem solving. As the spread of data and processing speeds continue to increase, it will be necessary to make decisions ever more quickly. The evolutionary approach of bootstrapping off the current basis set of knowledge may eventually become the standard approach to real-world, real-time problem solving. See also Algorithm; Concurrent processing; Distributed systems (computers); Genetic algorithms; Multiprocessing; Optimization; Organic evolution; Supercomputer.


Search unanswered questions...
Enter a question here...
Search: All sources Community Q&A Reference topics
Wikipedia: Evolutionary computation
Top

In computer science, evolutionary computation is a subfield of artificial intelligence (more particularly computational intelligence) that involves combinatorial optimization problems.

Evolutionary computation uses iterative progress, such as growth or development in a population. This population is then selected in a guided random search using parallel processing to achieve the desired end. Such processes are often inspired by biological mechanisms of evolution.

Contents

History

The use of Darwinian principles for automated problem solving originated in the fifties. It was not until the sixties that three distinct interpretations of this idea started to be developed in three different places.

Evolutionary programming was introduced by Lawrence J. Fogel in the USA, while John Henry Holland called his method a genetic algorithm. In Germany Ingo Rechenberg and Hans-Paul Schwefel introduced evolution strategies. These areas developed separately for about 15 years. From the early nineties on they are unified as different representatives (“dialects”) of one technology, called evolutionary computing. Also in the early nineties, a fourth stream following the general ideas had emerged – genetic programming.

These terminologies denote the field of evolutionary computing and consider evolutionary programming, evolution strategies, genetic algorithms, and genetic programming as sub-areas.

Techniques

Evolutionary techniques mostly involve metaheuristic optimization algorithms such as:

and in a lesser extent also:

Evolutionary algorithms

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, natural selection and survival of the fittest. 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 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 computation practitioners

Major conferences and workshops

Journals

See also

Bibliography

  • K.A. De Jong, Evolutionary computation: a unified approach. MIT Press, Cambridge MA, 2006
  • A.E. Eiben and J.E. Smith, Introduction to Evolutionary Computing, Springer, 2003, ISBN 3-540-40184-9
  • A.E. Eiben and M. Schoenauer, Evolutionary computing, Information Processing Letters, 82(1): 1-6, 2002.
  • W. Banzhaf, P. Nordin, R.E. Keller, and F.D. Francone. Genetic Programming — An Introduction. Morgan Kaufmann, 1998.
  • D. B. Fogel. Evolutionary Computation. Toward a New Philosophy of Machine Intelligence. IEEE Press, Piscataway, NJ, 1995.
  • H.-P. Schwefel. Numerical Optimization of Computer Models. John Wiley & Sons, New-York, 1981. 1995 – 2nd edition.
  • Th. Bäck and H.-P. Schwefel. An overview of evolutionary algorithms for parameter optimization. Evolutionary Computation, 1(1):1–23, 1993.
  • J. R. Koza. Genetic Programming: On the Programming of Computers by means of Natural Evolution. MIT Press, Massachusetts, 1992.
  • D. E. Goldberg. Genetic algorithms in search, optimization and machine learning. Addison Wesley, 1989.
  • J. H. Holland. Adaptation in natural and artificial systems. University of Michigan Press, Ann Arbor, 1975.
  • I. Rechenberg. Evolutionstrategie: Optimierung Technisher Systeme nach Prinzipien des Biologischen Evolution. Fromman-Hozlboog Verlag, Stuttgart, 1973. (German)
  • L. J. Fogel, A. J. Owens, and M. J. Walsh. Artificial Intelligence through Simulated Evolution. New York: John Wiley, 1966.

References

External links


 
 

 

Copyrights:

Sci-Tech Encyclopedia. McGraw-Hill Encyclopedia of Science and Technology. Copyright © 2005 by The McGraw-Hill Companies, Inc. All rights reserved.  Read more
Wikipedia. This article is licensed under the Creative Commons Attribution/Share-Alike License. It uses material from the Wikipedia article "Evolutionary computation" Read more