Praktikum Algorithmen-Entwurf (Teil 7)

Ähnliche Dokumente
Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20

Der Alpha-Beta-Algorithmus

Einführung in Heuristische Suche

Vier Gewinnt Nicolas Schmidt Matthias Dietsche Bernhard Weiß Benjamin Ruile Datum: Tutor: Prof. Schottenloher Spieltheorie

Spieltheorie. Sebastian Wankerl. 16. Juli 2010

KI und Sprachanalyse (KISA)

11.1 Grundlagen - Denitionen

Grundlagen der Künstlichen Intelligenz Einführung Minimax-Suche Bewertungsfunktionen Zusammenfassung. Brettspiele: Überblick

2. Spiele. Arten von Spielen. Kombinatorik. Spieler haben festgelegte Handlungsmöglichkeiten, die durch die Spielregeln definiert werden.

2. Spielbäume und Intelligente Spiele

Spiele als Suchproblem

Künstliche Intelligenz - Optimierungsprobleme - Suche in Spielbäumen

Backtracking mit Heuristiken

Spielregeln für Schach

Kombinatorische Spiele mit Zufallselementen

Schach Spielanleitung/Spielregeln. Brettspielnetz.de Team Copyright 2017 Brettspielnetz.de

Klausur Informatik B April Teil I: Informatik 3

Zug Bart Borg Bart Borg Bart Borg Bart. Bart Borg verloren. Stand Zug Bart Borg Bart Borg Bart Borg

Hackenbusch und Spieltheorie

Wissensbasierte Suche

Grundlagen der Künstlichen Intelligenz

Übersicht. 5. Spiele. I Künstliche Intelligenz II Problemlösen 3. Problemlösen durch Suche 4. Informierte Suchmethoden

Proseminar: Geschichte des Computers Schachprogrammierung Die Digitale Revolution

13. Binäre Suchbäume

Zeichnen von Graphen. graph drawing

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem

Uninformierte Suche in Java Informierte Suchverfahren

Einstieg in die Informatik mit Java

ein Spielbrett mit 126 sechseckigen Feldern in drei Farben 51 Spielfiguren, davon je 17 in einer Farbe:

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln.

Algorithmen und Datenstrukturen VO 3.0 Vorlesungsprüfung 19. Oktober 2007

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Projekt 1: Constraint-Satisfaction-Probleme Abgabe: 7. Juni 2009

Musterlösung MafI 1 - Blatt 5

7. Sortieren Lernziele. 7. Sortieren

14. Rot-Schwarz-Bäume

Spiele (antagonistische Suche) Übersicht. Typen von Spielen. Spielbaum. Spiele mit vollständiger Information

Algorithmen & Datenstrukturen 1. Klausur

Randomisierte Algorithmen

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

Informatik II. PVK Part1 Severin Wischmann n.ethz.ch/~wiseveri

3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr

Debayeringverfahren. 19. Mai Thomas Noack, Nikolai Kosjar. SE Computational Photography - Debayeringverfahren

1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

Masterarbeit. Alpha-Beta-Pruning. Oliver Kock. Bochum, Februar Fakultät für Mathematik Ruhr-Universität Bochum

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Datenstrukturen. einfach verkettete Liste

Handlungsplanung und Allgemeines Spiel Ausblick: GDL-II. Peter Kissmann

DEUTSCH. Der Heilige Hügel. IRLANDS KÖNIGLICHES BRETTSPIEL Spielstufe 1

Folge 13 - Quicksort

Softwareentwicklungspraktikum Nebenfach

Guten Morgen und Willkommen zur Saalübung!

Klausur Algorithmen und Datenstrukturen II 29. Juli 2013

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:

6in1 Deluxe Spiele-Koffer. Spielanleitung

Einführung in die linearen Funktionen. Autor: Benedikt Menne

Spieltheorie Gemischte Strategien

Suchen und Sortieren Sortieren. Heaps

Lösungen zu Ungerade Muster in Pyramiden. Muster: Die Summe der ungeraden Zahlen (in jeder Teilpyramide) ist stets eine Quadratzahl.

KD-Bäume. ein Vortrag von Jan Schaefer

16. All Pairs Shortest Path (ASPS)

Die Formel für die Standardabweichung lautet (ohne die Wurzel haben wir die Varianz):

Referat zum Thema Huffman-Codes

Informatik II, SS 2014

Vortrag. Suchverfahren der Künstlichen Intelligenz. Sven Schmidt (Technische Informatik)

7. Transitive Hülle. Kante des Graphen. Zusatz-Kante der transitiven Hülle

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Dynamisches Huffman-Verfahren

Spieltheorien und Theoreme

Bäume und Wälder. Seminar: Graphentheorie Sommersemester 2015 Dozent: Dr. Thomas Timmermann

Survival of the Fittest Optimierung mittels Genetischer Algorithmen

