Kapitel V Adversiale Suche.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (1)
Advertisements

Perceptrons and the perceptron learning rule
Eine dynamische Menge, die diese Operationen unterstützt,
Geometrische Datenstrukturen Haozhe Chen Aaron Richardson.
GIN2 SS05 Prof. Dr. W. Conen, Nullsummen-Spiele - Min-Max-Suche - Alpha-Beta-Pruning (späterer Termin)
Die Schulregeln (the school rules) Kein Graffiti in der Schule!
Suche in Texten (Stringsuche )
Kapitel 3: Listen Lineare Liste: endliche Folge von Elementen eines Grundtyps (n>=0), leere Liste falls n=0 Listenelemente besitzen.
5. Sortier-Algorithmen Vorbemerkungen:
Prinzipal-Agenten Beziehungen
Mathematik des Bridge Tanja Schmedes.
Adversariale Suche Spielprogrammierung.
Informierte Suche.
Spielbäume Richard Göbel.
Suchbäume Richard Göbel.
Sortierverfahren Richard Göbel.
FH-Hof Künstliche Intelligenz - Suchbäume Richard Göbel.
Sortierverfahren Richard Göbel.
Heuristiken Automatic Problem Solving Institut für Informatik
Prof.Dr.S. Albers Prof. Dr. Th. Ottmann
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmen und Komplexität
Minimum Spanning Tree: MST
Hauptseminar Automaten und Formale Sprachen
Teil 5: Kollisionsvermeidung & Wegplanung
Teil I: Uninformierte Suche
Teil II: Informierte Suche
Machine Learning & Spiele: Probleme und Ideen von Samuel bis heute Giuliana Sabbatini
Computational Thinking Wie spielen Computer? [Sind sie unbesiegbar?]
Verwendung von Maschinellem Lernen in einer einfachen Computerspielumgebung Anglberger Harald Brandl Stephan Mai 2003.
You need to use your mouse to see this presentation © Heidi Behrens.
You need to use your mouse to see this presentation © Heidi Behrens.
What do you see? Looks like President Clinton and Vice President Gore, right? Wrong... It's Clinton's face twice, with two different haircuts.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
You need to use your mouse to see this presentation © Heidi Behrens.
You need to use your mouse to see this presentation © Heidi Behrens.
You need to use your mouse to see this presentation © Heidi Behrens.
Analyse der Laufzeit von Algorithmen
Coordinating Conjunctions Why we need them & how to use them deutschdrang.com.
Die Fragen Wörter Wer? Was? Wann?.
I will be able to use the accusative pronouns in a sentence (Buch Seite 200)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Der A*-Algorithmus.
Kapitel 4 Grammar INDEX 1.Ordinal Numbers 2.Relative Pronouns and Relative Clauses 3.Conditional Sentences 4.Posessive: Genitive Case.
Binärbäume.
Kapitel 2 Grammar INDEX 1.Subjects & Verbs 2.Conjugation of Verbs 3.Subject Verb Agreement 4.Person and Number 5.Present Tense 6.Word Order: Position of.
Memorisation techniques
Here‘s what we‘ll do... Talk to the person sitting in front of you. Introduce each other, and ask each other questions concerning the information on your.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Word order: 1.In a main clause the VERB is the second idea: Helgakommteben aus der Bäckerei This may not be the second word Meiner Meinung nachsind Hobbys.
On the case of German has 4 cases NOMINATIVE ACCUSATIVE GENITIVE DATIVE.
How to play: Students are broken up into 2-3 teams (depending on class size). Students can see the game board and the categories, but not point values.
Essay structure Example: Die fetten Jahre sind vorbei: Was passiert auf der Almhütte? Welche Bedeutung hat sie für jede der vier Personen? Intro: One or.
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Tanya Braun (Übungen) sowie viele Tutoren.
Fitness. An english presentation.
Interrogatives and Verbs
Du bist am dicksten und am dümmsten.
Lernziele: Wir üben das Perfekt. Wir spielen Karten auf Deutsch.
You need to use your mouse to see this presentation
“wish” “as if” “if only it were so”
Algorithmen und Datenstrukturen
School supplies.
 Präsentation transkript:

