Spiele als Suchproblem

Ähnliche Dokumente
Der Alpha-Beta-Algorithmus

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

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

Praktikum Algorithmen-Entwurf (Teil 7)

Grundlagen der Künstlichen Intelligenz

Spieltheorie. Sebastian Wankerl. 16. Juli 2010

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

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

39.1 Alpha-Beta-Suche

5. Spiele. offensichtlich eine Form von Intelligenz. Realisierung des Spielens als Suchproblem

Spieltheorie. Fabian Schmidt Fabian Schmidt Spieltheorie / 46

KI und Sprachanalyse (KISA)

Einführung in die Künstliche Intelligenz. 6. Spiele

Wissensbasierte Suche

Einführung in Heuristische Suche

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

Informatik II - Übung 11

Vorlesung Datenstrukturen

Spieltheorie. Miriam Polzer Miriam Polzer Spieltheorie / 40

2. Spielbäume und Intelligente Spiele

Kasparov versus Deep Blue. Till Tantau. Institut für Theoretische Informatik Universität zu Lübeck

Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015

Binärbäume: Beispiel

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

13. Binäre Suchbäume

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

Teil 14: Rekursive Programmierung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden

Programmiertechnik II

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

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1

Formale Spezialisierungstechniken. am Beispiel des binären Baums. Hybride Programmiersprachen Daniel Krompass Berlin, 2009

5.14 Generics. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

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

Lösungsvorschlag Serie 2 Rekursion

Grundlagen der Künstlichen Intelligenz

Name: Klausur Programmierkonzepte SS 2011

Proseminar: Geschichte des Computers Schachprogrammierung Die Digitale Revolution

Kapitel 1. Exakte Suche nach einem Wort. R. Stiebe: Textalgorithmen, WS 2003/04 11

Präzedenz von Operatoren

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

HEUTE. Effizienzbeispiel: bekannte Version (Übung ) Mathematik: Was ist Effizienz? vollständige Induktion

Ansätze zur Erfassung von Faktoren durch Prüfungsaufgaben. (Diskussionen in Dagstuhl sowie mit Prof. Nickolaus, Technikpädagogik, U Stuttgart)

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

