Adversariale Suche Spielprogrammierung.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

8. Termin Teil B: Wiederholung Begriffe Baum
Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Definition [1]: Sei S eine endliche Menge und sei p eine Abbildung von S in die positiven reellen Zahlen Für einen Teilmenge ES von S sei p definiert.
Eine dynamische Menge, die diese Operationen unterstützt,
GIN2 SS05 Prof. Dr. W. Conen, Nullsummen-Spiele - Min-Max-Suche - Alpha-Beta-Pruning (späterer Termin)
Suche in Texten (Stringsuche )
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Genetische Algorithmen für die Variogrammanpassung
Mathematik des Bridge Tanja Schmedes.
Heuristiken und Kontexteinflüsse
Zeitliches probabilistisches Schließen
Problemlösen durch Suchen
Informierte Suche.
Einführung.
Spielbäume Richard Göbel.
Sortierverfahren Richard Göbel.
Gliederung Vertrauensintervalle Arten von Hypothesen
Lernende Agenten Seminar Softwareagenten Wintersemester 2001/2002 Norman Neuhaus.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Genetische Algorithmen
Computerkurs: Quantitative Auswertung biochemischer Experimente Guten Morgen.
Algorithmen und Komplexität
Teil 5: Kollisionsvermeidung & Wegplanung
Teil I: Uninformierte Suche
Analyse eines Handballspielzuges
Handlungsplanung und Allgemeines Spiel „Game Description Language (GDL)“ Peter Kissmann.
Handlungsplanung und Allgemeines Spiel „Ausblick: GDL-II“
Maschinelles Lernen und automatische Textklassifikation
Kurt Mehlhorn Konstantinos Panagiotou
Ideen der Informatik Suchen und Sortieren [Ordnung muss sein…]
Effiziente Algorithmen
Computational Thinking Wie spielen Computer? [Sind sie unbesiegbar?]
Computational Thinking Suchen und Sortieren [Ordnung muss sein…]
Sortieralgorithmen Sortieren von Arrays.
Game Programming mit Lua
Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft zu kennen?] Kurt Mehlhorn Konstantinos Panagiotou.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Wie sicher ist mein Geld ... ?
Spieltheorie Mária Némethy.
Geschichte eines Japanischen Gartens 日本庭園.
Das Traveling Salesman Problem (TSP)
Statistik – Regression - Korrelation
Analyse der Laufzeit von Algorithmen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung
Der A*-Algorithmus.
Kapitel V Adversiale Suche.
Binärbäume.
Geoinformationssysteme
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 1 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Lineare Optimierung Nakkiye Günay, Jennifer Kalywas & Corina Unger Jetzt erkläre ich euch die einzelnen Schritte und gebe Tipps!
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Tanya Braun (Übungen) sowie viele Tutoren.
Algorithmen und Datenstrukturen
 Präsentation transkript:

Adversariale Suche Spielprogrammierung

Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig beobachtbar  Adversariales Suchproblem Theoretisch jede mögliche Reaktion des Gegners berechenbar  Offline-Problem! Aber: Immenser Verzweigungsfaktor Bsp. Schach: b = 35 100 Halbzüge 35100 = 10154 Knoten Praktisch: Online-Problem, da Suchbaum zu groß, um alle gegnerischen Aktionen zu berücksichtigen. Weitere Erschwerung: Zeitlimit !  Spiele interessant, weil suboptimale Echtzeit-Entscheidungen nötig !

