We describe the status of a genetic programming system that is based on a procedural program representation. The procedural representation is closely related to the high level programming languages used by human programmers; it includes features such as hierarchies of procedure calls, with arguments lists that allow multiple output values from each procedure. This representation is structurally different than previous representations used in GP and is expected to have different evolutionary properties. The system architecture is presented and specific benefits as well as problems and solutions arising from this program representation are described. Two mutation-like operations, repair and pruning, are introduced. A population visualization technique is described that includes the graphical presentation of program structure, ancestry, and fitness. This visualization tool and other instrumentation are used to investigate population diversity and fitness evolution. An unexpected benefit of the pruning operation is described.
Postscript version of the paper.
Figure 1. Average fitness for four different cominations of operating parameters. (PostScript version of the figure.)
Figure 2. Visualization of a population. (PostScript version of the figure.)
Figure 3. A population showing substantial loss of diversity. (PostScript version of the figure.)