Spieltheorie. Fabian Schmidt Fabian Schmidt Spieltheorie / 46

Nichtrealistische Darstellung von Gebirgen mit OpenGL

15. Elementare Graphalgorithmen

Der folgende Vortrag basiert auf dem Text A Polynomial Time Algorithm for the N-Queens Problem von Rok Sosic und Jun Gu aus dem Jahre 1990.

14. Algorithmus der Woche Gewinnstrategie für ein Streichholzspiel

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Vom Amateur zum Großmeister

19. Algorithmus der Woche Der Alphabeta-Algorithmus für Spielbaumsuche Wie bringe ich meinen Computer zum Schachspielen?

12.4 Traveling Salesman Problem

Summy Spielanleitung/Spielregeln. Brettspielnetz.de Team Copyright 2017 Corné van Moorsel

Spieltheorie. Miriam Polzer Miriam Polzer Spieltheorie / 40

Anmerkungen zur Übergangsprüfung

Algorithmische Bioinformatik 1

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

Transkript:

Praktikum Algorithmen-Entwurf (Teil 7) 28.11.2005 1 1 Vier gewinnt Die Spielregeln von Vier Gewinnt sind sehr einfach: Das Spielfeld besteht aus 7 Spalten und 6 Reihen. Jeder Spieler erhält zu Beginn des Spiels 21 Steine, ein Spieler grüne, der Andere gelbe. Die Steine können im Raster nur vertikal eingeworfen werden. Die beiden Spieler würfeln zuerst aus, wer beginnt. Abwechselnd werfen die beiden Spieler jeweils einen Stein ihrer Farbe in eine Spalte. Die Steine dürfen in jeder Spalte eingeworfen werden, sofern diese nicht schon mit 6 Steinen voll besetzt ist. Ziel des Spieles ist es, eine durchgehende Reihe von 4 Steinen seiner Farbe zu erhalten. Dabei ist egal, ob diese Reihe vertikal, horizontal oder diagonal ist. Abbildung 1: Vier gewinnt 2 Spielbäume Mit Hilfe von Spielbäumen und den entsprechenden Algorithmen ist es Computern möglich, Strategiespiele zu spielen. Bei diesen Spielen handelt es sich um Zweipersonenspiele, bei denen jeder Spieler vollständig weiß, welche Züge bereits gemacht wurden und welche Züge noch möglich sind. Eine Spielalgorithmus besteht aus folgenden Komponenten: Zuggenerator Aufgabe des Zuggenerators ist es, die möglichen Folgezüge zu ermitteln. Bewertungsfunktion Die Bewertungsfunktion ermittelt für eine gegebene Stellung einen Zahlenwert. Je größer der Betrag dieser Zahl ist, um so besser ist die Stellung. Das Vorzeichen gibt an, für welchen Spieler die Stellung günstig ist. Suchstrategie zum Finden des besten Zuges Ziel ist es, den besten Zug zu ermitteln, wobei aber möglichst wenige Stellungen bewertet werden sollen.

Praktikum Algorithmen-Entwurf (Teil 7) 28.11.2005 2 Die aktuelle Stellung, die möglichen Züge und die daraus resultierenden Folgestellungen werden in einem Suchbaum gespeichert. Jeder Konten im Suchbaum stellt eine mögliche Stellung dar und die Kanten die gültigen Züge, die zu den Stellungen führen. Für komplexe Spiele ist es nicht möglich, den gesamten Spielbaum aufzubauen. Für z.b. Schach wären dazu etwa 10 120 Knoten nötig. Aus diesem Grund baut man nicht den gesamten Spielbaum auf, sondern nur bis zu einer bestimmten Tiefe und bewertet anschließend die erreichten Stellungen (Blätter). Somit hat ein Spieler das Ziel, den Zahlenwert zu maximieren, der Gegner diesen Zahlenwert zu minimieren. 3 Der MiniMax-Algorithmus Beim MiniMax-Algorithmus wird der Spielbaum bis zu einer Tiefe t aufgebaut und jedes Blatt bewertet. Die beiden Spieler sollen hier Max und Min heißen. Aktuelle Stellung Züge von Max 1. Zug Züge von Mix 3 5-2 4-3 8 1 2 2. Zug Abbildung 2: Spielbaum Abb. 3 stellt einen Spielbaum der Tiefe 2 dar. Max ist am Zug. Max hat das Ziel, zu der Stellung zu gelangen, die die höchste Bewertung erhalten hat. Min hat das Ziel, zu der Stellung zu gelangen, die die niedrigste Bewertung erhalten hat Anhand des Spielbaumes kann Max erkennen, daß er mit dem mittleren Zug eine Stellung mit Bewertung 8 erreichen kann. Ist dieser Zug aber auch der beste Zug für Max? Falls Max diesen Zug ausführt kann anschließend Min eine Stellung erreichen, die mit -3 bewertet ist, d.h. falls Max den mittleren Zug ausführt, wird Min nicht den Zug mit Bewertung 8 sondern den Zug mit Bewertung -3 ausführen. Der beste Zug den Max in dieser Situation ausführen kann, ist der rechte Zug. Falls Max diesen Zug macht, kann Min nur eine Stellung mit Bewertung 1 erreichen. Der MiniMax-Algorithmus beginnt die Analyse des Spielbaumes eine Ebene über den Blättern. Ist diese Ebene eine Max-Ebene, so weist er dem Knoten das Maximum der Bewertungen der Kinder zu. Ist diese Ebene eine Min-Ebene, so weist er dem Knoten das Minimum der Bewertungen der Kinder zu. Der Wurzelkonten erhält somit die Bewertung, die Max bestenfalls erreichen kann, falls Min immer den für sich besten Zug wählt.