Kapitel V Adversiale Suche

Wahrscheinlichkeiten KI Suchen Lernen/Schließen Anwendungen (un-)informiert Logik Computer Vision lokal Wahrscheinlichkeiten Robotik adversial Überwacht Ethik und Risiken Mit Unsicherheit Unüberwacht

Suche nach einer „intelligenten“ Lösung

Suche nach einer „intelligenten“ Lösung Bisher Unveränderlicher (statischer) Suchraum: Nachfolgerzustände nur vom aktuellen Zustand / Knoten abhängig „Intelligenter“ Suche mit „Gegenspieler“, Suchende beeinflussen den Suchraum: Schnellster Weg von Lübeck nach Berlin von anderen Autofahrern abhängig: Staugefahr! Je nach Verkehrsaufkommen unterschiedliche Strecken optimal (geringste Kosten = Fahrzeit)

Vorerst Beschränkung auf (besondere) Spiele Zweipersonenspiele Vorerst Beschränkung auf (besondere) Spiele Endlich Deterministisch Zweipersonen(spiele) Nullsummen(spiele) Mit vollständiger Information “2-player zero-sum discrete finite determi-nistic games of perfect information”

Zweipersonenspiele 2-player zero-sum discrete finite deterministic games of perfect information Two player: … Zero-sum: in any outcome of any game, Player A’s gains equal player B’s losses Discrete: game states / decisions = discrete values Finite: only a finite number of states / decisions Deterministic: no chance (no die rolls) Perfect information: Both players can see the state, each decision made sequentially Andrew W. Moore, http://www.autonlab.org/tutorials

Zweipersonenspiele 2-player zero-sum discrete finite deterministic games of perfect information? Hidden Information One player Not finite  Stochastic  Multiplayer Andrew W. Moore, http://www.autonlab.org/tutorials

Ausgangssituation Zweipersonenspiele Zustände (je nach Spiel) Nachfolgerfunktion (gemäß Spielregeln) Startzustand (gemäß Spielregeln) Zielzustände (gemäß Spielregeln) Bewertung der Zustände, Nutzenfunktion

Ausgangssituation Ziel Zweipersonenspiele Zweipersonenspiel: Spieler A, Spieler B Nullsummenspiel: Nutzen(A) = -Nutzen(B) Vollständige Information: alle möglichen Züge des Gegners sind bekannt Ziel jeder Spieler sucht nach einem Pfad im Suchbaum (Strategie) maximiere eigenen Nutzen – egal wie der andere Spieler agiert Wie? Unterstelle, Gegenspieler wählt stets die beste Alternative!

Suche nach einer „intelligenten“ Lösung Beispiel NIM Spielregel: Beide Spieler nehmen abwechselnd ein, zwei oder drei Streich- hölzer aus einer Reihe. Ziel des Spiels: wer das letzte Streichholz nimmt, hat gewonnen.

Suche nach einer „intelligenten“ Lösung Beispiel NIM Was tun?

Ablauf: MINIMAX Sei Spieler 𝑨 zuerst am Zug, dann Sucht 𝑨 nach einem Zug, so dass 𝐍𝐮𝐭𝐳𝐞𝐧(𝑨) maximal wird Sucht 𝑩 anschliessend einem Zug, so dass 𝐍𝐮𝐭𝐳𝐞𝐧(𝑩) maximal wird Wegen Nutzen(𝐴) = −Nutzen(𝐵) minimiert 𝑩 𝐍𝐮𝐭𝐳𝐞𝐧(𝑨) Wir betrachten nur noch den Nutzen von 𝑨

