Genetic Programming & Evolutionary Algorithms 

I am interested in several aspects of genetic programming research, though I have not been active in this area for a while:

Undergraduate thesis/Div3: Genetic Programming: Theory, Implementation, and the Evolution of Unconstrained Solutions

A Div 3 is a year long project at Hampshire College that focuses on a single topic, and is is essentially an in-depth senior thesis. My project consisted of two related components:

1.      The development of a linear genetic programming environment from scratch in the Java programming language (called LJGP).  The educational goal of this work was to develop a deeper understanding of the mechanics and design considerations inherent in the construction of a contemporary genetic programming system. The practical goal was to build a cross-platform genetic programming system suited to harnessing the idle cycles of lab machines that are unused at night.

2.      The investigation of techniques designed to allow genetic programming to evolve significantly more complex, modular, and functionally expressive code.  Rather then developing a system from scratch, the research in Part II of this project built upon the PushGP system developed by Lee Spector (2001). PushGP uses a stack-based language with multiple stacks for operating on different data types. One stack stores program code and allows for interactive construction and modification of executable functions, modules, and control structures as the main program executes. The primary question I addressed was what sort of modularity and control structures evolve when their very composition arises from the evolutionary modifications of program code. A secondary question was how the computational effort of this system varies in comparison to more traditional genetic programming systems (such as Koza’s GP system with automatically defined functions).

Download as PDF [127 pages, 895 KB). 

Software [runtime]

Genetic Lawn Mower Evolution of gird based lawn mower controller.  Written in JAVA, includes AWT based visualization of behavior.

GP Java Mark 2 - Java Benchmark program that test JRE performance on a simple, but typical Alife-GP problem (evolution, via tournament selection, of a lawn mower controller for a linear, CPU based genome). 

GP Java Mark 1, for testing int and float performance on symbolic regression via tournament upon a linear genome).

Publications and Technical Reports

All available as PDFs here.

<= home


(c) 2009 Alan Robinson (robinsoncogsci.ucsd.edu)