Video zur Einführung

EvoLab - Evolution im Computer

Kann etwas Sinnvolles von selbst entstehen? Kann sich der Computer selbst programmieren?

Diese Fragen gehören für mich zu den spannendsten überhaupt, und darum habe ich einige Arbeit in das hier vorgestellte Projekt investiert. Ich glaube, dass jeder, der sich mit dem Programm EvoLab und der dort realisierten “Welt” beschäftigt, auf seine Kosten kommt und wertvolle Erkenntnisse daraus zieht.

Anstatt darüber zu theoretisieren, was denn “etwas Sinnvolles” genannt werden kann und was “von selbst” bedeutet, geht es hier um sehr konkrete Dinge und im Detail nachvollziehbare Abläufe. Jeder kann dann selbst eine Bewertung des Beobachteten formulieren.

Das Thema “Evolutionäre Algorithmen” oder “Genetische Algorithmen” ist ja beileibe nicht neu, aber es gibt nur wenige leicht fassbare und unterhaltende Einführungen. Worauf kommt es bei solch einem Programm an?

  • Es sollte einfach und anschaulich sein, um die Verständlichkeit zu wahren.
  • Es darf aber nicht ins Triviale rutschen, sonst gibt es keinen “Das ist ja interessant!”-Effekt.
  • Es sollte unterhaltend und vielseitig sein.
  • Es sollte zum eigenen Probieren und Forschen anregen.

Ich hoffe, dass das Projekt “Evolution im Computer” sowie das Programm EvoLab 2 allen diesen Anforderungen gerecht wird – aber urteilen Sie selbst!

EvoLab wurde konzipiert für den Einsatz im Seminarkurs über Evolution im Computer.

Einführung
In EvoLab geht es darum, künstliche Ameisen zu züchten, welche in der Lage sind, aufgrund minimaler Umweltreize einer Spur zu folgen. Die Ameise verfügt über ein Auge, mit dem sie den direkt vor ihr liegenden Raumbereich überblicken kann. Ihr Genom ist eine Art Steuerprogramm, welches die Regeln vorgibt, nach denen sie versucht, der Spur zu folgen. Der aktuelle Blick nach vorne sowie eine Merkzahl (Zustand) bestimmen die Auswahl der Verhaltensregel und damit ihr Voranschreiten. Zu Beginn der Evolution besteht ihr Verhaltensprogramm aus zufällig gewählten Regeln und sie ist völlig orientierungslos. Doch nach und nach entwickelt sich, sozusagen von selbst, das sinnvolle Etwas, nämlich ein Regelsatz, der die Ameise erfolgreich ans Ziel bringt. Und man staunt: Das Gelernte bewährt sich sogar auf anderen Spuren!

Mit Evolab lassen sich folgende Aufgaben rund um das Thema “künstliche Ameisen” bequem erledigen:

  • Definition von Spuren = Testparcours (Karte Parcours)
  • Hineinschlüpfen in die Situation einer Ameise (Karte Selber Ameise)
  • Inspektion und manuelle Festlegung von Genomen (Karte Genom)
  • Festlegen von Evolutionsparametern (Karte Parameter)
  • Durchführung von Evolutionsläufen (Karte Evolution)
  • Testen der evolvierten oder manuell definierten Ameisen bzw. Genome (Karte Test)


Karte 
Selber Ameise
Diese Seite sollte man zuerst besuchen. Man lernt hier nämlich, welches Problem die Evolution zu lösen hat und wie schwierig die Aufgabe ist – mit “Feld sichtbar” = aus, sonst wäre es zu einfach! Lade den classicParcours über das DateiMenü und los geht’s, indem du die Bewegung der Ameise mit den Pfeiltasten per Mausklick steuerst. Übe zunächst einmal mit “Feld sichtbar” = ein, bevor du dich auf das Auge der Ameise allein verlässt.
Das Feld, auf dem sich die Ameise bewegt, ist endlos: Bewegt sie sich über einen Rand hinaus, kommt sie vom anderen Ende wieder hinein. Dasselbe gilt natürlich auch für das Auge. Sitzt die Ameise am Rand, stammt ein Bildpunkt vom gegenüberliegenden Rand. (Torus).

Karte Parcours
Für einen neuen Versuch wird hier ein Parcours definiert oder geladen (im Bild unten ein außergewöhnlicher, meist wird hier “Classic” gewählt)

Karte  Parameter
Hier werden die Evolutionsparameter eingestellt:

Karte Evolution
Jetzt kann der Evolutionsprozess beginnen. Ein Anschlag am oberen Rand bedeutet Erfolg!

Karte Test
Hier kann man das Ergebnis der Evolution testen (Man sieht hier den “Classic”-Parcours)

Karte Genom
Dies ist das Genom – das evoluierte. Man kann aber auch “von Hand” programmieren – eine ganz neue Erfahrung!

Mehr Informationen über EvoLab findet sich hier und hier. Einen Überblick zur Thematik liefert die Wikipedia.

Installation
Lade die Datei EvoLab.zip  auf Deinen Windows-PC und starte das darin enthaltene Programm EvolLab.exe durch Doppelklick! EvoLab.zip enthält auch den den classicParcours und den randomTrail.

Beachte: Das Programm EvoLab hat schon einige Jahre auf dem Buckel, was sich in zweierlei Hinsicht nachteilig  auswirkt:

  • Die Fenstergröße ist, gemessen an den heutigen Standards, doch sehr klein. Möchte man das ändern, empfiehlt sich eine Reduzierung der Bildschirmauflösung. Dazu gehe in den Windows Einstellungen auf System > Anzeige  und wechsle auf eine Auflösung von z.B. 1024 x 768.

  • Auf meinem Windows 10 Rechner wurden die Farben der Fensterinhalte unschön aufgehellt. Dies kann man beheben, indem man in der Registry die Werte der Schlüssel HKEY_CURRENT_USER\Control Panel\ Colors\InactiveBorder sowie ButtonFace am selben Ort auf den Wert 192 192 192 setzt. Mit dem Program regedit ist das leicht möglich. Bei Eingriffen in die Registry muss man Vorsicht walten lassen. Falls man unsicher ist, lieber erst einmal informieren, z.B. in der Wikipedia.

Forschungsthemen rund um Evolab

  1. Vergleiche die Prozesse in Evolab mit dem Leben bzw. seiner Entwicklung auf der Erde. Was haben sie gemein, was sind die Unterschiede?
  2. Kann man so etwas wie die optimale Mutationsrate, Selektionsrate, Populationsgröße, Anzahl innerer Zustände definieren bzw. bestimmen?
  3. Sind sie voneinander abhängig d.h. ist eine optimale Mutationsrate für eine Populationsgröße von 100 auch für eine Populationsgröße von 500 optimal?
  4. Erfinde einen anderen, besonderen Parcours, bei dem es z.B. vielleicht einen “Trick” braucht, um ihn zu bestehen. Ob die Evolution wohl auf diesen Trick kommt?
  5. Man kann die Evolution in EvoLab (und nicht nur dort) als einen Lernprozess begreifen. Dann stellt sich die Frage: Lernen die Ameisen einen Parcours “auswendig” oder entwickeln sie eine “Vorstellung” von der “Natur” eines Pfades? Mit anderen Worten: Können sie von der konkreten Spur abstrahieren? Wie könnte man das testen? Tipps:
    1. Lasse sie auf einem ähnlichen aber anderen Parcours laufen.
    2. Nehme sie als Startgenom für weitere Evolution. Diese sollte dann wesentlich schneller zum Erfolg führen.
  6. Beobachtung: Wenn Ameisen mit unterschiedlicher Anzahl innerer Zustände N einen Parcours “gelernt” haben, so hängt ihre Fitness auf anderen Parcours von N ab: Ameisen mit kleinem N lernen alternative Parcours schneller als solche mit großen. Hypothese: Ameisen mit großem N haben den Parcours schlicht auswendig gelernt. Da fällt eine Übertragung schwer. Ameisen mit kleinem N konnten den Parcours aufgrund mangelnder Anzahl von Regeln nicht auswendig lernen, sondern mussten vorhandene Regeln  wiederverwenden, mit anderen Worten, sie mussten abstrahieren. Wie ließe sich diese Hypothese überprüfen?
  7. Wie kann es sein, dass wir bei einem Computerprogramm von Zufall sprechen, wo doch alle Experimente wiederholbar zum selben Ergebnis führen? Warum ist die Zufälligkeit eigentlich nicht relevant bzw. worauf kommt es wirklich an?