Ablauf: MINIMAX Die MINIMAX-Funktion ist definiert als NUTZEN(𝑛) falls 𝑛 ein Endzustand max 𝑆∈nf 𝑛 MINIMAX 𝑆 falls Spieler 𝐴 am Zug min 𝑠∈nf 𝑛 MINIMAX 𝑆 falls Spieler 𝐵 am Zug nf(𝑛) ist Nachfolgerfunktion

Ablauf am Beispiel (tic-tac-toe) MINIMAX Ablauf am Beispiel (tic-tac-toe) Wohin kann A Stein platzieren? Wohin kann B dann Stein platzieren? Wohin kann A dann Stein platzieren? Welches Suchverfahren liegt zugrunde? Welche Konsequenzen hinsichtlich Laufzeit und Platzbedarf? Russell / Norvig: : Artificial Intelligence - A Modern Approach, 2nd edition. © Pearson Education, 2003

Beispiel Suchbaum der Höhe 2 MINIMAX Beispiel Suchbaum der Höhe 2 3 3 2 2

Beispiel Suchbaum der Höhe 2 MINIMAX Beispiel Suchbaum der Höhe 2

Beispiel II-NIM MINIMAX Variation: wer zuletzt zieht hat verloren Symmetrische Zustände für Spielverlauf irrelevant Andrew W. Moore, http://www.autonlab.org/tutorials

Beispiel II-NIM MINIMAX Variation: wer zuletzt zieht hat verloren Zustände Startzustand Nachfolger- funktion Zielzustände Nutzenfunktion Andrew W. Moore, http://www.autonlab.org/tutorials

II-Nim Game Tree (ii ii) A (i ii) B (- ii) B (- ii) A (i i) A (- i) A Andrew W. Moore, http://www.autonlab.org/tutorials

II-Nim Game Tree (ii ii) A (i ii) B (- ii) B (- ii) A (i i) A (- i) A Andrew W. Moore, http://www.autonlab.org/tutorials

II-Nim Game Tree (ii ii) A (i ii) B (- ii) B (- ii) A (i i) A (- i) A Andrew W. Moore, http://www.autonlab.org/tutorials

II-Nim Game Tree (ii ii) A (i ii) B (- ii) B (- ii) A +1 (i i) A +1 Andrew W. Moore, http://www.autonlab.org/tutorials

II-Nim Game Tree (ii ii) A (i ii) B -1 (- ii) B -1 (- ii) A +1 Andrew W. Moore, http://www.autonlab.org/tutorials

II-Nim Game Tree Was tun? Egal ... (ii ii) A -1 (i ii) B -1 Andrew W. Moore, http://www.autonlab.org/tutorials

Erweiterung auf mehrere Spieler MINIMAX Erweiterung auf mehrere Spieler Jeder maximiert seinen Nutzen max max max

Zusammenfassung MINIMAX Führt Tiefensuche durch den gesamten Zustandsraum durch Ist in der einfachsten Form auf Zweipersonen-spiele anwendbar, kann aber auf 𝑛-Personenspiele erweitert werden (jeder Spieler maximiert dann seinen Teil der Nutzenfunktion)

Zusammenfassung MINIMAX Algorithmus: fmax(Zustand Z): falls Z = Endzustand, gib Nutzen(Z) zurück sonst gib das Maximum über alle fmin der Nachfolger von Zustand Z zurück fmin(Zustand Z): falls Z = Endzustand, gib Nutzen(Z) zurück sonst gib das Minimum über alle fmax der Nachfolger von Zustand Z zurück Minimax(Startzustand S) gib eine Aktion zurück, so dass der Nutzen des damit verbundenen Nachfolgezustandes = fmax(S)

MINIMAX Russell / Norvig: : Artificial Intelligence - A Modern Approach, 2nd edition. © Pearson Education, 2003

