![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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/37.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/38.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/39.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/40.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/41.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/42.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/43.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/44.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/45.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/46.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/47.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/48.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022070710/5ec776db10d7bd5f6f00776b/html5/thumbnails/49.jpg)
EinleitungGeneral Games und Game Description Language
Aufbau eines General Game PlayersDiskussion
Weitere Infos
Weitere Informationen: http://www.general-game-playing.de
31 / 31