Praktikum Algorithmen-Entwurf (Teil 7) 28.11.2005 3 function MiniMax(v) if(v ist Blatt) return Bewertung von v else if(v ist M AX-Knoten) Bewertung von v = max{bewertung von c c children(v)} else // v ist MIN-Knoten Bewertung von v = min{bewertung von c c children(v)} 1 Aktuelle Stellung 1. Zug -2-3 1 3 5-2 4-3 8 1 2 2. Zug Abbildung 3: MiniMax-Spielbaum Da das Bewerten einer Stellung sehr rechenaufwendig ist, sollte man sich überlegen, ob die Bewertungsfunktion für jede Stellung aufgerufen werden muss. 4 Das Alpha-Beta-Verfahren Das Alpha-Beta-Verfahren ist eine Verbesserung des MiniMax-Verfahrens. Betrachten wir den Spielbaum in Abb. 4. a b c d e f g 3 5 2 8 Abbildung 4: Spielbaum

Praktikum Algorithmen-Entwurf (Teil 7) 28.11.2005 4 a 3 a b b d e 3 5 d e 3 5 3 a a b c 2 b c 2 d e f 3 5 2 d e f 3 5 2 Abbildung 5: Ablauf Alpha-Beta-Suche Die Knoten erhalten hierbei die in Abb. 5 angegebenen Bewertungen: Als erstes wird der Knoten b mit 3 bewertet. Das bedeutet für die Wurzel a (Max- Knoten), daß ihre Bewertung nicht kleiner sein kann als 3. Betrachten wir die Bewertung von Knoten c, so reicht es aus, nur die Stellung, die durch Knoten f repräsentiert wird zu berechnen. Hier kann Min eine Stellung mit 2 erreichen, das bedeutet, die Bewertung von Knoten c (Min-Knoten) ist 2. Da die Wurzel a ein Max-Konten ist, muß der Knoten g nicht mehr betrachtet werden, da die Wurzel schon eine Bewertung von 3 (> 2) erhalten kann. Mit Hilfe des Alpha-Beta-Verfahrens werden nur die Teile des Spielbaumes aufgebaut, die für eine Bewertung nötig sind. Knuth und Moore haben gezeigt [3], daß im besten Fall dadurch die Anzahl der zu betrachtenden Knoten auf n sinkt. Der beste Fall tritt dann ein, wenn der Zuggenerator immer als erstes den besten Zug ermittelt. Für die Implementierung führt man zwei Hilfsvariablen ein: α und β. Diese beiden Variablen besitzen folgende Eigenschaften: Die Bewertung eines Konten liegt immer zwischen α und β Der α-wert eines Knotens wird nie verringert Der β-wert eines Knotens wird nie erhöht Ist ein Knoten in einer Max-Ebene abgearbeitet, so entspricht seine Bewertung dem α-wert Ist ein Knoten in einer Min-Ebene abgearbeitet, so entspricht seine Bewertung dem β-wert

Praktikum Algorithmen-Entwurf (Teil 7) 28.11.2005 5 function AlphaBeta(v, a, b) α = a β = b if(v ist Blatt) return Bewertung von v else if(v ist M AX-Knoten) foreach child c i of v do α = max{α, AlphaBeta(c i, α, β)} if(α β) break od return α else // v ist MIN-Knoten foreach child c i of v do β = min{β, AlphaBeta(c i, α, β)} if(α β) break od return β Der Aufruf AlphaBeta(a,, + ) berechnet für einen Spielbaum mit Wuzel a den MiniMax-Wert der Wurzel. 5 Optimierungen Bei vielen Spielen haben die Gegner nicht beliebig lange Zeit, um sich für den optimalen Zug zu entscheiden. Meist ist eine bestimmte Zeit für einen oder mehrere Züge festgelegt. Wird diese Zeitschranke überschritten, gewinnt automatisch der Gegner. Eine vorgegebene Zeitschranke stellt für obige Algorithmen aber ein Problem dar. Wählt man die Tiefe des Suchbaums zu groß, kann der Computer innerhalb der vorgegebenen Zeit evtl. keinen Zug bestimmen, ist die Tiefe zu klein gewählt, wird wertvolle Rechenzeit verschenkt. 5.1 Vorsortieren der zulässigen Züge Anhand des AlphaBeta-Algorithmus erkennt man, dass es sinnvoll sein kann, die mögliche Folgezüge nicht in beliebiger Reihenfolge zu bewerten, sondern einen gewinnbringen-