Historisches Babbage, 1846: Erste Überlegungen zu Dame oder Schach spielender Maschine. Entwurf eine Tic-Tac-Toe Maschine. Torres y Quevedo, 1890: Maschine für Endspiel König + Turm vs. König Zermelo, 1912: Minimax Von Neumann, Morgenstern, 1944: Beginn Spieltheorie Zuse 1945: Erster programmierbarer Computer Wiener 1948: Entwurf Schachprogramm Shannon 1950: Verbesserungen, z.B. Ruhesuche Turing 1951: Erstes Schachprogramm Samuel 1952: Dameprogramm lernt Bewertungsfunktion durch Spiel gegen sich selbst, Niveau menschlicher Spieler, 1kHz Prozessor! McCarthy 1956: Pruning 1970: Erste Computerschach-Meisterschaft 1997: Deep Blue besiegt Kasparov Letzten Samstag: Kramnik Remis gegen Deep Fritz Gestern: Kramnik verliert gegen Deep Fritz

Spieltypen Vollständig beobachtbar : Teilweise beobachtbar: Deterministisch: Dame, Schach, Go, Reversi Zufallskomponente: Backgammon, Monopoly Teilweise beobachtbar: Schiffe versenken, Tic Tac Toe blind Bridge, Poker, Skat Beachte: Abgrenzung „teilweise beobachtbar“ / „Zufall“ teils schwierig!

Problemspezifikation Hier: Spiele mit zwei Spielern namens Max und Min Max versucht hohe Bewertung zu erhalten, Min niedrige Nullsummenspiel: Gewinn Spieler A = Verlust Spieler B Zustand: Brettposition Spieler, der den nächsten Zug macht Nachfolgerfunktion: Liste legaler Züge für jeden Zustand Endtest: Stellt fest ob Zustand Spielende ist Nutzenfunktion (Utility): Ordnet Endzuständen Wert zu Schach, Dame, Tic-Tac-Toe: +1, 0, -1 (= Max hat gewonnen / unentschieden / verloren) Backgammon: +192 … -192

Suchbaum Tic-Tac-Toe Ziel: 3 Steine in einer Reihe

Minimax-Algorithmus Optimal für deterministische Spiele Vollständige Suche Daher nur für überschaubare Suchbäume einsetzbar Idee: Berechne aus dem Nutzen (aus Sicht von Max) der Endknoten den Nutzen der anderen Knoten und wähle besten Knoten.

Minimax-Wert Jeder Knoten n stellt Zug von Min oder Max dar. Minimax-Wert(n) = Nutzen(n) falls n Endknoten Maximum des Nutzens der Nachfolger von n falls n Max-Knoten Minimum des Nutzens der Nachfolger von n falls n Min-Knoten

Minimax-Algorithmus Idee: Max wählt Zug mit höchstem Minimax Wert = bestes erreichbares Ergebnis falls Min ebenfalls optimal spielt Bsp. Spiel mit 2 Zügen:

Minimax-Algorithmus

Eigenschaften von Minimax Vollständig? Ja (falls Baum endlich) Optimal? Ja (gegen optimalen Gegner) Zeitkomplexität? O(bm) Speicherkomplexität? O(bm) (Tiefensuche) Für typische Schachspiele b ≈ 35, m ≈100  exakte Lösung unmöglich Wie kann Suchbaum verkleinert werden?  Pruning = Abschneiden von Ästen, die keinen Erfolg versprechen (Buch: “Kürzen”)

α-β Pruning α ist Wert der besten Wahl die bislang entlang irgendeines Pfades für Max gefunden wurde. Wenn v < α, wird Max Pfad durch v vermeiden  Zweig wird geprunt Entsprechende Definition für β für Min

α-β Pruning

α-β Pruning Max wird mittleren Knoten nicht wählen, da bessere Alternative vorhanden!

α-β Pruning

α-β Pruning

α-β Pruning

Eigenschaften von α-β Pruning Pruning beeinflusst Ergebnis nicht Effektivität des Pruning wird durch Ordnen der Knoten verbessert Perfektes Sortieren i. allg. nicht möglich, sonst wäre Problem bereits gelöst! Mit perfekter Ordnung Zeitkomplexität = O(bd/2) statt O(bd/2)  Verdoppelt Suchtiefe Pruning ist einfaches Beispiel für Metareasoning, in diesem Fall die Überlegung, welche Berechnungen überhaupt relevant sind

