General Game Playing



Ähnliche Dokumente
Handlungsplanung und Allgemeines Spiel Game Description Language (GDL) Peter Kissmann

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

Handlungsplanung und Allgemeines Spiel Allgemeine Verbesserungen. Peter Kissmann

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.

Intelligente Systeme

Inhaltliche Planung für die Vorlesung

6. Spiele Arten von Spielen. 6. Spiele. Effizienzverbesserung durch Beschneidung des Suchraums

Einführung in die Methoden der Künstlichen Intelligenz. Suche bei Spielen

Handlungsplanung und Allgemeines Spiel Evaluationsfunktionen. Peter Kissmann

Einführung in die Methoden der Künstlichen Intelligenz. Suche bei Spielen

Grundlagen der Künstlichen Intelligenz

Reinforcement-Learning

Spieltheorie: UCT. Stefan Edelkamp

Überblick. Mathematik und Spiel. Ohne Glück zum Sieg. Bedeutung der Strategie. Zwei Hauptaspekte

Hackenbusch und Spieltheorie

Einführung in Heuristische Suche

Übersicht. Künstliche Intelligenz: 6. Spiele Frank Puppe 1

Deep Blue. Hendrik Baier

General Game Playing (GGP)

Monte Carlo Methoden

Vorlesung: Künstliche Intelligenz

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

Zwei-Spieler-Spiele. Einführung in die Methoden der Künstlichen Intelligenz. Suche bei Spielen. Schach. Schach (2)

Entwicklung einer KI für Skat. Hauptseminar Erwin Lang

Einführung in die AI

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

Einführung in die Methoden der Künstlichen Intelligenz. Klausurvorbereitung Überblick, Fragen,...

Programmierung von Strategiespielen

Programmiersprachen: Klassifizierung und Methoden. Programmier-Paradigmen. Grundlagen der Programmierung 2 (1.C) - 1 -

Intelligente Spiele. Prof. Rolf Haenni. Master-Vorlesung SS run/teachss06.html

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

Zwei-Spieler-Spiele. Einführung in die Methoden der Künstlichen Intelligenz. Suche bei Spielen. Schach. Schach (2)

2. Spielbäume und Intelligente Spiele

Theoretische Informatik I

Programmierkurs Prolog, SS 2000

Seminar Künstliche Intelligenz Wintersemester 2013/14

Logik für Informatiker

RoboCup: Simulierte Fußballroboter p.1/12

Byzantinische Fehlertoleranz durch Gruppenkommunikation am Beispiel des Rampart-Toolkit Frank Mattauch

Grundlagen der Programmierung 2. Operationale Semantik

Theoretische Informatik I

Reinforcement Learning

Künstliche Intelligenz am Zug: Können Programme gegen menschliche Spieler gewinnen?

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

Grundlagen der Künstlichen Intelligenz

TensorFlow Open-Source Bibliothek für maschinelles Lernen. Matthias Täschner Seminar Deep Learning WS1718 Abteilung Datenbanken Universität Leipzig

KI und Sprachanalyse (KISA)

Übersicht zum Vorlesungsinhalt

Wissensbasierte Systeme 5. Brettspiele

Alternative Architekturkonzepte

Perfect Games. Johannes Clos Knowledge Engineering und Lernen in Spielen SS04, Prof. Fürnkranz. 5/18/04 Perfect Games

// MIND2FIND Module & Funktionen

Kapitel 1 Einleitung. Definition: Algorithmus nach M. Broy: aus: Informatik: Eine grundlegende Einführung, Band 1, Springer-Verlag, Berlin

Spieltheorie. Miriam Polzer Miriam Polzer Spieltheorie / 40

Mütze und Handschuhe trägt er nie zusammen. Handschuhe und Schal trägt er immer zugleich. (h s) Modellierung als Klauselmenge

Ergebnisse der schriftlichen Zwischenprüfung Frühjahr 2018 Gärtner/Gärtnerin - Fachrichtung Garten- und Landschaftsbau Zuständige Stelle: Gartenbauzen

Herzlich Willkommen. Spielstrategien. gehalten von Nils Böckmann

Seminar aus maschinellem Lernen MCTS und UCT

Lexikalische Programmanalyse der Scanner

