Project without external funding

Distributed Genetic Programming Framework - DGPF


Project Details


Abstract
The Distributed Genetic Programming Framework (DGPF) is a scalable Java
environment for heuristic, simulation-based search algorithms of any
kind and Genetic Algorithms in special. We use the broad foundation of
a search algorithms layer to provide a Genetic Programming system which
is able to create Turing-complete code.

The main focus of our project is put on the automated creation of
programs that should drive sensor networks. Such programs are
instantiated on many automata which are able to communicate with each
other wirelessly in an unreliable manner. Therefore, network simulators
able to simulate whole networks of such automata are used. By doing so,
we hope to be able to create emergent behaviors and self*-properties in
large scale distributed systems.

Our system is not bound to Genetic Programming, nor even bound to
Genetic Algorithms at all. You can easily implement other search
algorithms (like Simulated Annealing or such and such) and use the
distribution utilities to distribute them over a network. In the near
future we will implement many of these algorithms ourselves and provide
them here.

While the system can run on a single computer, one of its main
strengths is its distribution-ability. Different search algorithms using
different distribution mechanisms can easily implemented. You can find
versatile implementations of Genetic Algorithms driven by a Genetic
Engine in the Genetic Algorithms layer.

We support four different types of distribution of computational load for our
genetic algorithms:

1. local: The whole population runs local, no tasks are distributed.
2. peer-to-peer / island hopping: Big virtual populations can be created
if peer-to-peer nodes cooperate in a network.
3. client-server/master-slave: A genetic engine (client/master) uses different
servers/slaves to perform the work of reproducing and evaluating
individuals. This way, even populations of complicated-to-evaluated
individuals can be handled in reasonable time.
4. p2p/cs-hybrid: P2P-networks of genetic engines using the client-server
distribution approach can co-operate (event with pure p2p-genetic engines).

Other search algorithms can simple be implemented too - we've currently
added Hill Climbing. Since the distribution tools we use are unified,
the Hill Climbing based searches can be distributed in the same way than
the Genetic Algorithms. Moreover, bothe search algorithms can interact
and form a heterogeneous search. Another nice fact is, that each search
algorithm implemented in the framework will automatically come equipped with
an auto-adaptive, configurable Tabu Search backend improving problem space
examination.

This Open-Source research project is licensed under LGPL,
a license even more liberate than the GPL.

You might experience problems when compiling our project.

This is due to an incompatibility of the Eclipse 3.1.1 compiler to Sun's JavaC
compiler regarding Generics (introduced in Java 1.5/J2SE 5.0). We cannot resolve this issue since
this problem is not originated in our project. Therefore, the project currently can only be compiled
with Eclipse.

Learn more about Eclipse 3.1.1 and its installation here.
Learn more about the incompatibility problem in our newsfeed
or in the regarding Sun Developer Network Thread.


Principal Investigator


Research Areas


Last updated on 2017-11-07 at 13:49