Ausarbeitung

Werbung
Technische Universität
München
Fakultät für Informatik
Forschungs- und Lehreinheit Informatik IX
Künstliche Evolution: Die Experimente von Karl Sims und die
Bedeutung von Wettbewerb
Hauptseminar
Andreas Mühling
Betreuer:
M. Sc. Freek Stulp
Abgabetermin: 23.11.2005
Inhaltsverzeichnis
1
Einleitung
2
2
Die „virtuellen Kreaturen“ von Karl Sims
2.1 Mechanismen der künstlichen Evolution .
2.2 Die Phänotypen bei Karl Sims . . . . . .
2.3 Die Kontrolle der Kreaturen . . . . . . .
2.4 Die Codierung des Genotyps . . . . . . .
2.5 Der genetische Algorithmus auf Graphen
2.6 Experimentelle Ergebnisse . . . . . . . .
.
.
.
.
.
.
2
2
3
4
5
7
8
3
Die Bedeutung von Wettbewerb in der Evolution
3.1 Wettbewerb in der natürlichen Evolution . . . . . .
3.2 Wettbewerb in der künstlichen Evolution . . . . . .
3.2.1 Experimentelle Ergebnisse . . . . . . . . .
10
10
11
12
4
Diskussion
12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
EINLEITUNG
1
2
Einleitung
Das Phänomen der Evolution ist in der Biologie bereits seit der Zeit Charles Darwins bekannt
und auch seit Längerem gemeinhin als die einzige Erklärung zur Entwicklung des hochkomplexen Lebens auf der Erde anerkannt. Alleine durch die Anwendung einiger sehr grundlegender
Prinzipien entstanden demnach aus einfachsten Strukturen letztlich alle Lebewesen. Obwohl es
im Bereich der Evolutionsbiologie noch einige offene Frage gibt, reicht bereits ein sehr einfaches Modell der Evolution, um damit in Computer-Simulationen beeindruckende Ergebnisse zu
erzielen. Der „genetische Algorithmus“ gehört im Bereich der künstlichen Intelligenz bei der
Problemlösung heutzutage zu einem Standard Verfahren. Probleme, wie das bekannte „Travelling Salesman Problem“, die sich - sehr wahrscheinlich - nur durch Heuristiken effizient lösen
lassen, können oftmals sehr gut mit dem genetischen Algorithmus behandelt werden. Neben
diesen Anwendungen, gibt es aber natürlich auch weitere Forschungsarbeiten, die sich, vor allem im Bereich „Artificial Life“, genauer mit den Details der simulierten Evolution befassen. Im
Folgenden soll die Arbeit von Karl Sims näher vorgestellt werden. Auch wenn seine Arbeiten
ein ganz konkretes, praktisches Ziel verfolgten, kann man dadurch Erkentnisse über die Mechanismen der Evolution, insbesondere auch über die Bedeutung des Wettbewerbs innerhalb von
(oder zwischen) Spezies gewinnen. Der erste Teil dieser Arbeit stellt ein Projekt von Karl Sims
vor, mithilfe Dessen im zweiten Teil näher auf die Thematik „Wettbewerb in der Evolution“,
anhand von experimentellen Ergebnissen eingegangen wird.
2
Die „virtuellen Kreaturen“ von Karl Sims
Die Arbeit von Karl Sims um die es im Folgenden geht, versucht, vereinfacht gesagt, „virtuelle Kreaturen“ durch die Simulation einer Evolution zu erschaffen. Als Anwendungsfeld seiner
Arbeit sieht Sims dabei den Bereich der Computergraphik und der Animation von Lebewesen
im Computer [Sim94b]. Das bestehende Problem ist dabei, seiner Meinung nach, dass animierte Wesen, die ein bestimmtes (nicht triviales) Verhalten zeigen sollen (man denke dabei etwa
an Wesen die sich tier- oder menschenähnlich fortbewegen) normalerweise eine sehr komplexe
algorithmische Steuerung benötigen. Noch dazu ist es mühsam und oftmals nur wenig erfolgsversprechend, die Steuerung, oder auch nur das Erscheinungsbild solcher Kreaturen manuell zu
erzeugen. Sims verfolgte daher den Ansatz, solche Wesen komplett automatisch durch simulierte Evolution entstehen zu lassen, also sowohl deren Aussehen, wie auch die für die Steuerung
notwendigen Mechanismen. Ein solches Vorgehen spart zum Einen den Aufwand, der für ein
manuelles Erzeugen nötig wäre, zum Anderen lassen sich durch dieses Verfahren auch Wesen
erzeugen, die ein menschlicher „Schöpfer“ sehr wahrscheinlich so kaum hätte erdenken können. Als Beispiel für die Realisierbarkeit des Systems versuchte Sims zunächst mit sehr einfach
aufgebauten Kreaturen verschiedene Fortbewegungsarten zu erzielen.
2.1
Mechanismen der künstlichen Evolution
Der genetische Algorithmus, wie er auch von Karl Sims verwendet wird, basiert auf einem
einfachen Modell der natürlichen Evolution. Eine Menge von Genotypen, der Gen-Pool einer
Population, unterliegt im Laufe der Zeit einer beständigen Weiterentwicklung. In der Natur be-
2
DIE „VIRTUELLEN KREATUREN“ VON KARL SIMS
3
schreiben dabei DNS-Sequenzen den „Bauplan“ von Lebewesens, beim genetischen Algorithmus beschreibt, ganz allgemein, ein „Genotyp“ die Codierung einer möglichen Lösung eines
Problems für das der Algorithmus - wenn man den genetischen Algorithmus als Optimierungswerkzeug betrachtet - eine möglichst optimale Lösung bestimmen soll. Der Phänotyp beschreibt
in der Biologie die äußere Erscheinung eines Lebewesens, also das, was durch die Interpretation der DNS-Sequenzen tatsächlich entsteht. Im genetischen Algorithmus wird, analog dazu,
eine tatsächliche Lösung, die durch die Decodierung eines Genotyps entsteht, als „Phänotyp“
bezeichnet. Aus einer Menge an Genotypen entstehen, wie in der Natur, durch Paarung, oder
auch durch asexuelle Fortpflanzung, neue Genotypen. Die Mechanismen der Natur, wie zum
Beispiel das „Crossing Over“, sind dabei vereinfacht auch in der künstlichen Evolution zu finden, genauso wie zufällige Mutationen an den Genotypen, die für eine zusätzliche Veränderung
des Gen-Pools sorgen.
Trotzt dieser Gemeinsamkeiten besteht in einem Punkt ein grundlegender und bedeutender Unterschied zwischen der natürlichen Evolution und dem genetischen Algorithmus: Die natürliche
Evolution arbeitet nie zielgerichtet, der genetische Algorithmus im Allgemeinen schon. In der
natürlichen Evolution ist das „Ziel“ lediglich das Überleben einer Spezies oder, folgt man der
Logik von R. Dawkins in [Daw99], eines Gens. Der Gen-Pool verändert sich in jeder Generation also ganz einfach dadurch, dass nur die Genotypen erhalten bleiben, deren Phänotypen
im Überlebenskampf bestehen. Ein darüber hinausgehendes Ziel ist nicht vorhanden. Im gentischen Algorithmus hingegen findet im herkömmlichen Sinne kein Überlebenskampf zwischen
den Phänotypen statt, solche „Kämpfe“ müssen, wenn sie stattfinden, natürlich nach wohldefinierten Kriterien ausgeführt werden, und damit exisitert bereits wieder implizit ein generelles Ziel, nämlich die Optimierung hin zur bestmöglichen Erfüllung dieser Kriterien. Die Optimierung stellt sich beim genetischen Algorithmus also ganz automatisch dadurch ein, dass ein
„Survival of the fittest“ Prinzip angewandt wird, das in jeder Generation, jedem Genotyp einen
„Fitness-Wert“ zuweist. Dieser Wert hat direkten Einfluss darauf, ob ein Genotyp überlebt und
sich fortpflanzen darf, oder ob er verschwindet. Alleine die Einführung dieses Mechanismus,
der Generation für Generation nach denselben Regeln die Genotypen überprüft, bedingt dann
aber bereits, dass der genetische Algorithmus Genotypen hervorbringen wird, die im Laufe der
Generationen - normalerweise - immer bessere Fitness-Werte aufweisen und damit immer optimaler die Kriterien der Auswertung erfüllen. Das „Überleben als Selbstzweck“ der Natur kann
im genetischen Algorithmus also so, per definitionem, ohne grundlegende Veränderungen am
Prinzip der Fitness-Wert Bestimmung nicht stattfinden.
2.2
Die Phänotypen bei Karl Sims
Das Ziel von Karl Sims in [Sim94b] war es, Wesen zu erschaffen, die sich in einer simulierten 3D-Welt fortbewegen können. Die Wesen besitzen einen Körper aus „Blöcken“, die durch
Gelenke verbunden sind. Dabei ist zu beacheten, dass die grundsätzliche Struktur eines Wesens, also die Anzahl und der Aufbau der Blöcke, keineswegs fest vorgeschrieben ist, sondern
der Evolution unterliegen soll. Aus Gründen der Codierung des Genotyps, die weiter unten beschrieben wird, existiert unter den Blöcken eine Hierarchie. Zwei durch ein Gelenk verbundene Blöcke stehen dabei immer in einer „Vorgänger-Nachfolger“ Beziehung, wobei die Blöcke
letztlich aber direkt miteinander verunden sind und lediglich die Art dieser Verbindung das
„Gelenk“ zwischen ihnen definiert - ohne das dieses explizit als „Bauteil“ vorhanden ist. Die
2
DIE „VIRTUELLEN KREATUREN“ VON KARL SIMS
4
möglichen, von Sims verwendeten Gelenktypen sind unter Anderem starr, rotierbar, beugbar,
oder auch Kugelgelenke. Je nach Art des Gelenks existieren dazu noch einige Parameter, die
die Beweglichkeit in die einzelnen Richtungen festlegen beziehungsweise beschränken können.
Zwei Blöcke verbinden neben der Information über ihre Gelenk-Verbindung auch noch Informationen wie etwa die Position der Blöcke zueinander. Desweiteren existieren zu jedem Block
noch eine Anzahl weiterer Informationen, die nur jeweils einen Block betreffen, wie etwa seine
Größe. In Abbildung 1 kann man einige, allerdings von Sims per Hand erstellte, Wesen sehen,
die sehr gut verdeutlichen, was das Ziel war: Kreaturen zu erzeugen, die sehr tier- oder menschenähnlich wirken. Spätestens bei der später folgenden Beschreibung des Genotyps wird klar,
dass das System, genau auf dieses, von Sims erklärte, Ziel hin „erdacht“ wurde.
Abbildung 1: Zwei von Sims manuell erzeugte Kreaturen. Quelle: [Sim94b]
2.3
Die Kontrolle der Kreaturen
Da sich die Wesen später in einer 3D Welt bewegen sollen, müssen sie neben ihrem Körperbau
auch noch über eine Steuerung verfügen, die die möglichen Bewegungen veranlassen kann. Dazu verwendet Sims ein komplexes Modell aus Sensoren und verschachtelten neuronalen Netzen,
die über Aktoren Kräfte auf die Gelenke ausüben. Es liegt nahe, diese Steuerung mithilfe neuronaler Netze zu implementieren, da ein solches neuronales Netz wie geschaffen ist für die Verwendung in einem evolutionären Entwicklungsprozess und es außerdem genau die gewünschte
Funktionalität - die Reaktion auf Sensordaten - bereitstellt. Jedem Block einer Kreatur kann ein
Sensor zugeordnet werden, der Informationen über den Block selbst, oder die Welt außerhalb
übermittelt. Die verschiedenen Sensortypen, die Sims verwendet, messen dabei den Winkel
zwischen zwei benachbarten Blöcken sowie Kontakt mit anderen Blöcken (nicht notwendigerweise derselben Kreatur). Da die 3D Welt auch Lichtquellen simulieren kann, gibt es daneben
auch noch Photosensoren. Diese drei Typen stellen bereits genug Funktionalität zu Verfügung,
um das gewünschte Ziel der Fortbewegung (und später auch der Interaktion) zu erreichen. Zu
Recht weist Sims allerdings auch darauf hin, dass eine Erweiterung der Liste ohne Probleme
2
DIE „VIRTUELLEN KREATUREN“ VON KARL SIMS
5
möglich wäre [Sim94b]. Alle diese Sensoren liefern, wie bei neuronalen Netzen üblich, numerische Werte an die Eingänge des Netzes. So liegen Werte für den Kontakt-Sensor etwa bei 1.0
falls ein Kontakt vorliegt und bei -1.0 falls kein Kontakt vorliegt. Die anderen Sensoren arbeiten
ganz ähnlich dazu.
Genauso wie der Körperbau der Kreaturen, sollte auch den Aufbau der neuronalen Netze dem
Lauf der Evolution unterliegen. Dabei verwendet Sims, wie Eingangs erwähnt, eine Hierarchie
von Netzen. Grundsätzlich kann, genauso wie bei den Sensoren, jedem Block der Kreatur ein
neronales Netz zur Steuerung zugeordnet werden. Diese „lokale“ Steuereinheit kann dabei mit
den Steuereinheiten der benachbarten Blöcke verbunden werden. Rückkopplungen innerhalb
eines Netzes sind ebenfalls erlaubt. Zusätzlich gibt es neben diesen lokalen Netzen auch noch
ein zentrales Netz, das keinem Block zugeordnet ist und eine Art „Gehirn“ darstellt, das, im
Optimalfall, die lokalen Steuereinheiten koordinieren soll. Dazu kann es an seinen Eingängen
die Signale von einem beliebigen Sensor oder Neuron der Kreatur empfangen und die Ausgänge können ebenso mit allen anderen Neuronen und Aktoren der Kreatur verbunden sein.
Die Aktoren sind dabei, wie die Gelenke, nur implizit vorhanden - es wird lediglich eine gerichtete Kraft einer bestimmten Stärke auf einen der Blöcke, beziehungsweise auf das verbindende Gelenk zweier Blöcke, ausgeübt. Dieses sehr komplizierte System von verschiedenen
hierarchisch angeordneten Steuerungen, die allesamt einer evolutionären Entwicklung unterliegen können ermöglicht natürlich eine ungeheure Vielfalt an möglichen Verhaltensweisen. Die
neuronalen Netze, die dabei zum Einsatz kommen, wurden von Sims zusätzlich über die „normale“ Funktionalität eines neuronalen Netzes hinaus erweitert. Während es normalerweise für
die Neuronen nur die Funktionen „Summe“ und „Schwellwert“ gibt, verwendet Sims in seiner
Arbeit eine ganze Reihe weiterer möglicher Funktionen, wie zum Beispiel Produkt, Vorzeichen,
Ableitung oder auch Oszillatoren. Das Ziel der Erweiterungen war, die Entwicklung von „interessanten Verhaltensweisen“ [Sim94b] zu unterstützen. Die von Sims erdachte Steuerung ist
ein unglaublich komplexes System und es zeigt sich in seinen Experimenten auch, dass es für
Menschen praktisch unmöglich ist, die Funktionsweise einer speziellen, „fertigen“ Steuerung
nachzuvollziehen.
2.4
Die Codierung des Genotyps
Generell hat man bei der Verwendung des genetischen Algorithmus das Problem, das der Genotyp einen möglichst einfach im Rechner zu verarbeitenden Aufbau besitzen sollte, um die
Evolution effizient ausführen zu können. Optimalerweise sollte der Genotyp zum Beispiel nur
eine Folge von Zahlen darstellen. Je einfacher aber der Genotyp ist, umsomehr Aufwand muss
normalerweise darin investiert werden, den Phänotyp aus dem Genotypen zu berechnen. Vor
allem, wenn man, wie Karl Sims, einen sehr komplexen Phänotyp anstrebt. Des Weiteren stellt
sich die Frage, wie detailliert man einen Genotyp entwirft und wieviel Freiheit man der „Evolution“ lässt. In der Natur besteht der Genotyp eines jeden Lebewesen nur aus den 4 Grundbausteinen der DNS. Das lässt eine enorme Freiheit, wie man leicht an der Vielfalt des Lebens
erkennen kann. Andererseits benötigt viel Freiheit im Normalfall auch viel mehr Zeit, bis ein
gewünschtes Ergebniss auftritt. Da Sims ein klares Ziel verfolgte, verwendete er einen Genotyp,
der Freiheiten nur in einem engen Rahmen erlaubt, und der so eine sehr viel kompaktere Darstellung der oben beschriebenen Phänotypen ermöglicht. Trotzdem sind die Freiheiten innerhalb
des gesteckten Rahmens durchaus beachtlich, wie man bei der Beschreibung der Steuerung be-
2
DIE „VIRTUELLEN KREATUREN“ VON KARL SIMS
6
reits sehen konnte.
Aus den Anforderungen an den Genotyp, vor allem aus der Anforderung, dass praktisch alle
Teile einer Kreatur nicht unveränderlich in ihrem Aufbau sein sollen, ergibt sich fast zwingend die Notwendigkeit einer „genetischen Sprache“. Eine herkömmliche Codierung für ein
bestimmtes Problem stellt häufig nich mehr als eine „Kurzschreibweise“ für eine bestimmte
Lösung, die aus einem endlichen Lösungsraum stammt, dar. Der Lösungsraum kann sehr groß
werden, trotzdem bleibt er endlich. Bei der Verwendung einer „genetischen Sprache“ hingegen,
beschreibt ein Genotyp eine Lösung aus einem unendlichen Raum an möglichen Lösungen. Ohne eine formale Definition einer genetischen Sprache geben zu wollen, sei als intuitives Beispiel
die Verwendung von Quelltexten einer Programmiersprache als Genotyp erwähnt. Die Menge
der möglichen Computerprogramme ist, praktisch, unendlich. Entsprechende Versuche wurden
im Feld des „Artificial Life“ bereits zum Beispiel mit LISP Programmen gemacht. Solche Genotypen können sich in ihrer Komplexität im Laufe der Evolution beliebig verändern. Das stellt
auf der einen Seite natürlich ein ungleich mächtigeres System dar, auf der anderen Seite wird
es im Normalfall aber auch wesentlich teurer, die „Fitness“ Werte für spezielle Lösungen zu
bestimmen, oder auch nur den Phänotyp zu erzeugen.
Die genetische Sprache, die Sims für seine Kreaturen verwendet, besteht aus gerichteten Graphen. Mithilfe dieser Graphen lässt sich sowohl der Aufbau des Körpers als auch der Aufbau
der Steuerung sehr elegant beschreiben. Ein Knoten codiert jeweils einen Block, eine Kante
führt von einem Knoten immer zum Knoten des Nachfolge-Blocks in der Hierarchie. Dabei ist
es erlaubt, dass von einem Knoten aus mehrere Kanten zu demselben Nachfolgeknoten führen,
um die mehrfache Verwendung von Teilgraphen zu ermöglichen, die bei der Interpretation dann
gleiche Körperteile mehrfach erzeugen. Genauso ist es auch erlaubt, dass Knoten auf sich selbst
verweisen oder dass Kreise im Graph auftreten. Alle relevanten Information, die zur Erstellung
eines Blocks beötigt werden - also Größe, Gelenkverbindnug, etc. sind dabei direkt in den Knoten gespeichert. Die Information über das Gelenk ist jeweils nur einmal, beim Nachfolger, gespeichert. Daneben gehören zu jedem Knoten auch die Informationen über die lokale Steuerung
die zu dem Block gehört. Diese wird ebenfalls als gerichteter Graph repräsentiert. Sowohl die
Sensoren, als auch die Neuronen und die Aktoren treten dabei als Knoten auf, Kanten repäsentieren die Vernetzung. Da, wie oben erwähnt, die Steuerung in sich ebenfalls hierarchisch
aufgebaut sein kann, können neuronale Verbindungen auch zwischen den Steuerungs-Graphen
der einzelnen Blöcken verlaufen. Daneben gibt es noch einen seperaten Graph für die zentrale Steuerung, die ja keinem speziellen Block zugeordnet ist. Insgesamt ergibt sich damit ein
System aus ineinander verschachtelten Graphen, die letztlich den Körperbau und das gesamte
Steuerungssystem einer Kreatur beschreiben. Zur Interpretation des Genotyps braucht man nun
noch einen Startpunkt, der in diesem Fall einfach ein speziell markierter Knoten des Graphen
ist. Davon ausgehend kann dann der Graph traversiert werden und an jedem Knoten anhand der
darin gespeicherten Informationen ein entsprechender Block erstellt werden, eventuell mit der
dazugehörigen Gelenkverbindung (wenn man diese erzeugt, ist der dazugehörige zweite Block
bereits erstellt, da die Informationen immer beim Nachfolger gespeichert werden) sowie den
eventuell vorhandenen Sensoren und neuronalen Netzen. Damit das Verfahren algorithmisch
funktionieren kann, muss natürlich für rekurisve Teilgraphen - beziehungsweise für Kreise innerhalb des Graphen - eine maximale Schachtelungstiefe vorgegeben sein, diese ist allerdings
für jeden Knoten gesondert festgelegt und unterliegt auch der Evolution. In Abbildung 2 kann
man gut die Wiederverwendung von Teilgraphen anhand des - vereinfacht dargestellten - Gra-
2
DIE „VIRTUELLEN KREATUREN“ VON KARL SIMS
7
phen erkennen. Abbildung 3 zeigt einen Ausschnitt eines - ebenfalls vereinfacht dargestellten
- Graphen, der die Verschachtelung der neuronalen Netze mit dem Graphen für den Körperbau
zeigt. Die fetten Kreise sind dabei Knoten des Graphen für dem Körper, die neuronalen Netze
sind den einzelnen Blöcken zugeordnet. Der gestrichelte Kreis beinhaltet das neuronale Netz
des zentralen „Gehirns“.
Abbildung 2: Die Interpretation eines rekursiven Graphen. Quelle: [Sim94b]
Abbildung 3: Ein Ausschnitt aus einem Graph mit zugeordneten neuronalen Netzen Quelle:
[Sim94b]
2.5
Der genetische Algorithmus auf Graphen
Im Folgenden werden einige Lösungsansätze vorgestellt, die Sims für die Benutzung des genetischen Algorithmus mit Graphen als Genotyp verwendete. Es geht dabei nicht um die tatsächliche Implementierung, als vielmehr um die Idee, wie man mit Graphen als Genotyp arbeiten
kann. Die Interpretation eines Genotyps wurde bereits beschrieben. In jeder Generation des Algorithmus, müssen alle Genotypen interpretiert werden, um den zugehörigen Phänotypen einen
Fitness-Wert zuweisen zu können. Näheres dazu findet sich im nächsten Abschnitt. Daneben
2
DIE „VIRTUELLEN KREATUREN“ VON KARL SIMS
8
muss aber auch die Fortpflanzung inklusive des Crossing Over, sowie das zufällige Mutieren
des Genotyps in jeder Generation durchgeführt werden. Für das Mutieren verwendet Sims dabei folgenden Ablauf:
Zunächst wird jeder Parameter innerhalb eines Knotens unabhängig voneinander, und jeder
mit eigener Wahrscheinlichkeit, verändert. Für skalare Werte unterliegen die Änderungen dabei
einer Verteilung „ähnlich der Normalverteilung“ [Sim94b], die sich außerdem an der Größenordnung des bisherigen Werts orientiert, um sowohl drastische Änderungen, wie auch „Feintuning“ zu ermöglichen, jenachdem, in welcher Größenordnung der Wert vorher war. Dann
wird ein zufälliger neuer Knoten generiert und bisherige Kanten werden mit einer gewissen
Wahrscheinlichkeit verändert. Dannach werden zufällige neue Kanten generiert und auch zufällig Kanten gelöscht. Schließlich werden solche Knoten entfernt, die neu dazugefügt wurden
und keine Verbindung zum Rest besitzen. Ähnlich verläuft der Prozess für die Graphen der
Steuerung, hier wird von „außen nach innen“ durch die Verschachtelung vorgegangen. Da alle
Neuronen eine feste Anzahl an Ein- und Ausganskanten besitzen, werden hier allerdings keine neuen Kanten dazugefügt oder gelöscht. Da dieses Verfahren Knoten für Knoten behandelt,
nehmen die Mutationen mit der Größe des Genotyps stark zu. Um das einzudämmen, wird die
Größe des Graphen in der Mutationswahrscheinlichkeit berücksichtigt. Es ist außerdem zu beachten, dass es vorkommen kann, das Knoten im Graph verbleiben, die keine Kanten besitzen.
Solche Knoten stellen im Grunde „parasitäre Gene“ [Daw99] dar, die auf den Phänotyp keinen
Einfluss nehmen - allerding eventuell in späteren Generationen wieder an den Rest „angeschlossen“ werden können.
Bei der sexuellen Fortpflanzung muss aus zwei Graphen ein Neuer entstehen. Dabei wird, wie
häufig bei der Verwendung des genetischen Algorithmus, das Verfahren des Crossing Over aus
der Natur angewandt. Dazu werden bei Sims einfach die Knoten der Genotypen, die der Reihe
nach gespeichert sind, nacheinander von einem Elternteil übernommen. Ab einem bestimmten
„Crossing Over-Punkt“, werden dann die Knoten des anderen Elternteils genommen, es kann
dabei auch mehrere solcher Punkte geben. Die Kanten werden genauso einfach übernommen,
sie zeigen - relativ - zum selben Knoten innerhalb der Reihe wie bisher. Ungültige Kanten werden durch zufällige Zielauswahl repariert. Daneben hat Sims auch noch eine weitere Methode
der Fortpflanzung benutzt. Beim sogenannten „Grafting“ wird zunächst der Graph eines Elternteils komplett übernommen, dann wird eine zufällig ausgewählte Kante mit einem zufällig
ausgewählten Knoten des anderen Elternteils verbunden und der Graph um alle jetzt nicht mehr
verbundenen Knoten bereinigt. In seinen Experimenten verwendete Sims außerdem eine einfache asexuelle Fortpflanzung, wobei ein neuer Graph einfach durch die Mutation eines alten
Graphen entsteht. Die Mutationswahrscheinlichkeit ist dabei allerdings um ein Vielfaches höher als bei der regulären Mutation die überlebende Genotypen erfahren können. Insgesamt kam
ein Mix aus diesen drei Fortpflanzungsmöglichkeiten zum Einsatz. Für jeden Genotyp wurde
einzeln entschieden wie die Nachkommen erzeugt werden. Dabei wurden 40% asexuell, und je
30% auf eine der beiden sexuellen Arten erzeugt.
2.6
Experimentelle Ergebnisse
In [Sim94b] testete Karl Sims, wie oben beschrieben, ob sich spezielle Fortbewegungsarten entwickeln ließen. Im Speziellen untersuchte er, ob sich aus einer zufällig generierten Startpopulation mithilfe des genetischen Algorithmus Kreaturen erzeugen ließen, die laufen, schwimmen,
2
DIE „VIRTUELLEN KREATUREN“ VON KARL SIMS
9
springen oder einer Lichtquelle folgen können. Dazu wurde eine 3D Welt benutzt, in der die erzeugten Kreaturen auf ihre Fitness-Werte hin überprüft werden können. Die Simulation arbeitet
in diskreten Zeitschritten und simuliert die neuronalen Netze der Kreaturen, sowie die daraus resultierenden Bewegungen. In einem Schritt der Simulation werden dabei zwei Fortschaltungen
der Netze simuliert, damit diese schneller ein Ergebniss liefern können. Da in der 3D Welt auch
Reibung, Erdanziehung und - für die Schwimmmodelle - das Verhalten von Flüssigkeit simuliert werden ergibt sich ein realistisches Szenario in dem die Kreaturen bestehen müssen. Nach
einer vordefinierten Zeitspanne wird dann überprüft, wie gut die Kreatur die Aufgabe erfüllt hat
und auf diese Weise ein Fitness-Wert berechnet. Für die Aufgaben „Laufen“ und „Schwimmen“
wurde dabei einfach die zurückgelegte Distanz für die Berechnung verwendet, bei „Springen“
die höchste erreichte Höhe und bei „Folgen“ die Durchschnittsgeschwindigkeit mit der sich eine Kreatur auf die Lichtquelle zubewegt hat. Daneben wurden einige kleine Tricks verwendete,
um spezielle, dem eigentlichen Ziel nicht zuträgliche, „Auswüchse“ zu vermeiden - wie zum
Beispiel Kreaturen, die einfach nach vorne umfallen und so eine Strecke zurücklegen. Alles in
Allem sind die Ergebnisse aber durchaus erstaunlich, es wurde in allen Aufgabenbereichen eine
Vielzahl an verschiedenen Lösungswegen gefunden mit zum Teil sehr naturähnlichen, zum Teil
auch sehr technisch anmutenden Kreaturen. Bild 4 zeigt eine kleine Auswahl der entwickelten
Kreaturen. Der Schwimmer bewegt sich dabei durch das Rotieren der sechs „Paddel“ vorwärts,
während der Läufer sich mit den zwei „Armen“ nach vorne ziehen kann.
Abbildung 4: Links eine der erzeugten Kreatur für „Schwimmen", rechts für „Laufen“. Quelle:
[Sim94b]
3
3
DIE BEDEUTUNG VON WETTBEWERB IN DER EVOLUTION
10
Die Bedeutung von Wettbewerb in der Evolution
Im Zweiten Teil dieser Arbeit soll nun die Bedeutung von Wettbewerb in der Evolution etwas
näher beleuchtet werden. Nach einigen grundsätzlichen Erkenntnissen, soll auf die Ergebnisse
einer Reihe von Experimenten, die Karl Sims mithilfe des oben vorgestellten Systems durchgeführt hat, eingeegangen werden.
3.1
Wettbewerb in der natürlichen Evolution
Wettbewerb ist in der natürlichen Evolution praktisch überall vorhanden. Zunächst ist mit dem
„Survival of the fittest“ Prinzip, auch wenn der Name es impliziert, nicht speziell das Bestehen
in Wettbewerben gemeint, sondern lediglich das Bestehen im alltäglichen Überlebenskampf,
dem eine Spezies ausgesetzt ist. Andererseits ist es aber unrealistisch anzunehmen, dass eine
Spezies nur für sich exisitert, oder dass innerhalb dieser Spezies keine Wettbewerbe entstehen.
Vielmehr existieren Wettbewerbe in der Natur in allen erdenklichen Situationen sowohl zwischen als auch innerhalb von Spezies. Sei es der Kampf um eine gemeinsame, oftmals sehr
knappe, Resource (wie etwa Nahrung), die einen Wettbewerb zwischen Spezies, oder besser,
zwischen Individuen erzeugt, oder eine Jäger-Beute Beziehung, die oftmals eine spezielle Art
des Wettbewerbs, ein „Wettrüsten“ (engl. arms race) nach sich zieht. Auch innerhalb von Spezies ist mit der geschlechtlichen Fortpflanzen oftmals ein Wettbewerb verbunden, indem sich
Individuen das „Recht“ zur Paarung erkämpfen müssen. Man kann also davon ausgehen, dass
Wettbewerbe in der natürlichen Evolution eine große Rolle dabei spielen, die Überlebenschance
bestimmter Gene zu bestimmen.
Mehr noch, Wettbewerbe beleben die Evolution [Daw96], da sie Spezies praktisch dazu zwingen, sich fortzuentwickeln. Änderungen in der Umgebung einer Spezies, sei es durch Änderungen des Biotops, oder durch Änderungen in Form von besser angepassten Konkurrenten
erzeugen einen Selektionsdruck, der die Entwicklung einer Spezies fördert. Ändert sich nichts,
ist auch die Rate der evolutionären Entwicklung schwächer, da neue Entwicklungen häufig keinen Vorteil besitzen. Das „Wettrüsten“ stellt dabei eine extreme Form des Wettbewerbs dar,
indem sich typischerweise zwei Spezies in immer extremeren Weiterentwicklungen gegenseitig zu übertrumpfen versuchen. Beispiele dafür gibt es unzählige, ein sehr bekanntes ist wohl
das Beispiel von Gazellen und Geparden, die sich in einem Wettrüsten gegenseitig zu immer
neuen Geschwindigkeitsrekorden gedrängt haben, bis letztlich eine obere Schranke erreicht ist,
ab der keine sinnvolle Weiterentwicklung mehr erreichbar ist. An diesem Punkt kommen solche Wettrüsten häufig zu einem eher abrupten Ende. Aufgrund der hoch komplexen Interaktion
von Lebewesen in ihren jeweiligen Ökosystemen, ist die tatsächliche Wirkung des Wettbewerbs
aber nur schwer zu entschlüsseln. In Populationen können sich Strategien entwicklen, um in
Wettbewerbssituationen zu bestehen. Diese Strategien unterliegen einer eigenen Dynamik. In
[Daw99] findet sich eine Erklärung von „Evolutionär Stabilen Strategien“, die sich in Populationen durchsetzen und auf Dauer halten können, obwohl es nicht die Optimalste aller denkbaren
Strategie ist.
3
3.2
DIE BEDEUTUNG VON WETTBEWERB IN DER EVOLUTION
11
Wettbewerb in der künstlichen Evolution
Es liegt nahe, die Frage nach der Bedeutung von Wettbewerben auch für die künstliche Evolution zu stellen. Zum Einen wäre es durchaus hilfreich, wenn Wettbewerbe hier, genauso wie in
der Natur, die Geschwindigkeit der evolutionären Entwicklung erhöhen würden, zum Anderen
findet im genetischen Algorithmus, wie Eingangs erwähnt, sowieso immer schon ein impliziter Wettbewerb statt - nämlich die Bestimmung der Fitness-Werte. Oftmals wäre es nur mit
einem relativ geringen Mehraufwand verbunden, diese Bestimmung im Rahmen eines echten
Wettbewerbs zwischen Individuen durchzuführen. Eine ähnliche Fragestellung verfolgte auch
Karl Sims, als er im Zuge der Entwicklung der virtuellen Kreaturen auch Wettbewerbssituationen untersuchte. Sein Schwerpunkt lag dabei auf der Fragestellung, ob sich durch Wettbewerb
„interessantere Verhaltensweisen“ [Sim94a] erzeugen ließen. Seine Idee bestand darin, jeweils
zwei Individuen in einer „Arena“ um eine gemeinsame Resource kämpfen zu lassen, in diesem
Fall eine Art „Kiste“ die es in Besitz zu nehmen gilt. Mithilfe der Resultate wurde dann der
Fitness-Wert eines Individuums bestimmt. Anhand dieses Szenarios können nun einige Details
näher erläutert werden. Zunächst muss die Bestimmung des Fitness-Wertes so angepasst werden, dass er der Wettbewerbs-Situation Rechnung trägt. Das bedeutet, dass es nicht nur belohnt
werden soll, dass eine Kreatur die Kiste erreicht, sondern dass es genauso belohnt werden soll,
wenn eine Kreatur es schafft, seinen Gegner von der Kiste fernzuhalten. Da der Fitness-Wert
aus der Distanz der Kreaturen zu der Kiste bestimmt wird, kann dieses Ziel leicht durch eine geeignete Verrechnung der beiden Werte miteinander erreicht werden, auch wenn aus diesem Wert
noch nicht hervorgeht, ob es der Verdienst der einen Spezies oder die Unfähigkeit der anderen
Spezies war. Als nächstes gibt es natürlich eine Reihe verschiedener Möglichkeiten, den Wettbewerb durchzuführen. Bei der herkömmlichen, nicht Wettbewerbs-basierten Auswertung gibt
es nur eine sinnvolle Lösung, nämlich alle Individuuen nacheinander zu evaluieren, bei einem
Wettkampf gibt es hingegen verschiedene sinnvolle Lösungen. Zunächst können Wettbewerbe
innerhalb einer Spezies stattfinden, oder man kann die Population in zwei Spezies aufteilen (also in 2 disjunkte Teilmengen, deren Genotypen nur untereinander verpaart werden können) und
Wettbewerbe nur zwischen diesen stattfinden lassen. In den Experimenten von Karl Sims ging
es nicht darum Spezialisierungen zu erzeugen - alle Individuuen sollten von beiden Seiten der
Arena aus starten können, und beide hatten das gleiche Ziel. In einer asynchronen Situation, wo
sich die Ziele der Wettkämpfer unterschieden (man denke an eine Jäger-Beute Situation), könnte der Ansatz über zwei Spezies bei der Entwicklung hilfreich sein, da so auf beiden Seiten eine
Spezialisierung eintreten kann. Natürlich können auch mehr als zwei Spezies verwendet werden. Unabhängig von der Anzahl der Spezies bleibt aber das Problem, nach welcher Strategie
man die Wettkämpfe durchführt. Am Gerechtesten ist natürlich ein „Alle gegen Alle“ Wettkampf, wo also jedes Individuum gegen jedes Andere (oder im Falle von zwei Spezies, jedes
Individuum einer Spezies gegen jedes Individuum der anderen Spezies) kämpft. Das Problem an
diesem Ansatz ist sein enormer (quadratischer) Zeitbedarf. Da das Evaluieren oftmals sowieso
schon der aufwendigste Teil der künstlichen Evolution ist, wirkt sich dieser Ansatz besonders
stark auf die Laufzeit aus. Daher bietet es sich an, die Anzahl der nötigen Vergleiche zu reduzieren. Andere Möglichkeiten wären, jedes Individuum lediglich in einem einzigen Wettkampf zu
testen und den jeweiligen Partner zufällig auszuwählen, oder auch durch ein „Tournament“ aus
allen Individuuen einen Sieger zu ermitteln. Die zufällige Partnerwahl reduziert das Problem in
beiden Fällen (das Tournament beruht ebenfalls auf einer zufälligen Startanordnung der Wett-
4
DISKUSSION
12
kämpfer) zu linearem Zeitaufwand, allerdings ist die Lösung nicht besonders gerecht und die
Ergebnisse können daher verfälscht werden. Das Verfahren, das die „interessantesten“ Lösungen [Sim94a] produzierte war ein Anderes. Bei der „Alle gegen den Besten“ Strategie tritt jedes
Individuum gegen das aktuell beste Individuum der Spezies (oder der Gegner-Spezies) an. Das
benötigt ebenfalls nur linearen Zeitaufwand und hat den Vorteil, dass relativ gerechte FitnessWerte erzeugt werden, da ein Kampf gegen den „Besten“ im Gegensatz zu einem Kampf gegen
einen zufälligen Gegner wesentlich mehr Aussagekraft über die tatsächliche Fitness eines Individuums besitzt.
3.2.1
Experimentelle Ergebnisse
Sims beschränkte sich bei seinen Versuchen auf das oben beschriebene „Alle gegen den Beste“
Verfahren. Die verwendete Spielarena ist in Abbildung 5 gezeigt. Die schrägen Linien deuten
an, dass die Kreaturen entsprechend ihrer Größe näher an dem Würfel, oder weiter von ihm
weg plaziert wurden. Wie schon bei den Versuchen zur Entwicklung der Fortbewegungsarten,
wurden einige „Tricks“ angewendet um spezielle, unerwünschte, Strategien (wie das einfache
nach vorne Umfallen) zu vermeiden. Dannach wurden, analog zu den vorherigen Versuchen,
die 3D Welt und die Kreaturen mit ihren neuronalen Netzen simuliert. Nach 8 Sekunden wurde
der Wettkampf beendet, die kürzeste Entfernung der Kreaturen zu dem Würfel gemessen und
der Fitness-Wert berechnet. Die meisten Versuche verwendeten dabei eine Evolution mit zwei
Spezies. Die Ergebnisse zeigen leider kein besonders klares Bild. In vielen Fällen konnte sehr
schnell eine erfolgreiche Strategie entwickelt werden, in anderen Fällen erst nach sehr vielen
Generationen. Es gab Fälle in denen die zwei Spezies sich in ihren Fitness-Werten ständig übertrafen und Fälle in denen eine Spezies von Anfang an immer dominierte. Zwei dieser Fälle sind
in den Diagrammen in Abbildung 6 dargestellt. Dabei ist der Fitness-Wert der beiden Spezies (der von Sims so normiert wurde, dass er stets zwischen 0.0 und 2.0 lag) über den Verlauf
der Evolution abgetragen. Im unteren Diagramm erkennt man sehr schön wie sich ein beständiges hin- und her zwischen den Spezies entwickelt, eine Situation die sehr an ein Wettrüsten
erinnert. Trotzdem war es auch bei diesen Experimenten wieder erstaunlich, wie natürlich die
entwickelten Kreaturen und ihre Strategien wirkten. Eine immer wieder auftretende, sehr erfolgreiche Strategie war es, Arme zu entwickeln, die den Würfel zur Seite schieben konnten.
Aber auch wurmartige Kreaturen, die sich um den Würfel wickeln und sogar Kreaturen die in
der Lage sind, dem Würfel, mithilfe von Photosensoren, aktiv zu folgen sind entstanden. Die
Endsituationen für zwei Wettkämpfe sind in Abbildung 7 und Abbildung 8 zu sehen. Der Sieger sowie die verwendete Strategie ist dabei offensichtlich. In den meisten Fällen waren die
entstandenen Strategien fest, das heißt die Kreaturen verhielten sich immer gleich, unabhängig
von dem Verhalten des Gegners. Sims nimmt an, dass man die Entwicklung von Strategien, die
ein „reaktiveres“ Verhalten zeigen durch mehr Spezies fördern könnte, da sich alle Kreaturen
dann mit mehreren verschiedenen Gegnern messen müssten [Sim94a], was aber natürlich auch
wieder einen erhöhten Zeitbedarf für die Austragung der Wettbewerbe nach sich ziehen würde.
4
Diskussion
Wie Aussagekräftig sind die Ergebnisse von Karl Sims Arbeit? Zunächst ist dazu zu sagen, dass
es Sims nie um grundlegende Forschungsarbeit ging, sondern um ein konkretes Ziel im Bereich
4
DISKUSSION
13
Abbildung 5: Die Arena die für die Wettbewerbe simuliert wurde. Quelle: [Sim94a]
der Computergraphik. Daher ist es nicht verwunderlich, wenn man nicht viele grundlegende
Erkentnisse aus seinen Experimenten ziehen kann. Der genetische Algorithmus ist bereits vielfältig erprobt und untersucht worden, Sims verwendete ihn lediglich als „Mittel zum Zweck“.
Genauso wurde auch die Verwendung von genetischen Sprachen als Genotyp bereits in vielen
anderen Arbeiten untersucht. Auch hier ging es Sims mehr darum, seinem Ziel entgegenzukommen und dafür war die Verwendung einer genetischen Sprache unerlässlich. Neu an seiner
Arbeit war mit Sicherheit die komplexe Steuerung durch die neuronalen Netze, sowie die konsequente Anwendung des genetischen Algorithmus auf alle Bereiche der Kreatur, so dass sich
eine Ko-Evolution von Aussehen und Verhalten einstellen konnte. Es bleibt aber zu bemerken, dass selbst die relativ einfachen Kreaturen, die Sims verwendete bereits einen enormen
Rechenaufwand benötigten. Die Experimente wurden auf einer „Connection Machine“ einem
hochparallel arbeitenden Rechner durchgeführt und die Algorithmen waren speziell dafür optimiert. Ein System, dass realistische Figuren erzeugt, die so tatsächliche Verwendung in dem
Bereich der Computergraphik finden könnten, benötigt natürlich auch einen ungleich höheren
Rechenaufwand. Andererseits sind die Fähigkeiten der verfügbaren Rechner immernoch in einem ständigen Fortschritt und daher ist fehlende Rechnenkapazität oft nur eine Frage der Zeit,
wenn die grundsätzliche Machbarkeit und Berechenbarkeit, wie in diesem Falle, bereits gezeigt
wurde.
Über die Bedeutung von Wettbewerb für die künstliche Evolution lassen sich leider nur schwer
Aussagen treffen, da entsprechende Vergleiche kaum zu ziehen sind. Anscheinend verstärkt
der Wettbewerb die Vielfalt der möglichen Lösungen sowie die Geschwindigkeit der evolutionären Entwicklung. Andererseits fördert Wettbewerb auch das Entstehen von Spezialisierungen,
beziehungsweise das Besetzen von „Nischen“ - eine Tendenz die, je nach Situation, nicht immer gewünscht ist. Auch das Wettrüsten zwischen Spezies, so eindrucksvoll es auch erscheinen
mag, kann wegen seines explosiven und schwer vorhersagebaren Charakters nur bedingt Vorteile für den Einsatz des genetischen Algorithmus bringen. Auch sind Wettbewerbe nicht in allen
Situationen denkbar, in denen der genetische Algorithmus einsetztbar ist, daher ist eine generelle Etablierung von Wettbewerben als Mittel zur Steigerung der Effizienz wohl nicht sinnvoll.
Nichtsdestotrotz ist es ein mächtiges Werkzeug das auch außerhalb von bloßer Grundlagenforschung auf dem Gebiet der künstlichen Evolution seine Berechtigung hat. Sobald man allerdings Wettbewerbe in der künstlichen Evolution einführt, führt man zwangsläufig auch mehr
4
DISKUSSION
14
Abbildung 6: Oben die Entwicklung einer dominierenden Spezies, unten die Entwicklung von
zwei gleich starken Spezies. Quelle: [Sim94a]
Komplexität und daher schlechtere Vorhersagbarkeit in das System ein. Die natürliche Evolution ist ein hoch komplexes System, nicht zuletzt wegen den unendlich vielschichtigen Interaktionen zwischen den beteiligten Lebewesen. In der herkömmlichen Simulation einer Evolution
ist keinerlei Interaktion zwischen den Mitgliedern der Population gegeben. Zwar ist eine Vorhersagbarkeit aufgrund der eingebauten Zufälligkeit sowieso schon sehr schwer, aber man kann
die Entwicklung der Population und den Ablauf des Algorithmus trotzdem relativ gut überblicken. Die Wettbewerbe bringen, wie oben erwähnt, eine Eigendynamik in das System, die
eine Analyse nochmals deutlich erschwert. Sims berichtet in [Sim94a] davon, dass sich die Strategie der Besten oftmals plötzlich änderte und unter den Arbeiten die zitiert werden und die sich
mit ähnlichen Probleme befassen, findet sich auch die Simulation des „Gefangenendilemmas“,
die R. Axelrod durchführte und deren Ergebnisse für die Erforschung der Evolutionär Stabilen
Strategien wichtige Einsichten lieferte (vgl. [Daw99]).
15
LITERATUR
Abbildung 7: Eine Kreatur mit Armen. Quelle: [Sim94a]
Abbildung 8: Eine alternative Strategie. Quelle: [Sim94a]
Literatur
[Daw96] Richard Dawkins. The blind watchmaker. W. W. Norton & Company Inc., 1996.
[Daw99] Richard Dawkins. The selfish gene. Oxford university press, 1999.
[Sim94a] Karl Sims. Evolving 3D morphology and behaviour by competition. In R. Brooks
and P. Maes, editors, Artificial Life IV Proceedings, pages 28–39, MIT, Cambridge,
MA, USA, 6-8 July 1994. MIT Press.
[Sim94b] Karl Sims. Evolving virtual creatures. In Computer Graphics, Annual Conference
Series, (SIGGRAPH 1994 Proceedings), pages 15–22, July 1994.
Herunterladen