Sunday, September 23, 2012

ECP1 -Introduction to Evolutionary computation

What are Evolutionary algorithms?

Evolutionary computation is the collective name for algorithms inspired by the biological model of evolution and natural selection proposed by Charles Darwin in 1859.In the natural world, evolution helps species to adapt to their environments. The basic outline of a genetic algorithm is as follows (most other EA variants are broadly similar).A population of candidate solutions is iteratively evolved over many generations .Mimicking the concept of natural selection in biology, the survival of candidates (or their offspring) from generation to generation in an EA is governed by a fitness function that evaluates each candidate according to how close it is to the desired outcome, and a selection strategy that favors the better solutions. Over time, the quality of the solutions in the population should improve. If the program is successful, we can terminate the evolution once it has found an optimal solution.


The use of Darwinian principles for automated problem solving originated in the 1950s. Evolutionary computation was introduced by Lawrence J. Fogel in the US, while John H.Holland called his method a genetic algorithm. In the 1960s, Ingo Rechenberg  (1965,1973)introduced evolutionary stratagies, a method used to optimize real-valued parameters for devices such as airfoils. This idea was further developed by Hans-Paul Schwefel (1975,1977).  The field of evolutionary strategies has remained an active area of research for some time. Figel, Owens and Walsh (1966) developed evolutionary programming, a technique in which candidate solutions to given tasks were represented as finite-state machines, which were evolved by randomly mutating their state-transition diagrams and selecting the fittest.

Several other people working in the 1950s and the 1960s developed evolution inspired-algorithms for optimization and machine learning. Box (1957), Friedman (1959), Bremmermann (1962), and Reed, Toombs, and Baricelli (1967), all worked in this area, though their work has been given little or none of the kind of attention or followup that evolutionary strategies, evolutionary programming, and genetic algorithms have seen. In addition, a number of evolutionary biologists used computers to simulate evolution for the purpose of controlled experiments. Evolutionary computation was definitely in the air in the formative days of the electronic computer.

Why use Evolutionary computation?

Evolutionary algorithms make it possible to explore a far greater range of potential solutions to a problem than do conventional programs. Optimization problems form the most important optimization, continuous parameter optimization, or mixed discrete-continuous optimization. Natural evolution can be considered as a powerful problem solver achieving Homo sapiens from chaos in only a couple of billion years. Computer based evolutionary processes can also be used as efficient problem solvers for optimization, constraint handling, machine learning and modeling tasks. Furthermore, many real world phenomena from the study of life, economy and society can be investigated by simulations based on evolving systems.


1.      Genetic algorithms by John H.Holland.
2.      Evolutionary computation by Daniel W.dyer.
3.      Introduction to evolutionary computing by Agoston E.Eiben, J.E. Smith
4.      Wikipedia-Evolutionary computing.

Stay Tuned.






Post a Comment