Digitales Leben

47
Digitales Leben Tierra, Avida & Physis Autor: Donald Barkowski

description

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“ - PowerPoint PPT Presentation

Transcript of Digitales Leben

Page 1: Digitales Leben

Digitales Leben

Tierra, Avida & Physis

Autor: Donald Barkowski

Page 2: Digitales Leben

ÜbersichtMotivationTierraGenetische ProgrammierungAvidaPhysis

Page 3: Digitales Leben

MotivationDefinition von Artificial Life:

„Das Studieren von Leben mit Hilfe von menschengeschaffenen Analogien zu lebenden Systemen“

Begriffsprägung:Konferenz „Artificial Life I“ (1987)

Page 4: Digitales Leben

Motivationzwei Ausprägungen von Artificial

Lifestrong alife: Leben ist unabhängig

vom Mediumweak alife: Leben existiert nur auf

Kohlenstoffbasis

Page 5: Digitales Leben

MotivationDas Spiel Core War (Scientific

American, Mai 1984)Assemblerprogramme kämpfen um

HauptspeicherKampfstrategie: Stein-Schere-PapierSieg: Gegner wird nicht mehr

ausgeführtkeine Mutationen

Page 6: Digitales Leben

Motivationspezielle Programmiersprache:

Redcodewenige verschiedene Befehlekurze Befehlealle Speicherzugriffe modulo

Speichergrößekeine externen Register

Page 7: Digitales Leben

MotivationWeiterentwicklung: 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

Page 8: Digitales Leben

MotivationErfahrungen durch Core world

Programmiersprache:nur relative Sprungadressen(Touring-)VollständigkeitAbgeschlossenheitInterpreter besser als direkte Ausführung, wenn

auch langsamervirtuelle Welt:

keine Sprünge außerhalb reserviertem Speicherbereich (Modulo-Arithmetik)

Page 9: Digitales Leben

ÜbersichtMotivationTierraGenetische ProgrammierungAvidaPhysis

Page 10: Digitales Leben

Tierraab Ende 1989 von Tom

Ray entwickeltMotivation: Beobachtung

von Leben abseits von Kohlenstoffverbindungen

“Our current knowledge of life and evolution is based on a sample size of one: life on Earth.”

Page 11: Digitales Leben

Tierraneuer BefehlssatzMutationen und RekombinationFitness = Fortpflanzungs- und

Überlebensfähigkeit

Fast alle Versuche, den evolutionären Aspekt von Tierra zu verbessern, sind gescheitert

Page 12: Digitales Leben

TierraEigene Welt: virtual machine

führt Maschinenbefehle ausCode flexibel genug für Evolution:

unterstützt Mutation (bitweise Änderung) und Rekombination (Austausch von Programmsegmenten)

mutierter Code oft genug ausführbarTopologie: Entfernung = Zugriffszeit

Page 13: Digitales Leben

TierraEigenes „darwinistisches“ Betriebssystem

verwaltet RAM (Material, Soup) und CPU (Energie)

Reaper„tötet“ bei Bedarf älteste Programmeschafft freie Speicherbereiche für Nachwuchs

Slicerteilt Prozessen Zeitscheiben zu (nicht-

deterministisch)verwaltet (virtuellen) Prozessor

Page 14: Digitales Leben

Wirt-Parasit-Experiment

viele Wirte (rot) kurz nach der Injektion: einige Parasiten (gelb) vorhanden

Page 15: Digitales Leben

Wirt-Parasit-Experiment

Parasiten haben sich stark vermehrt Wirte in Bedrängnis erstes Auftreten von resistenten Wirten (blau)

Page 16: Digitales Leben

Wirt-Parasit-Experiment

Parasiten werden räumlich verdrängt nicht-resistente Wirte schwinden weiter resistente Wirte vermehren sich und verdrängen Parasiten

Page 17: Digitales Leben

Wirt-Parasit-Experiment

Parasiten werden selten (sterben bald aus) nicht-resistente Wirte schwinden weiter resistente Wirte dominante Lebensform

Page 18: Digitales Leben

Tierradank Tierra erstmalig beobachtet:

zielgerichtete und erfolgreiche Evolution von Programmen

Bedeutung von Koevolution im (virtuellen) Evolutionsprozess

Page 19: Digitales Leben

TierraABER:

⊖keine Einflussnahme auf Evolutionsziel

⊖alle Prozesse im gleichen Speicher⇒ Ergebnisse nicht reproduzierbar

Page 20: Digitales Leben

ÜbersichtMotivationTierraGenetische ProgrammierungAvidaPhysis

Page 21: Digitales Leben

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

Page 22: Digitales Leben

Genetische Programmierung

Programmiersprache: z.B. LISPLesbarkeiteinfache Struktur

Darstellung des Codes: Bauminnere Knoten:

FunktionenBlätter: TerminaleMaximalhöhe

Page 23: Digitales Leben

Genetische Programmierung

Mutation: spontane Veränderung der Knoten / Blätter

Rekombination: Austausch von Teilbäumen (Crossover)

