Cartesian Genetic Programming

Genetic Programming (GP)

Genetic Programming is concerned with the automatic evolution (as in Darwinian evolution) of computational structures (such as mathematical equations, computer programs, digital circuits, etc.). The best known figure in this field is
John Koza.
The form of GP pioneered by John Koza used a tree representation of computer programs. This was inspired by the artificial intelligence computer language, LISP.

Cartesian Genetic Programming (CGP)

CGP is a highly efficient and flexible form of Genetic Programming that encodes a graph representation of a computer program. It was invented by Julian Miller in 1999 and was developed from a representation of electronic circuits devised by Julian Miller and Peter Thomson developed a few years earlier.
CGP represents computational structures (mathematical equations, circuits, computer programs etc) as a string of integers. These integers, known as genes determine the functions of nodes in the graph, the connections between nodes, the connections to inputs and the locations in the graph where outputs are taken from.
Using a graph representation is very flexible as many computational structures can be represented as a graph. A good example of this is artificial neural networks (ANNs). These can be easily encoded in CGP. Recent published results of Khan and Miller (see their publications linked from this site) show that using CGP to encode and evolve ANNs (CGPANNs) is highly efficient and competitive with other methods of evolving ANNs. Here is a ten-slide introduction to CGP.


To learn more

Buy the CGP book edited by Julian Miller (cheapest at amazon) and/or download the latest tutorial by Julian Miller and Simon Harding
GECCO 2011 Tutorial on CGP.


latest news

Dec 2011
CGP is being used by a team who are aiming to win the Google Lunar X prize. This is a prize awarded to the first private venture to land a rover vehicle on the moon. Wes Faler, who is a member of a team called "Part-time scientists" are building a rover called "Asimov 1". Wes gave talks at a conference called 28C3 in Berlin, Germany about two ways he is using CGP in the project. His talks are available on his blog

September 2011
The first book on CGP was published. Published by Springer in their Natural Computing Series. This is an excellent place to start to get to know CGP. It begins with two easily accesible introductions to evolutionary computation and CGP. It then continues with nine more chapters from leading researchers, academics and user of CGP.

July 2011
Zdenek Vasicek and Lukas Sekanina won the silver medal ($3000) at the human-competitive workshop at GECCO 2011 in Dublin, Eire.

April 2011
Julian Miller won the Evostar award for outstanding contributions to Evolutionary Computation. This was awarded at the Evostar 2011 conference in Torino, Italy.