Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Adversariale Suche Spielprogrammierung.

Ähnliche Präsentationen


Präsentation zum Thema: "Adversariale Suche Spielprogrammierung."—  Präsentation transkript:

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


Herunterladen ppt "Adversariale Suche Spielprogrammierung."

Ähnliche Präsentationen


Google-Anzeigen