What is a good genotype-phenotype mapping for the evolution of computer programs?

Julian F. Miller

In this paper I describe the characteristics of a novel form of Genetic Programming called Cartesian Genetic Programming (CGP) which appears to benefit from a highly effective genotype-phenotype mapping. The mapping allows explicit genotype redundancy that a simple search algorithm can exploit via genetic drift. The continual process of genetic change leading to phenotypic change appears to lead to a highly effective search process. It is easy to demonstrate practically that the genetic drift is the primary source of the algorithm's power. Recently, I have investigated a developmental form of CGP in which one evolves the program for a single cell. The cell's program and context allows it to differentiate and divide and construct an "organism" made of many cells. The organism however is just another larger Cartesian Genetic Program. It was anticipated that the new organism would be more evolvable because of its shorter genotype length. Early experiments appear not to show this however. I discuss the implications of this and attempt to make some progress on the question of what makes a good genotype-phenotype mapping for the evolution of computer programs.