The Genetic Programming Layer
The Genetic Programming Layer of the DGPF is able to create Turing-complete programs that can drive sensor nodes.
The two sub-packages, Automaton
and NetAutomaton
provide the ability of creating Turing-complete programs automatically and
to enhance them by networking ability.
This packages depends on the following packages:
This package allows you to evolve programs for automata that are able
communicate with each other. An automaton is a small device like a
sensor node. Each automaton is driven by a program which is evolved by
our Distributed Genetic Programming Framework. Normal automata, as
defined in the Automaton
sub-package run Turing-complete
algorithms to solve some problems.
The algorithms evolved are represented in an assembler-style language. The Automaton sub-package provides basic instructions and expressions as well as a code interpreter and extension meachanism that allow to introduce your own, new instructions, expressions, and even execution environments.
Many optimization methods are implemented to speed up program evolution.
The networked automata defined in the NetAutomaton
package,
additionally have the ability to exchange messages. While one simulates
only one automaton when evolving normal programs, we then simulate a
whole network of automata.
To model a distributed system, many automata are simulated in parallel for each grown program. For this set of automata, the following assumptions will hold:
The network simulator evaluates systems that are connected wirelessly, and cannot a priori guarantee reliable communication. It therefore has the following properties:
The goal of this approach is to evolve programs that cause the network of automata to perform specific tasks, assuming that code working correctly in such an environment can also expected to be robust and adaptive in a real-world application.
See the rich example collection also available on the web for feature demonstrations.
This Open-Source research project is licensed under LGPL, a license even more liberate than the GPL.
One feature, especially important for developers, is the full documentation of the source code provided. Each method, class, package is fully documented down to privated declares. No parameter is undocumented. We are also happy about hints or request for more documentation, because we want that anyone can use our code and hopefully understand it. This project has also educational character.
You can find more information on the project's home page or on the project's page on SourceForge. The source code and examples can be downloaded at the downloads page. Useful information and news will frequently be published in the Genetic Programming Group.