Evolutionary algorithm is a term that describes the use of evolutionary models and methods in the design of computer programs, robots, and artificial life. Incorporating evolutionary strategies into computer programs was first proposed by Lawrence Fogel in the early 1960s. This work was significantly advanced by the invention of genetic algorithms by John Holland in 1975. Widespread interest in evolutionary computing, however, did not develop until the late 1980s and early 1990s, with the first conference on evolutionary computing being held in 1992 in La Jolla, California. Evolutionary computing methods are now used in a wide range of civilian and military applications, and the techniques of evolutionary computing are seen by some to be the future of both computer programming generally and artificial intelligence specifically.
Traditional computer programs rely on a sequence of precise instructions (algorithms) that commands a computer or robot to perform specific actions. Evolutionary computing mimics biological evolution by developing a program that considers a set of possible solutions for a given problem, evaluates the solutions according to fitness criteria, mutates the solutions according to set rules, and then repeats the sequence until a sufficiently optimal solution is found. Programs that utilize genetic algorithms attempt to more closely mimic neo-Darwinian evolution by providing each solution with a chromosome. Solutions then "mate" with one another, creating a new generation of solutions. The most fit solutions are selected out, and are allowed to mate and mutate further, until an optimal solution is found.
Much of the interest in evolutionary algorithms is due to their success in solving problems that are computationally difficult or impossible by traditional means. The most famous of these is the "traveling salesman problem," which attempts to find the shortest path between any two destinations. While the individual task may sound trivial, it represents a class of problems that are mathematically quite important. The techniques of evolutionary computing have also been used in the development of artificial life, creating virtual organisms that feed, reproduce, and compete within a computergenerated environment. In 2000, Hod Lipson and Jordan Pollack applied evolutionary computing to robotics, developing a program that creates mobile robots through a process of mutation and selection.
These and similar successes have led some to conclude that evolutionary algorithms provide basic insights into evolutionary theory, confirming basic neo-Darwinian principles of natural selection. Richard Dawkins's distribution of his biomorphs program along with his book The Blind Watchmaker (1986) is an early instance of this sort of claim in a popular science work. Critics of evolution, such as William Dembski, however, have argued that evolutionary computing does not provide evidence for neo-Darwinism because the algorithms must first be designed by a human being.
Evolutionary algorithms are also held to provide insight into the nature of intelligence itself. Thinkers as diverse as Daniel Dennett, Karl Popper, and Michael Ruse have argued for a similarity between evolution by natural selection and basic cognitive tasks, and evolutionary computing began, in part, to solve issues related to the development of artificial intelligence.
See also Automata, Cellular; Complexity
dawkins, richard. the blind watchmaker: why the evidence of evolution reveals a universe without design. new york: norton, 1986.
dembski, william. no free lunch: why specified complexity cannot be purchased without intelligence. lanham, md.: rowman & littlefield, 2001.
fogel, lawrence. intelligence through simulated evolution: forty years of evolutionary programming. somerset, n.j.: wiley, 1999.
holland, john. adaptation in natural and artificial systems: an introductory analysis with applications to biology, control, and artificial intelligence (1975). cambridge, mass.: mit press, 1992.
gregory r. peterson