Extends GA to evolve programs (typically represented as syntax trees)
Terminal set = constants & variables; function set = operators (+, –, ×, ÷, ln, etc.)
Example expression x^2 + \ln(10) - 7.3x represented as tree:
\begin{array}{c}\text{root: }+\[-0.3em]\begin{array}{cc}\text{subtree 1: }\times(x, x) & \text{subtree 2: }-\big(\ln(10), \times(7.3, x)\big)\end{array}\end{array}
Fitness = error between expression output and observed data (e.g.
least-squares)
Crossover & mutation redesigned for trees; examples:
GP algorithm identical template to GA with tree-specific operators