Eigenschaften MINIMAX Vollständigkeit: Optimalität: ja, für endlichen Suchbaum Optimalität: Ja, gegen optimalen Gegner Zeitkomplexität: O(bm) Alle Knoten bewerten ... Raumkomplexität: O(bm) Tiefensuche Oft sehr groß, z.B. Schach mit 35 be-trachteten Möglich-keiten je Zug und 100 Halbzügen: 35100 (> 10154) Knoten

Suchraum sehr, sehr, sehr groß … Alpha-Beta-Pruning Suchraum sehr, sehr, sehr groß …

Spiel gegen „optimalen Gegner“ Alpha-Beta-Pruning Spiel gegen „optimalen Gegner“ Je nach Spieler wird immer Minimum / Maximum der Optionen gewählt Idee: Werte geben obere (Minimum) bzw. untere (Maximum) Schranke für den Nutzen an Vergleich mit den Schranken Größere (Minimum) / kleinere (Maximum) Unterbäume werden „abgeschnitten“ Branch-and-bound

Beispiel Suchbaum der Höhe 2 Alpha-Beta-Pruning Beispiel Suchbaum der Höhe 2 3 min(2,…) 3 > 2 ≥ …

Alpha-Beta-Pruning Beispiel (Spielbaum der Höhe 2)

Algorithmus nutzt zwei Parameter Alpha-Beta-Pruning Algorithmus nutzt zwei Parameter  = den besten (maximalen) Wert für einen Zug von Spieler A  = den besten (minimalen) Wert für einen Zug von Spieler B  und  werden ständig aktualisiert Wenn  ≥  gibt es einen anderen Pfad für Spieler A, der genauso gut oder besser ist! (B wählt Pfad zu , A wählt Pfad zu )

Algorithmus: Alpha-Beta-Pruning fmax(Zustand Z, , ): falls Z = Endzustand, gib Nutzen(Z) zurück sonst bestimme sukzessive Das Maximum über alle fmin der Nachfolger von Zustand Z Falls ein fmin >=  (d.h. der Wert des aktuellen Knoten ist größer als der kleinste in das Minimum einfließende Wert eines Knotens), gib den aktuellen Wert des Maximums zurück (RETURN) aktualisiere  Nach jedem Knoten testen!

Algorithmus: Alpha-Beta-Pruning fmin(Zustand Z, , ): falls Z = Endzustand, gib Nutzen(Z) zurück sonst bestimme sukzessive Das Minimum über alle fmax der Nachfolger von Zustand Z Falls ein fmax <=  (d.h. der Wert des aktuellen Knoten ist kleiner als der größte in das Maximum einfließende Wert eines Knotens), gib den aktuellen Wert des Minimums zurück (RETURN) aktualisiere  Nach jedem Knoten testen!

Algorithmus Alpha-Beta-Pruning Alpha-beta-search(Startzustand S) gibt eine Aktion zurück, so dass der Nutzen des Nachfolgezustandes = fmax(S, -, +)

Alpha-Beta-Pruning Russell / Norvig: : Artificial Intelligence - A Modern Approach, 2nd edition. © Pearson Education, 2003

Alpha-Beta-Pruning Russell / Norvig: : Artificial Intelligence - A Modern Approach, 2nd edition. © Pearson Education, 2003

Beispiel Alpha-Beta-Pruning min-Knoten: 𝑣=2≤𝛼=3 [max{- , 3}, +] [max{3, 2}, +] [max{3, 2}, +] [- , min{+, 3}] [3, min{+, 2}] [3, min{+, 14}] 3 [- , min{3, 12}] [3, min{2, 4}] [3, min{14, 5}] [- , min{3, 8}] [3, min{2, 6}] [3, min{5, 2}] min-Knoten: 𝑣=2≤𝛼=3 Andere Implementierung: erst 𝛽=2, dann Bedingung 𝛼<𝛽 verletzt

Alpha-Beta-Pruning Beispiel

Beispiel Alpha-Beta-Pruning http://web.archive.org/web/20120223183427/http://wolfey.110mb.com/GameVisual/launch.php

