Evolution of buildable objects and robotic lifeforms

Transcription

Evolution of buildable objects and robotic lifeforms
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