Evolutionary computation


Evolutionary computation

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.

As evolution can produce highly optimised processes and networks, it has many applications in computer science. Here, simulations of evolution using evolutionary algorithms and artificial life started with the work of Nils Aall Barricelli in the 1960s, and was extended by Alex Fraser, who published a series of papers on simulation of artificial selection.[1] Artificial evolution became a widely recognised optimisation method as a result of the work of Ingo Rechenberg in the 1960s and early 1970s, who used evolution strategies to solve complex engineering problems.[2] Genetic algorithms in particular became popular through the writing of John Holland.[3] As academic interest grew, dramatic increases in the power of computers allowed practical applications, including the automatic evolution of computer programs.[4] Evolutionary algorithms are now used to solve multi-dimensional problems more efficiently than software produced by human designers, and also to optimise the design of systems.[5]


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. Since the 1990s, evolutionary computation has largely become swarm-based computation, and nature-inspired algorithms are becoming an increasingly significant part.

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

Techniques

Evolutionary computing techniques mostly involve metaheuristic optimization algorithms. Broadly speaking, the field includes:

Evolutionary algorithms

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

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.
  • S. Cagnoni, et al, Real-World Applications of Evolutionary Computing, Springer-Verlag Lecture Notes in Computer Science, Berlin, 2000.
  • 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

  1. ^ Fraser AS (1958). "Monte Carlo analyses of genetic models". Nature 181 (4603): 208–9. doi:10.1038/181208a0. PMID 13504138. 
  2. ^ Rechenberg, Ingo (1973) (in German). Evolutionsstrategie – Optimierung technischer Systeme nach Prinzipien der biologischen Evolution (PhD thesis). Fromman-Holzboog. 
  3. ^ Holland, John H. (1975). Adaptation in Natural and Artificial Systems. University of Michigan Press. ISBN 0262581116. 
  4. ^ Koza, John R. (1992). Genetic Programming. MIT Press. ISBN 0262111705. 
  5. ^ Jamshidi M (2003). "Tools for intelligent control: fuzzy controllers, neural networks and genetic algorithms". Philosophical transactions. Series A, Mathematical, physical, and engineering sciences 361 (1809): 1781–808. doi:10.1098/rsta.2003.1225. PMID 12952685. 
  6. ^ "Special Interest Group on Genetic and Evolutionary Computation". SIGEVO. http://www.sigevo.org/. 

Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Interactive evolutionary computation — (IEC) or Aesthetic Selection is a general term for methods of evolutionary computation that use human evaluation. Usually human evaluation is necessary when the form of fitness function is not known (for example, visual appeal or attractiveness;… …   Wikipedia

  • Human-based evolutionary computation — (HBEC) is a set of evolutionary computation techniques that rely on human innovation. Human based evolutionary computation techniques can be classified into three more specific classes analogous to ones in evolutionary computation. There are… …   Wikipedia

  • IEEE Congress on Evolutionary Computation — The IEEE Congress on Evolutionary Computation (CEC) is one of the largest and most important conferences within Evolutionary computation (EC), the other conferences of similar importance being Genetic and Evolutionary Computation Conference… …   Wikipedia

  • Java Evolutionary Computation Toolkit — ECJ is a freeware evolutionary computation research system written in Java. It is a framework that supports a variety of evolutionary computation techniques, such as genetic algorithms, genetic programming, evolution strategies, coevolution,… …   Wikipedia

  • IEEE Transactions on Evolutionary Computation — The IEEE Transactions on Evolutionary Computation (TEC) is a monthly journal published by the Computational Intelligence Society of the IEEE Computer Society. It contains peer reviewed articles and other contribitions in the area of evolutionary… …   Wikipedia

  • Java Evolutionary Computation Toolkit — ECJ Операционная система Кроссплатформенное программное обеспечение Последняя версия 20 Лицензия AFL, BSD Сайт ECJ project ECJ  это свободная исследовательская сис …   Википедия

  • Evolutionary informatics — is a subfield of informatics addressing the practice of information processing in, and the engineering of information systems for, the study of biological evolution, as well as the study of information in evolutionary systems, natural and… …   Wikipedia

  • Evolutionary robotics — (ER) is a methodology that uses evolutionary computation to develop controllers for autonomous robots. Algorithms in ER frequently operate on populations of candidate controllers,initially selected from some distribution. This population is then… …   Wikipedia

  • Evolutionary music — is the audio counterpart to Evolutionary art, whereby algorithmic music is created using an evolutionary algorithm. The process begins with a population of individuals which by some means or other produce audio (e.g. a piece, melody, or loop),… …   Wikipedia

  • Computation — is defined as any type of calculation.[1] Also defined as use of computer technology in Information processing.[2][3]Computation is a process following a well defined model understood and expressed in an algorithm, protocol, network topology, etc …   Wikipedia