The GP.Lab Genetic Programming Kernel
GP.Lab uses a proprietary Genetic Programming implementation written in C++ . The representation of individuals is accomplished in a rather 'verbal' way with dedicated program and node classes. Though systems like TinyGP demonstrate that it's perfectly feasible to implement tree-based GP systems with minimal amounts of code as well as minimal memory footprint at runtime using flattened (linear) representation for trees we prefer the OO approach: Common techniques for object-oriented code allow us to structure the kernel in a way that's easy to understand and to extend (e.g. to adapt to specific problems, add analytics/statistics, etc.). The GP kernel implements the basic mechanics of the Genetic Programming system, i.e. representation of individual programs, algorithms for initialization and selection as well as the genetic operators. At this point the three standard initialization mechanisms for new programs are supported: Grow , Full and Ramped Half...