general game playing - computer science and engineeringmit/gg/teaching/osnabrueck-ki2010... ·...

49
Einleitung General Games und Game Description Language Aufbau eines General Game Players Diskussion General Game Playing Martin G¨ unther [email protected] 17. Juni 2010 1 / 31

Upload: others

Post on 21-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General Game Playing

Martin [email protected]

17. Juni 2010

1 / 31

Page 2: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

Motivation: warum General Game Playing?AAAI General Game Playing Competition

1997: Deep Blue schlagt Kasparov

2 / 31

Page 3: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

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 Algorithmenunmoglich!

Grundprinzip

Ein Schlusselindikator fur Intelligenz ist die Fahigkeit, sich an volligunbekannte Umgebungen anzupassen.

3 / 31

Page 4: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

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 Algorithmenunmoglich!

Grundprinzip

Ein Schlusselindikator fur Intelligenz ist die Fahigkeit, sich an volligunbekannte Umgebungen anzupassen.

3 / 31

Page 5: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

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, Wissensreprasentation

Maschinelles Lernen

Spiel- und Entscheidungstheorie

4 / 31

Page 6: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

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 $ Siegpramie

jeder kann mitmachen

5 / 31

Page 7: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Endliche Spiele mit simultanen Zugen (1)

Endlicher Spiele

endliche Anzahl von Positionen (=”Zustanden“)

1 Anfangszustand, ≥ 1 Endzustande

jedes Spiel in endlicher Anzahl von Zugen beendet

Endliche Spieler

fixe endliche Anzahl Spieler

endliche Anzahl moglicher Zuge (=”Aktionen“)

6 / 31

Page 8: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Endliche Spiele mit simultanen Zugen (1)

Endlicher Spiele

endliche Anzahl von Positionen (=”Zustanden“)

1 Anfangszustand, ≥ 1 Endzustande

jedes Spiel in endlicher Anzahl von Zugen beendet

Endliche Spieler

fixe endliche Anzahl Spieler

endliche Anzahl moglicher Zuge (=”Aktionen“)

6 / 31

Page 9: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Endliche Spiele mit simultanen Zugen (2)

vollstandige Information

vollstandige Information: Spieler kennen gesamten Zustand

Zustand andert sich nur aufgrund der Aktionen der Spieler

kein Zufall

aber: simultane Zuge erlaubt

Beispiele:

Tic-Tac-Toe, Dame, Muhle, Schach, Go, Othello

n-Damen-Problem, Verschiebespiel, Blockwelt

Halma

Schere-Stein-Papier,”Tic-Tic-Toe“

Gegenbeispiele:

Skat, Poker (noch nicht)

Mensch argere dich nicht, Siedler (noch nicht)

Star Craft, Call of Duty

7 / 31

Page 10: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Endliche Spiele mit simultanen Zugen (2)

vollstandige Information

vollstandige Information: Spieler kennen gesamten Zustand

Zustand andert sich nur aufgrund der Aktionen der Spieler

kein Zufall

aber: simultane Zuge erlaubt

Beispiele:

Tic-Tac-Toe, Dame, Muhle, Schach, Go, Othello

n-Damen-Problem, Verschiebespiel, Blockwelt

Halma

Schere-Stein-Papier,”Tic-Tic-Toe“

Gegenbeispiele:

Skat, Poker (noch nicht)

Mensch argere dich nicht, Siedler (noch nicht)

Star Craft, Call of Duty

7 / 31

Page 11: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Endliche Spiele mit simultanen Zugen (2)

vollstandige Information

vollstandige Information: Spieler kennen gesamten Zustand

Zustand andert sich nur aufgrund der Aktionen der Spieler

kein Zufall

aber: simultane Zuge erlaubt

Beispiele:

Tic-Tac-Toe, Dame, Muhle, Schach, Go, Othello

n-Damen-Problem, Verschiebespiel, Blockwelt

Halma

Schere-Stein-Papier,”Tic-Tic-Toe“

Gegenbeispiele:

Skat, Poker (noch nicht)

Mensch argere dich nicht, Siedler (noch nicht)

