ACM Home Page
Please provide us with feedback. Feedback
Introduction to genetic programming
Full text MovMov (107:54),  PdfPdf (2.34 MB)
Source
Genetic And Evolutionary Computation Conference archive
Proceedings of the 11th Annual Conference Companion on Genetic and Evolutionary Computation Conference: Late Breaking Papers table of contents
Montreal, Québec, Canada
TUTORIAL SESSION: Tutorials table of contents
Pages 2775-2810  
Year of Publication: 2009
ISBN:978-1-60558-505-5
Authors
Riccardo Poli  University of Essex, Colchester, United Kingdom
Nicholas Freitag McPhee  University of Minnesota, Morris, MORRIS, MN, USA
Sponsors
SIGEVO: ACM Special Interest Group on Genetic and Evolutionary Computation
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 20,   Downloads (12 Months): 69,   Citation Count: 0
Additional Information:

abstract   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1570256.1570403
What is a DOI?

ABSTRACT

Genetic programming (GP) is a collection of evolutionary computation techniques that allow computers to solve problems automatically. Using ideas from natural evolution, GP starts from an ooze of random computer programs, and progressively refines them through processes of mutation and sexual recombination, until solutions emerge. All this without the user having to know or specify the form or structure of solutions in advance. Since its inception twenty years ago, GP has been used to solve a wide range of practical problems, producing a number of human-competitive results and even patentable new inventions. Like many other areas of computer science, GP is evolving rapidly, with new ideas, techniques and applications being constantly proposed, making it is difficult for people to identify the key ideas in the field and keep up with the pace of new developments. The aim of this tutorial is to provide a roadmap to GP for both newcomers and old-timers.

The tutorial starts with a gentle introduction which describes how a population of programs is stored in the computer so that they can evolve with time. We explain how programs are represented, how random programs are initially created, and how GP creates a new generation by mutating the better existing programs or combining pairs of good parent programs to produce offspring programs. Then, we describe a variety of alternative representations for programs and some advanced GP techniques. These include: the evolution of machine-code and parallel programs, the use of grammars and probability distributions for the generation of programs, variants of GP which allow the solution of problems with multiple objectives, many speed-up techniques and some useful theoretical tools. To illustrate genetic programming's scope, we then review some real-world applications of GP. The tutorial is concluded by a series of recommendations and suggestions to obtain the most from a GP system and open questions.


Collaborative Colleagues:
Riccardo Poli: colleagues
Nicholas Freitag McPhee: colleagues