Präsentation herunterladen
Veröffentlicht von:Alberich Kelzer Geändert vor über 10 Jahren
1
Adversariale Suche Spielprogrammierung
2
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 = 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 !
3
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
4
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!
5
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
6
Suchbaum Tic-Tac-Toe Ziel: 3 Steine in einer Reihe
7
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.
8
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
9
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:
10
Minimax-Algorithmus
11
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”)
12
α-β 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
13
α-β Pruning
14
α-β Pruning Max wird mittleren Knoten nicht wählen, da bessere Alternative vorhanden!
15
α-β Pruning
16
α-β Pruning
17
α-β Pruning
18
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
19
α-β Algorithmus
20
α-β Algorithmus
21
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.
22
Minimax-Erweiterung auf mehrere Spieler
23
Begrenzte Resourcen Bsp.: 100 sec stehen zur Verfügung, 104 Knoten/sec können untersucht werden 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
24
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
25
Erinnerung Minimax
26
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“
27
Weitere Verbesserungen
Nichtlineare Bewertungsfunktionen Bessere Abbruchtests (im Vgl. zu Tiefenlimit) Singuläre Erweiterung, Horizonteffekt Vorab-Pruning
28
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
29
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)
30
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)
31
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
32
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.
33
Nicht-deterministische Spiele
Nicht-Determinismus z.B. durch Würfeln, Kartenmischen Backgammon: Mischung aus Planbarkeit und Zufall
34
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
35
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
36
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.
37
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
38
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
39
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
40
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.