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)