HeuristicLab supports tree-based (Koza-style) genetic programming. This classical form of genetic programming uses a tree-based representation of solution candidates. The data types and operators to work with tree-bsaed solution candidates are implemented in the plugin `HeuristicLab.Encodings.SymbolicExpressionTree`. Supported operators (in 3.3.6): * Full tree creator * Grow tree creator * Ramped-half-half tree creator * Probabilistic tree creator (PTC) * Subtree crossover * Change node type manipulator (single point mutation, symbols) * Replace branch manipulator (removes a branch and replaces it with a randomly initialized branch) * One-point shaker (single point mutation, only parameters) * Full-tree shaker (uniform mutation, only parameters)