About Genetic Programming

Genetic Programming functions

Genetic Programming (GP) is a type of Evolutionary Algorithm (EA), a subset of machine learning. EAs are used to discover solutions to problems humans do not know how to solve, directly. Free of human preconceptions or biases, the random nature of EAs can generate solutions that are comparable to, and often better than the best human efforts.*

Inspired by biological evolution, GP is a computer program that uses random mutation, crossover, a fitness function, and multiple generations of evolution to resolve a user-defined task. GP can be used to discover a relationship between features in data (symbolic regression), to group data into categories (classification), to assist in the design of electrical circuits, antennae, and quantum algorithms. GP is applied to software engineering as genetic improvement and automatic bug-fixing, and in developing game-playing strategies, … and more.

Types of GP include:

  • Tree-based Genetic Programming
  • Stack-based Genetic Programming
  • Linear (including Machine Code) Genetic Programming
  • Grammatical Evolution
  • Extended Compact Genetic Programming (ECGP)
  • Embedded Cartesian Genetic Programming (ECGP)
  • Probabilistic Incremental Program Evolution (PIPE)
  • Strongly Typed Genetic Programming (STGP)