Genetic programming (GP) (Koza 1992) is a relatively new technique that can be used for metamodelling purposes. GP main strength is in the ability to infer the mathematical structure of the best model fitting the given data (Schmidt and Lipson 2009).
The inferred model is returned as a symbolic expression, so model evaluation is inexpensive and the generated expressions can be relatively easily deployed to the final user.
The models or metamodels are generated through an evolutionary algorithm that performs a directed search in the space of all the mathematical expressions that can be built using the functions and the variables provided by the user. As metamodels are generated through the recombination of mathematical operators considered in their symbolic form, GP is commonly said to be capable of performing “symbolic regression” (Lew et al. 2006, Vladislavleva 2008, Barbosa and Bernardino 2011).
Hybrid Genetic Programming (HyGP)
This blog aims at briefly presenting the main concepts of genetic programming and disseminating to a wider audience the results obtained using the HyGP genetic programming tool developed at the School of Civil Engineering, University of Leeds (UK) as part of a research activity at PhD level. More detailed explanations of the methods and results can be found in my PhD thesis:
“Development of a hybrid genetic programming technique for computationally expensive optimisation problems” available at the White Rose repository (pdf): http://etheses.whiterose.ac.uk/7281/
In the video below an example is shown of how HyGP evolves a symbolic model: Rosenbrock function is evolved from a 10-point data set (full factorial DoE).
One of the advantages of genetic programming is that the returned metamodel, being an explicit text expression, can be easily embedded in an optimisation engine to speed up the search for a global optimum. As an example, the video below shows the search for Rosenbrock function global minimum (which happens to be 0, located in (1,1)), using a Particle Swarm Optimisation algorithm (PSO):
In this other video the Branin Hoo function is evolved from a 30-point data set (full factorial DoE):
In this last video the Kotanchek function is evolved from a 40-point Optimal Latin Hypercube DoE in [0, 4] x [0, 4]:
Genetic programming applications
Although the most common task genetic programming is used for is symbolic regression (Barbosa and Bernardino 2011), GP has been used in many fields of engineering for metamodelling, classification and design (Barbosa and Bernardino 2011). In fact, genetic programming can be used to perform a directed search and to optimise any entity that, once coded, can be processed and evaluated by GP.
This table provides a list of different applications in which genetic programming has been successfully employed. Further examples can be found in Barbosa and Bernardino (2011).
- J. R. Koza. Genetic programming: on the programming of computers by means of natural selection. MIT Press, Cambridge, MA, USA, 6th Edition, 1992
- M. Schmidt and H. Lipson. Distilling free-form natural laws from experimental data. Science, 324(5923):81-85, 2009
- T. L. Lew, A. B. Spencer, F. Scarpa, K. Worden, A. Rutherford and F. Hemez. Identification of response surface models using genetic programming. Mechanical Systems and Signal Processing, 20:1819-1831, 2006
- E. Vladislavleva. Model-based problem solving through symbolic regression via Pareto Genetic Programming. PhD Thesis, Tilburg University, Tilburg, The Netherlands, 2008
- H. J. C. Barbosa and H. S. Bernardino. Genetic programming in civil, structural and environmental engineering. Computational technology reviews, 4:115-145, 2011