| Genetic Programming |
Article Index for Genetic |
Website Links For Genetic Programming |
Information AboutGenetic Programming |
|
GP is very computationally intensive and so in the 1990s it was mainly used to solve relatively simple problems. But more recently, thanks to improvements in GP technology and to the as well as computer programs. There are several GP patents listed in the web site http://www.genetic-programming.com/patents.html. Developing a theory for GP has been very difficult and so in the 1990s GP was considered a sort of outcast among search techniques. But after a series of breakthroughs in the early 2000s, the theory of GP has had a formidable and rapid development. So much so that it has been possible to build exact probabilistic models of GP (schema theories and Markov Chain models). CHROMOSOME REPRESENTATION GP evolves computer programs, traditionally represented in memory as Tree Structure s. Trees can be easily evaluated in a recursive manner. Every tree node has an operator function and every terminal node has an operand, making mathematical expressions easy to evolve and evaluate. Thus traditionally GP favors the use of Programming Languages that naturally embody tree structures (for example, Lisp ; other Functional Programming Languages are also suitable). Non-tree representations have been suggested and successfully implemented, such as the simpler . GENETIC OPERATORS Crossover The main operators used in Evolutionary Algorithms such as GP are crossover and mutation. Crossover is applied on an individual by simply switching one of its nodes with another node from another individual in the population. With a tree-based representation, replacing a node means replacing the whole branch. This adds greater effectiveness to the crossover operator. The expressions resulting from crossover are very much different from their initial parents. The following code will suggest an easy to implement individual deformation using crossover: individual.Children = otherIndividual.Children[randomChildIndex ; Mutation Mutation affects an individual in the population. It can replace a whole node in the selected individual, or it can replace just the node's information. A simple piece of code: individual.Information = randomInformation; or individual = generateNewIndividual; META-GENETIC PROGRAMMING Meta-Genetic Programming is the technique of evolving a genetic programming system using genetic programming itself. http://www.helpmefigurethisout.com/. It proposes that chromosomes, crossover, and mutation were themselves evolved, therefore like their real life counterparts should be allowed to change on their own rather than being determined by a human programmer. Meta-GP was proposed by s. Critics of this idea often say this approach is overly broad in scope. However it might be possible to constrain the fitness criterion onto a general class of results, and so obtain an evolved GP that would more efficiently produce results for sub-classes. This might take the form of a Meta evolved GP for producing human walking algorithms which is then used to evolve human running, jumping, etc. The fitness criterion applied to the Meta GP would simply be one of efficiency. For general problem classes there may be no way to show that Meta GP will reliably produce results more efficiently than a created algorithm other than exhaustion. The same holds for standard GP and other search algorithms, of course. NOTES SEE ALSO BIBLIOGRAPHY
EXTERNAL LINKS
Implementations:
Possibly most used:
Companies:
|
|
|