Proseminar: Geschichte des Computers Schachprogrammierung Die Digitale Revolution

Real-time MCTS (4.7) Seminar aus maschinellem Lernen

Bridge. Das Spiel (contract bridge) Probleme. Ginsberg's Intelligent Bridge (GIB) Vergleich: Bridge Baron. Übersicht

3. Übung zur Vorlesung Verteilte Betriebssysteme

Was versteht man unter Intelligenz

AES und Public-Key-Kryptographie

Sprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri

Daniel Krähmer, Lennestr. 43, 4. OG, rechts. WWW: Übungsleiter: Matthias Lang,

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

Kontrollstrukturen und Logik

Programmieren - wie einsteigen? class HelloWorldApp { public static void main(string[] args) { System.out.println("Hello World!

Universität Osnabrück Fachbereich Mathematik / Informatik. 9. Übung. Prof. Dr. rer. nat. Oliver Vornberger Nico Marniok, B. Sc. Erik Wittkorn, B. Sc.

WS 2009/10. Diskrete Strukturen

1. Lernen von Konzepten

Transkript:

General Game Playing Martin Günther mguenthe@uos.de 17. Juni 2010 1 / 31

1997: Deep Blue schlägt Kasparov Motivation: warum General Game Playing? AAAI General Game Playing Competition 2 / 31

Motivation: warum General Game Playing? AAAI General Game Playing Competition Warum General Game Playing? (1) General Game Player sind Systeme, die in der Lage sind eine formale Beschreibung beliebiger Spiele zu verarbeiten auf Grundlage dieser Beschreibung effektiv zu spielen auf ein konkretes Spiel spezialisierte Algorithmen unmöglich! 3 / 31

Motivation: warum General Game Playing? AAAI General Game Playing Competition Warum General Game Playing? (1) General Game Player sind Systeme, die in der Lage sind eine formale Beschreibung beliebiger Spiele zu verarbeiten auf Grundlage dieser Beschreibung effektiv zu spielen auf ein konkretes Spiel spezialisierte Algorithmen unmöglich! Grundprinzip Ein Schlüsselindikator für Intelligenz ist die Fähigkeit, sich an völlig unbekannte Umgebungen anzupassen. 3 / 31

Motivation: warum General Game Playing? AAAI General Game Playing Competition Warum General Game Playing? (2) Relevante Teilgebiete der KI: Computer Game Playing Handlungsplanung automatisches Schließen, Wissensrepräsentation Maschinelles Lernen Spiel- und Entscheidungstheorie 4 / 31

Motivation: warum General Game Playing? AAAI General Game Playing Competition AAAI General Game Playing Competition seit 2005 Wettbewerb auf großer KI-Konferenz (AAAI) 10,000 $ Siegprämie jeder kann mitmachen 5 / 31

Endliche Spiele mit simultanen Zügen (1) Endlicher Spiele endliche Anzahl von Positionen (= Zuständen ) 1 Anfangszustand, 1 Endzustände jedes Spiel in endlicher Anzahl von Zügen beendet 6 / 31

Endliche Spiele mit simultanen Zügen (1) Endlicher Spiele endliche Anzahl von Positionen (= Zuständen ) 1 Anfangszustand, 1 Endzustände jedes Spiel in endlicher Anzahl von Zügen beendet Endliche Spieler fixe endliche Anzahl Spieler endliche Anzahl möglicher Züge (= Aktionen ) 6 / 31

Endliche Spiele mit simultanen Zügen (2) vollständige Information vollständige Information: Spieler kennen gesamten Zustand Zustand ändert sich nur aufgrund der Aktionen der Spieler kein Zufall aber: simultane Züge erlaubt 7 / 31

Endliche Spiele mit simultanen Zügen (2) vollständige Information vollständige Information: Spieler kennen gesamten Zustand Zustand ändert sich nur aufgrund der Aktionen der Spieler kein Zufall aber: simultane Züge erlaubt Beispiele: Tic-Tac-Toe, Dame, Mühle, Schach, Go, Othello n-damen-problem, Verschiebespiel, Blockwelt Halma Schere-Stein-Papier, Tic-Tic-Toe 7 / 31

Endliche Spiele mit simultanen Zügen (2) vollständige Information vollständige Information: Spieler kennen gesamten Zustand Zustand ändert sich nur aufgrund der Aktionen der Spieler kein Zufall aber: simultane Züge erlaubt Beispiele: Tic-Tac-Toe, Dame, Mühle, Schach, Go, Othello n-damen-problem, Verschiebespiel, Blockwelt Halma Schere-Stein-Papier, Tic-Tic-Toe Gegenbeispiele: Skat, Poker (noch nicht) Mensch ärgere dich nicht, Siedler (noch nicht) Star Craft, Call of Duty 7 / 31

Spielgraphen: Tic-Tac-Toe oplayer: mark(1,2)... xplayer: mark(2,3) 8 / 31

Spielgraphen: Tic-Tac-Toe mit simultanen Zügen xplayer: mark(1,1) oplayer: mark(1,2)... xplayer: mark(2,3) oplayer: mark(2,3) 9 / 31

Spielgraphen: Tic-Tac-Toe mit No-Ops xplayer: noop oplayer: mark(1,2)... xplayer: mark(2,3) oplayer: noop 10 / 31

Kodierungsmöglichkeiten Endliche Automaten: astronomisch große Zustandsräume 11 / 31

Kodierungsmöglichkeiten Endliche Automaten: astronomisch große Zustandsräume Listen/Tabellen: s.o. 11 / 31

Kodierungsmöglichkeiten Endliche Automaten: astronomisch große Zustandsräume Listen/Tabellen: s.o. prozedurale Programme: eine Möglichkeit: Programm schreiben, das legale Züge und Nachfolgezustände generiert etc. Problem: Analyse der Semantik von prozeduralen Programmen sehr schwer 11 / 31

Kodierungsmöglichkeiten Endliche Automaten: astronomisch große Zustandsräume Listen/Tabellen: s.o. prozedurale Programme: eine Möglichkeit: Programm schreiben, das legale Züge und Nachfolgezustände generiert etc. Problem: Analyse der Semantik von prozeduralen Programmen sehr schwer Logik: es gibt fertige Interpreter und Compiler; leichter zu analysieren als prozedurale Kodierungen 11 / 31

Tic-Tac-Toe: Vokabular Objekt-Konstanten xplayer, oplayer Rollen x, o, b Markierungen 12 / 31

Tic-Tac-Toe: Vokabular Objekt-Konstanten xplayer, oplayer Rollen x, o, b Markierungen Funktionen cell(number,number,mark) Fluent control(player) Fluent mark(number,number) Zug 12 / 31

Tic-Tac-Toe: Vokabular Objekt-Konstanten xplayer, oplayer Rollen x, o, b Markierungen Funktionen cell(number,number,mark) Fluent control(player) Fluent mark(number,number) Zug Relationen row(number,mark) column(number,mark) diagonal(mark) line(mark) open 12 / 31

Tic-Tac-Toe: Anfangszustand init(cell(1,1,b)) init(cell(1,2,b)) init(cell(1,3,b)) init(cell(2,1,b)) init(cell(2,2,b)) init(cell(2,3,b)) init(cell(3,1,b)) init(cell(3,2,b)) init(cell(3,3,b)) init(control(xplayer)) 13 / 31

Tic-Tac-Toe: Erlaubte Züge legal(p,mark(x,y)) <= true(cell(x,y,b)) true(control(p)) 14 / 31

Tic-Tac-Toe: Erlaubte Züge legal(p,mark(x,y)) <= true(cell(x,y,b)) true(control(p)) legal(xplayer,noop) <= true(control(oplayer)) legal(oplayer,noop) <= true(control(xplayer)) 14 / 31

Tic-Tac-Toe: Update (1) next(cell(x,y,x)) <= does(xplayer,mark(x,y)) next(cell(x,y,o)) <= does(oplayer,mark(x,y)) 15 / 31

Tic-Tac-Toe: Update (1) next(cell(x,y,x)) <= does(xplayer,mark(x,y)) next(cell(x,y,o)) <= does(oplayer,mark(x,y)) next(cell(x1,y1,mark)) <= true(cell(x1,y1,mark)) does(p,mark(x2,y2)) ((X1 X2) (Y1 Y2)) 15 / 31

Tic-Tac-Toe: Update (2) next(control(xplayer)) <= true(control(oplayer)) next(control(oplayer)) <= true(control(xplayer)) 16 / 31

Tic-Tac-Toe: Spielende terminal <= line(x) line(o) terminal <= open open <= true(cell(x,y,b)) 17 / 31

Tic-Tac-Toe: Spielende terminal <= line(x) line(o) terminal <= open open <= true(cell(x,y,b)) line(mark) <= row(x,mark) line(mark) <= column(y,mark) line(mark) <= diagonal(mark) 17 / 31

Tic-Tac-Toe: Hilfsprädikate row(x,mark) <= true(cell(x,1,mark)) true(cell(x,2,mark)) true(cell(x,3,mark)) column(y,mark) <= true(cell(1,y,mark)) true(cell(2,y,mark)) true(cell(3,y,mark)) diagonal(mark) <= true(cell(1,1,mark)) true(cell(2,2,mark)) true(cell(3,3,mark)) diagonal(mark) <= true(cell(1,3,mark)) true(cell(2,2,mark)) true(cell(3,1,mark)) 18 / 31

Tic-Tac-Toe: Gewinnwerte goal(xplayer,100) <= line(x) goal(xplayer,50) <= line(x) line(o) open goal(xplayer,0) <= line(o) goal(oplayer,100) <= line(o) goal(oplayer,50) <= line(x) line(o) open goal(oplayer,0) <= line(x) 19 / 31

HTTP-Kommunikation Netzwerkmodell: der Player ist der Server der Gamemaster ist der Client Gamemaster öffnet eine TCP-Verbindung zum Player und schickt eine Nachricht der Player kann Nachrichten nur als Antwort auf eine solche Anfrage senden 20 / 31

Protokoll = START(<MATCH ID>, <ROLE>, <GAME DESCRIPTION>, <STARTCLOCK>, <PLAYCLOCK>) (Bedenkzeit: <STARTCLOCK> s) = READY 21 / 31

Protokoll = START(<MATCH ID>, <ROLE>, <GAME DESCRIPTION>, <STARTCLOCK>, <PLAYCLOCK>) (Bedenkzeit: <STARTCLOCK> s) = READY = PLAY(<MATCH ID>, <PRIOR MOVES>) (Bedenkzeit: <PLAYCLOCK> s) = <NEXT MOVE>... 21 / 31

Protokoll = START(<MATCH ID>, <ROLE>, <GAME DESCRIPTION>, <STARTCLOCK>, <PLAYCLOCK>) (Bedenkzeit: <STARTCLOCK> s) = READY = PLAY(<MATCH ID>, <PRIOR MOVES>) (Bedenkzeit: <PLAYCLOCK> s) = <NEXT MOVE>... = STOP(<MATCH ID>, <PRIOR MOVES>) = DONE 21 / 31

Architektur Spielbaumsuche Konstruktion einer Evaluationsfunktion Andere Metagaming-Techniken Alternative: Monte Carlo Tree Search Architektur eines General Game Players Positionsbewertungen Konstruktion einer Evaluationsfunktion Spielbaumsuche nächster Zug legale Züge, Positionen... Berechung von Zügen + Positionen Spielregeln Kommunikation Spielregeln Spielregeln nächster Zug Game Master 22 / 31

Spielbaumsuche Architektur Spielbaumsuche Konstruktion einer Evaluationsfunktion Andere Metagaming-Techniken Alternative: Monte Carlo Tree Search 1-Spieler-Spiele: SMA*, bidirektionale Suche, andere Planning-Verfahren 23 / 31

Spielbaumsuche Architektur Spielbaumsuche Konstruktion einer Evaluationsfunktion Andere Metagaming-Techniken Alternative: Monte Carlo Tree Search 1-Spieler-Spiele: SMA*, bidirektionale Suche, andere Planning-Verfahren 2-Spieler-Nullsummen-Spiele mit abwechselnden Zügen: iterierte Tiefensuche mit Alpha-Beta 23 / 31

Spielbaumsuche Architektur Spielbaumsuche Konstruktion einer Evaluationsfunktion Andere Metagaming-Techniken Alternative: Monte Carlo Tree Search 1-Spieler-Spiele: SMA*, bidirektionale Suche, andere Planning-Verfahren 2-Spieler-Nullsummen-Spiele mit abwechselnden Zügen: iterierte Tiefensuche mit Alpha-Beta 2-Spieler-Nullsummen-Spiele mit simultanen Zügen: von-neumann-minimax 23 / 31

Spielbaumsuche Architektur Spielbaumsuche Konstruktion einer Evaluationsfunktion Andere Metagaming-Techniken Alternative: Monte Carlo Tree Search 1-Spieler-Spiele: SMA*, bidirektionale Suche, andere Planning-Verfahren 2-Spieler-Nullsummen-Spiele mit abwechselnden Zügen: iterierte Tiefensuche mit Alpha-Beta 2-Spieler-Nullsummen-Spiele mit simultanen Zügen: von-neumann-minimax 3-Spieler-Spiele mit abwechselnden Zügen: Paranoid Search, Max n 23 / 31

Spielbaumsuche Architektur Spielbaumsuche Konstruktion einer Evaluationsfunktion Andere Metagaming-Techniken Alternative: Monte Carlo Tree Search 1-Spieler-Spiele: SMA*, bidirektionale Suche, andere Planning-Verfahren 2-Spieler-Nullsummen-Spiele mit abwechselnden Zügen: iterierte Tiefensuche mit Alpha-Beta 2-Spieler-Nullsummen-Spiele mit simultanen Zügen: von-neumann-minimax 3-Spieler-Spiele mit abwechselnden Zügen: Paranoid Search, Max n sonstige:??? 23 / 31

Optimierungen Architektur Spielbaumsuche Konstruktion einer Evaluationsfunktion Andere Metagaming-Techniken Alternative: Monte Carlo Tree Search Transpositions-Tabellen (= Hashtable / Graph-Search) Kombinatorische Spieltheorie 24 / 31

Architektur Spielbaumsuche Konstruktion einer Evaluationsfunktion Andere Metagaming-Techniken Alternative: Monte Carlo Tree Search manuell konstruierte Evaluationsfunktionen Beispiel: Materialwert bei Schach h(s) = 9 n(dame, w) + 5 n(turm, w) + + 1 n(bauer, w) 9 n(dame, s) 25 / 31

Architektur Spielbaumsuche Konstruktion einer Evaluationsfunktion Andere Metagaming-Techniken Alternative: Monte Carlo Tree Search Automatische Konstruktion einer Evaluationsfunktion spielunabhängige Evaluationsfunktionen: Mobility, Novelty logische Transformationen + Reinforcement Learning Fuzzy goal distance 26 / 31

Andere Metagaming-Techniken Architektur Spielbaumsuche Konstruktion einer Evaluationsfunktion Andere Metagaming-Techniken Alternative: Monte Carlo Tree Search Metagaming Metagaming = Schließen über Eigenschaften von Spielen Faktorisierung von Spielen Erkennung von Symmetrien Regeloptimierung zur schnelleren Berechnung von Positionen und Zügen: rule ordering, conjunct ordering Opponent Modelling (gegen dümmere Gegner)... 27 / 31

Monte Carlo Tree Search (1) Architektur Spielbaumsuche Konstruktion einer Evaluationsfunktion Andere Metagaming-Techniken Alternative: Monte Carlo Tree Search Horizont 100 50 0 Spielbaumsuche Monte Carlo Tree Search 28 / 31

Monte Carlo Tree Search (2) Architektur Spielbaumsuche Konstruktion einer Evaluationsfunktion Andere Metagaming-Techniken Alternative: Monte Carlo Tree Search Wert eines Zuges = Mittelwert der zufälligen Playouts n=60 v=70 n 1 =4 v 1 =20 n 2 =24 v 2 =65 n 3 =32 v 3 =80.................. 29 / 31

Monte Carlo Tree Search (3) Architektur Spielbaumsuche Konstruktion einer Evaluationsfunktion Andere Metagaming-Techniken Alternative: Monte Carlo Tree Search falls Zug mit n = 0: spiele Playout für diesen Zug sonst: spiele Playout für den Zug i: ( ) log n arg max v i + C i n i n 1 =4 v 1 =20 n=60 v=70 n 2 =24 v 2 =65 n 3 =32 v 3 =80.................. 30 / 31

Weitere Infos Weitere Informationen: http://www.general-game-playing.de 31 / 31