Artificial Life
Diese Seite soll einen kleinen Überblick über das Fachgebiet des Artificial Life bieten. Analog zum Skriptum über Neuronale Netze existiert zu Artificial Life zwar ebenfalls bereits ein Skriptum, aber es ist kaum über das 100-Seiten-Stadium hinaus und u.a. daher noch nicht veröffentlichungsreif. Vielleicht habe ich in den nächsten Semestern Zeit dafür.
Einleitung
Artificial Life ist ein wissenschaftliches Gebiet. In diesem Text möchte ich kurze, immer „lebendiger“ werdende Beispiele von „künstlichem Leben“ geben, und darstellen, wie die Anwendung aussehen kann. Dieser Text stellt sozusagen die wissenschaftliche Einleitung in die wissenschaftlichen Gebiete meiner Leidenschaft dar - es ist nützlich, ihn vor den weiteren Texten des Wissenschaftsbereiches zu lesen. Illustrationen sind teilweise aus dem Script „Artificial Life“ von Prof. Pfeifer an der Universität Zürich, dessen (englischsprachiges) Script ich zur Lektüre nur empfehlen kann.
Entstehung / Zusammenführung
Es wurde zwar schon vor 1987 im Bereich des Artificial Life geforscht, jedoch waren die Forschenden isoliert voneinander und wenige Forschungsergebnisse wurden einer breiteren Öffentlichkeit zugänglich gemacht. Frustriert über diesen Umstand, rief Christopher Langton, selbst Forschender in diesem Bereich, 1987 einen WorkShop im Santa Fe Institute (New Mexico) ins Leben, um die Forschenden zusammenzuführen und eine Möglichkeit zu schaffen, Visionen und Ergebnisse zu teilen. Hier erhielt Artificial Life auch seinen Namen.
Wozu Artificial Life?
Während des SFI-Workshops von 1987 kristallisierte sich klar die Erkenntnis heraus, dass Modelle wie sie uns z.B. die Mathematik liefert, für Beschreibungen von natürlichen Phänomenen (Evolution, Immunsystem, Weltwirtschaft) weitgehend ungeeignet sind, denn in solchen Modellen ist nun mal das Ganze die Summe seiner Elemente, d.h. kleine Änderungen in einem Modell haben auch vergleichsweise kleinen Effekt auf das Modellverhalten. Es galt also, ein alternatives Modellschema zu finden.
Was ist Leben?
Vor nach Entwicklungsmaßstäben kurzer Zeit hatte diese Frage nicht die Spur einer Bedeutung oder wurde knapp, jedoch allgemein anerkannt von der Religion beantwortet. Bedeutungsvoller wurde die Frage nach einer Abgrenzung zwischen Leben und Nicht-Leben erst, als die Physik solch lebendige Dinge wie Blitze, Wolken, Sterne und
Flüsse durch simple Formeln erklären und - noch schlimmer! - vorhersagen konnte. Um das Leben zu erforschen, sollte man also erst einmal Leben definieren - und sucht man nach einer Definition des Lebens, so wird man feststellen, dass die Wissenschaft nie müde geworden ist, im Bereich des Lebens zu forschen, jedoch nie eine wirklich schlüssige Definition zustande gebracht hat. Definitionen, welche einem auf Anhieb einfallen wie z.B. dass lebt, was sich fortpflanzen kann, scheitern oft schon an so offensichtlichen, bekannten Dingen wie dem Muli, das zur Fortpflanzung nicht fähig ist. Offensichtlich ist, dass die Frage nach dem Leben nicht allein von Physikalischen Gesetzen, also linearen Modellen abhängig gemacht werden kann.
Was ist Artificial Life?
„Artificial Life ist die Lehre von synthetischen Systemen, welche für natürliches Leben charakteristische Verhaltensweisen zeigen.“
- so, abzüglich der Übersetzungsunschärfe aus dem Englischen, wurde Artificial Life von Christopher G. Langton definiert. Was sind synthetische Systeme? Diese können z.B. aus Automaten oder Robotern bestehen, wobei es für die Roboter unerheblich ist, ob sie real existieren, oder „nur“ z.B. innerhalb eines PCs simuliert werden. Roboter übernehmen hier die Aufgabe, zu Interagieren und etwas Konkretes zu simulieren wie z.B. einen Ameisenstaat, während Automaten nach bestimmten Regeln aufeinander aufbauende Ergebnisse generieren.
Abgrenzung zwischen Artificial Life und Artificial Intelligence
Grundsätzliche Zielsetzung der Artificial Intelligence ist es, eine Art von „intelligenten Maschinen“ zu entwickeln. Man unterscheidet hierbei zwischen der starken und der schwachen KI. Während die starke KI zum Ziel hat, wie ein Mensch zu denken, Bewusstsein und Emotionen zu entwickeln, und wie ein Mensch Probleme zu lösen, und de facto schon an ihrer philosophischen Fragestellung scheitert, erfährt die schwache KI gerade in letzter Zeit bedeutende Fortschritte: Sie ist dazu gedacht, in konkreten, Intelligenz voraussetzenden Anwendungsgebieten zu Lösungen zu kommen und Probleme zu meistern und soll kein Bewusstsein oder etwas ähnliches schaffen.
Sinn des Artificial Life ist es hingegen, Systeme mit lebendigen Eigenschaften zu synthetisieren, so zu erklären und eine weiter gefasste Erforschung zu ermöglichen: Durch Veränderungen an den simulierten Umgebungen eines Forschungsmodells, welches unser Leben erforscht, könnte man beispielsweise unser „Leben, wie es ist“ im Kontext des „Leben wie es sein könnte“ lokalisieren - und feststellen, dass wir auch wie nebenstehendes Alien aussehen könnten.
Der Begriff der Emergenz
Für seine Art der Forschung macht sich Artificial Life Emergenz zu Nutze - also das Phänomen, das auch lokale Interaktionen einfachster Bausteine komplexe Ergebnisse erzeugen können; Kurz, dass ein System mehr ist als die Summe seiner Teile. Emergentes Verhalten am Beispiel der nun folgenden Zellulären Automaten ist beispielsweise, daß man mit unglaublich simplen Regeln Muster erzeugen kann, die nicht vorhersehbar bzw. durch Formeln vorherberechenbar sind.
In meinen nun folgenden Beispielen habe ich versucht, immer mehr vom Abstrakten in die Richtung des Lebens zu marschieren. Wir machen also unseren Anfang bei den Zellulären Automaten.
Beispiel 1: Zelluläre Automaten
Was macht ein Zellulärer Automat? Er generiert Zeile für Zeile
Bildpunkte. Zeilen werden dabei untereinander geplottet, mit jedem Zeitschritt eine. Das Aussehen eines jeden Bildpunkts einer neuen Zeile hängt dabei vom darüberliegenden Bildpunkt und dessen Nachbarbildpunkten ab, in unserem Beispiel sind das drei nebeneinander liegende Bildpunkte, von denen der mittlere exakt über dem zu erzeugenden Bildpunkt positioniert ist. In unserem Beispiel gibt es für einen Bildpunkt zwei Zustände (Schwarz und Weiß), für das Aussehen der Nachbarschaft also 2³=8 Möglichkeiten. Wir erhalten also 8 Möglichkeiten,
je nach Nachbarschaft einen neuen Bildpunkt Schwarz oder Weiß zu färben, was uns 256 mögliche Regeln für unsere Klasse von Zellulären Automaten liefert. Eine solche Abbildungsvorschrift aus 8 Definitionen nennen wir „Regel“.
Wie zu erwarten ist, liefern einige Regeln nun regelmäßige oder sogar komplett schwarze oder weiße Muster (Siehe nebenstehende Abbildungen). Es gibt aber auch Regeln, welche chaotische oder gar komplexe Muster liefern (Muster, welche teilweise chaotisch, periodisch oder homogen sind).
Hinter manchen dieser Muster lässt sich trotz immensem Aufwand mit Hochleistungsrechnern kein System erkennen, durch daß man das Muster beschreiben könnte. Wir haben also ein erstes Beispiel für emergentes Verhalten gefunden, denn wir haben mit wirklich einfachen Regeln komplexe, unvorhersehbare Ergebnisse erzeugt. Beachtenswert ist, dass die hier vorgestellte Klasse von Zellulären Automaten eine sehr einfache ist: Sie hat nur eine Dimension, nur zwei Farbwerte und eine Nachbarschaft von nur 3! Was wäre mit mehr Dimensionen, Farben, größerer Nachbarschaft oder aber alles in Kombination …?
Beispiel 2: Game of Life
Gehen wir einen Schritt weiter in Richtung Leben und bleiben trotzdem bei den Zellulären Automaten: Kommen wir zum Game of Life, das von einem Mathematiker namens John Horton Conway entworfen wurde. Wieder geht es um Pixel, wieder hat ein Pixel zwei Zustände (lebendig / schwarz oder tot / weiss), doch diesmal ist das Spielfeld zweidimensional. Wir betrachten keinen 1*x-Pixel-Strich, sondern eine x*y-Pixel-Fläche. Wir verzichten also darauf, wie bei den eindimensionalen Zellulären Automaten die komplette Historie der Zustände darzustellen (wir bräuchten ja auch 3 Dimensionen dafür), sondern stellen jeweils nur den aktuellen Zustand da, sehen also live, wie sich „das Leben entwickelt“.
Es gibt vier Regeln für die Zustandsberechnung eines einzelnen Pixels zu einem neuen Zeitschritt, welche sich auf seine (1 Pixel breite) Umgebung (betrachtet zum vorherigen Zeitschritt) beziehen, also die „acht Pixel drumherum“:
- Einsamkeit: Eine lebendige Zelle mit weniger als zwei lebendigen Nachbarn stirbt, eine tote bleibt, wie sie ist.
- Überpopulation: Eine lebendige Zelle mit mehr als drei lebendigen Nachbarn stirbt, eine tote bleibt, wie sie ist
- Vermehrung: Eine tote Zelle mit genau drei lebendigen Nachbarn wird zum Leben erweckt.
- Statik: In allen anderen Fällen ändert sich an dem Zustand der Zelle nichts.
Entwickeln können sich statische Figuren, die einfach in jedem neuen Schritt so bleiben, wie sie waren, und das bis in alle Ewigkeit. Es gibt jedoch interessantere Figuren: Zum einen die Oszillatoren, welche eine Reihe von Zuständen durchlaufen, um danach wieder von vorn anzufangen (einfaches Beispiel abgebildet in Form vom Blinker).
Noch interessanter wird es bei den SpaceShips, die nicht nur eine Reihe von Zuständen durchlaufen, sondern sich dabei auch über das Feld bewegen (der erste Zustand wird versetzt wieder eingenommen). Bekanntestes beispiel ist der „Glider“, der ebenfalls im Bild zu sehen ist. Natürlich gibt es auch kompliziertere Figuren, die Glider emmitieren, sich kontinuierlich vermehren, manche sogar mit mehr als quadratischer Geschwindigkeit („Brüter“), oder die so genannten „Metuselahs“ - Figurenfolgen, die aus
einer einfachen Form heraus entstehen und sich über tausende Schritte schwer vorhersehbar verändern, bis sie endlich zum Stillstand bzw. zum Blinken kommen.
Je nach Startkonfiguration des Feldes, sieht man Leben pulsieren, sich „fortbewegen“, absterben, sich vermehren, oder obskure Figuren bilden. Wir haben also schon einen weiteren Schritt auf unserem Weg in Richtung Leben getan.
Beispiel 3: Lindenmeyersysteme
Unser nächster Schritt ist der im Jahre 1968 von Aristid Lindenmeyer entwickelte mathematische Formalismus zur Beschreibung von Pflanzenwachstum, die Menge der sog. Lindenmeyersysteme. Jedes dieser Systeme besteht aus einem Axiom, was den Startwert darstellt, und einigen Produktionsregeln, welche, ähnlich wie in einem Textersetzungssystem, jedoch parallel, Fragmente des Lindenmeyertextes umwandeln. In unserem Beispiel Axiom: B
- Regel 1:
B → F[-B] + B - Regel 2:
F → FF
entsteht im ersten Schritt aus dem Axiom B der Text F[-B] + B, unter Anwendung von Regel 1. Hierbei stehen die Buchstaben für Variablen, welche von den Produktionsregeln übersetzt werden können, und die Zeichenmenge {+,-,[,]} beschreibt hierbei die Ausrichtung der Äste (- = Links, + = Rechts). Mit dieser Übersetzung einzelner Variablen durch Ersetzungsregeln wird dann fortgefahren, eine immer kompliziertere Pflanze entsteht.
Ein wesentlicher Unterschied zu den Zellulären Automaten ist, dass dieser Text natürlich interpretiert werden muss - niemand kann sich mehr etwas unter einer Kette von ein paar tausend Zeichen dieser Form vorstellen, und Lindenmeyersysteme besitzen (wie Pflanzen eben) oft ein beachtliches Wachstum . Findet man aber eine gute Interpretationsmethode, (wie z.B. das Generieren von Bildern wie den nebenstehenden aus solchen Zeichenketten) so kann man beeindruckende Ergebnisse erzielen, die einem helfen, das Pflanzenwachstum zu verstehen. Und schon wieder sind wir in unseren Beispielen einen Schritt „lebendiger“ geworden.
Beispiel 4: Verteilte Intelligenz der Didabots
Das Höchstmaß an „Lebendigkeit“ in dieser Einleitung erreichen wir mit dem Beispiel der verteilten Intelligenz anhand der Didabots. Die Didabots sind kleine Roboter, deren Programmierung ziemlich genau folgendermaßen Aussieht:
- Fahre in deinem Spielfeld herum.
- Wenn du ein Hindernis siehst (jeder Roboter hat rechts und links vorne zwei schräg vom Roboter weg ausgerichtete Infrarotsensoren mit einigen Zentimetern Reichweite) weiche etwas nach links aus, falls es sich rechts befindet,
- und umgekehrt.
Nun setzt man eine Anzahl dieser Roboter in ein nach außen abgegrenztes Spielfeld, in das man zuvor zufällig verteilt einige verschiebbare, leichte Kunststoffblöcke hineingelegt hat. Über die Zeit hinweg bilden sich Gruppen von diesen Blöcken, es liegen also jeweils einige Blöcke auf Haufen, während es auch große Freiräume gibt, in denen keine Blöcke existieren. Naheliegender Gedanke des Betrachters: „Die Roboter räumen auf!“ oder „Die versuchen Haufen zu bilden!“. An sich nicht falsch, doch betrachtet man die Programmierung der Roboter, so findet man nicht viel von Aufräumen oder Haufenbildung.
Es kommt also bei unserer Beobachtung sehr auf den Referenzrahmen an, und die oben genannten Statements kamen aus unserem, dem menschlichen Referenzrahmen, in dem wir in diesem Fall noch dazu gottesgleichen Überblick über die Welt des Roboters haben. Betrachten wir das ganze aus der Sicht der Roboter: Blöcke sind für sie Hindernisse, sie weichen ihnen also aus. Wann tun sie das nicht: Wenn sie exakt auf einen Block zufahren, denn dann schauen beide Sensoren rechts und links am Block vorbei. Der Roboter schiebt den Block also vor sich her. ACHTUNG: Er schiebt ihn nicht, weil er dafür programmiert wurde, sondern einfach, weil er ihn nicht „sieht“. Wie lange schiebt er den Block? Entweder, bis sich der Block selbst relativ zum Roboter verschiebt und in Sensorenreichweite rutscht, oder bis der Roboter auf ein anderes Hindernis, z.B. einen anderen Block stößt. In diesem Fall weicht er aus, und beide Blöcke bleiben beieinander, was die Wahrscheinlichkeit für die Ankunft eines weiteren Blocks noch erhöht.
Die Roboter verändern ihre Umwelt, die Umwelt selbst beeinflusst das Verhalten der Roboter.
Wir haben also emergentes Verhalten in Form von einer Selbstorganisation hervorgerufen - ich wiederhole noch einmal, dass niemand dem Roboter einen Befehl zur Blockgruppenbildung mit auf den Weg gegeben hat. Der Fachbegriff hierfür ist Selbstorganisation ohne strukturelle Veränderungen und findet in der Physik Bedeutung: Wenn man Wasser kocht, organisiert sich dieses aufgrund einströmender Energie neu. Stellt man den Topf von der Herdplatte, ist es wieder in seinem alten Organisationszustand. Dies kann man beliebig oft wiederholen, das Wasser selbst verändert sich also nicht. Selbstorganisationen mit strukturellen Veränderungen findet man hingegen in der Biologie, zum Beispiel in unserem Gehirn.
Anwendungsgebiete
Wo wird Artificial Life eingesetzt? Spätestens an Beispiel 4 wird deutlich, daß die Anwendungsgebiete im Überfluß vorhanden sein müssen!
An der Bundesstadt Bonn ist sehr schön zu sehen, dass Verkehrssysteme geplant und die Entwürfe analysiert werden sollten. Nun sind Verkehrsströme auf komplexen Autobahnkonstellationen (wie in Bonn der Mischung aus Endenicher Ei, Verteiler und Kreuz Bonn-Nord) mathematisch wieder äußerst schwer zu erfassen. Noch schwieriger ist das mathematische Erfassen von störenden Ereignissen (z.B. einem Unfall zwischen Endenicher Ei und Kreuz Bonn-Nord). Was man aber machen kann, ist sich einen einfachen Autofahrer programmieren. Autofahrer sind in Ihrem Verhalten nicht zu schwer vorhersehbar (erst vor kurzem hat man herausgefunden, dass beim Fahren bekannter Strecken ein Großteil des Gehirns abgeschaltet wird).
Nehmen Sie sich eine objektorienierte Programmiersprache und programmieren Sie also einen Verkehrsteilnehmer. Bringen Sie ihm bei, nicht aus der Kurve zu fliegen, zu bremsen, wenn der Abstand zum Vordermann zu gering wird, zu beschleunigen, wenn die Bahn frei und gerade ist. Modellieren Sie als Versuchsumgebung ein Autobahnkreuz, und setzen Sie mal mehr und mal weniger Verkehrsteilnehmer hinein. Beobachten Sie, wie sich kleine Staus bilden.
Wenn wir nun unser geplantes Autobahnkreuz im Computer modellieren und hunderte unserer Autofahrer darüber schicken, so werden wir sehr schnell feststellen, wo die Unfallschwerpunkte liegen.
Das war eine starke Schematisierung der Stau- und Unfallvorhersagetechniken, die bereits heute im Einsatz sind. Der folgerichtig nächste Schritt wäre dann, ein Optimerungsverfahren einzusetzen, welches das Autobahnkreuz automatisch so modelliert, dass solch ungewünschte Phänomene nicht vorkommen. Prinzipien von natürlich inspirierten Optimierungsverfahren werden auf der zugehörigen Seite besprochen.