α-β Algorithmus

α-β Algorithmus

Minimax-Erweiterung auf mehrere Spieler n-dimensionaler Nutzen-Vektor an jedem Knoten für n Spieler Beachte: Auch Spiel mit 2 Spielern hat 2-komponentige Nutzenvektoren, nämlich (x,-x) (Nullsummenspiel!) Endzustand: Vektor enthält Nutzen für jeden Spieler. Nicht-Endzustand, wobei Spieler X am Zug: Nutzenvektor wird von dem Nachfolger übernommen, der den höchsten Wert für X hat.

Minimax-Erweiterung auf mehrere Spieler

Begrenzte Resourcen Bsp.: 100 sec stehen zur Verfügung, 104 Knoten/sec können untersucht werden  106 Knoten pro Zug  bm = 106, b=35  m=4 4-Züge Vorausschau ist für Schach völlig unzureichend: 4 Züge ≈ Menschlicher Anfänger 8 Züge ≈ Typischer PC, menschlicher Meister 12 Züge ≈ Deep Blue, Kasparov

Begrenzte Resourcen Standard-Ansatz: Minimax beibehalten, aber nicht bis Ende suchen: Cutoff-Test Ersetzt Terminal Z.B. Tiefenlimit Bewertungsfunktion Ersetzt Utility Schätzt Nutzen der Position

Erinnerung Minimax

Bewertungsfunktionen Eval(s) : Schätzung des Nutzens der Position s Anforderungen an Eval: Mindestens: Endzustände so ordnen wie wahre Nutzenfunktion Besser: Möglichst gute Schätzung echten Nutzens (insb. Ordnung der Zustände wiedergeben) Schnelle Berechenbarkeit Für Schach, typischerweise lineare gewichtete Summe von Merkmalen Eval(s) = w1 f1(s) + w2 f2(s) + … + wn fn(s) Merkmale: Materialwert: 1 – Bauer, 3 – Läufer, 5 – Turm, 9 – Dame Funktionsmerkmale: „Bauernstruktur“, „Königssicherheit“

Weitere Verbesserungen Nichtlineare Bewertungsfunktionen Bessere Abbruchtests (im Vgl. zu Tiefenlimit) Singuläre Erweiterung, Horizonteffekt Vorab-Pruning

Nichtlineare Bewertungsfunktionen Problem: Lineare Gewichtung u.U. unangemessen Bsp.: Erfahrung: 1 Punkt Materialvorteil: Gute Gewinnchance 3 Punkte: Nahezu sicher Gegenbeispiel s.u. Daher: Nichtlineare Bewertungsfunktionen erforderlich

Abbruchtest Bisher: Tiefenlimit Problem: Bsp. wie letzte Folie Programm sucht bis (a), dann Tiefenlimit erreicht D.h. Vorteil Schwarz errechnet Weiß erlangt erheblichen Vorteil in (b) Daher: Test, ob Position „ruhend“ (d.h. keine Möglichkeit zu drastischen Bewertungsänderungen)

Singuläre Erweiterung Weißer Bauer unmittelbar vor Damenzug Aber: Schach durch schwarzen Turm verschiebt dies über Horizont Singuläre Erweiterung erlaubt Züge über Tiefenlimit hinaus, falls ein Zug erheblich besser ist als andere Umgekehrt: Vorab-Pruning vermeidet Züge, die Bewertung nicht verändern (z.B. bei symmetrischen Situationen)

Probleme des Standardansatzes Standardansatz = Minimax + a-b + Bewertungsfkt. + Cut-Off weit verbreitet Aber: Beruht auf Annahme, dass Bewertungsfunktion korrekt Problem bei sehr ähnlichen Bewertungen, Bsp.: Minimax geht rechts Bei kleiner Ungenauigkeit der Schätzung ist links wahrscheinlich wesentlich besser! Verbesserung: Wahrscheinlichkeitsverteilungen möglicher Werte statt Wahrscheinkeiten

