About RobGP

RobGP is a genetic programming system written from the ground up in C++. It's primary goals are efficiency, ease of use, and extensibility. It's distinguishing feature is that it has a modified version of Koza's architecture altering operations.


There are many genetic programming systems out there, and perhaps RobGP is not the one best suited to your needs. There were several motivations for RobGP which drove the style and implementation of the system. RobGP aims to satisfy several important goals.


RobGP was written as part of an independent research course concerning the use of architecture altering operations in a GP system. It is written in C++ making extensive use of object orientation to allow for easy modification and addition of components and features. Despite using object oriented techniques for easy extensibility it still takes advantage of compact structures for efficient operation. Program trees are stored in a vector in pre-order to ensure that entire programs are saved in contiguous memory without the need for fragments of memory allocated everywhere. It was written in the space of a couple months but has been heavily extended since then for use in several theses and papers. It is currently licensed as GPL but I may relicense it as LGPL to allow for commercial use in the future.