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:

  • Saving time: Genetic algorithms are able to process large amounts of data much more quickly than humans can. Additionally, these algorithms run free of human biases, and are thereby able to come up with ideas that might otherwise not have been considered.
  • Data and text classification: Genetic programming can quickly identify and classify various forms of data without the need for human oversight. Genetic programming can use data tree construction in order to optimize these classifications, especially when dealing with big data.
  • Ensuring network security: Rule evolution approaches have been successfully applied to identify new attacks on networks. By quickly identifying intrusions, businesses and organizations can ensure that they can respond to such attacks before they are able to access confidential information.
  • Supporting other machine learning methods: Genetic programming can be included in larger systems of machine learning, such as with neural networks. By having genetic programming focus on only specific subsets of data, organizations can ensure that this data is quickly processed for ingestion into larger or different learning methods. This allows organizations to gain as much useful and actionable information as possible.