Search This Blog

Monday, 3 November 2014

Genetic algorithms

The normal method for getting a computer to perform a task is to specify the task clearly, choose the appropriate approach (see algorithm), and then implement and test the code. However, this approach requires that the pro-grammer 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 algo-rithms. Rather, it addressed the problems of survival through a proliferation of alternatives (through mutation and recombination) that are then subjected to natural selec-tion, with the fittest (most successful) organisms surviving to reproduce. Researchers began to develop computer pro-grams that emulated this process.

A genetic program consists of a number of copies of a routine that contain encoded “genes” that represent ele-ments of algorithms. The routines are given a task (such as sorting data or recognizing patterns) and the most suc-cessful 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.

Applications

Variations of genetic algorithms or “evolutionary program-ming” have been used for many applications. In engineering development, a virtual environment can be set up in which a simulated device such as a robot arm can be allowed to evolve until it is able to perform to acceptable specifica-tions. (NASA has also used genetic programs competing on 80 computers to design a space antenna.) Different versions of an expert system program can be allowed to compete at performing tasks such as predicting the behavior of finan-cial markets. Finally, a genetic program is a natural way to simulate actual biological evolution and behavior in fields such as epidemiology (see also artificial life).

No comments:

Post a Comment