Page 24: Digitales Leben

Genetische Programmierung

Ansprüche an die Fitnessfunktionmöglichst exakte Erfassung der

Qualitätauch differenzierte Bewertung von

Teillösungenevtl. mehrere Kriterien

Berücksichtigung von Laufzeit/KomplexitätFitness im „darwinistischen“ Sinne

Page 25: Digitales Leben

Genetische Programmierung

Abbruchbedingung:bestimmte Anzahl von Generationenexakte Lösunghinreichend genaue Lösung

Page 26: Digitales Leben

Genetische Programmierung

mögliche Selektionskriterien:immer fitteste Individuen nehmenstochastischer Prozess: auch schlechter

angepasste Individuen können überleben

meistens: zufällige Auswahl einer Gruppe, dann Selektion mit Fitnessfunktion (Ziehen mit Zurücklegen)

Page 27: Digitales Leben

Genetische Programmierung

Algorithmus:

Page 28: Digitales Leben

Genetische Programmierung

Effizienzverbesserungen:bessere Sprachen (auf Kosten der

Lesbarkeit)ADFs (automatisch definierte

Funktionen)Analogie zum klassischen

Programmieren: UnterprogrammaufrufeFestlegungen bezüglich StrukturAufwand schwer abschätzbar

Page 29: Digitales Leben

Genetische Programmierung

Problembezogen / ErgebnisorientiertReplikation nicht Bestandteil des

Algorithmuskein Artificial Lifewichtig: Reproduktion/Aufbereitung

des Ergebnisses muss möglich sein!!

Page 30: Digitales Leben

ÜbersichtMotivationTierraGenetische ProgrammierungAvidaPhysis

Page 31: Digitales Leben

Avida

Artificial Life+

genetischeProgrammierung

Page 32: Digitales Leben

AvidaAnlehnung an Tierra, aber:

getrennter Speicher für Programmeeigene virtuelle CPU für jedes

Programmmodifizierbare Fitnessfunktion

(Belohnung für erwünschte Eigenschaft)

Page 33: Digitales Leben

AvidaDie virtuelle CPU:

Köpfe

Genom Register

Stack

Instruction Pointer Puffer

Page 34: Digitales Leben

AvidaBefehlssatz:

individuelle Auswahl möglichevtl. selbstdeklarierte Funktionen

Anforderungen:Vollständigkeit (auch: alles lässt sich ohne

großen Aufwand berechnen)Robustheit: Anweisungen führen in jedem

Kontext (sinnvolle) Aktionen ausmöglichst geringe Redundanz

Page 35: Digitales Leben

Avidawichtiges Konzept: „nop“-Anweisungen

keine Aktion zur Ausführungszeitverändern u.U. den vorangehenden Befehl

3 „Befehlsklassen“bilden Labels (Sprungziele) im Codekomplementäre nops:

nop-A & nop-Bnop-B & nop-Cnop-C & nop-B

Page 36: Digitales Leben

AvidaBefehlssatz (Ausschnitt)

Befehl Auswirkungh-alloc Reserviere Speicher für einen Nachkommenh-search Finde ein komplementäres Muster und platziere

den Flow-Head dahintermov-head Bewege den ?IP? an die gleiche Stelle wie den

Flow-Headh-copy Kopiere einen Befehl vom Lese- zum Schreibkopf

und schiebe beide eine Position weiterif-label Führe die nächste Instruktion nur dann aus, wenn

das Komplement zum gegebenen Muster als letztes kopiert worden ist

h-divide Trenne einen Nachkommen zwischen Lese- und Schreibkopf heraus

Page 37: Digitales Leben

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

Page 38: Digitales Leben

AvidaNachteil: Der Benutzer bestimmt

den Befehlssatz und legt damit auch die (virtuelle) Hardware fest

Page 39: Digitales Leben

ÜbersichtMotivationTierraGenetische ProgrammierungAvidaPhysis

Page 40: Digitales Leben

PhysisInformation über

den ausführenden Prozessor ist Teil des Genoms

entwickelt ab 2000Ähnlich zu Tierra

und Avida, aber universeller einsetzbar

Page 41: Digitales Leben

PhysisUniverselle Prozessorarchitektur,

auf der viele Prozessortypen implementiert werden können

Interaktion zwischen Prozessen möglich (z.B. Parasitismus)

detaillierte Messungen und Beobachtungen möglich

Page 42: Digitales Leben

PhysisStandard-Prozessor (mit festem

Befehlssatz)

Page 43: Digitales Leben

Physis

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

der Beschreibung

Page 44: Digitales Leben

Physis

Nach der Evolution:2. Programmcode auf dem neuen

Prozessor ausführen

Page 45: Digitales Leben

PhysisTatsächlich: Laufzeitvorteile

Page 46: Digitales Leben

Noch Fragen???

? ? ?

Page 47: Digitales Leben

LiteraturVolker 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.htmlAvidad: http://dllab.caltech.edu/avida/www.wikipedia.orgRichard E. Lenski, et al: The evolutionary

origin of complex features (nature 2002)