Läßt sich diese Idee ausbauen? Alpha-Beta-Pruning Zusammenfassung: Alpha-Beta-Pruning kann Anzahl der betrachteten Knoten erheblich reduzieren Reihenfolge der Nachfolgerknoten hat Einfluss auf Laufzeit – Nachfolgerknoten so sortieren, dass die beste Knoten zuerst untersucht (Heuristik) Kann durch Speichern bereits betrachteter Zustände (z.B. in einer ‚hash-table‘) verbessert werden (wie GRAPH-SEARCH) Datenstruktur bei Spielen auch als ‚transposition table‘ bezeichnet Läßt sich diese Idee ausbauen?

Rechenzeit in Sekunden Alpha-Beta-Pruning Beispiel Schachstellung, konstante Suchtiefe von vier Halbzügen (jeder Spieler zieht zweimal) Algorithmus Bewertungen Cutoffs Anteil der Cutoffs Rechenzeit in Sekunden Minimax 28.018.531 0,00 % 134,87 s AlphaBeta 2.005.246 136.478 91,50 % 9,88 s AlphaBeta + Zugsortierung 128.307 27.025 99,28 % 0,99 s http://de.wikipedia.org/wiki/Alpha-Beta-Suche

Dynamische Programmierung Suchraum sehr, sehr groß …

Dynamische Programmierung Idee: Für viele Probleme gilt: „optimale Lösungen enthalten optimale Teillösungen“ (Richard Bellman) Bei Spielen Verschiedene Zugfolgen führen zur gleichen Spielsituation Wenn Ergebnis für Spielsituation bekannt („optimal gelöst“) und gespeichert ist, kann das bekannte Ergebnis verwendet werden ohne erneut zu suchen

Dynamische Programmierung Beispiel (Textabgleich, siehe Luger) String 1: BAADDCABDDA String 2: BBADCBA Kosten 0 Buchstaben gleich, Position gleich 1 Position um 1 verschoben 2 Buchstaben ungleich und verschoben

Dynamische Programmierung Beispiel (Textabgleich, siehe Luger) Kosten in (x,y) setzen sich aus den Kosten zu einem “Vor-gängerzustand” und den Kosten in (x,y) zusammen a = Kosten in (6,2)+1 (wg. 1xSchieben) Kosten in (6,3) = min(a, b, c) b = Kosten in (5,3)+1 (wg. 1xSchieben) c = Kosten in (5,2) + “Einzelkosten” in (6,3) beide geschoben, gleich := 0; ungleich := 2 Luger: Artificial Intelligence, 6th edition. © Pearson Education Limited, 2009

Dynamische Programmierung Beispiel (Textabgleich, siehe Luger) 1 ? 2 ? 3 ? 1 ? ? 2 3 ? ? 2 1 ? 2 ? ? Luger: Artificial Intelligence, 6th edition. © Pearson Education Limited, 2009

Dynamische Programmierung Beispiel (Textabgleich, siehe Luger) Was nun? Eine optimale Lösung läßt sich ausgehend vom Zielzustand finden. Wie? Luger: Artificial Intelligence, 6th edition. © Pearson Education Limited, 2009

Dynamische Programmierung Beispiel (Textabgleich, siehe Luger) Wähle jeweils die Vorgänger mit minimalen Kosten! (optimale Lösung = optimale Teillösungen …) Luger: Artificial Intelligence, 6th edition. © Pearson Education Limited, 2009

Dynamische Programmierung Beispiel (Textabgleich, siehe Luger) String 1: B A A D D C A B D D A String 2: B B A D C B A

DP for Chess Endgames Suppose one has only, say, 4 pieces in total left on the board. With enough compute power you can compute, for all such positions, whether the position is a win for Black, White, or a draw. Assume N such positions. With each state, associate an integer. A state code, so there’s a 1-1 mapping between board positions and integers from 0…N-1. Make a big array (2 bits per array entry) of size N. Each element in the array may have one of three values: ?: We don’t know who wins from this state W: We know white’s won from here B: We know black’s won from here Andrew W. Moore, http://www.autonlab.org/tutorials

