Glossary of Genetic Programming Terms

Genetic Programming Term

An Evolutionary Algorithms technique using computer programming.

Remarks

Genetic Programming works with Individuals that are computer programs. All generated Individuals use methods defined in a Base Class (or other repository). These methods are the operations available for solving the problem.

For example, if you were trying to find a mathematical formula, you would provide methods like add, subtract, etc, or sine, cosine, exponent, etc, or any others that would be appropriate for the problem data. Including unrelated methods will not hide a solution, but it will slow processing. Generally, if information is known about a problem (i.e. in this example, if the data is known to come from a polynomial function), it is a good idea to limit the available methods to those closely related to the problem.


Genetic Programming Algorithm

The basic algorithm used by Genetic Programming is outlined in the pseudo-code shown below:

CurrentGeneration = 0;
InitializeRandomPopulation();
EvaluatePopulation();
 
while( !SolutionFound() ) {
   ++CurrentGeneration;
   SelectBreeders();
   BreedChildren();
   MutateChildren();
   EvaluatePopulation();
}

This algorithm is basically identical to that used by other Evolutionary Algorithms techniques. The difference is that these pseudo-methods work with a Population composed of computer program Individuals.

Design Note

In this framework, the GPEngine implements the Genetic Programming algorithm in its Run method.

The framework uses the Base Class style for Individual generation. All new Individuals inherit from the problem's IIndividual Base Class. See the documentation for Problem Space for more information.

See Also

Genetic Programming | Evolutionary Algorithms Term | Problem Space Term | GPEngine Class | Run Method