Technische Universität München Fakultät für Informatik Forschungs- und Lehreinheit Informatik IX Evolution of buildable objects and robotic lifeforms Hauptseminar Titus Rosu Betreuer: Freek Stulp Abgabetermin: 23. Mai 2005 Inhaltsverzeichnis 1 Einleitung 3 2 Prinzipien der Evolutionären Programmierung 4 2.1 2.2 2.3 2.3 3 Evolutionäre Programmierung 3.1 3.2 3.3 3.4 4 Genotyp Phänotyp Fitnessfunktionen Kontrolle und Koevolution 7 Evolutionäre Algorithmen Initialpopulation Vererbungsstrategien 3.2.1 Crossover 3.2.2 Grafting 3.2.3 Mutationen Artenbildung Morphologie und Kontrolle der „Virtuellen Kreaturen“ 13 4.1 4.2 Morphologie Kontrolle 5 Simulation 16 6 Resultate 17 7 Problematik 17 8 Ausblicke und Zusammenfassung 18 9 Literatur- und Bilderverzeichnis 19 2 1 Einleitung Schon seit längerer Zeit versuchen die Wissenschaftler Systeme zu entwickeln, die durch eine KI sich selber weiter entwickeln und Lösungen zu Problemen eigenständig finden. Den Ansatz den ich hier vorstellen werde, geht genau in diese Richtung und macht sich die Evolutions-Theorie zu nutze. Im Folgenden werde ich die Prinzipien der evolutionären Programmierung auf konstruierbare Robotikformen anhand von Karl Sims „Virtuellen Kreaturen“ erläutern und aufzeigen. Dazu werde ich erstmal wichtige Prinzipien und Definitionen der evolutionären Programmierung vorstellen und dann tiefer in die Arbeit von Karl Sims gehen. Am Ende werde ich dann noch einen Ausblick auf ein anderes Projekt machen. 3 2 Prinzipien der Evolutionären Programmierung Die evolutionäre Programmierung macht sich die Natur als Vorbild zu nutze, so wie schon der Name darauf schließen lässt. Man versucht durch den Ansatz der Evolution künstliche Intelligenz selbstständig von einem eigenständigen System zu erlernen, indem es Lösungen zu Problemen, welche man vorher definiert hat, findet. Das eigenständige System besteht aus einer Population von Individuen des gleichen Typs. 2.1 Genotyp Damit wir eine Evolution wie in dem Sinne der Natur und im unserem Sinne zur Problemlösung haben, muss sich die Anfangspopulation, unser Initialsystem, durch Reproduktion von Nachkommen weiterentwickeln. Damit diese Reproduktion und Weiterentwicklung stattfinden kann, bedienen wir uns auch hier bei der Natur, indem wir die Bauweise und die Merkmale eines jedes Individuums in seinem Gen-Code (Genotyp) codieren. So können wir z.B. bei einer Paarung von zwei Individuen ein Kind erzeugen, welches verschiedene Eigenschaften von beiden vereint, die aus beiden Genotypen herausextrahiert werden. Im Genotyp liegt der komplette Bauplan mit allen Merkmalen des Individuums codiert vor. Dieser besteht z.B. bei den „Virtuellen Kreaturen“ aus Knoten und Kanten eines gerichteten Graphen mit allen Gewichtungen. Die Knoten innerhalb des Graphen sind wieder ein gerichteter Graph mit Knoten und Kanten und allen dazugehörigen Gewichtungen. Der Graph kann immer wiederkehrende Formen annehmen, d.h. die Knoten können viele Kindkonten instanzieren oder selber rekursiv auf sich zeigen. In den Knoten stehen die Informationen zu den Merkmalen der Formen und Bewegungen der „Virtuellen Kreaturen“. Der Genotyp ist wie oben erwähnt codiert, also z.B. als linearer String repräsentiert. Diese Codierung interessiert uns, da diese für Paarungsvorgänge oder Mutationen eine wichtige Rolle darstellt und somit durch Codierungs-Algorithmen für schnelle unkomplizierte Umformungen bearbeitet werden müssen. 4 2.2 Phänotyp Der Phänotyp schließt alle inneren und äußeren Strukturen und Funktionen des Genotyps ein. Der Phänotyp ist eine Darstellung aller äußerlichen Merkmale mit allen Fähigkeiten des Individuums und wird aus dem Genotyp generiert, z.B. der Mensch ist aus seinem Gen-Code generiert. Im Laufe der individuellen Entwicklung kann sich der Phänotyp eines Organismus ändern. Der Phänotyp bei den „Virtuellen Kreaturen“ ist durch starre Blockteile dargestellt, welche an ihren Verbindungspunkten untereinander durch „Muskeln“ bewegt werden können. Abb. 1: Links ist der gerichtete Graph des Genotyps zu sehen Rechts der daraus resultierende Phänotyp 5 2.3 Fitnessfunktion Durch so genannte Fitness-Funktionen wird entschieden welche Individuen das gestellte Problem am besten in einer vordefinierten „Umgebung“ lösen können. So kann man die Weiterentwickelung einer Initialpopulation in Richtung Problemlösung mit Hilfe von Bewertungs- und Fitnessfunktionen steuern, die nur die besten Individuen weiterleben lassen und ausselektieren. Das kann man mit der aus der Natur bekannten Selektion "Survival of the fittest" vergleichen. 2.4 Kontrolle und Koevolution Damit durch die Metamorphose unserer Strukturen sich optimal im Geno- und Phänotyp entwickeln, ist es nur logisch, wenn unser Ansatz so gewählt ist, dass der Körper und unser Kontrollorgan, das „Gehirn“, sich gemeinsam entwickeln, um die Anpassungsfähigkeit in der Umgebung und der Problemlösung optimal zu fördern. Dies ist ein Koevolutionärer Prozess, der im Allgemeinen bedeutet, dass eine Gemeinsame, gegenseitig beeinflussende Entwicklung stattfindet. Das kann man Vergleichen wenn ein Tier seine Umgebung vom Wasser auf das Land durch evolutionäre Entwicklung ändert, so muss der Körper sowie das Gehirn, das natürlich für die Steuerung des Körpers und für das Verhalten in der neuen Umgebung die Kontrolle übernimmt, sich gleichzeitig anpassen, damit das Individuum in seinem neuen System weiter überlebt. Dies ist auch ein Ansatz bei den „Virtuellen Kreaturen“. 6 3 Evolutionäre Programmierung In diesem Kapitel wollen wir nun genauer die Methoden der evolutionären Programmierung betrachten, um den Prozess im Hintergrund zu verstehen, der zur Lösung des Problems heranführt. 3.1 Evolutionäre Algorithmen (EA) Der genetische Algorithmus (GA) Der genetische Algorithmus gehört zu den evolutionären Algorithmen. Der genetische Algorithmus sucht Lösungen zu nicht Analytischen Problemen, indem er Parameter der "Lösungsvorschläge" solange miteinander verändert und kombiniert, bis irgendwann diese der Lösung der Anforderungen entspricht. Das allgemeine typische Verfahren so eines Algorithmus sieht wie folgt aus: Initialisierung einer zufälligen Menge von Individuen als Startkandidaten. Anhand der Fitness-Funktion werden die Lösungskandidaten evaluiert und selektiert, so dass die mit den besseren Fitnesswerten überleben dürfen. Eine neue Generation wird durch Rekombination des Genotyps erzeugt und eine zufällige Mutation verändert die Werte der neuen Generation. Durch verschiedene Funktionen wird nun die neue Population aus den alten und neuen Individuen gebildet. Diese werden darauf folgend wieder durch die Fitnessfunktionen von neuen behandelt, wo wir nun wieder am Anfang des Prozesses sind. Diese Schleife wird so Lange wiederholt bis ein Lösungs-Kandidat eine Lösung bietet oder die Abbruchbedingung einsetzt. 7 Evolutionsstrategische Algorithmen (ES) Ein ähnlicher Ansatz im Gegensatz zum genetischen Algorithmus sind die Evolutionsstrategien. Der Unterschied ist, dass man versucht die Wirkung vom Genotyp auf den Phänotyp zu imitieren, darum werden die Schrittweiten der Mutationen der Parameter des Genotyps variabel angepasst (kleine Ursachen-Änderungen führen zu kleinen WirkungsÄnderungen). Die Nachkommen können alleine oder mit den Eltern zur Selektion gelangen, je nachdem welche Strategie für ein Problem angewandt wird. Dadurch dass das Mutationsschrittweitenband (Evolutionsfenster) eng angelegt ist, kommt es erst zu einer wirklichen Evolutions-Fortschritt, indem man einer Stagnation der Individuen zur Problemlösung entgegen kommt. Dies ist der Grund warum die Mutationsschrittweite variabel sich anpasst. Somit kann es sein, dass ein Individuum mehrere Generationen überlebt. Beispiele für die Anwendung der Evolutionsstrategien sind die Auslegung von LeichtbauBrückenkonstruktionen oder die optimale Planung des Kolumbianischen Gesundheitssystems. Ein weiterer Bereich der Evolutionsstrategie ist die unscharfe Optimierung, wie z.B. subjektive Komposition von Kaffeemischungen oder die Phantombilderzeugung. Ist die Kausalordnung (Ein Ereignis A ist eine Ursache von Ereignis B und beide wiederum eine Ursache von Ereignis C und so weiter) des Problems minimal, so kann die evolutionsstrategische Optimierung zur blinden Zufallssuche führen. 3.2 Initialpopulation Die Anfangspopulation wird bei den "Virtuellen Kreaturen" durch einen zufälligen Genotyp initialisiert. Grundlegend bieten sich zwei Möglichkeiten an, wie der Anfangszustand geniert werden kann. Der erste ist der so genannte „from scratch“ (ganz von vorne), indem der Computer ganz zufällige Knoten und Verbindungen generiert. Die zweite Möglichkeit ergibt sich, indem man „von Hand“ die Anfangspopulation durch den Programmierer erstellt. Für die erste Möglichkeit bietet sich natürlich an, vorhandenen Gen-Code für die zufällige Generierung der ersten Generation zu verwenden. Wie in technischen Anwendungen, da geht man manchmal auch z.B. von einem Prototypen oder existierenden Modellen aus, welches man mithilfe des evolutionärem Ansatzes verbessern möchte. Philosophisch gesehen ist uns der Ursprung in der Natur leider nicht klar. Es könnte sein, dass sich die DNS zufällig gebildet hat, als das Leben entstanden ist oder sie ist von einem anderen Planeten auf die Erde kam. Vielleicht aber hat einfach nur ein höheres Wesen damit rumgespielt, wie auch immer. 8 3.3 Vererbungsstrategien Die Reproduktion ist ein wichtiger Hauptbestandteil der evolutionären Entwicklung. Sie ermöglicht die Vielfältigkeit der Organismen, die am Ende in der jeweiligen Umgebung weiter Leben dürfen. Im Folgenden werden die Vererbungsstrategien erklärt, die bei den „Virtuellen Kreaturen“ angewendet wurden, die aber allgemein gültig sind und so in ähnlicher Form bei evolutionären Systemen wieder auftauchen. 3.3.1 Crossover Biologisch gesehen werden beim „Crossover“ zwei Genstänge überkreuzt, d.h. Gen-Strang 1 übernimmt ab einem gewissen Kreuzungspunkt den Gen-Code von Gen-Strang 2. Dies gilt analog umgekehrt. So ähnlich findet das auch bei den „Virtuellen Kreaturen“ statt. Die Knoten zweier Kreaturen werden linear dargestellt, so wie sie auch abgespeichert sind. Dann werden vom ersten Elter die Knoten bis zum sog. Crossing Point kopiert, ab da wird zum zweiten Elter gewechselt, um seine Knoten zu kopieren. Es wird dann beim nächsten Crossing Point wieder zurück auf den Elter 1 gewechselt und dies beliebig oft weiter bis ein Genotyp sein Ende erreicht. Die Kanten werden mitkopiert und zeigen auf dieselben Punkte bei den verwandten Knoten. Falls Kanten übrig bleiben, werden die Kanten zufällig irgendwo wieder angefügt. In manchen Anwendungen des Crossover dürfen nur Gene von Knoten vertauscht werden, die für dasselbe Merkmal (bio. Allel) des Phänotyps stehen. Abb. 2: Reproduktion durch Crossover 9 3.3.2 Grafting Beim Grafting werden einfach vom Elter 1 die Knoten kopiert bis zu einem zufälligen ausgewählten Knoten, wo ab da vom zweiten Elter die Knoten bis zum Ende des Genotyps kopiert werden. Abb. 3: Reproduktion durch Grafting 10 3.3.3 Mutation Die Mutation tritt ein wenn bei der asexuellen Reproduktion die Parameter innerhalb des Genotyps, welche hier die Parameter der Knoten und Kanten sind, verändert werden. Die internen Parameter eines Knoten können genauso wie die äußeren mutieren. Neue Knoten und Kanten entstehen wie auch alte werden gelöscht. Die Mutationen sollten nicht zu stark in die Struktur eingreifen, da ihr Prinzip zufällige Veränderungen sind, kann es sehr leicht vorkommen, dass das neue Individuum untauglich wird und dem System nichts mehr bringt. Eine so genannte Mutations-Frequenz gibt bei den „Virtuellen Kreaturen“ die Möglichkeit an, ob ein bestimmter Parameter-Typ überhaupt mutieren soll. Zum Beispiel werden Boolean-Werte einfach negiert oder Skalare-Werte einfach mit einem zufälligen Wert addiert, welche auch negativ sein können. Die Werte neigen eher zu kleinen Veränderungsschritten als zu Großen (Gauß-Glocke). Die Werte müssen wieder ein Element der zulässigen Werte-Menge sein, z.B. ein Parameter der nur ein Element einer sehr kleinen Menge ist, dem kann einfach zufällig ein anderer Wert aus der Menge zugewiesen werden. Diese Mutationen der Parameter gelten für die Kanten in selber Weise. Bei den Kanten können auch durch die Mutationen, die Verbindungen zu anderen Knoten zeigen, was in unregelmäßiger Frequenz zufällig passieren kann. Da die Anzahl der Kanten nicht fest für die Knoten ist, neigt der Knoten bei der Mutation dazu, dass zufällig neue Kanten entstehen, wie auch alte zufällig gelöscht werden. Erhöhung der Komplexität durch hinzufügen eines neuen Knoten. Ein neuer Knoten hat keinen Effekt auf den Phänotyp des Graphen bis zufällig durch Mutation eine Kante zu ihm zeigt. Alle Kanten und Knoten fallen weg die in diesem Schritt neu entstanden sind, wenn keine Verbindung auf einen Knoten zeigt oder eine Kante auf einen Knoten. Dies geschieht daher, um ein wildes wachsen des Graphen zu kontrollieren. Da eine Mutation auf Basis der Elemente eines Graphen geschieht und somit abhängig vom Genotyp ist, ist die Wahrscheinlichkeit einer Mutation bei kleinem Genotyp geringer als bei sehr Großen Graphen (Ähnlichkeit zum Vorfahren somit sehr gering). Dies wird kompensiert, indem die Mutations-Frequenz temporär durch einen Wert skaliert wird, welcher von der Größe des aktuellen Graphen abhängig ist und der umgekehrt proportional zur Mutationswahrscheinlichkeit dazugerechnet wird. Dadurch geschieht insgesamt durchschnittlich eine Mutation pro Graph. Die Mutation ist ein ineinander geschachtelter gerichteter Graph. Es wird vom äußeren zum inneren Graphen mutiert, da einige Parameter von der Topologie des äußeren abhängen, was weiter unten bei der Morphologie erklärt wird. 11 3.4 Artenbildung Die Artenbildung ist natürlich abhängig in was für einem Verhältnis unsere Methoden, die oben vorgestellt wurden, angewendet werden. Wie schon oben erwähnt muss bei der Artenbildung dafür gesorgt, dass durch die zufälligen Mutationen und Paarungen, das Absacken der Individuen im System nicht zu groß wird, um sicherzustellen das trotzdem Global gesehen eine Gesamtentwickelung stattfindet, die zur Lösung des Problems hinführt. Hier beim Projekt „Virtuelle Kreaturen“ werden zufällig die oben vorgestellten Methoden durch folgende Verhältnisse angewendet: 40% asexuelle Mutationen, 30% Grafting und 30% Crossover. Falls nötig, kann es auch vorkommen, dass ein neu entstandenes Individuum als Vorfahre für eine Paarung genommen wird. Nachkommen der Paarungen können auch noch mutieren, diese werden aber durch eine geringere Wahrscheinlichkeit mutiert. Nachdem die neuen Genotypen erstellt wurden, werden die Phänotypen generiert und durch die Fitnessfunktionen evaluiert und selektiert. Dieser Kreislauf führt schließlich zu immer höheren Fitnesswerten und zu einer Lösung des gestellten Problems. Abb. 4: Prinzip der evolutionären Programmierung 12 4 Morphologie und Kontrolle der „Virtuellen Kreaturen“ In diesem Kapitel wird die Brücke zwischen der oben bereits erwähnten Kontrolle und Morphologie des Phänotyps durch die „Virtuellen Kreaturen“ genauer beschrieben. 4.1 Morphologie Wie oben beim Phänotyp bereits erwähnt wurde, besteht die 3D Darstellung der "Virtuellen Kreaturen" aus starren Teilen. Diese entstehen indem wir die Struktur des Genotyp-Graphen von der Wurzel an durch alle Knoten verfolgen und somit die 3D-Teile generieren. Die Knoten stellen ein 3D-Teil dar und die Kanten stehen für die Verbindung der 3D-Teile, welche hier einfach angrenzende Teile sind. Jeder Knoten enthält z.B. Informationen wie Größe, Verbindungsart, Bewegungsfreiheit zu seinem benachbarten Teilen, etc. Man kann sich das Vorstellen wie z.B. einen Arm, der nur aus Ober- und Unterarm besteht. Ober- und Unterarm können wir zueinander gesehen beugen und strecken, aber der Körper der mit dem Oberarm verbunden ist, kann sich nicht bewegen. Erlaubte Bewegungsarten sind starre, feste Winkel-, Dreh-, Universal-, Kugelförmige-, und Dehn- Bewegungen. Ein so genannter "joint-limit" gibt den Punkt an, wenn man über die Bewegungsfreiheit hinaus kommt, ab wo Gegenkräfte aktiv werden. Eine Rekursions-Grenze sagt dem Knoten, wie oft er ein Teil erstellen darf, also z.B. wie viele Kind-Arme er an sich selber angliedern darf. 4.2 Kontrolle Die Kontrolle des Körpers und somit des Phänotyps übernimmt, wie oben bereits erwähnt, das „Gehirn“. Dieses versucht durch den koevoltionären Prozess, sich an den Körper anzupassen, den er steuern muss, in Abhängigkeit zur simulierten Umgebung, mit welcher der Körper interagiert. Dies wird hier ermöglicht mit Sensoren, Neuronen und Effektoren: 13 - Die Sensoren geben dem Phänotyp die Möglichkeit Informationen aus der Umgebung zu erhalten. Das Gehirn hat somit die Möglichkeit sich durch diese „Reize“ zu entwickeln und somit die Steuerung des Körpers anzupassen. In den „Virtuellen Kreaturen“ wurden drei Sensoren verwendet. Der erste Sensor übermittelt den Winkel zweier Körperteile, somit weiß das Gehirn z.B. wo die Teile sich gerade in der Bewegung befinden. Der zweite Sensor erkennt jeden Kontakt mit der Außenwelt, d.h. wenn ein Teil sich selber oder irgendetwas in der Außenwelt berührt, wie den Boden oder eine andere Kreatur, dann wird dies dem Gehirn durch einen Wert mitgeteilt. Der dritte Sensor sind Photosensoren, da in der Simulation eine feste Lichtquelle eingebaut wurde, mit dessen Hilfe die Kreatur ihre relative Entfernung bestimmen kann. - Die Neuronen befinden sich innerhalb der Knoten geben der Kreatur die Möglichkeit für beliebige Verhaltens- und Bewegungsmuster. Sie stellen selber einen gerichteten Graphen innerhalb des Graphen dar. So können sie verschieden Funktionen sein, die aus einem Eingangs-Signal ein Ausgangs-Signal produzieren. Dieser Ansatz gleicht zwar nicht dem biologischen, aber durch Summe von bestimmten Funktionen glaubten die Entwickler, dass sich evolutionäre interessante Verhaltensmuster entwickeln würden, was in der Tat geschah. Die Anzahl der Eingänge zu einem Neuron ist von der Funktion abhängig. Jeder Eingang ist mit einem Neuron oder einem Sensor, von welchen er einen Wert bekommt verbunden. In jedem Zeit-Intervall der Simulation generiert ein Neuron aus seinem Eingangs-Signal ein Ausgangs-Signal. Einige der folgenden Funktionen wurden verwendet: Addition, Produktion, Division, Subtraktion, kleiner gleich, sign-Funktion, min., max., Betrags-Funktion, if, sin, cos, atan, log, exp, Integration, runden, speichern… Abb. 5: Neuronen innerhalb und außerhalb der Knoten des Genotyps. Die gestrichelten Linien zeigen das nicht assoziierte Netz, dass nicht innerhalb eines Knoten des Genotyps liegt. - Die Effektoren sind mit den Neuronen oder Sensoren verbunden, von denen diese einen Wert erhalten. Biologisch gesehen kann man den Effektor als einen Muskel sehen, der sich bei einem Signal zusammenzieht. Genauso werden diese bei den „Virtuellen Kreaturen“ 14 verwendet, als virtuelle Muskeln. Den Effektoren sind einige Parameter gegeben, wie Bewegungsfreiheit und Stärke. Wenn der Phänotyp eine „Virtuellen Kreatur“ durch den Genotyp generiert wird, werden auch die Neuronen und Verbindungen jeder Komponente mitgeneriert. Wenn zwei Knoten dieselben Verbindungen zu den gleichen Neuronen haben, werden diese für jeden Knoten mitrepliziert. Somit entstehen lokale Kontrollstrukturen innerhalb des Graphen. Wenn diese Kontrollstrukturen miteinander verbunden sind, was für benachbarte Teile erlaubt ist, sind somit Koordinierte Bewegungen möglich. Somit können Effektoren und Neuronen der Elternteile Signale von den Sensoren von ihren Kindteilen empfangen oder auch umgekehrt. Bei der Genierung des Genotyps ist ein Satz von Neuronen dabei, welche nicht innerhalb eines Knoten des Genotyps liegt, sondern einmalig vorkommt und die Möglichkeit der Entwicklung einer zentralen Kontrollstruktur des ganzen Individuums gibt. Diese können verbunden sein mit Sensoren oder anderen Neuronen aus jedem Teil des Köpers. Dadurch ist die Kontrolle und Morphologie des Körpers vereinigt. Abb. 6: Das Neuronen-Netz eines Genotyps einer „schwimmenden“ „Virtuellen Kreatur“. 15 5 Simulation Der Simulator schafft die dynamische Umgebung in welcher der Phänotyp, der aus dem Genotyp generiert wurde, sein Anpassungsfähigkeit bzw. seinen Lösungsansatz unter den Evolutions-Aspekt durch Interaktion mit dieser Welt zeigt. Beim Projekt "Virtuelle Kreaturen" wird eine virtuelle 3D-Welt, die verschiede physikalische Eigenschaften aufweist generiert. Sie kann z.B. eine Oberfläche auf der die Gravitationskräfte herrschen oder eine Wasserwelt sein. Die Kreaturen haben Sensoren, wie oben schon angesprochen, mit denen sie mit der Außenwelt quasi „kommunizieren“ können. Zu diesen Komponenten zählen die Entdeckung von Berührungen und die Antworten auf diese, der Effekt der Reibung, die Möglichkeit den Körper dynamisch zu Bewegen sowie den Effekt der Wasserviskosität zu nutzen. Die physikalische Simulation muss so einigermaßen korrekt sein, um den Kreaturen und allgemein dem Phänotyp die Möglichkeit zu geben sich zu optimieren. Somit werden die Fehler der Simulation unvermeidlich von der sich evolutionär entwickelnden Kreatur gefunden und natürlich für die Anpassung an das System ausgenutzt. Dies kann ein Interessanter Ansatz sein, die Fehler des Systems aufzuspüren Abb. 7: Verschiedene schwimmende „Virtuelle Kreaturen“ 16 6 Resultate Die Entwicklung einer Bevölkerung von 300 Individuen wurde 100 Generation lang durch den Genetischen-Algorithmus von einem Multi-Prozessoren System entwickelt. Dabei hat ein Prozessor je ein Fitness-Test bearbeitet, um dies einfach und effektiv zu parallelisieren. Auf einem CM-5-System mit 32 Prozessoren hat diese Entwicklung für je eine definierte Umgebung, wie z.B. die Wasserwelt, ca. 3 Stunden gedauert. Die Formen und Eigenschaften die die „Virtuellen Kreaturen“ angenommen haben, lassen dem Betrachter glauben bekannte Verhaltensmuster und Bewegungsformen aus der Natur zu sehen. Wie z.B. im System der Wasserwelt, dort haben die Kreaturen flossenartige Gebilde gebildet und diese auch so benutzt oder schlangen-ähnliche Kreaturen haben sich entwickelt, die sich auch wie diese fortbewegt haben. In den anderen simulierten Welten bildeten sich genauso interessante Kreaturen, die krabbeln, springen und fast „laufen“ konnten. 7 Problematik Das Problem der Simulation und der daraus folgenden Entwicklungen der Verhaltensmuster des Phänotyps hierbei ist, dass die Umgebung in der Computer Simulation, die wie auch beeindruckend Real und natürlich sie bei Karl Sims "Virtuellen Kreaturen" aussehen mag, doch von der Realität weit entfernt ist. Somit die Koevolutionäre Entwicklung als Problemlösung zu benutzen, ein Problem darstellt, diese in die Realität und somit Robotik zu übertragen. Die Absicht das Gehirn und die Morphologie des Phänotyps koevolutionär gemeinsam entwickeln zu lassen, bringt so gesehen nur Vorteile, da sich das Individuum von selber an die Umgebung anpasst und vielleicht sogar immer besser, als wenn man das von "Hand" machen würde. Denn die Wahrscheinlichkeit wäre dabei groß im Modell selber was zu übersehen. Der Vorteil der Simulation ist folglich auch unübersehbar, da wir dadurch die Entwicklung beschleunigen, als wenn dies auf Hardware Ebene gemacht würde. Um das Problem mit der Übertragung auf die Realität zu lösen, muss eine Simulation geschaffen werden, in welcher die physikalischen Gesetze gelten, um eine natürliche Ausbeutung der Verhaltensmuster zu gewährleisten. 17 8 Ausblicke und Zusammenfassung Die Brücke zu der oben erwähnten Problematik, versuchen die Wissenschaftler im „Lego“Projekt zu schlagen, indem sie für ihren Ansatz die Kontrolle außen vor lassen, um vollständig physikalische korrekte Roboter-Strukturen durch den Computer konstruieren zu lassen bzw. zu approximieren. Dafür sind keine komplexen Fitnessfunktionen notwendig, sondern Komponenten die dafür sorgen, dass die Strukturen nach den physikalischen Gesetzen stabil sind und sich korrekt zueinander Verhalten. Durch den evolutionären Prozess wird versucht diesen Strukturen (z.B. eine Brücke einer gewissen Länge, die eine bestimmte Belastung und ihr Eigengewicht hält), die bestimmte Eigenschaften erfüllen sollen, zu entwickeln. Dafür wurden „Lego“-Steine verwendet, welche 1*n oder m*n Noppen hatten. Abb. 8: Brücke aus Lego-Steinen mit 1*n Noppen, die eine Länge von über 2 Meter hat Die Möglichkeiten die durch die evolutionäre Programmierung gegeben sind, stehen in gewisser Weise noch am Anfang. Sie zeigen aber in den Projekten deutlich, wie in den „Virtuellen Kreaturen“ oder im erfolgreichen „Lego“-Projekt, dass diese zu brauchbaren Lösungen von Problematiken führen, welche vom Computer selbständig gefunden werden. Meiner Meinung nach zeigen die Ergebnisse auch, dass wir irgendwann in Zukunft die Natur nachahmen oder approximieren können und dies dann erfolgreich auf die Robotik in der Realität anwenden werden. 18 9 Literatur- und Bilderverzeichnis Verwendete Literatur: - P. Funes and J. Pollack. Computer evolution of buildable objects. Evolutionary Design by Computers, 1999. - Hod Lipson and Jordan Pollack. Automatic design and manufacture of robotic lifeforms Nature, 406:974-978, 2000. - Michael Isik. Entwicklung von Neuronalen Netzen durch Augmented Topologies - Joachim Breitner. Modellbildung und Simulation, 2002. - Lexikon. Phänotyp, http://www.biosicherheit.de/lexikon/2.lexi.html Lexikon - Larry Stein. Grafting, http://aggie-horticulture.tamu.edu/propagation/approachgraft/approach.html - Wikipedia. Genetischer Algorithmus, http://de.wikipedia.org/wiki/Genetischer_Algorithmus http://en.wikipedia.org/wiki/Crossover_%28genetic_algorithm%29 - Wikipedia. Evolutionsstrategie, http://de.wikipedia.org/wiki/Evolutionsstrategie - TU Berlin. Evolutionsstrategien, http://www.bionik.tu-berlin.de/institut/s2evost.html. Bilder: - P. Funes and J. Pollack. Computer evolution of buildable objects. Evolutionary Design by Computers, 1999. - Hod Lipson and Jordan Pollack. Automatic design and manufacture of robotic lifeforms Nature, 406:974-978, 2000. 19