Deterministische Spielprogramme in der Praxis Dame: Chinook beendete 40-jährige Dominanz durch Weltmeister Marion Tinsley (1994). Verwendet vorab berechnete Datenbasis von Endspielen, die perfektes Spiel für alle Stellungen bis zu 8 Steinen enthält (insg. 444 Milliarden Stellungen). Schach: Deep Blue besiegte 1997 Weltmeister Garry Kasparov in 6-Spiele-Turnier. Deep Blue durchsucht 200 Millionen Stellungen pro Sekunde, verwendet ausgefeilte Evaluationsfunktionen und unveröffentlichte Methoden um einzelne Zweige bis zu 40 Halbzüge tief zu durchsuchen. Reversi: Menschliche Champions weigern sich gegen Computerprogramme anzutreten, die zu gut spielen. Go: Menschliche Champions weigern sich gegen Computerprogramme anzutreten, die zu schlecht spielen. Für Go ist b > 300, daher verwenden die meisten Programme Muster-Datenbasen.

Nicht-deterministische Spiele Nicht-Determinismus z.B. durch Würfeln, Kartenmischen Backgammon: Mischung aus Planbarkeit und Zufall

Baum für nicht-deterministische Spiele Erweiterung: Zufallsknoten Verzeigungen von Zufallsknoten: Für jede Möglichkeit eine Verzweigung Wahrscheinlichkeit für jede Möglichkeit berechnen Bsp. Backgammon: 2 Würfel, Reihenfolge unerheblich 21 Möglichkeiten Wahrscheinlichkeiten: Je 1/36 bei gleicher Augenzahl Je 1/18 bei ungleicher Augenzahl

Expectiminimax Expectiminimax-Wert(n) = wobei P(s) Wahrscheinlichkeit für Möglichkeit s. D.h. Zufallsknoten erhält gewichtetes Mittel der Expectiminimax-Werte. Baum von Blättern bis Wurzel berechnen Dann wie bei Minimax vorgehen

Expectiminimax Komplexität: Problem: Größe des Baums Ohne Würfeln: O(bm) Mit n Wurfmöglichkeiten: O(bm nm) Problem: Größe des Baums Lösung: Suche abbrechen, statt Nutzen der Endknoten Bewertungsfunktion verwenden Neues Problem: Skalierung der Bewertungsfunktion verändert Auswahl (s.u.) ! Lösung: Bewertungsfkt. muss positive, lineare Trafo des erwarteten Nutzens sein.

Kartenspiele Vermutung: Es zeigt sich: Vermutung ziemlich falsch Ähnlich wie Würfelspiele Zufälliges Verteilen der Karten entspricht Würfeln Daher kann mit Wahrscheinlichkeits-gewichtetem Nutzen gerechnet werden Es zeigt sich: Vermutung ziemlich falsch

Problem der Mittelung Straße A führt zu einem kleinen Haufen Gold Straße B führt zu einer Gabelung: Links: Abgrund Rechts: Berg Juwelen Links: Berg Juwelen Rechts: Abgrund Richtige Vermutung: Berg Juwelen Falsche Vermutung: Abgrund

Kartenspiele Intuition, dass Wert einer Aktion der Mittelwert aller möglichen Zustände ist, ist falsch! Bei teilweiser Beobachtbarkeit hängt der Wert einer Aktion vom Informationsstand oder „Glaubenszustand“ des Agenten ab. Daher: Agent muss versuchen, Information zu erhalten Signale (z.B. Verwirrung) an Partner geben U.u. zufällig und damit unvorhersehbar handeln

Zusammenfassung Spielprogrammierung weit entwickelt, insb. kommerziell Spiele illustrieren wichtige KI-Probleme, daher wichtige Benchmarks Insbesondere: Einbringen menschlichen Wissens in Suchprobleme Perfektion nicht realisierbar  Zwang zum Improvisieren