Bubbles
Bubbles
White
White
Darkness
Darkness
Colorful
Colorful
Fire and smoke
Fire and smoke
Simple
Simple
Impressive
Impressive
Daniels Homepage

Evolutionärer Algorithmus

Beschreibung

Ich wollte eine möglichst einfache Simulation erstellen, die aus vielen Teilen besteht, welche sich selbst­ständig weiter­entwickeln können. Dafür habe ich einen evolu­tio­nären Algo­rithmus geschrieben, welcher kleine Punkte steuern kann. Das Programm funktioniert nach einigen einfachen Regeln.

Regeln des Programms

  1. Jeder Punkt hat sein eigenes Steuer­programm, welches am Anfang nur aus einer Rich­tungs­vor­gabe und einer Geschwind­ig­keits­vorgabe besteht.
  2. Jeder Punkt hat eine vor­ge­ge­bene Lebens­dauer, welche von der Geschwind­ig­keit des Punktes abhängig ist.
  3. Läuft die Lebens­dauer eines Punktes ab, wird sein Programm gelöscht (Selektion). Der Punkt wird grün und bleibt stehen.
  4. Trifft ein roter Punkt auf einen grünen, oder ein blauer Punkt auf einen roten, wird das Programm des Ersteren mit dem des Zweiten überschrieben ( Evaluation & Selektion ). Dabei kann ein Teil des Programms durch den Zufallseffekt mit einem von mehreren vordefinierten Funktionen erweitert oder modifiziert werden. Es kann auch ein Teil des Programms gelöscht werden (Mutation). Dabei erhalten beide Punkte wieder die volle Lebens­dauer.

Algemeines

Den Punkten stehen Funktionen zur Verfügung um den nächstgelegenen Punkt einer Farbe zu sehen und Informationen untereinander auszutauschen. Eine solche Aktion ist mit einer Linie gekennzeichnet. Mein Algorithmus genügt jedoch nicht der Turing-Voll­ständ­ig­keit, weswegen die Ent­wick­lungs­mög­lich­keiten der Punkte begrenzt sind. Mein evolu­tio­närer Algo­rithmus ist ausserdem unvollständig, weil keine Rekom­bina­tion stattfindet. Dennoch können die Resultate des Programms erstaunlich sein.

Steuerung

F-Taste: Neuer blauer Punkt
1/2: Linien ausblenden

Download