Ein Flash-Programmierer hat eine interessante Anwendung für sogenannte “Genetische Algorithmen” ausgemacht: Auto-Evolution!

(Da mich die Hälfte unserer täglichen Leser gerade danach fragte, weise ich darauf hin, dass unten auch noch eine Erklärung folgt ;-))

ga
(Auf’s Bild klicken zum selbstprobieren.)

Folgendes passiert: Zunächst werden 20 Figuren (zufällig) generiert, an deren Ecken vier Kreise positioniert sind: Zwei Räder (blau) und zwei Kreise (rot), die den Boden nicht berühren dürfen. (Übertragung: Das Dach der Fahrgastzelle sollte den Boden nicht berühren). Diese Figuren. die Autos repräsentiren sollen, besitzen außerdem so etwas wie einen Federung, deren Federkonstante und Dämpfung ebenfalls zufällig generiert wird. (Diese 20 Fahrzeuge werden als “primordial soup”, also – ganz analog zur biologischen Evolution – als “Ursuppe” bezeichnet.)

Nun werden diese 20 Autos nacheinander auf einen Weg geschickt, und es wird gespeichert, wie weit jedes Auto gefahren ist, bevor seine roten Kreise den Boden berühren, oder eine festgelegte Zeit abgelaufen ist.

Danach findet dann eien Evolution statt, bei der wahrscheinlich die Eigenschaften der 20 Fahrzeuge mit denen des Besten in gewisser Weise gemittelt werden, das ist aber reine Vermutung, ich bin schon sehr gespannt auf den Code, der wohl demnächst veröffentlicht wird. (Weitere Informationen zur genetischen Programmierung)

Die so entstandene zweite Runde von 20 Fahrzeugen durchlaufen dann das gleiche Prozedere. Der Graph in der rechten oberen Ecke zeigt dabei den zeitlichen Verlauf der Evolution: Auf der vertikalen Achse ist jeweils der Weg abgetragen, den das beste Fahrzeug einer Runde geschafft hat (schwarz), und die mittlere zurückgelegte Distanz aller Fahrzeuge. (Auf der horizontalen Achse natürlich die Runden). Die zurückgelegte Distanz stellt hierbei eine sogenannte Fitness-Funktion dar.

Je länger man das Applett dabei laufen lässt, desto besser werden diese Werte auf lange Sicht. Alles in allem eine sehr anschauliche Darstellung einer Evolution.

(via: Cory Doctorow auf Boing Boing, xkcd Leser wissen, von wem die Rede ist ;-))

Wenn man das ganze dann über Nacht laufen lässt (danke, anonymer reddit-Leser), sieht’s so aus:


Ich will ja diese ganze Evolutions-Kiste nicht miesmachen, aber das lässt ja vermuten, dass wir irgendwann mal zum Ende kommen damit… ;-)

P.S.: Wo wir grad von Autos reden…

P.P.S: Eine andere Interessante Anwendung eines genetischen Algorithmus findet sich hier. 50 Polygone mutieren in Position, Form, Farbe und Transparenz (?), bis am Ende (nach 904.314 Iterationen und in guter Näherung) die Mona Lisa erscheint – gezeichnet mit 50 übereinandergelegten Flächen!

About these ads