Eprobots JS – Evolutionarily Programmed Robots mit Javascript

Ich habe in der letzten Zeit an einer JavaScript-Version meiner Eprobots gearbeitet. Das Prinzip ist das gleiche wie bei der alten Java-Version von Eprobots mit Dokumentation. Allerdings gibt es keine Räuber-Beute-Beziehungen. Dafür gibt es Schieberegler um live die Simulationsparameter verändern zu können.

 

Kurzversion des Funktionsprinzip von Eprobots

Es werden einfache Individuen mit einem Lebenszyklus und ihrer Umwelt simuliert. Die Evolutionen kommt folgendermaßen in’s Spiel: Die Steuerung eines Individuums erfolgt über ein eigenes Programm, welches von einem virtuellen subleq-Prozessor ausgeführt wird. Und 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älligen Programmen erzeugt

Fossilien

In den aktuellen Standardeinstellungen 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.

Eprobots JS
Sourcecode herunterladen

BoxCar2D

Super Idee im Grunde. Bei BoxCard2D kann man dabei zusehen, wie durch einen genetischen Algorithmus bekannte und ungewöhnliche Automobil-Konstrukte entstehen bzw. evolvieren. Die Wagen bestehen aus verschiedenen Rädern mit Antrieben die mit einer oder mehreren Formen verbunden sind. Die Verbindungen halten nicht unendlich große Kräfte aus und können auch brechen. Die Physik wird mit dem allseits bekannten Box2DFlash simuliert.

Screenshot:
boxcar2d_screenshot

Eprobots – Evolutionarily Programmed Robots

eprobotsIch habe mich wieder mit künstlicher Evolution beschäftigt, weil ich das Thema ziemlich spannend finde. Diesmal geht es aber eher um die Evolution von Verhalten. Einfaches Verhalten ist programmierbar, also habe ich mir gedacht, dass es interessant wäre Programme zu evolvieren, anstatt nur irgendwelche Parameter. Also Evolution mit Hilfe von genetischer Programmierung. Dabei herausgekommen ist eine 2D-Simulation einer Welt, die von Kreaturen bevölkert ist, welche sich aufgrund ihrer Programmierung bewegen, Nahrung aufnehmen, sich fortpflanzen und sterben. In der Welt wird Energie, bzw. Nahrung verteilt, was evt. mit Pflanzen vergleichbar ist. Die Kreaturen, bzw. „Eprobots“ können auch ihre Umgebung wahrnehmen, bzw „sehen“ und haben ein „Gedächtnis“. Zusätzlich wird eine Nahrungskette oder „Räuber-Beute-Beziehung“ simuliert. Zuerst entstehen einfache Kreaturen, welche die Pflanzen fressen, dann aber auch Kreaturen, welche die Kreaturen fressen usw.

Die Java-Anwendung kann als Applet gleich ausprobiert werden (einfach auf „Start“ klicken). Für erweiterte Features wie Einstellung der Parameter oder Laden/Speichern kann man sich das Programm als Desktop-Version herunterladen. Weitere Informationen gibt es in der Dokumentation.