Star Craft, Call of Duty7 / 31

Page 12: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Spielgraphen: Tic-Tac-Toe

...

oplayer: mark(1,2)

xplayer: mark(2,3)

8 / 31

Page 13: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Spielgraphen: Tic-Tac-Toe mit simultanen Zugen

...

xplayer: mark(1,1)oplayer: mark(1,2)

xplayer: mark(2,3)oplayer: mark(2,3)

9 / 31

Page 14: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Spielgraphen: Tic-Tac-Toe mit No-Ops

...

xplayer: noopoplayer: mark(1,2)

xplayer: mark(2,3)oplayer: noop

10 / 31

Page 15: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Kodierungsmoglichkeiten

Endliche Automaten: astronomisch große Zustandsraume

Listen/Tabellen: s.o.

prozedurale Programme: eine Moglichkeit: Programm schreiben,das legale Zuge und Nachfolgezustande generiert etc.Problem: Analyse der Semantik von prozeduralenProgrammen sehr schwer

Logik: es gibt fertige Interpreter und Compiler; leichter zuanalysieren als prozedurale Kodierungen

11 / 31

Page 16: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Kodierungsmoglichkeiten

Endliche Automaten: astronomisch große Zustandsraume

Listen/Tabellen: s.o.

prozedurale Programme: eine Moglichkeit: Programm schreiben,das legale Zuge und Nachfolgezustande generiert etc.Problem: Analyse der Semantik von prozeduralenProgrammen sehr schwer

Logik: es gibt fertige Interpreter und Compiler; leichter zuanalysieren als prozedurale Kodierungen

11 / 31

Page 17: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Kodierungsmoglichkeiten

Endliche Automaten: astronomisch große Zustandsraume

Listen/Tabellen: s.o.

prozedurale Programme: eine Moglichkeit: Programm schreiben,das legale Zuge und Nachfolgezustande generiert etc.Problem: Analyse der Semantik von prozeduralenProgrammen sehr schwer

Logik: es gibt fertige Interpreter und Compiler; leichter zuanalysieren als prozedurale Kodierungen

11 / 31

Page 18: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Kodierungsmoglichkeiten

Endliche Automaten: astronomisch große Zustandsraume

Listen/Tabellen: s.o.

prozedurale Programme: eine Moglichkeit: Programm schreiben,das legale Zuge und Nachfolgezustande generiert etc.Problem: Analyse der Semantik von prozeduralenProgrammen sehr schwer

Logik: es gibt fertige Interpreter und Compiler; leichter zuanalysieren als prozedurale Kodierungen

11 / 31

Page 19: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Tic-Tac-Toe: Vokabular

Objekt-Konstantenxplayer, oplayer Rollenx, o, b Markierungen

Funktionencell(number,number,mark) Fluentcontrol(player) Fluentmark(number,number) Zug

Relationenrow(number,mark)

column(number,mark)

diagonal(mark)

line(mark)

open

12 / 31

Page 20: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Tic-Tac-Toe: Vokabular

Objekt-Konstantenxplayer, oplayer Rollenx, o, b Markierungen

Funktionencell(number,number,mark) Fluentcontrol(player) Fluentmark(number,number) Zug

Relationenrow(number,mark)

column(number,mark)

diagonal(mark)

line(mark)

open

12 / 31

Page 21: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Tic-Tac-Toe: Vokabular

Objekt-Konstantenxplayer, oplayer Rollenx, o, b Markierungen

Funktionencell(number,number,mark) Fluentcontrol(player) Fluentmark(number,number) Zug

Relationenrow(number,mark)

column(number,mark)

diagonal(mark)

line(mark)

open

12 / 31

Page 22: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

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

Page 23: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Tic-Tac-Toe: Erlaubte Zuge

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

Page 24: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Tic-Tac-Toe: Erlaubte Zuge

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

Page 25: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

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 6= X2) ∨ (Y1 6= Y2))

15 / 31

Page 26: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

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 6= X2) ∨ (Y1 6= Y2))

15 / 31

