Genetic Programming

John R. Koza and David Andre

Course Description

This tutorial will introduce participants to the ideas and applications of genetic programming (GP) -- an automated search procedure based on the mechanics of natural genetics and natural selection. Genetic programming is a domain-independent technique for automatic programming that evolves computer programs that solve, or approximately solve, problems. Starting with a primordial ooze of thousands of randomly created programs composed of functions and terminals appropriate to a problem, a population of computer programs is progressively evolved over many generations by applying the Darwinian principle of survival of the fittest, a sexual recombination operation, and occasional mutation.

Genetic programming has found successful applications in a wide variety of different areas of artificial intelligence, including engineering design, planning, robotics, programming of independent agents, distributed artificial intelligence, modeling, system identification, forecasting, empirical discovery, data mining, optimal control, pattern recognition, game theory, optimization, structural design, molecular biology, creation of mental models, and knowledge reuse.

We will briefly review the properties and mechanics of genetic programming, and then discuss the techniques and methods that have been employed in recent years to apply genetic programming to a variety of difficult real-world problems. Topics include hierarchical, multi-part programs, automatically defined functions, the use of iteration, recursion, memory structures, mental models, architecture-altering operations, cellular encoding, implementation on parallel computers, genetic design of electrical circuits, genetically evolved assembly code, evolvable hardware, promising application areas for genetic programming, and directions for future research.

Prerequisite Knowledge

No knowledge about genetic algorithms, genetic programming or biology is required; however, a general familiarity with computers and programming is assumed. The basics of genetic programming will be provided and the tutorial will concentrate on intermediate and advanced topics.

About the Lecturers

John R. Koza is a Consulting Professor of Computer Science at Stanford University. He is author of two books on genetic programming: Genetic Programming: On the Programming of Computer by Means of Natural Selection (MIT Press, 1992) and Genetic Programming II: Automatic Discovery of Reusable Programs (MIT Press, 1994).

David Andre is currently doing research on genetic programming and artificial intelligence at UC Berkeley. He has published more than 20 papers on genetic programming and is working on an upcoming book. He has been researching genetic programming for the past five years.

Last modified: Thu Feb 20 13:16:43 JST 1997