DP for Chess Endgames Mark all terminal states with their values (W or B) Look through all states that remain marked with ?. For states in which W is about to move: If all successor states are marked B, mark the current state as B. If any successor state is marked W, mark the current state as W. Else leave current state unchanged. For states in which B is about to move: If all successor states are marked W, mark the current state as W. If any successor state is marked B, mark the current state as B. Else leave current state unchanged Goto 4, but stop when one whole iteration of 4 produces no changes. Any state remaining at “?” is a state from which no-one can force a win. Andrew W. Moore, http://www.autonlab.org/tutorials

Suche mit Bewertungsfunktionen Suchraum sehr groß …

Suche mit Bewertungsfunktionen Beobachtung Ähnlich wie bei uninformierter Suche werden auch bei Alpha-Beta-Pruning und bei Minimax Pfade bis zu Endknoten verfolgt „Dynamische Programmierung“ kann die Suche verkürzen, wird aber schnell aufwendig Kann in Analogie zu Heuristiken kann auch bei Spielen eine „Bewertungsfunktion“ zur Nutzen-abschätzung der Züge herangezogen werden? Ja ...

Suche mit Bewertungsfunktionen Anforderungen an Bewertungsfunktionen Die Endknoten werden in der gleichen Weise sortiert wie von der „echten“ Nutzenfunktion Die Berechnung der Bewertungsfunktion kann effizient erfolgen Für alle Knoten die keine Endknoten sind, sollte die Bewertungsfunktion „stark mit den Gewinnchancen korrelieren“

Suche mit Bewertungsfunktionen können z.B. „features“ (Merkmale) des aktuellen Zustands berechnen Bsp. (Schach): Anzahl der Bauern, Besitz der Dame … Zustände anhand der „features“ kategorisieren Je Kategorie / Äquivalenzklasse von Zuständen über viele Spiele die Wahrscheinlichkeit für Spiel-ausgang berechnen, (z.B.) jeweils für Gewinn Verlust Unentschieden

Suche mit Bewertungsfunktionen Alternativ jedem „feature“ Gewicht zugeordnen Wert der gewichteten linearen Funktion als Bewertung des Zustandes interpretieren Beispiel (Schach): Bauer = 1 Springer, Läufer = 3 Turm = 5 Dame = 9

Suche mit Bewertungsfunktionen Beispiel (Schach): Andere „features“ (Stellung, etc.) in „Bauernwerten“ ausgedrücken und in Zielfunktion zusammengefassen: EVAL(s) = w1f1(s) + w2f2(s) + … + wnfn(s) EVAL(s) = 1*Bauern(s) + 3*Springer(s) + … + 9*Dame(s) Woher kommen die Gewichte? Aus Erfahrung (humane Intelligenz) Durch maschinelles Lernen (später mehr ...) Nichtlineare und sich im Zeitverlauf ändernde Funktionen können sinnvoll sein

Suche mit Bewertungsfunktionen Pruning (Beschneiden) des Suchbaums Normaler Ablauf der Alpha-Beta Suche bis zur Tiefenschranke 𝑑 Für Zustände 𝑆 in Tiefe 𝑑 wird statt des durch Suche ermittelten Nutzens nun der Wert der Bewertungsfunktion Eval(𝑆) verwendet

Suche mit Bewertungsfunktionen Probleme (Beispiel Schach, siehe AIMA) + 9 = 12 Dame sicher, echter Vorteil für Schwarz. Weiß kann Dame schlagen, Bewertung?

