Genetic Programming
- Definition
- Genetic Programming (GP) extends GAs by evolving computer programs or expressions rather than fixed-length candidate vectors. Solutions are trees or code fragments that are recombined and mutated. Think of breeding small programs until one solves your task. GP differs from GAs by producing executable structures (trees of operations) and is useful when the solution form itself is unknown; it's heavier computationally but flexible for symbolic problems.

How does it work?
Genetic Programming methods maintain a population of candidates and use variation (mutation/crossover) and selection to improve fitness over generations. Implementations manage representation encoding, selection pressure, and diversity to avoid premature convergence; often parallel evaluations are used to speed up fitness computation.
Examples
- Symbolic regression — Evolve mathematical expressions that explain data when model forms are unknown.
- Automated trading rules — Evolve rule sets from historical market data to generate candidate trading strategies.
- Control policy synthesis — Evolve small programs that implement control logic for robotics or simulations.
Problems
- Bloat: evolved programs growing unnecessarily large and complex
- Very high computational cost from evaluating many candidate programs
- Designing a function/terminal set that can actually express a solution
- Poor interpretability of evolved program structures