470 likes | 588 Views
Digitales Leben. Tierra, Avida & Physis. Autor: Donald Barkowski. Übersicht. Motivation Tierra Genetische Programmierung Avida Physis. Motivation. Definition von Artificial Life: „Das Studieren von Leben mit Hilfe von menschengeschaffenen Analogien zu lebenden Systemen“
E N D
Digitales Leben Tierra, Avida & Physis Autor: Donald Barkowski
Übersicht • Motivation • Tierra • Genetische Programmierung • Avida • Physis
Motivation • Definition von Artificial Life:„Das Studieren von Leben mit Hilfe von menschengeschaffenen Analogien zu lebenden Systemen“ • Begriffsprägung:Konferenz „Artificial Life I“ (1987)
Motivation • zwei Ausprägungen von Artificial Life • strong alife: Leben ist unabhängig vom Medium • weak alife: Leben existiert nur auf Kohlenstoffbasis
Motivation • Das Spiel Core War (Scientific American, Mai 1984) • Assemblerprogramme kämpfen um Hauptspeicher • Kampfstrategie: Stein-Schere-Papier • Sieg: Gegner wird nicht mehr ausgeführt • keine Mutationen
Motivation • spezielle Programmiersprache: Redcode • wenige verschiedene Befehle • kurze Befehle • alle Speicherzugriffe modulo Speichergröße • keine externen Register
Motivation • Weiterentwicklung: Core World • Mutationen: zufällige Codeänderungen • keine Evolution von stabilen oder komplexen Programmen wegen schlechter Unterstützung durch Programmiersprache; Mutationen meist nicht lebensfähig
Motivation • Erfahrungen durch Core world • Programmiersprache: • nur relative Sprungadressen • (Touring-)Vollständigkeit • Abgeschlossenheit • Interpreter besser als direkte Ausführung, wenn auch langsamer • virtuelle Welt: • keine Sprünge außerhalb reserviertem Speicherbereich (Modulo-Arithmetik)
Übersicht • Motivation • Tierra • Genetische Programmierung • Avida • Physis
Tierra • ab Ende 1989 von Tom Ray entwickelt • Motivation: Beobachtung von Leben abseits von Kohlenstoffverbindungen • “Our current knowledge of life and evolution is based on a sample size of one: life on Earth.”
Tierra • neuer Befehlssatz • Mutationen und Rekombination • Fitness = Fortpflanzungs- und Überlebensfähigkeit • Fast alle Versuche, den evolutionären Aspekt von Tierra zu verbessern, sind gescheitert
Tierra • Eigene Welt: virtual machine • führt Maschinenbefehle aus • Code flexibel genug für Evolution: • unterstützt Mutation (bitweise Änderung) und Rekombination (Austausch von Programmsegmenten) • mutierter Code oft genug ausführbar • Topologie: Entfernung = Zugriffszeit
Tierra • Eigenes „darwinistisches“ Betriebssystem • verwaltet RAM (Material, Soup) und CPU (Energie) • Reaper • „tötet“ bei Bedarf älteste Programme • schafft freie Speicherbereiche für Nachwuchs • Slicer • teilt Prozessen Zeitscheiben zu (nicht-deterministisch) • verwaltet (virtuellen) Prozessor
Wirt-Parasit-Experiment • viele Wirte (rot) • kurz nach der Injektion: einige Parasiten (gelb) vorhanden
Wirt-Parasit-Experiment • Parasiten haben sich stark vermehrt • Wirte in Bedrängnis • erstes Auftreten von resistenten Wirten (blau)
Wirt-Parasit-Experiment • Parasiten werden räumlich verdrängt • nicht-resistente Wirte schwinden weiter • resistente Wirte vermehren sich und verdrängen Parasiten
Wirt-Parasit-Experiment • Parasiten werden selten (sterben bald aus) • nicht-resistente Wirte schwinden weiter • resistente Wirte dominante Lebensform
Tierra • dank Tierra erstmalig beobachtet: • zielgerichtete und erfolgreiche Evolution von Programmen • Bedeutung von Koevolution im (virtuellen) Evolutionsprozess
Tierra • ABER: • keine Einflussnahme auf Evolutionsziel • alle Prozesse im gleichen Speicher⇒ Ergebnisse nicht reproduzierbar
Übersicht • Motivation • Tierra • Genetische Programmierung • Avida • Physis
Genetische Programmierung • Aufgabe:Generierung eines Computerprogramms anhand von Trainingsdaten • Weiterentwicklung von Evolutionären Algorithmen: nicht die Lösung wird entwickelt, sondern der Lösungsweg • Spezialfall von Genetischen Algorithmen: Der Algorithmus entsteht direkt in einer (Pseudo-)Programmiersprache
Genetische Programmierung • Programmiersprache: z.B. LISP • Lesbarkeit • einfache Struktur • Darstellung des Codes: Baum • innere Knoten: Funktionen • Blätter: Terminale • Maximalhöhe
Genetische Programmierung • Mutation: spontane Veränderung der Knoten / Blätter • Rekombination: Austausch von Teilbäumen (Crossover)
Genetische Programmierung • Ansprüche an die Fitnessfunktion • möglichst exakte Erfassung der Qualität • auch differenzierte Bewertung von Teillösungen • evtl. mehrere Kriterien • Berücksichtigung von Laufzeit/Komplexität • Fitness im „darwinistischen“ Sinne
Genetische Programmierung • Abbruchbedingung: • bestimmte Anzahl von Generationen • exakte Lösung • hinreichend genaue Lösung
Genetische Programmierung • mögliche Selektionskriterien: • immer fitteste Individuen nehmen • stochastischer Prozess: auch schlechter angepasste Individuen können überleben • meistens: zufällige Auswahl einer Gruppe, dann Selektion mit Fitnessfunktion (Ziehen mit Zurücklegen)
Genetische Programmierung • Algorithmus:
Genetische Programmierung • Effizienzverbesserungen: • bessere Sprachen (auf Kosten der Lesbarkeit) • ADFs (automatisch definierte Funktionen) • Analogie zum klassischen Programmieren: Unterprogrammaufrufe • Festlegungen bezüglich Struktur • Aufwand schwer abschätzbar
Genetische Programmierung • Problembezogen / Ergebnisorientiert • Replikation nicht Bestandteil des Algorithmus • kein Artificial Life • wichtig: Reproduktion/Aufbereitung des Ergebnisses muss möglich sein!!
Übersicht • Motivation • Tierra • Genetische Programmierung • Avida • Physis
Avida Artificial Life + genetische Programmierung
Avida • Anlehnung an Tierra, aber: • getrennter Speicher für Programme • eigene virtuelle CPU für jedes Programm • modifizierbare Fitnessfunktion (Belohnung für erwünschte Eigenschaft)
Avida • Die virtuelle CPU: Genom Register Instruction Pointer Puffer Köpfe Stack
Avida • Befehlssatz: • individuelle Auswahl möglich • evtl. selbstdeklarierte Funktionen • Anforderungen: • Vollständigkeit (auch: alles lässt sich ohne großen Aufwand berechnen) • Robustheit: Anweisungen führen in jedem Kontext (sinnvolle) Aktionen aus • möglichst geringe Redundanz
Avida • wichtiges Konzept: „nop“-Anweisungen • keine Aktion zur Ausführungszeit • verändern u.U. den vorangehenden Befehl • 3 „Befehlsklassen“ • bilden Labels (Sprungziele) im Code • komplementäre nops: • nop-A & nop-B • nop-B & nop-C • nop-C & nop-B
Avida Befehlssatz (Ausschnitt)
Avida ein einfachstes Genom (nur selbstreproduzierend) # --- Setup -- h-alloc # Allocate extra space at the end of the genome to copy the offspring into. h-search # Locate an A:B template (at the end of the organism) and place the Flow-Head after it nop-C # nop-A # mov-head # Place the Write-Head at the Flow-Head (which is at beginning of offspring-to be). nop-C # [ Extra nop-C commands can be placed here w/o harming the organism! ] # --- Copy Loop -- h-search # No template, so place the Flow-Head on the next line (to mark the beginning of the copyloop) h-copy # Copy a single instruction from the read head to the write head (and advance both heads!) if-label # Execute the line following this template only if we have just copied an A:B template. nop-C # nop-A # h-divide # ...Divide off offspring! (note if-statement above!) mov-head # Otherwise, move the IP back to the Flow-Head at the beginning of the copy loop. nop-A # End label. nop-B # End label.
Avida • Nachteil: Der Benutzer bestimmt den Befehlssatz und legt damit auch die (virtuelle) Hardware fest
Übersicht • Motivation • Tierra • Genetische Programmierung • Avida • Physis
Physis • Information über den ausführenden Prozessor ist Teil des Genoms • entwickelt ab 2000 • Ähnlich zu Tierra und Avida, aber universeller einsetzbar
Physis • Universelle Prozessorarchitektur, auf der viele Prozessortypen implementiert werden können • Interaktion zwischen Prozessen möglich (z.B. Parasitismus) • detaillierte Messungen und Beobachtungen möglich
Physis • Standard-Prozessor (mit festem Befehlssatz)
Physis Nach der Evolution: 1. Nachbau des Prozessors gemäß der Beschreibung
Physis Nach der Evolution: 2. Programmcode auf dem neuen Prozessor ausführen
Physis • Tatsächlich: Laufzeitvorteile
Noch Fragen??? ? ? ?
Literatur • Volker Nissen: Einführung in Evolutionäre Algorithmen (vieweg 1997) • Tierra: www.his.atr.jp/~ray/tierra/ • Physis: physis.sourceforge.net/physis.sourceforge.net/old/index.html • Avidad: http://dllab.caltech.edu/avida/ • www.wikipedia.org • Richard E. Lenski, et al: The evolutionary origin of complex features (nature 2002)