Genetic programming is a form of artificial intelligence that mimics natural selection in order to find an optimal result. Genetic programming is iterative, and at each new stage of the algorithm, it chooses only the fittest of the “offspring” to cross and reproduce in the next generation, which is sometimes referred to as a fitness function. Just like in biological evolution, evolutionary algorithms can sometimes have randomly mutating offspring, but since only the offspring that have the highest fitness measure are reproduced, the fitness will almost always improve over generations. Genetic programming will generally terminate once it reaches a predefined fitness measure. Additionally, architecture-altering operations can be introduced to an already running program in order to allow for new sources of information to be analyzed for a given fitness function.
Although originally proposed in 1950 by Alan Turing, it wasn’t until the 1980s that successful genetic algorithms were first implemented. The first patented algorithm for genetic operations was in 1988 by John Koza, who remains a leader in the field. As the study of genetic operations continued to evolve, so has the literature around it, such as with annual conferences like Genetic Algorithms and dedicated journals like Genetic Programming and Evolvable Machines. There has also been a series of 19 books published by MIT Press called Genetic and Evolutionary Computation. As knowledge around evolutionary programs has expanded, so has the population of computer programs that can run them.
Genetic programming systems utilize a type of machine learning technique that can include automatic programming without the need for manual interaction. This means that genetic algorithms can utilize automatic program inductions to run as new information is ingested, so that the programs can be optimized automatically. Genetic or evolutionary algorithms have a variety of uses, particularly around domains where an exact solution is not known in advance, or when finding an approximate solution is deemed appropriate. Genetic programming is often used in conjunction with other forms of machine learning, as it is useful for performing symbolic regressions and feature classifications.
Genetic programming can help organizations and businesses by: