15. Juli 2007
Anfang der 90er von John R. Koza entwickelt. Verfahren zur automatisierten Erstellung von Programmen. Von der Evolution inspiriert.
Anforderungen an die Möglichst korrekte Lösung ergeben Variable Datenlänge Verwendete Datenstrukturen allgemein halten Möglichst wenig Rechenleistung und Laufzeit
Die RoboCup-Softbotliga RoboCupSoccerServer stellt Sensorinformationen, Physik und Kommunikation zur Verfügung. Je Team 11 Programme Direkte Kommunikation zwischen den Prozessen ist nicht möglich.
Die verfügbaren Sensorinformationen Alle 300 ms neue Informationen Position des Balls, anderer Spieler der Tore usw Nur Innerhalb des Sichtfeldes Entfernte Objekte unscharf Informationen werden durch Lärm gestört. Wer nicht mitkommt, hat Pech gehabt.
Die verfügbaren Kommandos Rotation Laufe vorwärts mit Geschwindigkeit n, Problem mit der Ausdauer. Schieße den Ball in Richtung n. Rufe eine Nachricht. Wer zu schnell ist, wird ignoriert.
Vereinfachung des Problems Aufarbeitung der Daten Berechnung absoluter Positionsdaten Schätzung der Bewegungen zwischen Sensorzyklen Abschaffung des Rufens
Der Algorithmus Erzeuge Ausgangsstrukturen Berechne Fitness jedes Individuums Terminierung? Ja Ergebnis Nein Genetische Operationen
Theorie: Funktionen und Aufbau des Genoms (1/6) Erzeuge Ausgangsstrukturen Berechne Fitness jedes Individuums Terminierung? Ja Ergebnis Nein Genetische Operationen
Theorie: Funktionen und Aufbau des Genoms (2/6) Funktionen F = {f 1, f 2,..., f n } Terminale T = {t 1, t 2,..., t m } Programm: alle Permutationen aus F und T möglich
Theorie: Funktionen und Aufbau des Genoms (3/6) Funktionen: arithmetische Funktionen mathematische Funktionen boolesche Funktionen logische Operatoren iterative Operatoren
Theorie: Funktionen und Aufbau des Genoms (4/6) Terminale: variable atomare Argumente konstante atomare Argumente Funktionen ohne Parameter
Exkurs: LISP (1/2) S-Ausdruck polnische Notation
Exkurs: LISP (2/2) (OR (AND (NOT D0) (NOT D1)) (AND D0 D1)) OR AND AND NOT NOT D0 D1 D0 D1
Theorie: Funktionen und Aufbau des Genoms (5/6) Ausgangsstruktur Wurzel Funktion aus F Jeder Parameter aus F T
Theorie: Funktionen und Aufbau des Genoms (6/6) Parameter Maximaltiefe für zufällig generierte S-Ausdrücke
Beispiel: Funktionen und Aufbau des Genoms (1/2) Zur Vereinfachung: Spezieller Satz von Funktionen Aufgabe zu komplex für low-level-funktionen z.b (home), (ball), (block-goal), (kick-goal!)
Beispiel: Funktionen und Aufbau des Genoms (1/2) Zur Vereinfachung: Spezieller Satz von Funktionen Aufgabe zu komplex für low-level-funktionen z.b (home), (ball), (block-goal), (kick-goal!)
Beispiel: Funktionen und Aufbau des Genoms (2/2) Bewegungs- und Schussbaum Homogener vs. pseudoheterogener vs. heterogener Ansatz Homogener Ansatz wenig rechenaufwändig wenig Spezialisierung schnelle Ergebnisse Heterogener Ansatz sehr rechenaufwändig viel Spezialisierung bessere Ergebnisse
Theorie: Fitnessfunktion (1/5) Erzeuge Ausgangsstrukturen Berechne Fitness jedes Individuums Terminierung? Ja Ergebnis Nein Genetische Operationen
Theorie: Fitnessfunktion (2/5) Eignung des Programms für Problemlösung legt fest, welches Programm sich fortpflanzen darf environmental cases
Theorie: Fitnessfunktion (3/5) Rohfitness N e r(i, t) = S(i, j) C(j) j=1
Theorie: Fitnessfunktion (4/5) angepasste Fitness a(i, t) = 1 (1 + r(i, t))
Theorie: Fitnessfunktion (5/5) normalisierte Fitness n(i, t) = a(i, t) M k=1 a(k, t)
Beispiel: Fitnessfunktion (1/3) Problematisch: Was ist guter Fußball? 1.Ansatz: Teams gegen einen handgeschriebenen Gegner antreten lassen. Es droht Spezialisierung auf diesen einen Gegner. 2.Ansatz: Teams in einem Turnier gegeneinander antreten lassen. Optimalerweise sollte es ein Jeder-gegen-jeden-Turnier sein. Aus zeitlichen Gründung nur ein Spiel je Mannschaft.
Beispiel: Fitnessfunktion (2/3) Ursprünglich auf vielen Faktoren basierend (Tore, Ballbesitz, Pässe). Förderte aber suboptimale Strategien
Beispiel: Fitnessfunktion (3/3) Stattdessen Fitnessfunktion nur auf Tordifferenz basiert. Man könnte meinen, frühe Partien gingen öfters 0:0 aus. Das Gegenteil war der Fall.
Theorie: Genetische Operationen (1/5) Erzeuge Ausgangsstrukturen Berechne Fitness jedes Individuums Terminierung? Ja Ergebnis Nein Genetische Operationen
Theorie: Genetische Operationen (2/5) Reproduktion asexuelle Operation wird unverändert übernommen
Theorie: Genetische Operationen (3/5) Kreuzung zufällige Auswahl von Knoten als Wurzel Teilbäume werden vertauscht
Beispiel: Kreuzung (1/4) OR NOT AND D1 D0 D1 OR OR AND D1 NOT NOT NOT D0 D0 D1
Beispiel: Kreuzung (2/4) OR NOT AND D1 D0 D1 OR OR AND D1 NOT NOT NOT D0 D0 D1
Beispiel: Kreuzung (3/4) OR NOT AND D1 D0 D1 OR OR AND D1 NOT NOT NOT D0 D0 D1
Beispiel: Kreuzung (4/4) OR AND AND NOT NOT D0 D1 D0 D1 OR OR NOT D1 NOT D1 D0
Theorie: Genetische Operationen (4/5) Mutation Permutation
Theorie: Genetische Operationen (5/5) Parameter Anzahl Individuen, die sich kreuzen dürfen Anzahl Individuen für Reproduktion Mindestanteil an Kreuzungspunkten muss Funktion sein Maximaltiefe nach Kreuzung
Beispiel: Genetische Operationen (1/2) Kreuzung und Mutation wird jeweils nur auf einen Baum angewandt. Kreuzungen zwischen Bewegungs- und Schussbaum verboten. Bei pseudoheterogenen Teams nur Kreuzungen zwischen denselben Squads. Wurzelkreuzungsoperator um Spieler auszutauschen.
Beispiel: Genetische Operationen (2/2) 30% Mutation 70% Kreuzung, davon 30% mit inneren Knoten, 10% mit Blättern und 60% mit der Wurzel als Kreuzungspunkt. Am Ende 10% Reproduktion, 60% Kreuzung und 30% Mutation.
Theorie: Terminierung (1/3) Erzeuge Ausgangsstrukturen Berechne Fitness jedes Individuums Terminierung? Ja Ergebnis Nein Genetische Operationen
Theorie: Terminierung (2/3) bestimmte Population erreicht oder gewisse Performance erreicht
Theorie: Terminierung (3/3) Ergebnis bestes Individuum oder ganze Population der letzten Generation
Beispiel: Terminierung Einfügen guter Teams aus früheren Generationen in die Population. Turnier mit den besten 20 Teams. Das beste Team war aus dem homogenen Ansatz hervorgegangen. Es gewann seine ersten beiden Partien gegen von Menschen geschriebene Programme. RoboCup 97 Scientific Award.
Fazit auch in komplexen Bereichen anwendbar. Mit vertretbarem Einsatz realisierbar. Konkurrenzfähig zu menschlicher Intelligenz.