Skip to content
Last Dictionary

genetic programming

nounAlso: GP, tree-based genetic programming, linear genetic programming, Cartesian genetic programming, bloat

In plain wordsUsing simulated evolution to write computer programs: random programs compete at a task, and the best are combined and mutated over many generations until one does the task well.

  1. A branch of evolutionary computationevolutionary computation, n.: Problem-solving by simulated evolution, much as breeders improve crops: keep many candidate answers, let the better ones produce slightly altered offspring, drop the worse, and repeat for many rounds. that evolves computer programs rather than fixed-length strings of parameters. In the classic tree-based form, each individual is a program represented as a syntax tree built from a function set (such as +, ×, if-then-else) and a terminal set (inputs and constants); fitness measures performance on test cases, crossover swaps randomly chosen subtrees between parents, and mutation replaces a subtree with a random one. Linear and Cartesian variants represent programs as instruction sequences or graphs. Genetic programming is a form of program synthesisprogram synthesis, n.: Getting a computer to write a program automatically from a description of what the program should do — a logical specification, a few input–output examples or a request in plain language. and the classic method for symbolic regressionsymbolic regression, n.: Getting a computer to discover a readable mathematical formula, such as a law of physics, that fits a set of measurements, instead of only fitting numbers into a formula chosen in advance.; it has produced patentable circuit designs and other results judged competitive with human work, but suffers from bloat — programs growing without improving — and high evaluation cost. Recent systems such as AlphaEvolveAlphaEvolve, prop. n.: A Google DeepMind system that combines AI language models with an evolution-like search to invent and improve computer programs, finding new results in mathematics and computing. replace random syntactic mutation with edits proposed by language modelslarge language model, n.: A computer program trained on enormous amounts of text to predict the words that come next. At vast scale, that simple skill lets it chat, answer questions, translate, summarize and write code..

Origin

Nichael Cramer described tree-based program evolution in 1985, following earlier experiments such as Richard Friedberg's (1958). John Koza developed the approach from 1988 (IJCAI-89 paper) and popularized it, culminating in his book Genetic Programming: On the Programming of Computers by Means of Natural Selection (1992); the name itself is sometimes credited to David Goldberg.

Related

See also
  • genetic algorithmgenetic algorithm, n.: A problem-solving method that copies natural evolution: many candidate solutions compete, the best are 'bred' by mixing and randomly tweaking them, and over many generations the solutions improve.
  • evolutionary computationevolutionary computation, n.: Problem-solving by simulated evolution, much as breeders improve crops: keep many candidate answers, let the better ones produce slightly altered offspring, drop the worse, and repeat for many rounds.
  • program synthesisprogram synthesis, n.: Getting a computer to write a program automatically from a description of what the program should do — a logical specification, a few input–output examples or a request in plain language.
  • symbolic regressionsymbolic regression, n.: Getting a computer to discover a readable mathematical formula, such as a law of physics, that fits a set of measurements, instead of only fitting numbers into a formula chosen in advance.
  • AlphaEvolveAlphaEvolve, prop. n.: A Google DeepMind system that combines AI language models with an evolution-like search to invent and improve computer programs, finding new results in mathematics and computing.
  • fitness functionfitness function, n.: In evolution-inspired computing, the scoring rule that says how good each candidate solution is, which decides which candidates survive and get to 'reproduce'.

Sources

  1. Cramer, N. L. (1985). A Representation for the Adaptive Generation of Simple Sequential Programs. Proceedings of the 1st International Conference on Genetic Algorithms, 183–187.
  2. Koza, J. R. (1992). Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press.

Mentioned in

evolutionary computationevolutionary computation, n.: Problem-solving by simulated evolution, much as breeders improve crops: keep many candidate answers, let the better ones produce slightly altered offspring, drop the worse, and repeat for many rounds., genetic algorithmgenetic algorithm, n.: A problem-solving method that copies natural evolution: many candidate solutions compete, the best are 'bred' by mixing and randomly tweaking them, and over many generations the solutions improve., program synthesisprogram synthesis, n.: Getting a computer to write a program automatically from a description of what the program should do — a logical specification, a few input–output examples or a request in plain language., AlphaEvolveAlphaEvolve, prop. n.: A Google DeepMind system that combines AI language models with an evolution-like search to invent and improve computer programs, finding new results in mathematics and computing., FunSearchFunSearch, prop. n.: A Google DeepMind method that discovered new mathematical constructions by having a language model repeatedly rewrite short computer programs, keeping the versions that scored best., symbolic regressionsymbolic regression, n.: Getting a computer to discover a readable mathematical formula, such as a law of physics, that fits a set of measurements, instead of only fitting numbers into a formula chosen in advance.