Post on 05-Apr-2015
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ü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 !
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-ToeZiel: 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
• 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
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 + 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) =
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
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
• 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
• 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
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
•