Page 27: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Tic-Tac-Toe: Update (2)

next(control(xplayer)) <=

true(control(oplayer))

next(control(oplayer)) <=

true(control(xplayer))

16 / 31

Page 28: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

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

Page 29: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

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

Page 30: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Tic-Tac-Toe: Hilfspradikate

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

Page 31: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

Tic-Tac-Toe: Gewinnwerte

goal(xplayer,100) <= line(x)

goal(xplayer,50) <= ¬line(x) ∧ ¬line(o) ∧ ¬opengoal(xplayer,0) <= line(o)

goal(oplayer,100) <= line(o)

goal(oplayer,50) <= ¬line(x) ∧ ¬line(o) ∧ ¬opengoal(oplayer,0) <= line(x)

19 / 31

Page 32: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

HTTP-Kommunikation

Netzwerkmodell:

der Player ist der”Server“

der Gamemaster ist der”Client“

Gamemaster offnet eine TCP-Verbindung zum Player undschickt eine Nachricht

der Player kann Nachrichten nur als Antwort auf eine solcheAnfrage senden

20 / 31

Page 33: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

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

Page 34: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

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

Page 35: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

General GamesSpielbaumeGDLKommunikation mit dem Gamemaster

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

Page 36: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

ArchitekturSpielbaumsucheKonstruktion einer EvaluationsfunktionAndere Metagaming-TechnikenAlternative: Monte Carlo Tree Search

Architektur eines General Game Players

Game Master

Kommunikation

Berechung vonZugen + Positionen

Spielbaumsuche

Spielregeln

Konstruktion einerEvaluationsfunktion

Spielregeln

Positions-bewertungen

legale Zuge,Positionen ...

nachsterZug

Spielregeln nachster Zug

22 / 31

Page 37: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

ArchitekturSpielbaumsucheKonstruktion einer EvaluationsfunktionAndere Metagaming-TechnikenAlternative: Monte Carlo Tree Search

Spielbaumsuche

1-Spieler-Spiele: SMA*, bidirektionale Suche, anderePlanning-Verfahren

2-Spieler-Nullsummen-Spiele mit abwechselnden Zugen: iterierteTiefensuche mit Alpha-Beta

2-Spieler-Nullsummen-Spiele mit simultanen Zugen:von-Neumann-Minimax

≥3-Spieler-Spiele mit abwechselnden Zugen: Paranoid Search,Maxn

sonstige: ???

23 / 31

Page 38: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

ArchitekturSpielbaumsucheKonstruktion einer EvaluationsfunktionAndere Metagaming-TechnikenAlternative: Monte Carlo Tree Search

Spielbaumsuche

1-Spieler-Spiele: SMA*, bidirektionale Suche, anderePlanning-Verfahren

2-Spieler-Nullsummen-Spiele mit abwechselnden Zugen: iterierteTiefensuche mit Alpha-Beta

2-Spieler-Nullsummen-Spiele mit simultanen Zugen:von-Neumann-Minimax

≥3-Spieler-Spiele mit abwechselnden Zugen: Paranoid Search,Maxn

sonstige: ???

23 / 31

Page 39: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

ArchitekturSpielbaumsucheKonstruktion einer EvaluationsfunktionAndere Metagaming-TechnikenAlternative: Monte Carlo Tree Search

Spielbaumsuche

1-Spieler-Spiele: SMA*, bidirektionale Suche, anderePlanning-Verfahren

2-Spieler-Nullsummen-Spiele mit abwechselnden Zugen: iterierteTiefensuche mit Alpha-Beta

2-Spieler-Nullsummen-Spiele mit simultanen Zugen:von-Neumann-Minimax

≥3-Spieler-Spiele mit abwechselnden Zugen: Paranoid Search,Maxn

sonstige: ???

23 / 31

Page 40: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

ArchitekturSpielbaumsucheKonstruktion einer EvaluationsfunktionAndere Metagaming-TechnikenAlternative: Monte Carlo Tree Search

Spielbaumsuche

1-Spieler-Spiele: SMA*, bidirektionale Suche, anderePlanning-Verfahren

