400 likes | 562 Views
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!
E N D
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 : • 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!
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:
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”)
α 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!
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
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.
Begrenzte Resourcen Bsp.: 100 sec stehen zur Verfügung, 104 Knoten/sec können untersucht werden106 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
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“
WeitereVerbesserungen • 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: • 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: • Ä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 • Straße A führt zu einem kleinen Haufen Gold • Straße B führt zu einer Gabelung: • Links: Berg Juwelen • Rechts: Abgrund • Straße A führt zu einem kleinen Haufen Gold • Straße B führt zu einer Gabelung: • 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