Genetic Algorithms

Document Sample
Genetic Algorithms Powered By Docstoc
					Genetic Algorithms

The normal method for getting a computer to perform a task is to specify the task clearly, choose the
appropriate approach, and then implement and test the code. However, this approach requires that the
programmer first know the appropriate approach, and even when there are many potentially suitable
algorithms, it isn’t always clear which will prove optimal. Starting in the 1960s, however, researchers
began to explore the idea that an evolutionary approach might be adaptable to programming. Biologists
today know that nature did not begin with a set of highly optimized algorithms. Rather, it addressed the
problems of survival through a proliferation of alternatives (through mutation and recombination) that
are then subjected to natural selection, with the fittest (most successful) organisms surviving to
reproduce. Researchers began to develop computer programs that emulated this process.

A genetic program consists of a number of copies of a routine that contain encoded “genes” that
represent elements of algorithms. The routines are given a task (such as sorting data or recognizing
patterns) and the most successful routines are allowed to “reproduce” by exchanging genetic material.
(Often, further “mutation” or variation is introduced at this stage, to increase the range of available
solutions.) The new “generation” is then allowed to tackle the problem, and the process is repeated. As
a result, the routines become increasingly efficient at solving the given problem, just as organisms in
nature become more perfectly adapted to a given environment.

Shared By: