Abstract
Genetic programming (GlossaryTerm
GP
) is the subset of evolutionary computation in which the aim is to create executable programs. It is an exciting field with many applications, some immediate and practical, others long-term and visionary. In this chapter, we provide a brief history of the ideas of genetic programming. We give a taxonomy of approaches and place genetic programming in a broader taxonomy of artificial intelligence. We outline some current research topics and point to successful use cases. We conclude with some practical GlossaryTermGP
-related resources including software packages and venues for GlossaryTermGP
publications.Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Abbreviations
- 1-D:
-
one-dimensional
- 2-D:
-
two-dimensional
- 3-D:
-
three-dimensional
- ADF:
-
automatically defined function
- AI:
-
artificial intelligence
- AP:
-
automatic programming
- CFG:
-
context-free grammar
- CGP:
-
Cartesian GP
- DE:
-
differential evolution
- DNA:
-
deoxyribonucleic acid
- EC:
-
evolutionary computation
- EDA:
-
estimation of distribution algorithm
- EP:
-
evolutionary programming
- ES:
-
evolution strategy
- GA:
-
genetic algorithm
- GECCO:
-
Genetic and Evolutionary Computation Conference
- GE:
-
grammatical evolution
- GP:
-
genetic programming
- IP:
-
inductive programming
- LCS:
-
learning classifier system
- LGP:
-
linear GP
- ML:
-
machine learning
- mRNA:
-
messenger RNA
- NASA:
-
National Aeronautics and Space Administration
- NEAT:
-
neuro-evolution of augmenting topologies
- NFL:
-
no free lunch
- PAC:
-
probably approximately correct
- PDGP:
-
parallel and distributed GP
- PSO:
-
particle swarm optimization
- RL:
-
reinforcement learning
- RNA:
-
ribonucleic acid
- StdGP:
-
standard GP
- STGP:
-
strongly typed GP
- TAG3P:
-
tree adjoining grammar-guided genetic programming
- UML:
-
universal modeling language
References
J. McCarthy: Programs with Common Sense, Technical Report (Stanford University, Department of Computer Science, Stanford 1963)
F. Rosenblatt: The perceptron: A probabilistic model for information storage and organization in the brain, Psychol. Rev. 65(6), 386 (1958)
D.E. Rumelhart, J.L. McClelland: Parallel Distributed Processing: Explorations in the Microstructure of Cognition, Volume 1: Foundations (MIT, Cambridge 1986)
R.A. Brooks: Intelligence without representation, Artif. Intell. 47(1), 139–159 (1991)
C. Cortes, V. Vapnik: Support-vector networks, Mach. Learn. 20(3), 273–297 (1995)
L. Page, S. Brin, R. Motwani, T. Winograd: The Pagerank Citation Ranking: Bringing Order to the Web, Technical Report 1999-66 (Stanford InfoLab, Stanford 1999), available online at http://ilpubs.stanford.edu:8090/422/. Previous number = SIDL-WP-1999-0120.
J. Levinson, J. Askeland, J. Becker, J. Dolson, D. Held, S. Kammel, J.Z. Kolter, D. Langer, O. Pink, V. Pratt, M. Sokolsky, G. Stanek, D. Stavens, A. Teichma, M. Werling, S. Thrun: Towards fully autonomous driving: Systems and algorithms, Intell. Veh. Symp. (IV) IEEE (2011) pp. 163–168
C. Darwin: The Origin of Species by Means of Natural Selection: Or, the Preservation of Favored Races in the Struggle for Life (John Murray, London 1859)
T. Bäck, D.B. Fogel, Z. Michalewicz (Eds.): Handbook of Evolutionary Computation (IOP Publ., Bristol 1997)
J.R. Koza, D. Andre, F.H. Bennett III, M. Keane: Genetic Programming 3: Darwinian Invention and Problem Solving (Morgan Kaufman, San Francisco 1999), available online at http://www.genetic-programming.org/gpbook3toc.html
W.B. Langdon: Genetic Programming and Data Structures: Genetic Programming ${}+{}$ Data Structures ${}={}$ Automatic Programming! Genetic Programming, Vol. 1 (Kluwer, Boston 1998), available online at http://www.cs.ucl.ac.uk/staff/W.Langdon/gpdata
M. Suchorzewski, J. Clune: A novel generative encoding for evolving modular, regular and scalable networks, Proc. 13th Annu. Conf. Genet. Evol. Comput. (2011) pp. 1523–1530
J. Woodward: Evolving Turing complete representations, Proc. 2003 Congr. Evol. Comput. CEC2003, ed. by R. Sarker, R. Reynolds, H. Abbass, K.C. Tan, B. McKay, D. Essam, T. Gedeon (IEEE, Canberra 2003) pp. 830–837, available online at http://www.cs.bham.ac.uk/~jrw/publications/2003/EvolvingTuringCompleteRepresentations/cec032e.pdf
J. Tanomaru: Evolving Turing machines from examples, Lect. Notes Comput. Sci. 1363, 167–180 (1993)
D. Andre, F.H. Bennett III, J.R. Koza: Discovery by genetic programming of a cellular automata rule that is better than any known rule for the majority classification problem, Proc. 1st Annu. Conf. Genet. Progr., ed. by J.R. Koza, D.E. Goldberg, D.B. Fogel, R.L. Riolo (MIT Press, Cambridge 1996) pp. 3–11, available online at http://www.genetic-programming.com/jkpdf/gp1996gkl.pdf
F. Gruau: Neural Network Synthesis Using Cellular Encoding and the Genetic Algorithm, Ph.D. Thesis (Laboratoire de l'Informatique du Parallilisme, Ecole Normale Supirieure de Lyon, France 1994), available online at ftp://ftp.ens-lyon.fr/pub/LIP/Rapports/PhD/PhD1994/PhD1994-01-E.ps.Z
A. Teller: Turing completeness in the language of genetic programming with indexed memory, Proc. 1994 IEEE World Congr. Comput. Intell., Orlando, Vol. 1 (1994) pp. 136–141, available online at http://www.cs.cmu.edu/afs/cs/usr/astro/public/papers/Turing.ps
S. Mabu, K. Hirasawa, J. Hu: A graph-based evolutionary algorithm: Genetic network programming (GNP) and its extension using reinforcement learning, Evol. Comput. 15(3), 369–398 (2007)
J.R. Koza: Genetic Programming: On the Programming of Computers by Means of Natural Selection (MIT, Cambridge 1992)
P. Prusinkiewicz, A. Lindenmayer: The Algorithmic Beauty of Plants (The Virtual Laboratory) (Springer, Berlin, Heidelberg 1991)
J. Murphy, M. O'Neill, H. Carr: Exploring grammatical evolution for horse gait optimisation, Lect. Notes Comput. Sci. 5481, 183–194 (2009)
T. Haynes, S. Sen: Evolving behavioral strategies in predators and prey, Lect. Notes Comput. Sci. 1042, 113–126 (1995)
R. De Caux: Using Genetic Programming to Evolve Strategies for the Iterated Prisoner's Dilemma, Master's Thesis (University College, London 2001), available online at http://www.cs.ucl.ac.uk/staff/W.Langdon/ftp/papers/decaux.masters.zip
A. Hauptman, M. Sipper: GP-endchess: Using genetic programming to evolve chess endgame players, Lect. Notes Comput. Sci. 3447, 120–131 (2005), available online at http://www.cs.bgu.ac.il/~sipper/papabs/eurogpchess-final.pdf
E. Galván-Lopéz, J.M. Swafford, M. O'Neill, A. Brabazon: Evolving a Ms. PacMan controller using grammatical evolution, Lect. Notes Comput. Sci. 6024, 161–170 (2010)
J. Togelius, S. Lucas, H.D. Thang, J.M. Garibaldi, T. Nakashima, C.H. Tan, I. Elhanany, S. Berant, P. Hingston, R.M. MacCallum, T. Haferlach, A. Gowrisankar, P. Burrow: The 2007 IEEE CEC simulated car racing competition, Genet. Program. Evol. Mach. 9(4), 295–329 (2008)
G.S. Hornby, J.D. Lohn, D.S. Linden: Computer-automated evolution of an X-band antenna for NASA's space technology 5 mission, Evol. Comput. 19(1), 1–23 (2011)
M. Furuholmen, K.H. Glette, M.E. Hovin, J. Torresen: Scalability, generalization and coevolution – experimental comparisons applied to automated facility layout planning, GECCO '09: Proc. 11th Annu. Conf. Genet. Evol. Comput., Montreal, ed. by F. Rothlauf, G. Raidl (2009) pp. 691–698, available online at http://doi.acm.org/10.1145/1569901.1569997
C.C. Bojarczuk, H.S. Lopes, A.A. Freitas: Genetic programming for knowledge discovery in chest-pain diagnosis, IEEE Eng. Med. Biol. Mag. 19(4), 38–44 (2000), available online at http://ieeexplore.ieee.org/iel5/51/18543/00853480.pdf
T. Hildebrandt, J. Heger, B. Scholz-Reiter, M. Pelikan, J. Branke: Towards improved dispatching rules for complex shop floor scenarios: A genetic programming approach, GECCO '10: Proc. 12th Annu. Conf. Genet. Evol. Comput., Portland, ed. by J. Branke (2010) pp. 257–264
M.B. Bader-El-Den, R. Poli, S. Fatima: Evolving timetabling heuristics using a grammar-based genetic programming hyper-heuristic framework, Memet. Comput. 1(3), 205–219 (2009), 10.1007/s12293-009-0022-y
M. Conrads, P. Nordin, W. Banzhaf: Speech sound discrimination with genetic programming, Lect. Notes Comput. Sci. 1391, 113–129 (1998)
A. Esparcia-Alcazar, K. Sharman: Genetic programming for channel equalisation, Lect. Notes Comput. Sci. 1596, 126–137 (1999), available online at http://www.iti.upv.es/~anna/papers/evoiasp99.ps
R. Poli, M. Salvaris, C. Cinel: Evolution of a brain-computer interface mouse via genetic programming, Lect. Notes Comput. Sci. 6621, 203–214 (2011)
K. Sims: Artificial evolution for computer graphics, ACM Comput. Gr. 25(4), 319–328 (1991), available online at http://delivery.acm.org/10.1145/130000/122752/p319-sims.pdf SIGGRAPH '91 Proceedings
U.-M. O'Reilly, M. Hemberg: Integrating generative growth and evolutionary computation for form exploration, Genet. Program. Evol. Mach. 8(2), 163–186 (2007), Special issue on developmental systems
P. Dahlstedt: Autonomous evolution of complete piano pieces and performances, Proc. Music AL Workshop (2007)
H. Iba: Multiple-agent learning for a robot navigation task by genetic programming, Genet. Program. Proc. 2nd Annu. Conf., Standord, ed. by J.R. Koza, K. Deb, M. Dorigo, D.B. Fogel, M. Garzon, H. Iba, R.L. Riolo (1997) pp. 195–200
T. Weise, K. Tang: Evolving distributed algorithms with genetic programming, IEEE Trans. Evol. Comput. 16(2), 242–265 (2012)
L. Spector: Autoconstructive evolution: Push, pushGP, and pushpop, Proc. Genet. Evol. Comput. Conf. (GECCO-2001), ed. by L. Spector, E. Goodman (Morgan Kaufmann, San Francisco 2001) pp. 137–146, available online at http://hampshire.edu/lspector/pubs/ace.pdf
J. Tavares, F. Pereira: Automatic design of ant algorithms with grammatical evolution. In: Gnetic Programming. 15th European Conference, EuroGP, ed. by A. Moraglio, S. Silva, K. Krawiec, P. Machado, C. Cotta (Springer, Berlin, Heidelberg 2012) pp. 206–217
M. Hutter: A Gentle Introduction To The Universal Algorithmic Agent AIXI. Technical Report IDSIA-01-03 (IDSIA, Manno-Lugano 2003)
J. Von Neumann, M.D. Godfrey: First draft of a report on the EDVAC, IEEE Ann. Hist. Comput. 15(4), 27–75 (1993)
H.H. Goldstine, A. Goldstine: The electronic numerical integrator and computer (ENIAC), Math. Tables Other Aids Comput. 2(15), 97–110 (1946)
A.M. Turing: Intelligent machinery. In: Cybernetics: Key Papers, ed. by C.R. Evans, A.D.J. Robertson (Univ. Park Press, Baltimore 1968), Written 1948
A.M. Turing: Computing machinery and intelligence, Mind 59(236), 433–460 (1950)
A.L. Samuel: Some studies in machine learning using the game of checkers, IBM J. Res. Dev. 3(3), 210 (1959)
R.M. Friedberg: A learning machine: Part I, IBM J. Res. Dev. 2(1), 2–13 (1958)
M. O'Neill, L. Vanneschi, S. Gustafson, W. Banzhaf: Open issues in genetic programming, Genet. Program. Evol. Mach. 11(3/4), 339–363 (2010), 10th Anniversary Issue: Progress in Genetic Programming and Evolvable Machines
L.J. Fogel, A.J. Owens, M.J. Walsh: Artificial Intelligence Through Simulated Evolution (Wiley, Hoboken 1966)
D.B. Fogel: Evolutionary Computation: Toward a New Philosophy of Machine Intelligence, Vol. 1 (Wiley, Hoboken 2006)
S.F. Smith: A Learning System Based on Genetic Adaptive Algorithms, Ph.D. Thesis (University of Pittsburgh, Pittsburgh 1980)
N.L. Cramer: A representation for the adaptive generation of simple sequential programs, Proc. Int. Conf. Genet. Algorithms Appl., Pittsburgh, ed. by J.J. Grefenstette (1985) pp. 183–187, available online at http://www.sover.net/~nichael/nlc-publications/icga85/index.html
J. Schmidhuber: Evolutionary Principles in Self-Referential Learning. On Learning Now to Learn: The Meta-Meta-Meta$\ldots$-Hook, Diploma Thesis (Technische Universität, München 1987), available online at http://www.idsia.ch/~juergen/diploma.html
C. Fujiki, J. Dickinson: Using the genetic algorithm to generate lisp source code to solve the prisoner's dilemma, Proc. 2nd Int. Conf. Genet. Algorithms Appl., Cambridge, ed. by J.J. Grefenstette (1987) pp. 236–240
A.S. Bickel, R.W. Bickel: Tree structured rules in genetic algorithms, Proc. 2nd Int. Conf. Genet. Algorithms Appl., Cambridge, ed. by J.J. Grefenstette (1987) pp. 77–81
T.S. Ray: Evolution, Ecology and Optimization of Digital Organisms. Technical Report Working Paper 92-08-042 (Santa Fe Institute, Santa Fe 1992) available online at http://www.santafe.edu/media/workingpapers/92-08-042.pdf
J.R. Koza: Genetic Programming II: Automatic Discovery of Reusable Programs (MIT, Cambridge 1994)
J.R. Koza, M.A. Keane, M.J. Streeter, W. Mydlowec, J. Yu, G. Lanza: Genetic Programming IV: Routine Human-Competitive Machine Intelligence (Springer, Berlin, Heidelberg 2003), available online at http://www.genetic-programming.org/gpbook4toc.html
J. Koza: http://www.genetic-programming.org/hc2011/combined.html
J.G. Carbonell, R.S. Michalski, T.M. Mitchell: An overview of machine learning. In: Machine Learning: An Artificial Intelligence Approach, ed. by R.S. Michalski, J.G. Carbonell, T.M. Mitchell (Tioga, Palo Alto 1983)
C. Rich, R.C. Waters: Automatic programming: Myths and prospects, Computer 21(8), 40–51 (1988)
S. Gulwani: Dimensions in program synthesis, Proc. 12th Int. SIGPLAN Symp. Princ. Pract. Declar. Program. (2010) pp. 13–24
I. Rechenberg: Evolutionsstrategie – Optimierung Technischer Systeme nach Prinzipien der Biologischen Evolution (Frommann-Holzboog, Stuttgart 1973)
H.-P. Schwefel: Numerische Optimierung von Computer-Modellen (Birkhäuser, Basel 1977)
J.H. Holland: Adaptation in Natural and Artificial Systems (University of Michigan, Ann Arbor 1975)
D.J. Montana: Strongly typed genetic programming, Evol. Comput. 3(2), 199–230 (1995), available online at http://vishnu.bbn.com/papers/stgp.pdf
T. Yu: Hierachical processing for evolving recursive and modular programs using higher order functions and lambda abstractions, Genet. Program. Evol. Mach. 2(4), 345–380 (2001)
R. Poli: Parallel distributed genetic programming. In: New Ideas in Optimization, Advanced Topics in Computer Science, ed. by D. Corne, M. Dorigo, F. Glover (McGraw-Hill, London 1999) pp. 403–431, Chapter 27, available online at http://citeseer.ist.psu.edu/328504.html
J.F. Miller, P. Thomson: Cartesian genetic programming, Lect. Notes Comput. Sci. 1802, 121–132 (2000), available online at http://www.elec.york.ac.uk/intsys/users/jfm7/cgp-eurogp2000.pdf
K.O. Stanley: Compositional pattern producing networks: A novel abstraction of development, Genet. Program. Evol. Mach. 8(2), 131–162 (2007)
L.J. Fogel, P.J. Angeline, D.B. Fogel: An evolutionary programming approach to self-adaptation on finite state machines, Proc. 4th Int. Conf. Evol. Program. (1995) pp. 355–365
R.I. McKay, N.X. Hoai, P.A. Whigham, Y. Shan, M. O'Neill: Grammar-based genetic programming: A survey, Genet. Program. Evol. Mach. 11(3/4), 365–396 (2010), September Tenth Anniversary Issue: Progress in Genetic Programming and Evolvable Machines
M. Keijzer, V. Babovic: Dimensionally aware genetic programming, Proc. Genet. Evol. Comput. Conf., Orlando, Vol. 2, ed. by W. Banzhaf, J. Daida, A.E. Eiben, M.H. Garzon, V. Honavar, M. Jakiela, R.E. Smith (1999) pp. 1069–1076, available online at http://www.cs.bham.ac.uk/~wbl/biblio/gecco1999/GP-420.ps
A. Ratle, M. Sebag: Grammar-guided genetic programming and dimensional consistency: Application to non-parametric identification in mechanics, Appl. Soft Comput. 1(1), 105–118 (2001), available online at http://www.sciencedirect.com/science/article/B6W86-43S6W98-B/1/38e0fa6ac503a5ef310e2287be01eff8
P.A. Whigham: Grammatically-based genetic programming, Proc. Workshop Genet. Program.: From Theory Real-World Appl., Tahoe City, ed. by J.P. Rosca (1995) pp. 33–41, available online at http://divcom.otago.ac.nz/sirc/Peterw/Publications/ml95.zip
M. O'Neill, C. Ryan: Grammatical Evolution: Evolutionary Automatic Programming in a Arbitrary Language, Genetic Programming, Vol. 4 (Kluwer, Boston 2003), available online at http://www.wkap.nl/prod/b/1-4020-7444-1
N. Xuan Hoai, R.I. McKay, D. Essam: Representation and structural difficulty in genetic programming, IEEE Trans. Evol. Comput. 10(2), 157–166 (2006), available online at http://sc.snu.ac.kr/courses/2006/fall/pg/aai/GP/nguyen/Structdiff.pdf
Y. Shan, R.I. McKay, D. Essam, H.A. Abbass: A survey of probabilistic model building genetic programming. In: Scalable Optimization via Probabilistic Modeling: From Algorithms to Applications, Studies in Computational Intelligence, Vol. 33, ed. by M. Pelikan, K. Sastry, E. Cantu-Paz (Springer, Berlin, Heidelberg 2006) pp. 121–160, Chapter 6
M. Brameier, W. Banzhaf: Linear Genetic Programming, Genetic and Evolutionary Computation, Vol. 16 (Springer, Berlin, Heidelberg 2007), available online at http://www.springer.com/west/home/default?SGWID=4-40356-22-173660820-0
T. Perkis: Stack-based genetic programming, Proc. 1994 IEEE World Congr. Comput. Intell., Orlando, Vol. 1 (1994) pp. 148–153, available online at http://citeseer.ist.psu.edu/432690.html
W.B. Langdon: Large scale bioinformatics data mining with parallel genetic programming on graphics processing units. In: Parallel and Distributed Computational Intelligence, Studies in Computational Intelligence, Vol. 269, ed. by F. de Fernandez Vega, E. Cantu-Paz (Springer, Berlin, Heidelberg 2010) pp. 113–141, Chapter 5, available online at http://www.springer.com/engineering/book/978-3-642-10674-3
L. Spector, A. Robinson: Genetic programming and autoconstructive evolution with the push programming language, Genet. Program. Evol. Mach. 3(1), 7–40 (2002), available online at http://hampshire.edu/lspector/pubs/push-gpem-final.pdf
E. Schulte, S. Forrest, W. Weimer: Automated program repair through the evolution of assembly code, Proc. IEEE/ACM Int. Conf. Autom. Softw. Eng. (2010) pp. 313–316
M. Orlov, M. Sipper: Flight of the FINCH through the Java wilderness, IEEE Trans. Evol. Comput. 15(2), 166–182 (2011)
P. Nordin: A compiling genetic programming system that directly manipulates the machine code. In: Advances in Genetic Programming, ed. by K.E. Kinnear Jr. (MIT Press, Cambridge 1994) pp. 311–331, Chapter 14, available online at http://cognet.mit.edu/library/books/view?isbn=0262111888
U.-M. O'Reilly, F. Oppacher: Program search with a hierarchical variable length representation: Genetic programming, simulated annealing and hill climbing, Lect. Notes Comput. Sci. 866, 397–406 (1994), available online at http://www.cs.ucl.ac.uk/staff/W.Langdon/ftp/papers/ppsn-94.ps.gz
M. Tomassini: Spatially Structured Evolutionary Algorithms (Springer, Berlin, Heidelberg 2005)
A. Arcuri, X. Yao: A novel co-evolutionary approach to automatic software bug fixing, IEEE World Congr. Comput. Intell., Hong Kong, ed. by J. Wang (2008)
A. Moraglio, C. Di Chio, R. Poli: Geometric particle swarm optimization, Lect. Notes Comput. Sci. 4445, 125–136 (2007)
M. O'Neill, A. Brabazon: Grammatical differential evolution, Proc. Int. Conf. Artif. Intell. ICAI 2006, Las Vegas, Vol. 1, ed. by H.R. Arabnia (2006) pp. 231–236, available online at http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.91.3012
R. Poli, N.F. McPhee: A linear estimation-of-distribution GP system, Lect. Notes Comput. Sci. 4971, 206–217 (2008)
M. Looks, B. Goertzel, C. Pennachin: Learning computer programs with the Bayesian optimization algorithm, GECCO 2005: Proc. Conf. Genet. Evol. Comput., Washington, Vol. 1, ed. by U.-M. O'Reilly, H.-G. Beyer (2005) pp. 747–748, available online at http://www.cs.bham.ac.uk/~wbl/biblio/gecco2005/docs/p747.pdf
E. Hemberg, K. Veeramachaneni, J. McDermott, C. Berzan, U.-M. O'Reilly: An investigation of local patterns for estimation of distribution genetic programming, Philadelphia, Proc. GECCO 2012 (2012)
M. Schmidt, H. Lipson: Distilling free-form natural laws from experimental data, Science 324(5923), 81–85 (2009), available online at http://ccsl.mae.cornell.edu/sites/default/files/Science09_Schmidt.pdf
E.J. Vladislavleva, G.F. Smits, D. den Hertog: Order of nonlinearity as a complexity measure for models generated by symbolic regression via Pareto genetic programming, IEEE Trans. Evol. Comput. 13(2), 333–349 (2009)
K. Veeramachaneni, E. Vladislavleva, U.-M. O'Reilly: Knowledge mining sensory evaluation data: Genetic programming, statistical techniques, and swarm optimization, Genet. Program. Evolvable Mach. 13(1), 103–133 (2012)
M. Kotanchek, G. Smits, E. Vladislavleva: Pursuing the Pareto paradigm tournaments, algorithm variations & ordinal optimization. In: Genetic Programming Theory and Practice IV, Genetic and Evolutionary Computation, Vol. 5, ed. by R.L. Riolo, T. Soule, B. Worzel (Springer, Berlin, Heidelberg 2006) pp. 167–186, Chapter 12
C. Le Goues, T. Nguyen, S. Forrest, W. Weimer: GenProg: A generic method for automated software repair, IEEE Trans. Softw. Eng. 38(1), 54–72 (2011)
C. Ryan: Automatic Re-Engineering of Software Using Genetic Programming, Genetic Programming, Vol. 2 (Kluwer, Boston 2000), available online at http://www.wkap.nl/book.htm/0-7923-8653-1
K.P. Williams: Evolutionary Algorithms for Automatic Parallelization, Ph.D. Thesis (University of Reading, Reading 1998)
M. Stephenson, S. Amarasinghe, M. Martin, U.-M. O'Reilly: Meta optimization: Improving compiler heuristics with machine learning, Proc. ACM SIGPLAN Conf. Program. Lang. Des. Implement. (PLDI '03), San Diego (2003) pp. 77–90
M. Stephenson, U.-M. O'Reilly, M.C. Martin, S. Amarasinghe: Genetic programming applied to compiler heuristic optimization, Lect. Notes Comput. Sci. 2610, 238–253 (2003)
D.R. White, A. Arcuri, J.A. Clark: Evolutionary improvement of programs, IEEE Trans. Evol. Comput. 15(4), 515–538 (2011)
M. Harman: The current state and future of search based software engineering, Proc. Future of Software Engineering FOSE '07, Washington, ed. by L. Briand, A. Wolf (2007) pp. 342–357
J.R. Koza, F.H. Bennett III, D. Andre, M.A. Keane, F. Dunlap: Automated synthesis of analog electrical circuits by means of genetic programming, IEEE Trans. Evol. Comput. 1(2), 109–128 (1997), available online at http://www.genetic-programming.com/jkpdf/ieeetecjournal1997.pdf
R. Dawkins: The Blind Watchmaker (Norton, New York 1986)
H. Takagi: Interactive evolutionary computation: Fusion of the capabilities of EC optimization and human evaluation, Proc. IEEE 89(9), 1275–1296 (2001)
S. Todd, W. Latham: Evolutionary Art and Computers (Academic, Waltham 1994)
M. Lewis: Evolutionary visual art and design. In: The Art of Artificial Evolution: A Handbook on Evolutionary Art and Music, ed. by J. Romero, P. Machado (Springer, Berlin, Heidelberg 2008) pp. 3–37
J. McDermott, J. Byrne, J.M. Swafford, M. O'Neill, A. Brabazon: Higher-order functions in aesthetic EC encodings, 2010 IEEE World Congr. Comput. Intell., Barcelona (2010), pp. 2816–2823, 18-23 July
D.A. Hart: Toward greater artistic control for interactive evolution of images and animation, Lect. Notes Comput. Sci. 4448, 527–536 (2007)
A.K. Hoover, M.P. Rosario, K.O. Stanley: Scaffolding for interactively evolving novel drum tracks for existing songs, Lect. Notes Comput. Sci. 4974, 412 (2008)
J. Shao, J. McDermott, M. O'Neill, A. Brabazon: Jive: A generative, interactive, virtual, evolutionary music system, Lect. Notes Comput. Sci. 6025, 341–350 (2010)
J. McDermott, U.-M. O'Reilly: An executable graph representation for evolutionary generative music, Proc. GECCO 2011 (2011) pp. 403–410
J. Clune, H. Lipson: Evolving three-dimensional objects with a generative encoding inspired by developmental biology, Proc. Eur. Conf. Artif. Life (2011), available online at http://endlessforms.com
J. McCormack: Evolutionary L-systems. In: Design by Evolution: Advances in Evolutionary Design, ed. by P.F. Hingston, L.C. Barone, Z. Michalewicz, D.B. Fogel (Springer, Berlin, Heidelberg 2008) pp. 169–196
G.S. Hornby, J.B. Pollack: Evolving L-systems to generate virtual creatures, Comput. Graph. 25(6), 1041–1048 (2001)
P. Worth, S. Stepney: Growing music: Musical interpretations of L-systems, Lect. Notes Comput. Sci. 3449, 545–550 (2005)
J. McDermott, J. Byrne, J.M. Swafford, M. Hemberg, C. McNally, E. Shotton, E. Hemberg, M. Fenton, M. O'Neill: String-rewriting grammars for evolutionary architectural design, Environ. Plan. B 39(4), 713–731 (2012), available online at http://www.envplan.com/abstract.cgi?id=b38037
W. Banzhaf, W.B. Langdon: Some considerations on the reason for bloat, Genet. Program. Evol. Mach. 3(1), 81–91 (2002), available online at http://web.cs.mun.ca/~banzhaf/papers/genp_bloat.pdf
S. Luke, L. Panait: A comparison of bloat control methods for genetic programming, Evol. Comput. 14(3), 309–344 (2006)
S. Silva, S. Dignum, L. Vanneschi: Operator equalisation for bloat free genetic programming and a survey of bloat control methods, Genet. Program. Evol. Mach. 3(2), 197–238 (2011)
W.B. Langdon, R. Poli: Fitness causes bloat. In: Soft Computing in Engineering Design and Manufacturing, ed. by P.K. Chawdhry, R. Roy, R.K. Pant (Springer, London 1997) pp. 13–22, available online at http://www.cs.bham.ac.uk/~wbl/ftp/papers/WBL.bloat_wsc2.ps.gz
S. Dignum, R. Poli: Generalisation of the limiting distribution of program sizes in tree-based genetic programming and analysis of its effects on bloat, GECCO '07 Proc. 9th Annu. Conf. Genet. Evol. Comput., London, Vol. 2, ed. by H. Lipson, D. Thierens (2007) pp. 1588–1595, available online at http://www.cs.bham.ac.uk/~wbl/biblio/gecco2007/docs/p1588.pdf
W.B. Langdon: How many good programs are there? How long are they?, Found. Genet. Algorithms VII, San Francisco, ed. by K.A. De Jong, R. Poli, J.E. Rowe (2002), pp. 183–202, available online at http://www.cs.ucl.ac.uk/staff/W.Langdon/ftp/papers/wbl_foga2002.pdf
R. Poli, M. Salvaris, C. Cinel: Evolution of an effective brain-computer interface mouse via genetic programming with adaptive Tarpeian bloat control. In: Genetic Programming Theory and Practice IX, ed. by R. Riolo, K. Vladislavleva, J. Moore (Springer, Berlin, Heidelberg 2011) pp. 77–95
G. Smits, E. Vladislavleva: Ordinal pareto genetic programming, Proc. 2006 IEEE Congr. Evol. Comput., Vancouver, ed. by G.G. Yen, S.M. Lucas, G. Fogel, G. Kendall, R. Salomon, B.-T. Zhang, C.A. Coello Coello, T.P. Runarsson (2006) pp. 3114–3120, available online at http://ieeexplore.ieee.org/servlet/opac?punumber=11108
L. Vanneschi, M. Castelli, S. Silva: Measuring bloat, overfitting and functional complexity in genetic programming, GECCO '10: Proc. 12th Annu. Conf. Genet. Evol. Comput., Portland (2010) pp. 877–884
H. Iba, H. de Garis, T. Sato: Genetic programming using a minimum description length principle. In: Advances in Genetic Programming, ed. by K.E. Kinnear Jr. (MIT Press, Cambridge 1994) pp. 265–284, available online at http://citeseer.ist.psu.edu/327857.html, Chapter 12
J. Miller: What bloat? Cartesian genetic programming on boolean problems, 2001 Genet. Evol. Comput. Conf. Late Break. Pap., ed. by E.D. Goodman (2001) pp. 295–302, available online at http://www.elec.york.ac.uk/intsys/users/jfm7/gecco2001Late.pdf
R. Poli, J. Page, W.B. Langdon: Smooth uniform crossover, sub-machine code GP and demes: A recipe for solving high-order Boolean parity problems, Proc. Genet. Evol. Comput. Conf., Orlando, Vol. 2, ed. by W. Banzhaf, J. Daida, A.E. Eiben, M.H. Garzon, V. Honavar, M. Jakiela, R.E. Smith (1999) pp. 1162–1169, available online at http://www.cs.bham.ac.uk/~wbl/biblio/gecco1999/GP-466.pdf
M. Keijzer: Alternatives in subtree caching for genetic programming, Lect. Notes Comput. Sci. 3003, 328–337 (2004), available online at http://www.springerlink.com/openurl.asp?genre=article&issn=0302-9743&volume=3003&spage=328
R. Poli, W.B. Langdon: Running genetic programming backward. In: Genetic Programming Theory and Practice III, Genetic Programming, Vol. 9, ed. by T. Yu, R.L. Riolo, B. Worzel (Springer, Berlin, Heidelberg 2005) pp. 125–140, Chapter 9, available online at http://www.cs.essex.ac.uk/staff/poli/papers/GPTP2005.pdf
Q.U. Nguyen, X.H. Nguyen, M. O'Neill, R.I. McKay, E. Galván-López: Semantically-based crossover in genetic programming: Application to real-valued symbolic regression, Genet. Program. Evol. Mach. 12, 91–119 (2011)
L. Altenberg: Emergent phenomena in genetic programming, Evol. Progr. — Proc. 3rd Annu. Conf., San Diego, ed. by A.V. Sebald, L.J. Fogel (1994) pp. 233–241, available online at http://dynamics.org/~altenber/PAPERS/EPIGP/
U.-M. O'Reilly, F. Oppacher: The troubling aspects of a building block hypothesis for genetic programming, Working Paper 94-02-001 (Santa Fe Institute, Santa Fe 1992)
R. Poli, W.B. Langdon: A new schema theory for genetic programming with one-point crossover and point mutation, Proc. Second Annu. Conf. Genet. Progr. 1997, Stanford, ed. by J.R. Koza, K. Deb, M. Dorigo, D.B. Fogel, M. Garzon, H. Iba, R.L. Riolo (1997) pp. 278–285, available online at http://citeseer.ist.psu.edu/327495.html
J.P. Rosca: Analysis of complexity drift in genetic programming, Proc. 2nd Annu. Conf. Genet. Program. 1997, Stanford, ed. by J.R. Koza, K. Deb, M. Dorigo, D.B. Fogel, M. Garzon, H. Iba, R.L. Riolo (1997), pp. 286–294, available online at ftp://ftp.cs.rochester.edu/pub/u/rosca/gp/97.gp.ps.gz
R. Poli, N.F. McPhee: General schema theory for genetic programming with subtree-swapping crossover: Part I, Evol. Comput. 11(1), 53–66 (2003), available online at http://cswww.essex.ac.uk/staff/rpoli/papers/ecj2003partI.pdf
R. Poli, N.F. McPhee: General schema theory for genetic programming with subtree-swapping crossover: Part II, Evol. Comput. 11(2), 169–206 (2003), available online at http://cswww.essex.ac.uk/staff/rpoli/papers/ecj2003partII.pdf
R. Poli, N.F. McPhee, J.E. Rowe: Exact schema theory and Markov chain models for genetic programming and variable-length genetic algorithms with homologous crossover, Genet. Program. Evol. Mach. 5(1), 31–70 (2004), available online at http://cswww.essex.ac.uk/staff/rpoli/papers/GPEM2004.pdf
N.F. McPhee, B. Ohs, T. Hutchison: Semantic building blocks in genetic programming, Lect. Notes Comput. Sci. 4971, 134–145 (2008)
G. Durrett, F. Neumann, U.-M. O'Reilly: Computational complexity analysis of simple genetic programming on two problems modeling isolated program semantics, Proc. 11th Workshop Found. Genet. Algorithm. (ACM, New York 2011) pp. 69–80, available online at http://arxiv.org/pdf/1007.4636v1 arXiv:1007.4636v1
D.E. Goldberg, U.-M. O'Reilly: Where does the good stuff go, and why? How contextual semantics influence program structure in simple genetic programming, Lect. Notes Comput. Sci. 1391, 16–36 (1998), available online at http://citeseer.ist.psu.edu/96596.html
D.E. Goldberg: Genetic Algorithms in Search, Optimization, and Machine Learning (Addison-Wesley, Reading 1989)
T. Kötzing, F. Neumann, A. Sutton, U.-M. O'Reilly: The max problem revisited: The importance of mutation in genetic programming, GECCO '12 Proc. 14th Annu. Conf. Genet. Evolut. Comput. (ACM, New York 2012) pp. 1333–1340
C. Gathercole, P. Ross: The Max Problem for Genetic Programming – Highlighting an Adverse Interaction Between the Crossover Operator and a Restriction on Tree Depth, Technical Report (Department of Artificial Intelligence, University of Edinburgh, Edinburgh 1995) available online at http://citeseer.ist.psu.edu/gathercole95max.html
F. Neumann: Computational complexity analysis of multi-objective genetic programming, GECCO '12 Proc. 14th Annu. Conf. Genet. Evolut. Comput. (ACM, New York 2012) pp. 799–806
T. Kötzing, F. Neumann, R. Spöhel: PAC learning and genetic programming, Proc. 13th Annu. Conf. Genet. Evol. Comput. (ACM, New York 2011) pp. 2091–2096
F. Rothlauf: Representations for Genetic and Evolutionary Algorithms, 2nd edn. (Physica, Heidelberg 2006)
T. Jones: Evolutionary Algorithms, Fitness Landscapes and Search, Ph.D. Thesis (University of New Mexico, Albuquerque 1995)
J. McDermott, E. Galván-Lopéz, M. O'Neill: A fine-grained view of phenotypes and locality in genetic programming. In: Genetic Programming Theory and Practice, Vol. 9, ed. by R. Riolo, K. Vladislavleva, J. Moore (Springer, Berlin, Heidelberg 2011)
M. Tomassini, L. Vanneschi, P. Collard, M. Clergue: A study of fitness distance correlation as a difficulty measure in genetic programming, Evol. Comput. 13(2), 213–239 (2005)
L. Vanneschi: Theory and Practice for Efficient Genetic Programming, Ph.D. Thesis (Université de Lausanne, Lausanne 2004)
L. Vanneschi, M. Tomassini, P. Collard, S. Verel, Y. Pirola, G. Mauri: A comprehensive view of fitness landscapes with neutrality and fitness clouds, Lect. Notes Comput. Sci. 4445, 241–250 (2007)
A. Ekárt, S.Z. Németh: A metric for genetic programs and fitness sharing, Lect. Notes Comput. Sci. 1802, 259–270 (2000)
S. Gustafson, L. Vanneschi: Crossover-based tree distance in genetic programming, IEEE Trans. Evol. Comput. 12(4), 506–524 (2008)
J. McDermott, U.-M. O'Reilly, L. Vanneschi, K. Veeramachaneni: How far is it from here to there? A distance that is coherent with GP operators, Lect. Notes Comput. Sci. 6621, 190–202 (2011)
U.-M. O'Reilly: Using a distance metric on genetic programs to understand genetic operators, Int. Conf. Syst. Man Cybern. Comput. Cybern. Simul. (1997) pp. 233–241
D.H. Wolpert, W.G. Macready: No free lunch theorems for optimization, Evol. Comput. IEEE Trans. 1(1), 67–82 (1997)
C. Schumacher, M.D. Vose, L.D. Whitley: The no free lunch and problem description length, Proc. Genet. Evol. Comput. Conf. GECCO-2001 (2001) pp. 565–570
J.R. Woodward, J.R. Neil: No free lunch, program induction and combinatorial problems, Lect. Notes Comput. Sci. 2610, 475–484 (2003)
R. Poli, M. Graff, N.F. McPhee: Free lunches for function and program induction, FOGA '09: Proc. 10th ACM SIGEVO Workshop Found. Genet. Algorithms, Orlando (2009) pp. 183–194
L. Spector: Simultaneous evolution of programs and their control structures. In: Advances in Genetic Programming, Vol. 2, ed. by P.J. Angeline, K.E. Kinnear Jr. (MIT, Cambridge 1996) pp. 137–154, Chapter 7, available online at http://helios.hampshire.edu/lspector/pubs/AiGP2-post-final-e.pdf
L. Spector, B. Martin, K. Harrington, T. Helmuth: Tag-based modules in genetic programming, Proc. Genet. Evol. Comput. Conf. GECCO-2011 (2011)
G.S. Hornby: Measuring, nabling and comparing modularity, regularity and hierarchy in evolutionary design, GECCO 2005: Proc. 2005 Conf. Genet. Evol. Comput., Washington, Vol. 2, ed. by H.-G. Beyer, U.-M. O'Reilly, D.V. Arnold, W. Banzhaf, C. Blum, E.W. Bonabeau, E. Cantu-Paz, D. Dasgupta, K. Deb, J.A. Foster, E.D. de Jong, H. Lipson, X. Llora, S. Mancoridis, M. Pelikan, G.R. Raidl, T. Soule, A.M. Tyrrell, J.-P. Watson, E. Zitzler (2005) pp. 1729–1736, available online at http://www.cs.bham.ac.uk/~wbl/biblio/gecco2005/docs/p1729.pdf
J.H. Moore, C.S. Greene, P.C. Andrews, B.C. White: Does complexity matter? Artificial evolution, computational evolution and the genetic analysis of epistasis in common human diseases. In: Genetic Programming Theory and Practice Vol. VI, ed. by R.L. Riolo, T. Soule, B. Worzel (Springer, Berlin, Heidelberg 2008) pp. 125–145, Chap. 9
S. Gustafson: An Analysis of Diversity in Genetic Programming, Ph.D. Thesis (School of Computer Science and Information Technology, University of Nottingham, Nottingham 2004), available online at http://www.cs.nott.ac.uk/~smg/research/publications/phdthesis-gustafson.pdf
G.S. Hornby: A steady-state version of the age-layered population structure EA. In: Genetic Programming Theory and Practice, Vol. VII, Genetic and Evolutionary Computation, ed. by R.L. Riolo, U.-M. O'Reilly, T. McConaghy (Springer, Ann Arbor 2009) pp. 87–102, Chap. 6
J.C. Bongard: Coevolutionary dynamics of a multi-population genetic programming system, Lect. Notes Comput. Sci. 1674, 154 (1999), available online at http://www.cs.uvm.edu/~jbongard/papers/s067.ps.gz
I. Dempsey, M. O'Neill, A. Brabazon: Foundations in Grammatical Evolution for Dynamic Environments, Studies in Computational Intelligence, Vol. 194 (Springer, Berlin, Heidelberg 2009), available online at http://www.springer.com/engineering/book/978-3-642-00313-4
J. Doucette, P. Lichodzijewski, M. Heywood: Evolving coevolutionary classifiers under large attribute spaces. In: Genetic Programming Theory and Practice Vol. VII, ed. by R.L. Riolo, U.-M. O'Reilly, T. McConaghy (Springer, Berlin, Heidelberg 2009) pp. 37–54, Chap. 3
S. Luke: The ECJ Owner's Manual – A User Manual for the ECJ Evolutionary Computation Library, 0th edn. online version 0.2 edition, available online at http://www.cs.gmu.edu/~eclab/projects/ecj/docs/manual/manual.pdf
D.W. Dyer: https://github.com/dwdyer/watchmaker
E. Hemberg, M. O'Neill: http://ncra.ucd.ie/Site/GEVA.html
M. O'Neill, E. Hemberg, C. Gilligan, E. Bartley, J. McDermott, A. Brabazon: GEVA: Grammatical evolution in Java, SIGEVOlution 3(2), 17–22 (2008), available online at http://www.sigevolution.org/issues/pdf/SIGEVOlution200802.pdf
J. Dréo: http://eodev.sourceforge.net/
G. Squillero: http://www.cad.polito.it/research/Evolutionary_Computation/MicroGP/index.html
M. Schillaci, E.E. Sanchez Sanchez: A brief survey of μGP, SIGEvolution 1(2), 17–21 (2006)
G. Squillero: MicroGP - an evolutionary assembly program generator, Genet. Program. Evol. Mach. 6(3), 247–263 (2005), Published online: 17 August 2005.
C. Gagné, M. Parizeau: http://beagle.sourceforge.net/
C. Gagné, M. Parizeau: Open BEAGLE A C++ framework for your favorite evolutionary algorithm, SIGEvolution 1(1), 12–15 (2006), available online at http://www.sigevolution.org/2006/01/issue.pdf
S. Silva: http://gplab.sourceforge.net/
F.M. De Rainville, F.-A. Fortin: http://code.google.com/p/deap/
L. Spector: http://hampshire.edu/lspector/push.html
E. Hemberg, J. McDermott: http://code.google.com/p/ponyge/
H. Lipson: http://creativemachines.cornell.edu/eureqa
M.E. Kotanchek, E. Vladislavleva, G.F. Smits: http://www.evolved-analytics.com/
P. Nordin: http://www.rmltech.com/
P. Nordin, W. Banzhaf, F.D. Francone: Efficient evolution of machine code for CISC architectures using instruction blocks and homologous crossover. In: Advances in Genetic Programming, Vol. 3, ed. by L. Spector, W.B. Langdon, U.-M. O'Reilly, P.J. Angeline (MIT, Cambridge 1999) pp. 275–299, Chap. 12, available online at http://www.aimlearning.com/aigp31.pdf
W.B. Langdon: http://www.cs.bham.ac.uk/~wbl/biblio/
W.B. Langdon: http://www.cs.ucl.ac.uk/staff/W.Langdon/homepages.html
Genetic Programming Yahoo Group: http://groups.yahoo.com/group/genetic_programming/
J. McDermott, D. White: http://gpbenchmarks.org
J. McDermott, D.R. White, S. Luke, L. Manzoni, M. Castelli, L. Vanneschi, W. Jaśkowski, K. Krawiec, R. Harper, K. De Jong, U.-M. O'Reilly: Genetic programming needs better benchmarks, Proc. GECCO 2012, Philadelphia (2012)
R. Poli, W.B. Langdon, N.F. McPhee: A Field Guide to Genetic Programming (Lulu, Raleigh 2008), Published via http://lulu.com and available at http://www.gp-field-guide.org.uk (With contributions by J. R. Koza)
S. Luke: Essentials of Metaheuristics, 1st edn. (Lulu, Raleigh 2009), available online at http://cs.gmu.edu/~sean/books/metaheuristics/
W. Banzhaf, P. Nordin, R.E. Keller, F.D. Francone: Genetic Programming – An Introduction; On the Automatic Evolution of Computer Programs and Its Applications (Morgan Kaufmann, San Francisco 1998), available online at http://www.elsevier.com/wps/find/bookdescription.cws_home/677869/description#description
W.B. Langdon, R. Poli: Foundations of Genetic Programming (Springer, Berlin, Heidelberg 2002), available online at http://www.cs.ucl.ac.uk/staff/W.Langdon/FOGP/
H. Iba, Y. Hasegawa, T. Kumar Paul: Applied Genetic Programming and Machine Learning, CRC Complex and Enterprise Systems Engineering (CRC, Boca Raton 2009)
M. Sipper: Evolved to Win (Lulu, Raleigh 2011), available at http://www.lulu.com/
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
McDermott, J., O’Reilly, UM. (2015). Genetic Programming. In: Kacprzyk, J., Pedrycz, W. (eds) Springer Handbook of Computational Intelligence. Springer Handbooks. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-43505-2_43
Download citation
DOI: https://doi.org/10.1007/978-3-662-43505-2_43
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-43504-5
Online ISBN: 978-3-662-43505-2
eBook Packages: EngineeringEngineering (R0)