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

Slides:



Advertisements
Ähnliche Präsentationen
Memetische Algorithmen …der Versuch einer Einordnung
Advertisements

Leistung.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
Befehlssatz und Struktur
Informatik 12 | DAES Compilerbau Wintersemester 2010 / 2011 Dr. Heiko Falk Technische Universität Dortmund Lehrstuhl Informatik 12 Entwurfsautomatisierung.
Technische Universität Dortmund
3. Kapitel: Komplexität und Komplexitätsklassen
2. Kapitel: Komplexität und Komplexitätsklassen
Genetische Algorithmen für die Variogrammanpassung
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Genetische Algorithmen
Genetische Algorithmen
Java: Objektorientierte Programmierung
Java: Grundlagen der Sprache
Effizienz: Indexstrukturen
Formale Sprachen – Mächtigkeit von Maschinenmodellen
Kapitel 3 5 Rechnerorganisation
Garbage Collection Maik Theisen Betreuer: Guido Tack
Heuristiken Automatic Problem Solving Institut für Informatik
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Genetische Algorithmen
Die moderne Evolutionstheorie
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Beispielrelation Buchbestellungen H = Menge der bedeutenden Ziele = {a, d} Schwelle T = 4 Stichprobe S = {a, b, a, a, a, a} mit s = |S| = 6 N = Anzahl.
Intelligentes Crawling im WWW mit Hilfe intuitiver Suchbedingungen
Evolution in verteilten Systemen Der Evolutionäre Trader
Autoren: Ingo Paenke, Bernhard Sendhoff, Jon Rowe,
Plattformunabhängige Programmiersprache
Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts.
Effiziente Algorithmen
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Programmierung paralleler Algorithmen mit MPI
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Aufbau eines von-Neumann- Rechners Marcel Waldvogel.
Entwicklung der Programmiersprachen
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Hartmut Klauck Universität Frankfurt SS
Fundamente der Computational Intelligence
Einführung in die Programmiersprache C 4
Intelligent Design und Darwinismus
Wie sicher ist mein Geld ... ?
Definitionen der SWT (1)
Signal-Prozessoren DSV1, 2009, Hhrt, 1 Mikro-Prozessor Von Neumann-Architektur Daten und Programmcode im gleichen Speicher => Sequenzieller Zugriff auf.
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Mo., – Uhr Ort: Hörsaal 5.01, Institut für Physik, Universitätsplatz 5, A-8010.
Dynamische Datentypen
Niklas: Was möchte ___________ (your) Schwester denn zum Geburtstag?
Mark – Compact GC & Performancemessungen Bernhard Prügl,
Kommandozeile und Batch-Dateien Molekulare Phylogenetik – Praktikum
1 Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Hacks Daniel Schweighart
Ilka Rehr, Geodätisches Institut, Leibniz Universität Hannover
Technik schädlicher Software
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Der formelle Imperativ – the Imperative
Mit IT IS enbex Hand in Hand Zeitgemäße Unternehmen sind auf schnellen und sicheren Datenaustausch angewiesen IT IS AG.
Universität Rostock Fachbereich Elektrotechnik und Informationstechnik Institut für Angewandte Mikroelektronik und Datentechnik Eine Prozessorarchitektur.
ANN - Simulator Rainer Trummer Ferdinand Schober Christian Spielberger.
Einfaches Erstellen von Präsentationen aus Einzelfolien heraus.
Artificial Intelligience
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Wiederholung/Zusammenfassung
Die Hardware eines PC s.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Evolutionärer Entwurf neuronaler Netze
Extended Pascal ( Erweitreung von Pascal) Name: Mehmet CELIK Matr :
Dieser Vortrag wird gesponsort von:
Imperfekt (Simple Past) Irregular or strong verbs
Sentence Structure Questions
Du bist am dicksten und am dümmsten.
Die Medien heute Montag, 19. November 2018 Lernziele
 Präsentation transkript:

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: Anforderungen: 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) Befehl Auswirkung h-alloc Reserviere Speicher für einen Nachkommen h-search Finde ein komplementäres Muster und platziere den Flow-Head dahinter mov-head Bewege den ?IP? an die gleiche Stelle wie den Flow-Head h-copy Kopiere einen Befehl vom Lese- zum Schreibkopf und schiebe beide eine Position weiter if-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

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