40
Adversariale Suche Spielprogrammierung

Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

Embed Size (px)

Citation preview

Page 1: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

Adversariale Suche

Spielprogrammierung

Page 2: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

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üge35100 = 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 !

Page 3: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

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

Page 4: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

Spieltypen

• Vollständig beobachtbar :– Deterministisch:

Dame, Schach, Go, Reversi– Zufallskomponente:

Backgammon, Monopoly

• Teilweise beobachtbar:– Deterministisch:

Schiffe versenken, Tic Tac Toe blind– Zufallskomponente:

Bridge, Poker, Skat

• Beachte: Abgrenzung „teilweise beobachtbar“ / „Zufall“ teils schwierig!

Page 5: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

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

Page 6: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

Suchbaum Tic-Tac-ToeZiel: 3 Steine in einer Reihe

Page 7: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

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.

Page 8: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

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

Page 9: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

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:

Page 10: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

Minimax-Algorithmus

Page 11: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

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

Page 12: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

α-β 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

–•

Page 13: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

α-β Pruning

Page 14: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

α-β Pruning

Max wird mittleren Knoten nicht wählen, da bessere Alternative vorhanden!

Page 15: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

α-β Pruning

Page 16: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

α-β Pruning

Page 17: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

α-β Pruning

Page 18: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

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

••

Page 19: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

α-β Algorithmus

Page 20: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

α-β Algorithmus

Page 21: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

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.

Page 22: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

Minimax-Erweiterung auf mehrere Spieler

Page 23: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

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

Page 24: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

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

Page 25: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

Erinnerung Minimax

Page 26: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

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“

Page 27: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

Weitere Verbesserungen

• Nichtlineare Bewertungsfunktionen

• Bessere Abbruchtests (im Vgl. zu Tiefenlimit)

• Singuläre Erweiterung, Horizonteffekt

• Vorab-Pruning

Page 28: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

• Problem: Lineare Gewichtung u.U. unangemessen• Bsp.:

– Erfahrung: • 1 Punkt Materialvorteil: Gute Gewinnchance• 3 Punkte: Nahezu sicher

– Gegenbeispiel s.u.

• Daher: Nichtlineare Bewertungsfunktionen erforderlich

Nichtlineare Bewertungsfunktionen

Page 29: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

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)

Page 30: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

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)

Page 31: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

Probleme des Standardansatzes

• Standardansatz = Minimax + 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

Page 32: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

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.

»

Page 33: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

Nicht-deterministische Spiele

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

Page 34: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

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

Page 35: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

Expectiminimax

Expectiminimax-Wert(n) =

oten Zufallskn falls )(imaxExpectimin )(

Knoten-Min falls )(imaxExpectimin min

Knoten-Max falls )(imaxExpectiminmax

Endknoten falls )(

)(

)(

)(

nssP

ns

ns

nnNutzen

nNachfs

nNachfs

nNachfs

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

Page 36: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

Expectiminimax• Komplexität:

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

Page 37: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

Kartenspiele

• Vermutung: – Ä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

Page 38: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

• Straße A führt zu einem kleinen Haufen Gold• Straße B führt zu einer Gabelung:

– Links: AbgrundAbgrund– Rechts: Berg Juwelen

• Straße A führt zu einem kleinen Haufen Gold• Straße B führt zu einer Gabelung:

– Links: Berg Juwelen– Rechts: AbgrundAbgrund

• Straße A führt zu einem kleinen Haufen Gold• Straße B führt zu einer Gabelung:

– Richtige Vermutung: Berg Juwelen– Falsche Vermutung: AbgrundAbgrund

Problem der Mittelung

Page 39: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

• 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

Kartenspiele

Page 40: Adversariale Suche Spielprogrammierung. Einleitung Spiel: Konkurrierende Multi-Agenten Umgebung Hier: Vollständige Information, d.h. Umgebung vollständig

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