Genetische Programmierung

Das Distributed Genetic Programming Framework (DGPF) ist eine skalierbare Java
Umgebung für heuristische, simulations-basierte Suchverfahren jeder Art und
Genetische Algorithmen im Speziellen. Wir nutzen das breite Fundament einer
Suchalgorithmen-Ebene um ein System für Genetische Programmierung zur Verfügung
zu stellen, mit dem Turing-vollständiger Kode entwickelt werden kann.

Der Hauptfokus unseres Projekts ist auf die automatische Erzeugung von Programmen
für Sensor-Netzwerke gerichtet. Solche Programme werden auf vielen Automaten gestartet,
die mit einander kabellos auf unsichere Art und Weise kommmunizieren können. Um
solches Verhalten auswerten zu können, nutzen wir Simulatoren für solche Netzwerke.
Wir hoffen, auf diese Art Selbst*-Eigenschaften beobachten und evtl. erzeugen
zu können.

Unser System ist an sich nicht an Genetische Programmierung oder auch nur Genetische
Algorithmen gebunden. Man kann sehr einfach andere Suchverfahren (wie Simulated Annealing
oder Tabu-Suche) implementieren und die Verteilungswerkzeuge nutzen, um die
Rechenlast über ein Netzwerk zu verteilen. In naher Zukunft werden wir selbst weitere,
neue Suchverfahren zum Framework hinzufügen.

Obwohl das System auf einem einzelnen Computer laufen kann, sind die
Verteilungsmöglichkeinten eine seiner großen Stärken. Vielseitige Implementierungen
der Suche mit Hilfe Genetischer Algorithmen (GeneticEngines) sind bereits vorhanden.

Für Genetische Algorithmen werden z.Zt. vier Verteilungsmethoden unterstützt:

1. local: Alles wird auf einem einzelenen Computer erledigt..
2. peer-to-peer / island hopping: Große virtuelle Populationen können in einem P2P-Netzwerk simuliert werden.
3. client-server/master-slave: Eine GeneticEngine nutzt viele Server um die Individuen parallel auszuwerten.
Dies ist besonders sinnvoll, wenn das Auswerten von Individuen lange dauert.
4. p2p/cs-hybrid: P2P-netzwerke von GeneticEngines, die wiederum ihre Rechenlast auf Server verteilen sind in
der Lage, selbst komplexeste Probleme zu lösen.

Dieses Open-Source Forschungsprojekt ist unter der LGPL lizensiert,
eine Lizenz, die sogar noch freieren Gebrauch des Kodes als die GPL erlaubt.
Mehr Information übers Projekt kann unter dgpf.sourceforge.net/ gefunden werden.