Dies ist die Homepage des Eprobots JS-Projekts. Eprobots steht für „Evolutionarily Programmed Robots“. Sie finden hier Dokumentation und andere Ressourcen zum Projekt gebündelt an einem Ort. Demo der aktuellen Version von Eprobots JS
Eprobots JS ist die Simulation einer zweidimensionalen Welt, die von Individuen bevölkert ist (Eprobots), welche sich bewegen, Nahrung aufnehmen, sich fortpflanzen und sterben. In der Welt wird kontinuierlich Energie, bzw. Nahrung verteilt. Pro Simulationsschritt können sich die Eprobots einen Schritt in eine von acht Richtungen bewegen oder stehen bleiben.
Diese Steuerung kann auf unterschiedliche Weise realisiert werden, zum Beispiel durch einen Zufallszahlengenerator. Bei Eprobots JS erfolgt die Verhaltenssteuerung über interne sogenannte OISC-Programme die in jedem Simulationsschritt ausgeführt werden. Dieses Programm stellt das Genom dar und wird von Generation zu Generation mit einem Mutationsfaktor weitergegeben. Initial bzw. wenn keine Individuen mehr vorhanden sind, werden neue Individuen mit zufällig generierten Programmen erzeugt.
Näheres dazu gibt es in der Dokumentation.
Eprobots JS
Intiale Version (Snapshot Initial)
Eprobots JS setzt sich von der klassischen Version beispielsweise durch „Life-Settings“ ab. Die Oberfläche stellt Controls für die Settings bereit, die während der Simulationslaufzeit geändert werden können. Es gibt bisher keine Form von Räuber-Beute-Beziehung. In den Standardeinstellungen der Initialversion (Snapshot 0 (first)) habe ich eine starke „Fossilienbildung“ eingestellt, in der Hoffnung interessante Muster erzeugen zu können. Die aktiven Eprobots sind rot. Nach der aktiven Phase werden die Eprobots zu Fossilien, wobei sie mit fortschreitender Zeit ihre Farbe verändern. Nach einer einstellbaren Zeit verschwinden auch die Fossilien. Die Fossilien sind Hindernisse für die aktiven Eprobots und verändern ihre Umwelt.
Screenshots eines Simulationslaufs aus dem Snapshot 0 (first)
Snapshot 3 fruitfulness 2
Der Snapshot 3 hat einige Änderungen erfahren, wodurch sich interessante Verhaltensweisen zeigen. Die wichtigsten Neuerungen sind dabei: Neue Form der Nahrungsverteilung. Die Eprobots müssen durch eine neue Aktionsoption aktiv Felder „fruchtbar“ machen. Die Populationsgröße wird beschränkt und ist nicht mehr gekoppelt an die Energiemenge. Dafür haben die Eprobots einen internen Energiespeicher und pflanzen sich fort, wenn es möglich ist.
Beispielsimulationslauf des Snapshots 3 (fruitfulness 2)
Links
In der Dokumentation wird das Modell und seine Simulation näher beschrieben. Die Snapshots stellen den Versionsverlauf von Eprobots JS dar. Es gibt Changelogs und es kann jede einzelne Version als Demo aufgerufen werden. In der Galerie werden interessante Bilder und Videos gesammelt. Es wird auch auf die betreffenden Snapshots verwiesen. Unter Weiterentwicklungen verbirgt sich ein Bereich in dem Ideen und Todos gesammelt werden.
Eprobots JS
Eprobots (alte Java-Implementierung)