2-Spieler-Nullsummen-Spiele mit abwechselnden Zugen: iterierteTiefensuche mit Alpha-Beta

2-Spieler-Nullsummen-Spiele mit simultanen Zugen:von-Neumann-Minimax

≥3-Spieler-Spiele mit abwechselnden Zugen: Paranoid Search,Maxn

sonstige: ???

23 / 31

Page 41: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

ArchitekturSpielbaumsucheKonstruktion einer EvaluationsfunktionAndere Metagaming-TechnikenAlternative: Monte Carlo Tree Search

Spielbaumsuche

1-Spieler-Spiele: SMA*, bidirektionale Suche, anderePlanning-Verfahren

2-Spieler-Nullsummen-Spiele mit abwechselnden Zugen: iterierteTiefensuche mit Alpha-Beta

2-Spieler-Nullsummen-Spiele mit simultanen Zugen:von-Neumann-Minimax

≥3-Spieler-Spiele mit abwechselnden Zugen: Paranoid Search,Maxn

sonstige: ???

23 / 31

Page 42: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

ArchitekturSpielbaumsucheKonstruktion einer EvaluationsfunktionAndere Metagaming-TechnikenAlternative: Monte Carlo Tree Search

Optimierungen

Transpositions-Tabellen (= Hashtable / Graph-Search)

Kombinatorische Spieltheorie

24 / 31

Page 43: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

ArchitekturSpielbaumsucheKonstruktion einer EvaluationsfunktionAndere Metagaming-TechnikenAlternative: 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

Page 44: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

ArchitekturSpielbaumsucheKonstruktion einer EvaluationsfunktionAndere Metagaming-TechnikenAlternative: Monte Carlo Tree Search

Automatische Konstruktion einer Evaluationsfunktion

spielunabhangige Evaluationsfunktionen: Mobility, Novelty

logische Transformationen + Reinforcement Learning

Fuzzy goal distance

26 / 31

Page 45: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

ArchitekturSpielbaumsucheKonstruktion einer EvaluationsfunktionAndere Metagaming-TechnikenAlternative: Monte Carlo Tree Search

Andere Metagaming-Techniken

Metagaming

Metagaming = Schließen uber Eigenschaften von Spielen

Faktorisierung von Spielen

Erkennung von Symmetrien

Regeloptimierung zur schnelleren Berechnung von Positionenund Zugen: rule ordering, conjunct ordering

Opponent Modelling (gegen “dummere” Gegner)

...

27 / 31

Page 46: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

ArchitekturSpielbaumsucheKonstruktion einer EvaluationsfunktionAndere Metagaming-TechnikenAlternative: Monte Carlo Tree Search

Monte Carlo Tree Search (1)

Spielbaumsuche Monte Carlo Tree Search

100 50 0

Horizont

28 / 31

Page 47: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

ArchitekturSpielbaumsucheKonstruktion einer EvaluationsfunktionAndere Metagaming-TechnikenAlternative: Monte Carlo Tree Search

Monte Carlo Tree Search (2)

Wert eines Zuges = Mittelwert der zufalligen Playouts

n1=4v1=20

n3=32v3=80

n=60v=70

n2=24v2=65

... ... ............

29 / 31

Page 48: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

ArchitekturSpielbaumsucheKonstruktion einer EvaluationsfunktionAndere Metagaming-TechnikenAlternative: Monte Carlo Tree Search

Monte Carlo Tree Search (3)

falls Zug mit n = 0: spielePlayout fur diesen Zug

sonst: spiele Playout furden Zug i :

arg maxi

(vi + C ·

√log n

ni

) n1=4v1=20

n3=32v3=80

n=60v=70

n2=24v2=65

... ... ............

30 / 31

Page 49: General Game Playing - Computer Science and Engineeringmit/gg/teaching/Osnabrueck-KI2010... · 2011-09-20 · Einleitung General Games und Game Description Language Aufbau eines General

EinleitungGeneral Games und Game Description Language

Aufbau eines General Game PlayersDiskussion

Weitere Infos

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

31 / 31