Praktikum Algorithmen-Entwurf (Teil 7) 28.11.2005 6 den Zug zuerst zu bewerten. Mit Hilfe von entsprechenden Heuristiken werden mögliche Folgezüge sortiert und in dieser Reihenfolge im AlphaBeta-Algorithmus betrachtet. Die günstigste Reihenfolge ergibt sich, wenn immer jeder Spieler zuerst den für sich optimalen Zug wählt. 5.2 Hashing von Stellungen Da beim Aufbau des Spielbaumes mehrmals die selbe Stellung erreicht werden kann, kann man die Bewertung einer Stellung in einer Hashtabelle abspeichern. Wird diese Stellung im Spielbaum nochmals erreicht, so muß diese nicht mehr aufwendig bewertet werden, sondern kann gleich aus der Hashtabelle ausgelesen werden. 5.3 Progressiv Deepening Beim Progressiv-Deepening analysiert man zuerst den Spielbaum der Tiefe 1, dann der Tiefe 2, usw. Nachdem die vorgegebene Zeit abgelaufen ist, bricht man die Berechnung ab. Der beste bekannte Zug ist der Zug, der in der noch komplett berechneten vorletzten Ebene ermittelt wurde. Bei der Analyse des zusätzlichen Aufwands geht man davon aus, daß das Bewerten einer Stellung die meiste Rechenzeit kostet. Aus diesem Grund kann man die Analyse der Laufzeit mit der Anzahl der zu bewertenden Stellungen (Knoten) gleichsetzen. Ein vollständiger Baum mit Verzweigungsgrad d hat in Tiefe t d t Knoten. Die Anzahl der Knoten im gesamten Baum beträgt t i=0 d i = dt+1 1 d 1 Das Verhältnis der Anzahl der Blätter in der untersten Ebene und aller inneren Knoten des Spielbaumes beträgt: d t 1 d t (d 1) 1 d 1 Anhand dieser Formel kann man erkennen, daß der Aufwand, um einen Baum mit Grad d = 7 bis Tiefe t 1 zu bewerten nur 1 des Aufwandes beträgt, der nötig ist, um 6 die unterste Ebene zu bewerten. Aus diesem Grund hält sich der Gesamt-Aufwand für Progressiv Deepening in Grenzen. 5.4 Eröffnungs- und Endspielbibliotheken Eine Eröffnungsbibliothek ist schon bis zu einer großen Tiefe vorausberechnet. Die besten Eröffnungskombinationen werden gespeichert und können nachgeschlagen werden. Analog sind in Endspielbibliotheken bestimmte Endspielsituationen vorausberechnet, bzw. Zugkombinationen gespeichert (Matt mit Läufer und Springer, Matt mit Turm und Bauer,...).

Praktikum Algorithmen-Entwurf (Teil 7) 28.11.2005 7 6 Bewertungsfunktion für Vier gewinnt 6.1 Vorsortieren der Züge Folgende Heuristiken bieten sich an: Zuerst Steine in die mittleren Spalten Anzahl der gleichfarbigen benachbarten Steine 6.2 Bewertung der Stellungen Eine Stellung ist um gewinnträchtiger, je mehr Chancen bestehen, noch eine Gewinnstellung erreichen zu können. Da bedeutet, je mehr erreichbare Gewinnstellungen für Max existieren, desto besser, je mehr erreichbare Gewinnstellungen für Min existieren, desto schlechter ist diese Stellung. Als Bewertung einer Stellung bietet sich hier an: Anzahl der möglichen Gewinnstellungen für Max - Anzahl der möglichen Gewinnstellungen für Min. Desweiteren kann man bewerten, wie weit diese Gewinnstellungen schon erreicht wurden, d.h. eine mögliche Viererkombination, die schon mit 3 Steinen belegt ist wird besser bewertet als eine mögliche Viererkombination, die nur mit 2 Steinen belegt ist, usw. Literatur [1] J. Nils Nilsson. Principles of Articial Intelligence. 1982. Springer-Verlag. [2] Patrick Henry Winston. Articial Intelligence. 1993. Addison-Wesley Verlag. [3] D.E. Knuth and R.W. Moore An analysis of Alpha-Beta pruning. Articial Intelligence. 6: 293 326, 1975.