public class MyChoice implements PlayConstants { private PlayGround ground; private YourChoice yours; private int acceptablechoice, value; public

Eine zu Grunde liegende Typdefinition beschreibt eine Struktur, die alle erlaubten Instanzen dieses Typs gemeinsam haben.

Einführung in Suchverfahren

Binärbäume. Prof. Dr. E. Ehses,

Advanced Programming in C

Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1

Kapitel 3. Adversariale Suche Allgemeines Minimax-Algorithmus α-β-pruning Bewertungsfunktionen Mehrspieler-Spiele Spiele mit Zufallskomponenten

II.3.1 Rekursive Algorithmen - 1 -

Einführung: Zustandsdiagramme Stand:

JAVA - Methoden

Customization (Zuschneiden)

Einstieg in die Informatik mit Java

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer

Kostenmaße. F3 03/04 p.188/395

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

Grundlagen der Programmierung

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems

Einführung in die Methoden der Künstlichen Intelligenz

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

Angewandte Mathematik und Programmierung

Programmierkurs Java

Übungen zu Programmierung I - Blatt 8

Intelligente Systeme

Zweizusammenhang und starker Zusammenhang

Welche Informatik-Kenntnisse bringen Sie mit?

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

VBA-Programmierung: Zusammenfassung

Breiten- und Tiefensuche in Graphen

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

11.1 Grundlagen - Denitionen

Datenstrukturen. einfach verkettete Liste

Kombinatorische Spiele mit Zufallselementen

Binäre lineare Optimierung mit K*BMDs p.1/42

Häufige Item-Mengen: die Schlüssel-Idee. Vorlesungsplan. Apriori Algorithmus. Methoden zur Verbessung der Effizienz von Apriori

6 Speicherorganisation

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

Projekt Systementwicklung

Informatik II, SS 2014

Fortgeschrittene Programmiertechnik Klausur WS 2014/15 Angewandte Informatik Bachelor

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Seminar aus maschinellem Lernen MCTS und UCT

Randomisierte Algorithmen 2. Erste Beispiele

Das Heiratsproblem. Definition Matching

18. Vererbung und Polymorphie

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume

Codes und Informationsgehalt

In C und Java müssen Variablen und Methodenergebnisse durch Typangaben erläutert werden. Welche der folgenden Aussagen sind korrekt und welche nicht:

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15.

14. Rot-Schwarz-Bäume

ihrer Klasse benötigt die Funktion einfuegenan:

Taylorentwicklung der k ten Dimension

Transkript:

Spiele als Suchproblem betrachten Spiele für zwei Personen, diese sind abwechselnd am Zug Spiel endet in einem aus einer Menge möglicher Terminalzustände deterministische, im Prinzip zugängliche Umgebung (perfect information), allerdings können wegen des Aufwands evtl. nicht alle Zustände vorausberechnet werden (z.b. Schach: durchschnittlicher Verzweigungsfaktor b = 35, eine Partie besteht evtl. aus 50 Zügen 35 100 Zustände) d.h.: müssen Heuristiken zur Bewertung von Nicht-Terminalknoten verwenden Suche sollte tiefenbegrenzt erfolgen Entscheidungen der Spieler können daher nicht perfekt sein jeder Spieler nimmt von seinem jeweiligen Gegner an, dass dieser eine optimale Strategie spielt Ergebniswerte für die beiden Spieler sind gleich mit entgegengesetztem Vorzeichen (zero-sum games) Erweiterungen zu dieser restriktiven Form von Spielen denkbar: mehr als zwei Spieler Unzugänglichkeit (z.b. Kartenspiele) zufällige Ereignisse Spiele als Suchproblem Grundlagen der KI (IF, AIF), Folie 1

Minimax-Algorithmus double Maximize( tnode node ) { v := - ; FOR EACH sonnode OF node DO v:= max(v, Minimize(sonNode)); return v; double Minimize( tnode node ) { v := ; FOR EACH sonnode OF node DO v:= min(v, Maximize(sonNode)); return v; Minimax-Algorithmus Grundlagen der KI (IF, AIF), Folie 2

Eine Variante von Minimax: Negmax double Negmax( tnode node ) { max := - ; IF( cutofftest() ) { IF( maximizersmove() ) // -- kann z.b. durch Mitführen der aktuellen Tiefe // -- als Parameter für Negmax und Testen auf odd/eval // -- festgestellt werden return Eval(node); ELSE return -Eval(node); FOR EACH son OF node DO { v:= -Negmax(son); IF( v > max ) max := v; return max; NegMax-Algorithmus Grundlagen der KI (IF, AIF), Folie 3

Minimax-Verfahren Aufruf in Entscheidungsfunktion, z.b. für Maximierer: toperator DecideOnMove( tnode node ) { BestMoves = new PriorityQueue(); FOR EACH operator IN <OPERATORS APPLICABLE ON node> { sonnode := <Apply(operator, node)> snnode.operator := operator; BestMoves.SortedInsert(sonNode, Maximize(sonNode)); return BestMoves.GetFirst().getOperator(); derartige -Verfahren sind brute-force Verfahren: es gewinnt i.a. derjenige Algorithmus, der die exakteste Heuristik verwendet und/oder aufgrund seiner Effizienz Züge am weitesten vorhersehen kann. Pruning-Mechanismen zur Effizienzsteigerung Minimax allg. Grundlagen der KI (IF, AIF), Folie 4

Iteratives Vertiefen tpath IterativeDepthSearch( tnode start ) { FOR bound := 0 TO maxbound DO { path := BoundedDepthSearch(start, bound); IF( path!= null ) return path; Tiefenbegrenzte Suche tpath BoundedDepthSearch( tnode start, int bound ) { Grey := new Stack(); Black := new LinkedList(); Grey.Push(start); WHILE(!Grey.Empty() ) { node := Grey.Pop(); Black.Insert(node); IF( isgoal(node) ) return ConstructPath(node); IF( node.depth < bound ) { FOR EACH son OF node { IF(!Grey.Contains(son) &&!Black.Contains(son) ) { son.parent := node; son.depth := node.depth + 1; Grey.Push(son); return null; Iteratives Vertiefen und Tiefenbegrenzte Suche Grundlagen der KI (IF, AIF), Folie 5

Alpha-Beta Pruning Ziel: zu einem möglichst frühen Zeitpunkt im Verlauf der Suche Teilbäume eliminieren, deren Terminalknoten unter Einbeziehung der Strategie des Gegners den Spielausgang nicht mehr beeinflussen können. double Maximize( tnode node, double alpha, double beta ) { FOR EACH sonnode OF node DO { alpha:= max(alpha, Minimize(sonNode, alpha, beta)); IF( alpha beta ) return beta; return alpha; double Minimize( tnode node, double alpha, double beta ) { FOR EACH sonnode OF node DO { beta:= min(beta, Minimize(sonNode, alpha, beta)); IF( beta alpha ) return alpha; return beta; Laufzeitbedarf: im best-case (wir durchmustern beginnend mit dem besten Knoten) O(b d/2 ) d.h. effektiver Verzweigungsfaktor vermindert sich auf b bzw.: wir können in derselben Zeit doppelt so tief suchen wie Minimax. profitiert von Verfahren zum move-ordering Alpha-Beta Pruning Grundlagen der KI (IF, AIF), Folie 6