1 / 47

Digitales Leben

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“

pascha
Télécharger la présentation

Digitales Leben

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Digitales Leben Tierra, Avida & Physis Autor: Donald Barkowski

  2. Übersicht • Motivation • Tierra • Genetische Programmierung • Avida • Physis

  3. Motivation • Definition von Artificial Life:„Das Studieren von Leben mit Hilfe von menschengeschaffenen Analogien zu lebenden Systemen“ • Begriffsprägung:Konferenz „Artificial Life I“ (1987)

  4. Motivation • zwei Ausprägungen von Artificial Life • strong alife: Leben ist unabhängig vom Medium • weak alife: Leben existiert nur auf Kohlenstoffbasis

  5. 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

  6. Motivation • spezielle Programmiersprache: Redcode • wenige verschiedene Befehle • kurze Befehle • alle Speicherzugriffe modulo Speichergröße • keine externen Register

  7. 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

  8. 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)

  9. Übersicht • Motivation • Tierra • Genetische Programmierung • Avida • Physis

  10. 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.”

  11. Tierra • neuer Befehlssatz • Mutationen und Rekombination • Fitness = Fortpflanzungs- und Überlebensfähigkeit • Fast alle Versuche, den evolutionären Aspekt von Tierra zu verbessern, sind gescheitert

  12. 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

  13. 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

  14. Wirt-Parasit-Experiment • viele Wirte (rot) • kurz nach der Injektion: einige Parasiten (gelb) vorhanden

  15. Wirt-Parasit-Experiment • Parasiten haben sich stark vermehrt • Wirte in Bedrängnis • erstes Auftreten von resistenten Wirten (blau)

  16. Wirt-Parasit-Experiment • Parasiten werden räumlich verdrängt • nicht-resistente Wirte schwinden weiter • resistente Wirte vermehren sich und verdrängen Parasiten

  17. Wirt-Parasit-Experiment • Parasiten werden selten (sterben bald aus) • nicht-resistente Wirte schwinden weiter • resistente Wirte dominante Lebensform

  18. Tierra • dank Tierra erstmalig beobachtet: • zielgerichtete und erfolgreiche Evolution von Programmen • Bedeutung von Koevolution im (virtuellen) Evolutionsprozess

  19. Tierra • ABER: • keine Einflussnahme auf Evolutionsziel • alle Prozesse im gleichen Speicher⇒ Ergebnisse nicht reproduzierbar

  20. Übersicht • Motivation • Tierra • Genetische Programmierung • Avida • Physis

  21. 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

  22. Genetische Programmierung • Programmiersprache: z.B. LISP • Lesbarkeit • einfache Struktur • Darstellung des Codes: Baum • innere Knoten: Funktionen • Blätter: Terminale • Maximalhöhe

  23. Genetische Programmierung • Mutation: spontane Veränderung der Knoten / Blätter • Rekombination: Austausch von Teilbäumen (Crossover)

  24. 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

  25. Genetische Programmierung • Abbruchbedingung: • bestimmte Anzahl von Generationen • exakte Lösung • hinreichend genaue Lösung

  26. 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)

  27. Genetische Programmierung • Algorithmus:

  28. 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

  29. Genetische Programmierung • Problembezogen / Ergebnisorientiert • Replikation nicht Bestandteil des Algorithmus • kein Artificial Life • wichtig: Reproduktion/Aufbereitung des Ergebnisses muss möglich sein!!

  30. Übersicht • Motivation • Tierra • Genetische Programmierung • Avida • Physis

  31. Avida Artificial Life + genetische Programmierung

  32. 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)

  33. Avida • Die virtuelle CPU: Genom Register Instruction Pointer Puffer Köpfe Stack

  34. 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

  35. 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

  36. Avida Befehlssatz (Ausschnitt)

  37. 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.

  38. Avida • Nachteil: Der Benutzer bestimmt den Befehlssatz und legt damit auch die (virtuelle) Hardware fest

  39. Übersicht • Motivation • Tierra • Genetische Programmierung • Avida • Physis

  40. Physis • Information über den ausführenden Prozessor ist Teil des Genoms • entwickelt ab 2000 • Ähnlich zu Tierra und Avida, aber universeller einsetzbar

  41. 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

  42. Physis • Standard-Prozessor (mit festem Befehlssatz)

  43. Physis Nach der Evolution: 1. Nachbau des Prozessors gemäß der Beschreibung

  44. Physis Nach der Evolution: 2. Programmcode auf dem neuen Prozessor ausführen

  45. Physis • Tatsächlich: Laufzeitvorteile

  46. Noch Fragen??? ? ? ?

  47. 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)

More Related