Untersuchung von evolutionären Prozessen basierend auf dem

Werbung
Untersuchung von evolutionären Prozessen
basierend auf dem Simulator Tierra
0. Abstract
Auf der Grundlage eines zellulären Automaten wurden Digitale Lebewesen auf den
Computer synthetisiert wobei die CPU – Zeit „Energie“ und Speicher die Ressource
„Material“ darstellen. Der Speicher ist in „genetischen“ Mustern aufgebaut, welche die CPUZeit zum Zwecke der Selbstreplikation ausbeuten. Mutationen basieren auf evolutionären
Algorithmen, erzeugen neue Formen, und Evolution findet durch natürliche Selektion statt,
wenn die unterschiedlichen „Genotypen“ um die CPU-Zeit und den Speicher kämpfen. Die
digitalen Lebewesen sind selbstreplizierende Computerprogramme welche auf einem
virtuellen Computer basierend auf einer einzigartigen Maschinensprache laufen. Von einem
einzelnen „Vorfahren“ entwickeln sich Zehntausende selbstreplizierende Genotypen. Es
entwickeln sich Parasiten, worauf sich Kreaturen entwickeln welche immun gegen Parasiten
sind und anschließend Parasiten, welche in der Lage sind diese Immunität zu umgehen. Dann
entwickeln sich Hyper-Parasiten welche in der Lage sind Parasiten dazu zu bringen nicht sich
selbst sondern Hyper-Parasiten zu reproduzieren. Dies hat zur Folge, dass die Parasiten
allmählich aussterben und die Evolution aufhört, da das System in eine Stasis verfällt.
1. Einleitung
Bereits lange Zeit vor der Entwicklung von evolutionären Algorithmen, welche die Grundlage
für die Simulation der Evolution sind, wurden
Probleme bereits mit dem Computer gelöst.
Eine der Hauptgründe warum diese
entwickelt wurden ist, dass auf viele noch
offene Probleme die „traditionellen“
Lösungsansätze nicht ausreichend angewandt
werden können[1]. Die angesprochenen
Sachverhalte sind sehr komplex, weil sie eine
Menge von Parametern enthalten, und
stehen mit realen Phänomenen in Beziehung,
für die es nur sehr komplexe oder gar keine
Modelle gibt , da diese nicht ausreichend
verstanden werden. Die herkömmlichen
Lösungsmethoden
benötigen
um
diese Abbildung 1 Beispiel einer Optimierungsfunktion
komplexen Probleme zu lösen eine hohe
Rechenleistung und haben den Nachteil, dass die Kosten dafür exponentiell mit der Anzahl
der Parameter steigen. Ein Ziel war also eine Alternative zu schaffen, welche eine gute
Annährung an das Problem in begrenzter Zeit zu angemessen Kosten liefert. Einer dieser
besagten Sachverhalte stammt aus dem Bereich der biologischen Evolution und der damit
verbunden Prozesse in den unterschiedlichen Organismen. Evolution ist die Veränderung der
vererbbaren Merkmale einer Population über Generationen hinweg. Sie findet fortlaufend
durch eine Ansammlung von geringen Modifikationen der Lebewesen über einem großen
Zeitraum, meist mehrere Jahrtausende, statt. Dies macht es für die Wissenschaft nahezu
unmöglich sie direkt zu beobachten und nachzuvollziehen. Somit konnten Erkenntnisse nur
gewonnen werden, indem die derzeitig vorhandenen Tierarten und gefundenen Fossilien
untersucht wurden. Somit war man zwar in der Lage die Existenz der heutigen Arten
einigermaßen zu erklären, da die Evolution jedoch stetig und nur über einen sehr langem
Zeitraum messbar verläuft, konnte man sie nicht experimentell untersuchen um neue
Erkenntnisse über die Prinzipen der Evolutionären Prozesse zu erlangen. Desweiteren
konnte man nicht in alle Parameter, wie z.B. vorhandener Lebensraum,
Witterungsbedingungen oder Nahrungsangebot gleichzeitig zu betrachten. Es war jedoch
möglich einige wichtige Entdeckungen zu machen, wie die von Charles Darwin[2]. Jedoch
erst seit Entwicklung der Simulationen von Evolution war man in der Lage in kürzester Zeit
die Auswirkungen verschiedener Parameter auf die Entwicklung einer Population zu
beobachten und dadurch zu Erkenntnissen zu gelangen oder Theorien zu überprüfen. Da
Evolution zu einem großen Teil auch einen Zufallsfaktoren enthält, wie die Mutation oder die
zufällige Neuanordnung von Merkmalen, welche ohne Simulationen nicht untersucht
werden können, mussten die die Aufgrund dieser Algorithmen arbeiten auch eine
Zufallskomponente enthalten, was dazu führt, dass die gleiche Simulation mit den selben
Parametern z.T. unterschiedliche Ergebnisse liefert[3]. Das bedeutet, dass für ein Problem
unterschiedlich effiziente Lösungen gefunden werden können. Das widerspricht zwar in der
Wissenschaft dem Kriterium der Wiederholbarkeit, ist jedoch ein gewünschtes Ergebnis, da
nur dadurch dieser beschriebene alternative Ansatz verwirklicht werden kann um jegliche
komplexe Probleme in guter Annährung zu lösen.
2. Grundlagen für den zellulären Automaten „Tierra“
2.1 Evolutionäre Algorithmen
Evolutionäre
Algorithmen
(EA)
sind
Optimierungsverfahren, welche als Vorbild die
biologische Evolution haben. Die Individuen
werden hierbei durch ihre Eigenschaften (in der
Regel durch Zahlenwerte) beschrieben und
müssen sich bezüglich der Selektionsbedingungen
als möglichst geeignet behaupten. Damit
erwerben sie das Recht ihre Eigenschaften zu
vererben oder nicht. Somit entwickelt sich die
„Population“ im Laufe mehrerer Iterationen
immer näher an das Optimum heran. Damit diese
Entwicklung stattfinden werden bei jedem
Durchlauf die biologischen Prinzipien der
Mutation,
Rekombination
und
Selektion
angewandt.
Die Mutation des Erbgutes ist ein Zufallsprozess,
der Variationen von vorhandenen Genen erzeugt.
Für die Optimierungstheorie bedeutet dies die
Möglichkeit lokale Optima zu überwinden und
unter biologischen Gesichtspunkten neues
Erbgut, das in die Population eingeführt wird.
Abbildung 2 : Allgemeiner Ablauf der
Rekombination ist die zufällige Neuverteilung
Verarbeitung eines Evolutionsalgorithmus
von Eigenschaften zweier Individuen. Sie muss keine
Rolle spielen, weil es auch asexuelle Fortpflanzung geben kann.
Selektion bewertet die Ergebnisse des Zufallsexperiments anhand von aktuellen
Umweltbedingungen. Hier wird die Richtung der evolutionären Veränderungen bestimmt, da
sich optimierte Genotypen mit höherer Wahrscheinlichkeit vermehren und somit
ungeeignetes Genmaterial aus dem Gen-Pool der Population entfernt wird.
Der rechenintensivste Teil jedes evolutionären Algorithmus ist die Bewertungsfunktion, die
sogenannte Fitnessfunktion. Sie stellt den in der Natur vorherrschenden Selektionsdruck dar.
Das heißt, dass entweder jedes Individuum einzeln (in der Regel mit einem Realwert )
betrachtet wird oder aber Teilgruppen von Individuen betrachtet werden und relativ
verglichen werden. Das hat zur Folge, dass sich die Organismen mit den höheren Realwerten
mehr vermehren da sie durch andere Eigenschaften besser angepasst sind.
2.2 Zelluläre Automaten
2.2.1 Allgemein:
Ein Zellulärer Automat ist ein diskretes dynamisches System, das sich durch die wiederholte
Anwendung einfacher deterministischer Regeln entwickelt[4]. Da es sich um ein
deterministisches System handelt, ändert sich der Zustand des Systems als eine Funktion des
aktuellen Zustands. Demzufolge ist ein Zellulärer Automat ein Beispiel für einen
(endlichen[5] oder unendlichen[6]) Automaten.
2.2.2 Zellulärer Raum:
Zur Definition eines zellulären Automaten wird zuerst ein zellularer Raum benötigt. Dies ist
ein n-dimensionaler Raum, der entsprechend einer gewünschten Geometrie in diskrete
Zellen eingeteilt wird. Das können die Einheitsintervalle auf einer Geraden, Einheitsquadrate
in der Ebene oder generell Einheitshyperwürfel im n-dimensionalen Raum sein. Es sind
jedoch auch andere Geometrie Konstrukte denkbar, z. B. kann die Ebene in sechseckige
Bienenwabenzellen eingeteilt werden, oder in gleichseitige Dreiecke.
Ein Zellulärer Raum wird am einfachsten als Zn betrachtet, wobei n die Dimension des
zellulären Raums darstellt und Z die Menge der ganzen Zahlen ist.
Aus diesem unendlichen Zellularen Raum kann unter der Definition von Randbedingungen
ein endlicher Zellulärer Raum erzeugt werden. Unter Randbedingungen versteht man in
diesem Zusammenhang insoweit, dass der Zelluläre Raum nicht aus Zn sondern einer
Teilmenge davon besteht.
2.2.3 Zustände der Zellen
Weiterhin wird für einen zellulären Automaten eine endliche Menge Z von Zuständen, die
jede Zelle des zellulären Automaten annehmen kann, benötigt. Diese Zustände können mit
ganzen Zahlen nummeriert werden, sodass sich als Zustandsmenge die Menge {0,1,…,z-1} für
einen zellulären Automaten mit z Zuständen ergibt.
2.2.4 Nachbarschaft von Zellen
Der Begriff der Nachbarschaft einer Zelle bedeutet Salopp gesagt, das die Nachbarschaft
einer Zelle aus einer endlichen Menge von Zellen besteht, wobei alle Zellen "dieselbe"
Nachbarschaft besitzen, und zwar in dem Sinne, dass die Nachbarschaft einer Zelle nur mit
relativen Bezügen zu dieser Zelle spezifiziert wird. Dadurch genügt es, die Nachbarschaft für
eine Zelle zu definieren, für jede andere Zelle erhält man diese durch eine einfache
Verschiebung
Beispiele für Nachbarschaften:
Abbildung 3: Die Zellen a-3, a-2, a-1, a und a+1 gehören zur Nachbarschaft.
Abbildung 4: Eine mögliche Nachbarschaft eines 2-dimensionalen zellulären Automaten
2.2.5 Zustandsüberführungsfunktion und Zeittakt
Mit der Zustandsmenge Z und der Nachbarschaft N kann man jetzt jede einzelne Zelle als
einen Automaten betrachten. Der Zustand des Automaten ist der Zustand der Zelle, die
Eingabe besteht aus den Zuständen der Zellen aus der Nachbarschaft dieser Zelle (alles zum
Zeitpunkt t). Nun wird eine Zustandsüberführungsfunktion ZF, die den Zustand der Zelle zum
Zeitpunkt t+1 berechnet benötigt. Dies entspricht dem Begriff des Zeittaktes. Ein Zellulärer
Automat entwickelt sich nämlich in diskreter Zeit, d. h. der Zustand des zellulären
Automaten (damit ist die Gesamtheit der Zustände seiner Zellen gemeint) zu einem
bestimmten Zeitpunkt t+1 ist eine Funktion des Zustands zum Zeitpunkt t.
Da die Nachbarschaft einer Zelle Zellen enthalten kann, welche nicht im zellulären Raum
liegen aber trotzdem
der Zustand dieser Zellen für die Berechnung
Zustandsüberführungsfunktion benötigt wird, müssen die Zustände dieser Zellen in den
Randbedingungen definiert werden.
2.2.6 Anfangszustand
Wie alle dynamischen Systeme benötigt auch ein zellulären Automaten einen
Anfangszustand, d. h. eine anfängliche Belegung der Zellen mit Zuständen. Falls es sich um
einem unendlichen zellulären Automaten handelt, müssen an den Anfangszustand und an
die Zustandsüberführungsfunktion allerdings einige Bedingungen gestellt werden, um die
Simulation des zellulären Automaten per Computer zu ermöglichen.
2.2.7 Einschränkungen zum Zweck der Simulierbarkeit
Ein endliches System wie ein Computer oder auch ein menschlicher Simulator kann von
Natur aus keinen unendlichen ZA simulieren. Aus diesem Grund versucht man sich einen
unendlichen zellulären Automaten als einen "potentiell" unendlichen zellulären Automaten
vorzustellen, das bedeutet das es eine endliche Teilmenge des zellulären Automaten gibt, in
dem sich das wirklich "interessante" Geschehen abspielt, während alle Zellen außerhalb
dieser Teilmenge nicht nur irrelevant sind, sondern ohne individuelle Betrachtung berechnet
werden können. Um dies zu erreichen muss gefordert werden, dass die Zustandsmenge
einen besonderen Zustand enthält, der mit 0 bezeichnet wird. Die
Zustandsüberführungsfunktion soll, wenn alle Eingangszustände diesen Wert 0 haben, als
Ergebnis wieder 0 liefern. Jede Zelle, deren Nachbarschaft vollständig aus diesem 0-Zustand
besteht, nimmt daher im nächsten Zeittakt ebenfalls den 0-Zustand an. Desweiteren muss
der Träger eines zellularen Raums als die Menge aller Zellen, deren Zustand nicht der 0Zustand
ist,
definiert
werden.
Um einen Zeittakt eines zellulären Automaten durch einen Computer berechnen lassen zu
können, muss der Träger aus einer endlichen Menge von Zellen bestehen. Daraus folgt das
die Menge aller Zellen, in deren Nachbarschaft Zellen mit einem von 0 verschiedenen
Zustand vorkommen, endlich ist, und nur diese müssen für die Berechnung des
Folgezustandes des zellulären Automaten in Betracht gezogen werden. Außerdem hat auch
der Folgezustand wieder einen endlichen Träger, womit die Simulierbarkeit über beliebig
viele Zeittakte sichergestellt ist. Um die Simulierbarkeit eines ZA zu garantieren, genügt es
daher, für den Anfangszustand einen endlichen Träger zu fordern.
3. Tierra - Simulator
3.1 Allgemeines
Der Tierra Simulator baut auf dem System eines zellulären Automaten auf. Im Bereich der
evolutionären Algorithmen finden nur die Mutation und die Selektion Anwendung. Das heißt
dass die Organismen asexuell sind, da auf geschlechtliche Reproduktion verzichtet wird. Die
hier verwendete Fitnessfunktion ist dynamisch und nicht wie bis dahin üblich von externen
Faktoren vorgegeben.
3.2 Reduzierte Instruktionssatz
Die genetische Sprache für organische Wesen besteht aus den 4 Nukleinsäuren (C, G, A, T). 3
davon verbunden codieren eine Aminosäure. So können insgesamt 64 (4³) Aminosäuren
codiert werden. Da viele jedoch davon redundant sind[7] gibt es tatsächlich nur 20
Aminosäuren. Heutige Computer besitzen jedoch einen 32-Bit Assembler was dazu führt das
für die Mutation eines Bits es mehr als 4 Milliarden Möglichkeiten(Instruktionen) gibt. Die
Möglichkeit, dass dabei etwas Sinnvolles entsteht ist verschwindend klein und auch nicht
sehr realitätsnah. Somit musste der Instruktionssatz reduziert werden. Die Anzahl der
Instruktionen wurde auf 32 verringert. Dies war möglich da ein CISC Computer benutzt
wurde, der nur für Zahlen in Registern oder welche die auf Register zeigen (Keine
Gleitkomma Operationen) Operationen benötigt.
3.3 Verzweigungen und Schleifen
In organischen Lebewesen läuft die Interaktion von Molekülen nach einem Schlüssel Schloss
Prinzip ab. Die Elemente bilden dazu in einer Zelle ein 3D Muster[8]. Diffusion bringt sie
zusammen und gegensätzliche Formen lassen sie dann eventuell miteinander agieren.
Jedoch muss wenn ein Teil des Codes mit einem anderen an einer anderen Stelle
interagieren möchte die genaue Adresse wissen. Da dies jedoch dann nicht mehr den
Abläufen in den Organismen entspricht hat man einen ähnlichen Mechanismus für den Code
eingeführt, Adressierung durch gegensätzliche Templates. Demnach wird nicht mehr direkt
an die spezifizierte Adresse gesprungen. Der Code gibt ein Muster vor und die
Sprunganweisung durchsucht den Speicher nach einem komplementären Muster.
3.4 The reaper
Ein reproduzierendes Programm wird in einer Endlosschleife ausgeführt und produziert
jedes Mal wenn es durch die Schleife läuft ein reproduzierendes Kind. Da der Speicher
jedoch endlich ist, ist dieser irgendwann voll und das Programm kann nicht mehr weiter
ausgeführt werden. Also muss dafür gesorgt werden, dass der Speicher immer wieder frei
wird. Dafür wurde die Fitnessfunktion „The reaper“ eingeführt und stellt in der Evolution
den Tod dar. Sobald eine Kreatur erzeugt wird, wird sie in die reaper queue aufgenommen.
Grundsätzlich ist es eine FIFO (first in first out) queue. Wenn Speicher benötigt wird, dann
wird die erste Kreatur in der queue aus dem Speicher entfernt. Das bedeutet quasi, dass die
älteste Kreatur als erstes stirbt. Jedoch ist der reaper nicht wirklich eine FIFO queue, da
Kreaturen(Programme) durch Fehler in ihren Instruktionen, bedingt durch ungünstige
Mutationen, in der queue aufsteigen können ,was eine kürzere Lebenspanne zur Folge hat.
4. Ergebnisse des Testlaufs von Tierra
4.1 Mikro-Evolution :
Wenn es keine Mutation gibt, gibt es auch keine Evolution. Das flippen des Bits bei
Kopierfehlern (Variation) oder Mutation resultiert in Kreaturen mit 80 Instruktionen
(Genotyp) die vom Vorfahren leicht abweichen.
Mutation an sich kann die Größe einer Kreatur nicht verändern, aber die Instruktionen im
Chromosomensatz verändern. Jedoch beim verändern des Genotypen können Mutationen
die Kalkulation der eigenen Größe der Kreatur beeinflussen was dazu führt das die Kinder
eine andere Größe haben können. Jedoch sollen alle
Kreaturen unabhängig der Größe (Instruktionssatz) Einzeller
darstellen.
4.2 Parasiten :
Parasiten entstehen durch eine Mutation die zur Folge hat,
dass das Ende der Kreatur erreicht wird bevor die
Vollständige Instruktion zum Reproduzieren kopiert wurde.
Damit ist das Kind nicht mehr in der Lage sich selbständig
fortzupflanzen. In einer Isolierten Population wäre diese nicht Abbildung 5: Tierra: Wirte(Rot) sind
in der Lage sich zu vermehren. Jedoch wenn in der Population vorherrschend, erste Parasiten(Gelb)
noch andere Arten von Kreaturen vorhanden sind kann es sich sind aufgetaucht
mit deren Hilfe fortpflanzen (die liegt an der Halbdurchlässigen Speicherbelegung die nur
Schreibrechte schützt) Damit ist der Parasit in der Lage
die Kopierfunktion von umliegenden Organismen
auszuführen.
4.3 Immunität zu Parasiten :
Nach einer Weile entstehen Kreaturen mit 79
Instruktionen, welche relativ Immun gegen Parasiten
sind. Die Parasiten schaffen es zwar sich fortzupflanzen,
aber diese dabei entstehenden Kreaturen haben keine
Überlebenschance. Parasiten tauchen zwar immer
wieder auf schaffen es aber nicht diese Kreaturen zu
befallen, welche lange Zeit die Population dominieren.
Abbildung 6: Tierra: Wirte sind nur
noch selten, da die Parasiten sie
verdrängt haben. Immune Organismen
(Blau) treten vereinzelt auf.
4.4 Umgehung der Immunität:
Im weiteren Verlauf der Simulation entstehen
Parasiten der Länge 51 welche in der Lage sind die
Immunität der vorher entstandenen Kreaturen zu
überwinden.
4.5 Hyperparasiten :
Hyperparasiten, welche sich um 19 Instruktionen
unterscheiden entwickelten sich als letztes. Ihre
Fähigkeit den Energiestoffwechsel von Parasiten zu
unterdrücken beruht auf 2 Änderungen.
Die
Kopierfunktion kommt nicht zurück, sondern springt
direkt zu der richtigen Adresse der Reproduktion zurück.
Auf diese Weise beschlagnahmt der Hyperparasit
erfolgreich den Zeiger des Parasiten. Nach jeder
Reproduktion untersucht sich der Hyperparasit
selbst und stellt seine ursprünglichen Register
bezüglich Größe und Ort. Damit enthält der Parasit
die Größe und den Ort des Hyperparasiten nachdem
der Instruktionszeiger des Parasiten durch den Code
des Hyperparasiten durch ist. Dies hat zur Folge,
dass der Parasit den Hyperparasiten reproduziert.
Die Entwicklung von Hyperparasiten hat die
allmähliche Auslöschung von Parasiten zur Folge.
Dies war der letzte Schritt der Evolution, da die
Simulation dann in einem Stasis Zustand verfällt, da
keine Veränderungen mehr eintreten.[9]
Abbildung 7 Immune Wirte verbreiten
sich weiter
Abbildung 8 Immune Wirte (darunter
auch Hyper-Parasiten) führen dazu das
Parasiten langsam aussterben
5. Ausblick
In Zukunft muss noch daran gearbeitet werden, dass der Stasis Zustand umgangen wird.
Dafür ist man bereits dabei mehrzellige Organismen und geschlechtliche Fortpflanzung zu
implementieren. Somit entstehen mehr Möglichkeiten wie Kreaturen entstehen können und
sich entwickeln können. Desweitern ist dies ein allgemeineres Abbild auf die Natur.
Desweiteren kann man die Simulation auch auf Probleme der Optimierungstheorie
anzuwenden, da die Grundlage von Tierra auch evolutionäre Algorithmen sind.
Literaturnachweise:
[1] Charles, Agneacutes 1995. Tierra network Version.
ATR Technical Report TR-H-145
[2] Charles Darwin : Entstehung der Arten
Nikol Verlags-GmbH (gebundenen Ausgabe)
[3] Karsten Weicker : Evolutionäre Algorithmen
Teubner GmbH 2002
[4] Jörn Schmidt, Christina Klüver : Programmierung naturanaloger Verfahren
Vieweg + Teubner Auflage 1
[5] Eckart Modrow: Theoretische Informatik mit Delphi
Books on Demand GmbH (Auflage 1)
[6] Eckart Modrow: Theoretische Informatik mit Delphi
Books on Demand GmbH (Auflage 1)
[7] Hans Dieter Jakubke: Aminosäuren, Peptide, Proteine
Verlag Chemie
[8] Hans Günther Schlegel : Allgemeine Mikrobiologie
Thieme Auflage 8 (2006)
[9] Ray, T.S. 1992 Evolution, ecology and optimization of digital organisms
Quellen:
http://www-user.tu-chemnitz.de/~stj/lehre/prosem09/leben.pdf (Stand: 1.11.2011)
http://menschmaschine.nkcomputer.de/?cat=17 (Stand: 1.11.2010)
http://de.wikipedia.org/wiki/Evolutionärer_Algorithmus
http://life.ou.edu/pubs/images/ (Stand: 1.11.2010)
http://www.usability-diplomarbeit.de/wp-content/uploads/2007/01/nielsen.jpg (Stand: 1.11.2010)
http://www.fim.uni-linz.ac.at/lva/rus/cellulareautomaten/ca_index.htm#Inhaltsverzeichnis (Stand 1.11.2010)
http://de.wikipedia.org/wiki/Endlicher_Automat (Stand: 1.11.2010)
http://life.ou.edu/pubs/charrel/charrel.pdf (Stand: 1.11.2010)
http://life.ou.edu/pubs/alife4/alife4.pdf (Stand: 1.11.2010)
http://life.ou.edu/pubs/oji/ (Stand: 1.11.2010)
http://life.ou.edu/pubs/zen (Stand: 1.11.2010)
http://life.ou.edu/pubs/tierra/tierrahtml.html (Stand: 1.11.2010)
http://life.ou.edu/pubs/index.html#End (Stand: 1.11.2010)
Herunterladen