The aim of genetic programming is to evolve programs or functions (symbolic regression) thanks to artificial evolution. This technique is now mature and can routinely yield results on par with (or even better than) human intelligence. This chapter sums up the basics of genetic programming and outlines the main subtleties one should be aware of in order to obtain good results.
Key Terms in this Chapter
A/I Ratio: The artificial to intelligence ratio is defined by John Koza as the ratio of that which is delivered by the automated operation of the artificial method to the amount of intelligence that is supplied by the human applying the method to a particular problem.
Intron: Non-coding region of the ADN. Introns represent more than 90% of the human genome.
Exon: Coding region of the ADN. Exons represent less than 10% of the human genome.
Overfitting: Genetic programming evolves individuals over a training set, hopefully representative of the function to be approximated. However, the evolution driving force is usually so strong that individuals will develop specific code to match the training set as well as possible. An “overfit” solution will have a very good fitness on the training set, but will perform poorly on real data.
Bloat: In some cases, the size of individuals will suddenly grow beyond reason, consuming all the resources of the host computer within a handful of generations. It is believed that bloat is related to overfitting.