Übersicht I Künstliche Intelligenz II Problemlösen 3. Problemlösen durch Suche 4. Informierte Suchmethoden 5. Constraint-Probleme 6. Spiele III Wissen und Schlußfolgern IV Logisch Handeln V Unsicheres Wissen und Schließen VI Lernen VII Kommunizieren, Wahrnehmen und Handeln Künstliche Intelligenz: 6. Spiele Frank Puppe 1
Spiele (antagonistische Suche) Games have engaged the intellectual faculties - sometimes to an alarming degree - for as long as civilization has existed. Typen von Spielen deterministische Umgebung stochastische Umgebung vollständig beobachtbare Umgebung viele Brettspiele ohne Würfel wie Schach, Go, Tic- Tac-Toe,... viele Würfelspiele wie Backgammon, Monopoly, Risiko, teilweise beobachtbare Umgebung verdeckte Brettspiele wie Stratego viele Kartenspiele wie Bridge, Skat, Scrabble Künstliche Intelligenz: 6. Spiele Frank Puppe 2
Spiele mit vollständiger Information Spiele mit vollständiger Information, insbesondere Schach, wurden von der KI von Anfang an intensiv untersucht. Herausforderung: großer Suchraum bei beschränkter Zeit. Schach: ca. 35 100 mögliche Zugsequenzen in normalem Spiel; ca. 10 40 verschiedene Stellungen. Definition als 4-Tupel.: (Anfangszustand, Operatoren, Ende- Test, Bewertungsfunktion) Die beiden Spieler seien MAX und MIN. Unterschied zu normalem Suchproblem: MAX muss auf unterschiedliche Züge von MIN gefasst sein. Strategie: Minimax-Algorithmus (gehe davon aus, dass MIN immer den besten Zug findet). Künstliche Intelligenz: 6. Spiele Frank Puppe 3
Spielbaum Künstliche Intelligenz: 6. Spiele Frank Puppe 4
Minimax-Algorithmus 1. Generiere den vollständigen Spielbaum. 2. Wende die Bewertungsfunktion auf jeden Endzustand an. 3. Berechne aus den Bewertungen der Nachfolger eines Knoten die Bewertung des Knoten selbst. a. Wenn MIN wählt, nimm das Minimum der Bewertungen. b. Wenn MAX wählt, nimm das Maximum der Bewertungen. 4. Setze dieses Verfahren rekursiv bis zur Wurzel des Baumes fort. 5. Wählen den Zug mit der höchsten Bewertung (MAX am Zug). Vereinfachung: Man muß den Spielbaum nicht komplett generieren, und dann erst bewerten, sondern kann beides integrieren. Komplexität: Minimax-Algorithmus ist vollständig und optimal; Zeit- und Speicherkomplexität entspricht Tiefensuche. Künstliche Intelligenz: 6. Spiele Frank Puppe 5
Beispiel für Minimax-Algorithmus Max wählt den Zug A1 mit der höchsten Bewertung von (3,2,2), Min daraufhin den A11 mit der niedrigsten Bewertung von (3,12,8). Künstliche Intelligenz: 6. Spiele Frank Puppe 6
Heuristische Evaluationsfunktionen Bei allen interessanten Spielen ist es unmöglich, den Spielbaum bis zu den Endzuständen zu expandieren. Daher muß man irgendwo abbrechen und eine heuristische Evaluationsfunktion zur Bewertung des Zustandes benutzen. Anforderung an Evaluationsfunktionen: möglichst korrekt möglichst schnell Evaluationsfunktionen gruppieren viele verschiedene Spielzustände unter dieselbe Kategorie (z.b. alle Schachpositionen, in der ein Spieler einen Läufer mehr hat, unter die Kategorie +3 ). Die Kategorie beschreibt eine Gewinnchance (auf Basis von Erfahrungen mit verschiedenen Positionen derselben Kategorie). Künstliche Intelligenz: 6. Spiele Frank Puppe 7
Art der heuristischen Evaluationsfunktion Meist werden gewichtete lineare Funktionen benutzt: w 1 f 1 + w 2 f 2 +... + w n f n wobei die f s Merkmale der Position sind. Beispiel: Materialbewertung der Figuren im Schach. Die Gewichte w können durch parameteradaptive Lernverfahren justiert werden. Es gibt aber auch Erfolge mit nicht-linearen Bewertungen, z.b. durch ein neuronales Netz für Backgammonbewertung. Künstliche Intelligenz: 6. Spiele Frank Puppe 8
Evaluations-Beispiele für Schach-Positionen Künstliche Intelligenz: 6. Spiele Frank Puppe 9
Suchgrenz-Probleme: unruhige Stellungen Problem: Der direkte Ansatz, die Suchtiefe entsprechend der verfügbaren Zeit vorzugeben, kann an der Suchgrenze zu Verzerrungen führen, z.b. wenn im nächsten Zug eine Figur ohne Kompensation geschlagen werden kann. Lösung: Bei unruhigen Positionen wird unabhängig von der vorgegebenen Suchtiefe solange weitergesucht, bis eine ruhige Position entstanden ist: Quiescence Search. (Im Schach kann man unruhige Positionen als solche definieren, bei denen etwas geschlagen oder Schach geboten werden kann). Künstliche Intelligenz: 6. Spiele Frank Puppe 10
Suchgrenz-Probleme: Horizont-Problem Problem: Der Gegner kann einen (aus eigener Sicht) katastrophalen Zug machen, den man nicht vermeiden, sondern nur aufschieben kann. Durch das Aufschieben verschwindet der Zug aber hinter den Suchhorizont und geht daher nicht in die Evaluationsfunktion ein. Bisher keine allgemeine Lösung. Beispiel: Schwarz kann den Gewinn von Weiß nicht verhindern, sondern nur durch Schachgebote verzögern. Künstliche Intelligenz: 6. Spiele Frank Puppe 11
Alpha-Beta-Abschneiden Szenario: Wir gut ist ein Minimax-Programm mit Quiescence- Search, das ca. 1000 Schachpositionen pro Sekunde durchsuchen kann? Bei ca. 150 Sekunden Zeit pro Zug kann es 150 000 Stellungen durchsuchen, was bei einem Verzweigungsfaktor von 35 nur 3 bis 4 Halbzügen entspricht! Verbesserungsidee: Rate die jeweils besten Züge und zeige bei den anderen Zugalternativen nur, daß sie schlechter sind: Alpha-Beta-Abschneiden. Es sei in einem Pfad der: Alpha-Wert: Die bisher beste Option für MAX-Knoten. Beta-Wert: Die bisher beste Option für MIN-Knoten. Immer wenn in einem neu untersuchten Teilbaum eine Option gefunden wird, die schlechter bzw. besser ist als die jeweiligen Alpha- bzw. Beta-Werte, wird die Suche dort abgebrochen. Künstliche Intelligenz: 6. Spiele Frank Puppe 12
Beispiel für Alpha-Beta Abschneiden 1 2 3 4 Künstliche Intelligenz: 6. Spiele Frank Puppe 13
Alpha-Beta Suchalgorithmus Verbesserung von Minimax: Merke in jedem Knoten bisher besten Wert für Max: α (init: + ) Merke in jedem Knoten bisher besten Wert für Min: β (init: - ) Sei α die Bewertung des Knoten X Sei β die Bewertung des Knoten Xk Seien X1.. Xn die Nachfolger von X, aus denen Max wählt Seien Xk1.. Xkm die Nachfolger von Xk, aus denen Min wählt Seien Xkj1.. Xkjo die Nachfolger von Xkj, aus denen Max wählt Wenn Eval (Xkj) < α, dann breche Suchzweig für Xk ab. Wenn Eval (Xk) > α, dann setze α in X auf Eval (Xk) Wenn Eval (Xkji) > β, dann breche Suchzweig für Xkj ab. Wenn Eval (Xkj) < β, dann setze β in Xk auf Eval (Xkj) Künstliche Intelligenz: 6. Spiele Frank Puppe 14
Effektivität des Alpha-Beta-Abschneidens Wenn man immer den besten Zug ahnen könnte, sinkt die Komplexität von O(b d ) auf O(b d/2 ). Das bedeutet, daß man in derselben Zeit ca. doppelt so viele Züge vorher berechnen kann! Wenn die Suchtiefe nur wenige Züge (wie beim Schach) ist, umfaßt der Effekt vom Alpha-Beta-Abschneiden bei zufälliger Auswahl eines Zuges immerhin noch O(b 3d/4 ). Durch einfache Tricks kommt man in der Praxis nahe an den optimalen Wert heran: 1. Versuche entsprechend der iterativen Tiefensuche immer die in der letzten Iteration gefundenen besten Züge zuerst; 2. Betrachte Züge in einer bestimmten Reihenfolge, z.b. erst Schlagen & Schachgebote, dann Drohungen, dann Vorwärtsund schließlich Rückwärtszüge. Künstliche Intelligenz: 6. Spiele Frank Puppe 15
(Indeterministische) Spiele mit Zufallsfaktor z.b. bei Würfelspielen mit einem Würfel: 6 Optionen mit 1/6 Wahrscheinlichkeit mit zwei Würfeln: 21 Optionen mit 1/36 (1-1, 2-2 bis 6-6) bzw. 1/18 Wahrscheinlichkeit (übrige Kombinationen) Modifikation von Minimax erforderlich: Statt des exakten Wertes eines Zuges muß der Erwartungswert auf der Basis aller Möglichkeiten berechnet werden: Durchschnitt aller entsprechend ihrer Wahrscheinlichkeit gewichteten Bewertungen So modifizierter Minimax-Algorithmus heißt: Expectiminimax Künstliche Intelligenz: 6. Spiele Frank Puppe 16
Suchbaum für Backgammon Künstliche Intelligenz: 6. Spiele Frank Puppe 17
Einfluß verschiedener Evaluationsfunktionen Bei Expectiminimax spielt nicht nur die Reihenfolge der Bewertungen wie bei Minimax, sondern auch die absolute Zahl eine Rolle. Künstliche Intelligenz: 6. Spiele Frank Puppe 18
Komplexität von Expectiminimax Sei m die Suchtiefe, b die Verzweigungsrate und n die Anzahl der möglichen Würfe, dann ist die Komplexität von Expectiminimax: O(b m n m ) In Spielen wie Backgammon sind daher ca. 2 Halbzüge das Maximum der Suchtiefe (n = 21, b = ca. 20 bis zu 4000). Gute Evaluationsfunktion erforderlich! Künstliche Intelligenz: 6. Spiele Frank Puppe 19
Transfer auf Kartenspiele wie Bridge Indeterminismus durch Anfangsverteilung der Karten, danach deterministisch. Mittelwert über alle Kartenverteilungen bilden (ähnlich wie Expectiminimax) Wegen zu großer Zahl von Kartenverteilungen kann man auch eine repräsentative Stichprobe benutzen. Besonderheiten bei Multiagenten-Spielern (> 2) Handeln um Informationen zu gewinnen dem Partner Informationen signalisieren dem Gegner Informationen vorenthalten (auch durch nicht vorhersagbares Verhalten) Künstliche Intelligenz: 6. Spiele Frank Puppe 20
Neuere Entwicklungen bei Computerspielen Iterative Tiefensuche mit Alpha-Beta-Abschneiden ist Standard bei Strategiespielen mit vollständiger Information Monte-Carlo-Simulation statt vollständiger Suche bei indeterministischen Spielen Lernen durch Selbstspiel und Temporal Difference Learning Speichern von Stellungsbewertungen in Hash-Tabelle Probabilistisches Abschneiden von Suchzweigen Dynamische Erweiterung der Suchtiefe Parallelität (jedoch schwierig bei Alpha-Beta-Abschneiden) Hardwarebasierte Stellungsbewertungen (Linearkombination von Stellungsbewertungen mit Index auf Stellung) Umfangreiche Eröffnungs- und Endspieldatenbanken Bei Dame teilweise komplette Suche von Eröffnung bis Endspiel Künstliche Intelligenz: 6. Spiele Frank Puppe 21
Entwicklungsstand bei verschiedenen Spielen Schach: Weltmeisterniveau Dame: unbestrittener Weltmeister Othello (Reversi): Menschen weigern sich, gegen Computer zu spielen. Bridge: Weltmeisterniveau (Weltmeister 1997, 2000) Backgammon: Unter den 3 besten Spielern. Go: Anfängerniveau. Künstliche Intelligenz: 6. Spiele Frank Puppe 22
Vergleich Weltmeister - Schachcomputer Künstliche Intelligenz: 6. Spiele Frank Puppe 23
Diskussion Minimax und Alpha-Beta-Suche dominieren Computerspielprogramme derart, dass aus theoretischer Sicht interessantere Ansätze keine Chance haben. Insbesondere haben die Programme meist wenig Wissen. Beobachtungen und Alternativen: 1. Evaluationsfunktionen könnten Wahrscheinlichkeitsverteilungen statt exakter Werte liefern. 2. Alpha-Beta-Suche muss alle erlaubten Züge generieren, auch dann wenn es einen klaren Gewinnzug gibt bzw. wenn viele Züge gleichwertig sind. Kriterium, welche Knoten sich nicht zur Expansion lohnen (weil sie wahrscheinlich nicht besser als der aktuell bester Zug sind). 3. Schließen auf der Meta-Ebene: einfaches Beispiel: Alpha- Beta-Abschneiden, komplexeres Beispiel: Verfolgen bestimmter Ziele beim Spiel (z.b. rückständigen Bauern erobern). Künstliche Intelligenz: 6. Spiele Frank Puppe 24
Evaluationsfunktion: Exakte Werte können irreführen Künstliche Intelligenz: 6. Spiele Frank Puppe 25