Suche mit Bewertungsfunktionen Pruning (Beschneiden) des Suchbaums Feste Tiefenbeschränkung kann zu fehlerhafter Bewertung führen Warum? – Bewertung kann sich schnell ändern Verbesserung Möglichkeit schneller Änderungen berücksichtigen Tiefenbeschränkung nur für „stabile Zustände“ (‚quiescent positions‘ ) verwenden (z.B. keine wertvollen Figuren im nächsten Zug gefährdet) Entsprechende Variante der heuristischen Alpha-Beta-Suche auch als ‚quiescence search‘ bezeichnet

Suche mit Bewertungsfunktionen Probleme (Beispiel Schach, siehe AIMA) Schwarz am Zug, was sind die nächsten Züge?

Suche mit Bewertungsfunktionen Probleme (Beispiel Schach, siehe AIMA) 2 3 1 14 13 12

Suche mit Bewertungsfunktionen Pruning (Beschneiden) des Suchbaums Horizont-Effekt: unvermeidbare Ereignisse, die über den aktuellen Betrachtungshorizont (Tiefen-beschränkung) hinaus vermieden werden können, werden als „vermeidbar“ betrachtet Im Beispiel wird Weiß mit Sicherheit eine Dame bekommen, aber die Tiefenschranke schneidet u.U. vorher den Suchbaum ab (auch für Weiß!) Ggf. den „besten Zug“ über Tiefenschranke hinaus betrachten (Tiefensuche mit bestem Zug)

Viele Spiele haben zufällige Komponente EXPECTIMINIMAX Viele Spiele haben zufällige Komponente Das Auftreten verschiedener Spielzüge ist nicht deterministisch sondern unterliegt einer Wahrscheinlichkeitsverteilung Die in den Knoten berechneten Werte stellen keine „sichere Bewertung“, sondern einen Erwartungswert dar Im Suchbaum wird dies durch „Zufallsknoten“ dargestellt

Beispiel Backgammon (siehe AIMA) EXPECTIMINIMAX Beispiel Backgammon (siehe AIMA)

Beispiel Backgammon (siehe AIMA) EXPECTIMINIMAX Beispiel Backgammon (siehe AIMA)

Die EXPECTIMINIMAX-Funktion Definition (Nf = Nachfolger; n,s sind Zustände) NUTZEN(n) falls n Endzustand MaxsNf(n) EXPECTIMINIMAX(s) falls Spieler A am Zug MinsNf(n) EXPECTIMINIMAX(s) falls Spieler B am Zug sNf(n) P(s)*EXPECTIMINIMAX(s) falls n Zufallsknoten Laufzeit: O(bmnm) wobei b = branching factor n = Anzahl möglicher Ergebnisse des Zufallsereignisses

Achtung: Nutzenfunktion „richtig“ wählen! EXPECTIMINIMAX Achtung: Nutzenfunktion „richtig“ wählen! Gleiche Reihenfolge in der Bewertung Unterschiedliche Gewichtung / Nutzen

Anmerkungen EXPECTIMINIMAX Standard Alpha-Beta-Pruning ist nicht sinnvoll Erweiterung: Wertebereich berücksichtigen und Grenze für den Mittelwert für die Bewertung verwenden

Deterministic games in practice Checkers: Chinook ended 40-year-reign of human world champion Marion Tinsley in 1994. Used a precomputed endgame database defining perfect play for all positions involving 8 or fewer pieces on the board, a total of 444 billion positions. Chess: Deep Blue defeated human world champion Garry Kasparov in a six-game match in 1997. Deep Blue searches 200 million positions per second, uses very sophisticated evaluation, and undisclosed methods for extending some lines of search up to 40 ply. Othello: human champions refuse to compete against computers, who are too good. Go: human champions refuse to compete against computers, who are too bad. In go, b > 300, so most programs use pattern knowledge bases to suggest plausible moves. Othello/Reversi: Logistello 1997, gewinnt alle Spiele (6) gegen Weltmeister 19 x 19 Linien bei Go, also 361 Schnittpunkte, Bewertungsfunktion für Go schwierig