artificial life

Chapter 6: Genetic Programming

6.3 Regeneration

The philosophy behind regeneration in Genetic Programming is the same as in Genetic Algorithms; the most fit individuals are allowed to regenerate through cloning, crossover and mutation. Cloning is the same as in GA's, a fit individual is simply copied into the next generation. The mechanism behind crossover and mutation varies in Genetic Programming since the structure of the individual genotypes is so drastically different.

Crossover is accomplished in Genetic Programming by taking a node and all of its descendant nodes from one genotype and using it to replace a node and its sub-tree in a different genotype. Mutation in Genetic Programming simply switches the function of a given node, i.e. division can switch to multiplication. It is possible that a node is changed to a different type of node that requires more or less children. In the case that more children are needed a random sub-tree is appended to the node. When fewer children are required then a sub-tree is dropped from the Genetic Program. Figure 6.2 shows two Genetic Programs undergoing crossover and mutation to create a descendant genotype.


Figure 6.2 : Operations in Genetic Programming

Figure 6.2 : Operations in Genetic Programming


In Figure 6.2 a sub-tree of the bottom tree replaces a sub-tree in the top tree in a crossover operation. A mutation occurs on the multiplication operator to change it to a modulo operator.