This directory contains GPNodeBuilder subclasses other than the most common
ones (GPHalfBuilder, GPGrowBuilder, GPFullBuilder) found in the 'koza'
directory.  A good description of most of these algorithms may be found in
"A Survey and Comparison of Tree Generation Algorithms" by Sean Luke and
Liviu Panait, GECCO 2001.  Google for it.



ec.gp.build.PTC1

Implements the PTC1 algorithm, a variation of the GROW algorithm which
guarantees that generated trees will have a certain mean size.


ec.gp.build.PTC2

Implements the PTC2 algorithm, which guarantees that generated trees will
be "more or less" a certain desired size.


ec.gp.build.PTCFunctionSet

A subclass of GPFunctionSet with additional probabilistic arguments required
by the PTC1 and PTC2 algorithms.


ec.gp.RandomBranch

Implements the RANDOMBRANCH algorithm (Chellapilla), which creates roughly
evenly distributed algorithms 


ec.gp.RandTree

Implements the RandTree algorithm (Iba), which picks trees uniformly according
to structure, then labels the tree with appropriate nodes.  Note that we
believe this code may be flakey and do not recommend it.


ec.gp.Uniform

Implements an algorithm from (Bohm and Geyer-Schulz) which draws trees 
entirely uniformly.  The version in ECJ aso considers set and atomic types.


If you're struggling to pick a more versatile tree generator than the Koza
standard ones, we strongly suggest PTC2.
