PMDGP (Poor Man's Distributed Genetic Programming) is an object oriented framework for solving genetic programming problems written in C++. Once a GP problem has been implemented using the PMDGP framework, the often computational demanding evaluation of individuals (genetic programs) can be easily distributed over the network among standard PC's using a GUI client/server approach utilizing the idle time of client computers.
The genome interpreter (evaluator) uses the memory and runtime efficient prefix encoding to
store the programs. Both the standard program building blocks, the nodes, and
the evaluator have a user definable result type as C++ template parameter. Many
standard nodes that can work with the predefined scalar vector or binary result types are
available in the system.
The genetic algorithm delegates most of the work to component objects like
initializer, evaluator, scaler, selector, crossover etc. The objects that are
used in a run of the PMDGP are instantiated and configured as specified in a
configuration file. This enables you to work and expiriment with very different
problem configurations without having to recompile the system.
PMDGP consists of:
PMDGP currently compiles and runs on windows and linux machines.
The PMDGP source code and windows executables are separately available for download on the PMDGP sourceforge project page. A list of all packages released by this project can be found here. The masters thesis describing pmdgp can also be downloaded there. The latest version of the sourcecode is always available from CVS.
The latest version of the pmdgp code is available from CVS. Instructions on how to setup CVS can be found here. You will also find a simple webinterface for browsing the CVS online there.
PMDGP's SourceForge project page
wxWindows homepage
Boost.org website