- General Game Playing
Einführung in die Künstliche Intelligenz
Dr. Marco BlockSommersemester 2009
ESES
PP
MEMENNNN
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
General Game Playing -
Einführung in die Künstliche Intelligenz
1Dr. Marco Block-Berlitz
LSLS
SS STST
GG
OO
1) Definition und Geschichte der KI, PROLOG
2) Expertensysteme
3) Logisches Schließen, Resolution
4) Suche und Spieltheorie
5) Optimierungen und Heuristiken (Spieleprogrammierung)
6) Mustererkennung
Übersicht zum Vorlesungsinhalt
6) Mustererkennung
7) Neuronale Netze
8) General Game Playing
9) Reinforcement Learning und Spieleprogrammierung
10) Genetische und evolutionäre Algorithmen
11) Bildverarbeitung
12) Robotik, Pathfinding
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
1) Definition und Geschichte der KI, PROLOG
5) Optimierungen und Heuristiken (Spieleprogrammierung)
9) Reinforcement Learning und Spieleprogrammierung
Dr. Marco Block-Berlitz 2
• Das Spiel Dame (checkers) gilt seit 2007 als „weakly solved“.
• Im Schach sind Maschinen den menschlichen Großmeistern seit den Bestes Programm: Rybka
• Go ist die neue Drosophila melanogaster der Künstlichen Intelligenz, aktuelle Programme haben aber nur Amateur-Niveau
Spiele und Komplexität
Im Vergleich dazu: Anzahl Atome der Erde (51) und Anzahl Atome im Weltall (78)
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
als „weakly solved“. Chinook ist nicht zu besiegen.
Im Schach sind Maschinen den menschlichen Großmeistern seit den 1990‘ern ebenwürdig.
der Künstlichen Intelligenz, aktuelle Programme haben aber nur
Im Vergleich dazu: Anzahl Atome der Erde (51) und Anzahl Atome im Weltall (78)
Dr. Marco Block-Berlitz 3
Schachprogramme sind in der Lage menschliche Weltmeister zu besiegen, aber nicht in der Lage, eine Partie TicTacToe zu spielen.
Spezialisierte Meister
Sommersemester 2009 Dr. Marco Block
Kasparov – Deep(er) Blue 1997 (2.5-3.5)
Dr. Marion Tinsley hatte zwischen 1950-1992 nur 5 Partien verloren.
Niemand hat über eine so lange Zeit ein Spiel so absolut dominiert.
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Schachprogramme sind in der Lage menschliche Weltmeister zu besiegen, aber nicht in der Lage, eine Partie
Dr. Marco Block-Berlitz 4
Tinsley - Chinook 1992 (4-33-2)
† 3. April 1995
Ein Mensch ist in der Lage, anhand von Spielregeln und auf Grund von Spielerfahrungen eigene GewinnKooperationsstrategien zu entwickeln.
Motiviert durch den Homo ludens wollen wir die Machina ludens
Machina ludens
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Ein Mensch ist in der Lage, anhand von Spielregeln und auf Grund von Spielerfahrungen eigene Gewinn- und
Machina ludens entwickeln.
Dr. Marco Block-Berlitz 5
Abbildung aus [1]
Große Herausforderung:
- eine allgemeine, formale Sprache wird benötigt, um Spiele zu beschreiben
Spieler: weiss, schwarz
Spielbrett: 8x8 Brettmatrix
Spielfiguren und Aktionsmöglichkeiten
... und so weiter
Machina ludens - Herausforderung
Sommersemester 2009 Dr. Marco Block
- Erkenntnisse und Konzepte aus spezialisierten Programmen zu allgemein gültigen Lösungen transformieren und vereinigen
MinMax-Prinzip, Alpha-Beta-Pruning, Evaluationsfunktion
Logisches Schließen
Transpositionstabellen
Eröffnungs- und Endspieldatenbanken
Maschinelles Lernen zur Optimierung und Kallibrierung
Aber: Machina ludens kann nie besser sein, als eine speziell an eine Domain angepasste Lösung!
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
eine allgemeine, formale Sprache wird benötigt, um Spiele zu beschreiben
Spielfiguren und Aktionsmöglichkeiten
Abbildung aus [1]
Dr. Marco Block-Berlitz 6
Bisher hatte der Mensch als Lehrer Kriterien für eine Bewertungsfunktion
vorgeschlagen (Expertensystem)
Erkenntnisse und Konzepte aus spezialisierten Programmen zu allgemein gültigen Lösungen
Pruning, Evaluationsfunktion
und Endspieldatenbanken
Maschinelles Lernen zur Optimierung und Kallibrierung
kann nie besser sein, als eine speziell an eine Domain angepasste Lösung!
Machina ludens – Warum das Ganze?
Das führt uns zu der Frage: Was ist ein Spiel?
Wenn wir soziale, biologische, politische, wirtschaftliche Zusammenhängeebenfalls formal beschreiben können und Agenten haben, die logische, korrekteEntscheidungen treffen können, verstehen wir uns und vielleicht sehr viel besser.
Sommersemester 2009 Dr. Marco Block
- eine formale Sprache für Spiele läßt sich erweitern
- die KI wird mitwachsen
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Abbildung aus [1]
Wenn wir soziale, biologische, politische, wirtschaftliche Zusammenhängeebenfalls formal beschreiben können und Agenten haben, die logische, korrekte
und Intelligenz vielleicht
Dr. Marco Block-Berlitz 7
Machina ludens – PART I
1) Wir definieren eine allgemeine, formale Sprache für die Beschreibungvon Spielen.
2) Wir entwerfen eine KI, die GDL versteht und mittels Suche und allgemeinemWissen die richtigen Entscheidungen trifft, um ein Spiel zu gewinnen.
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Abbildung aus [1]
Wir definieren eine allgemeine, formale Sprache für die Beschreibung
2) Wir entwerfen eine KI, die GDL versteht und mittels Suche und allgemeinemWissen die richtigen Entscheidungen trifft, um ein Spiel zu gewinnen.
Dr. Marco Block-Berlitz 8
Game Description Language (GDL) seit 2005 [2]
Spiele können mit der formalen Sprache GDL beschrieben werden. Entwickelt wurde diese an der Stanford-University von Michael Genesereth. Eigenschaften der beschreibbaren Spiele sind:
• alle Spieler haben Zugriff auf die vollständigen Informationen des aktuellen Spielzustandes und des bisher geschehenen Spielverlaufes
• es gibt keine Zufallsereignisse
• das Spiel ist rundenbasiert
Formale Sprachen für Spielbeschreibungen
• es gibt keine Kommunikation und keine Kooperation zwischen Agenten
Es werden viele Turniere ausgetragen, z.B. bei der AAAI.
Extended General Gaming Model (EGGM) seit 2007
Objektorientierte Sprache, mit der auch wahrscheinlichkeitsbasierte Spiele formal beschreibbar sind (nicht kompatibel zu GDL).
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Spiele können mit der formalen Sprache GDL beschrieben werden. Entwickelt wurde diese an der University von Michael Genesereth. Eigenschaften der beschreibbaren Spiele sind:
alle Spieler haben Zugriff auf die vollständigen Informationen des aktuellen Spielzustandes und
Formale Sprachen für Spielbeschreibungen
es gibt keine Kommunikation und keine Kooperation zwischen Agenten
Es werden viele Turniere ausgetragen, z.B. bei der AAAI.
Extended General Gaming Model (EGGM) seit 2007 [3]
Objektorientierte Sprache, mit der auch wahrscheinlichkeitsbasierte Spiele formal beschreibbar sind
Dr. Marco Block-Berlitz 9
Ein-Spieler-Spiel dargestellt als State Machine
Zustandsautomaten
Aktionen lassen sich für Multi-Spieler-Spiele kombiniert darstellen
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Spiele kombiniert darstellen
Dr. Marco Block-Berlitz 10
Abbildungen aus [4]
Schauen wir uns ein paar Code-Beispiele in GDL an.
Beispiel 1:
General Description Language – Beispiele in Pseudo
Konstanten
Variablen
Sommersemester 2009 Dr. Marco Block
Beispiel 2 (Pattern matching):
Beispiel 3 (Substitution):
Beispiel 4 (Rekursion):
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Beispiele in Pseudo-GDL
Fakten/Atome
Regeln
Konstanten
Variablen
Lösungen für q, r und s:
Dr. Marco Block-Berlitz 11
Negation
Beispiel aus [4]
Eine Regel gilt genau dann als sicher, wenn jede Variable im Kopf in einem positiven
Subgoal im Funktionskörper erscheint.
General Description Language - Sicherheit
In GDL müssen alle Regeln sicher sein.
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
, wenn jede Variable im Kopf in einem positiven
Sicherheit
Sicher
Dr. Marco Block-Berlitz 12
Unsicher
Abhängigkeiten der Regeln lassen sich durch einen gerichteten Graphen veranschaulichen.
General Description Language – Dependency Graph
r(X,Y) :- p(X,Y) & q(X,Y)
s(X,Y) :- r(X,Y)
s(X,Z) :- r(X,Y) & t(Y,Z)
t(X,Z) :- s(X,Y) & s(Y,X)
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Abhängigkeiten der Regeln lassen sich durch einen gerichteten Graphen veranschaulichen.
Dependency Graph
s
t Schichten
Dr. Marco Block-Berlitz 13
r
p q
Beispiel aus [4]
Eine Negation gilt genau dann als geschichtet (stratified), wenn es keine rekursiven Zyklen
gibt, an denen die Negation beteiligt ist.
General Description Language – Geschichtete Negation
r(X,Z) :- p(X,Y)
r(X,Z) :- p(X,Y) & ~r(Y,Z)
In GDL müssen alle Negationen geschichtet sein.
Sommersemester 2009 Dr. Marco Block
t(X,Y) :- q(X,Y) & ~r(X,Y)
r(X,Z) :- p(X,Y)
r(X,Z) :- r(X,Y) & r(Y,Z)
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
(stratified), wenn es keine rekursiven Zyklen
Geschichtete Negation
r
p
Dr. Marco Block-Berlitz 14
Beispiel aus [4]
nicht geschichtet
t
q r
p
geschichtet
Eine Rekursion gilt genau dann als geschichtet (stratified), wenn jede Variable des Kopfes in
einem Subgoal auftaucht, das in eine niedrigere Schicht führt.
General Description Language – Geschichtete Rekursion
r(X,Z) :- p(X,Y) & q(Z) & r(Y,Z)
In GDL müssen alle Rekursionen geschichtet sein.
Sommersemester 2009 Dr. Marco Block
r(X,Z) :- r(X,Y) & r(Y,Z)
r(X,Z) :- p(X,Y) & q(X) & r(Y,Z)
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
(stratified), wenn jede Variable des Kopfes in
einem Subgoal auftaucht, das in eine niedrigere Schicht führt.
Geschichtete Rekursion
p(X,Y) & q(Z) & r(Y,Z)
geschichtet
Dr. Marco Block-Berlitz 15
Beispiel aus [4]
nicht geschichtet
p(X,Y) & q(X) & r(Y,Z)
Analog zu PROLOG lassen sich in GDL Spiele durch
TicTacToe in Pseudo-GDL
Sommersemester 2009 Dr. Marco Block
Alle fett gedruckten Relationensind in GDL vordefiniert.
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Analog zu PROLOG lassen sich in GDL Spiele durch Fakten und Regeln beschreiben
Dr. Marco Block-Berlitz 16
TicTacToe Code aus [4]
Für einen Zustand beim Spiel TicTacToe sind die Belegungen der Felder wichtig. Desweiteren muss
bekannt sein, welcher Spieler am Zug ist (control).
Repräsentation eines Zustands
Weiss
Sommersemester 2009 Dr. Marco Block
Schwarz
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Für einen Zustand beim Spiel TicTacToe sind die Belegungen der Felder wichtig. Desweiteren muss
Dr. Marco Block-Berlitz 17
Beispiel aus [4]
Ermittlung der legalen Züge (Zuggenerator)
In Abhängigkeit vom aktuellen Zustand und dem aktuell aktiven Spieler, können Regeln (legal)
für Zugmöglichkeiten abgeleitet werden. In diesem Fall markieren (mark) wir die möglichen
Zugfelder.
Sommersemester 2009 Dr. Marco Block
Weiss steht keine Operation (noop)
zur Verfügung
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Ermittlung der legalen Züge (Zuggenerator)
In Abhängigkeit vom aktuellen Zustand und dem aktuell aktiven Spieler, können Regeln (legal)
für Zugmöglichkeiten abgeleitet werden. In diesem Fall markieren (mark) wir die möglichen
Aktueller Zustand:
Dr. Marco Block-Berlitz 18
Weiss steht keine Operation (noop)
zur Verfügung
Schwarz kann auf alle leeren Felder
setzen
Beispiel aus [4]
Wenn ein Zug ausgewählt wurde, muss der Zustand aktualisiert werden und die Kontrolle der
Spieler gewechselt werden.
Aktualisierung des Zustands
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Wenn ein Zug ausgewählt wurde, muss der Zustand aktualisiert werden und die Kontrolle der
Dr. Marco Block-Berlitz 19
black
mark(1,3)
change control
Beispiel aus [4]
Die Regel next im Spiel TicTacToe:
Aktualisierung des Zustands
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Dr. Marco Block-Berlitz 20
Beispiel aus [4]
Control wechseln
Durch die Definition geeigneter Makros (Regeln) lassen sich die gewünschten Spielformulieren.
Definition von Makros
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Durch die Definition geeigneter Makros (Regeln) lassen sich die gewünschten Spiel-Eigenschaften besser
Dr. Marco Block-Berlitz 21
Beispiel aus [4]
Im Falle eines Sieges gibt es den Wert 100, bei Unentschieden 50 und bei Niederlage 0 Punkte (per Definition). Mit der Relation goal definieren wir Ziele (auch Zwischenziele) und über wir Situationen für ein Spielende.
Ziele und Spielende
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Im Falle eines Sieges gibt es den Wert 100, bei Unentschieden 50 und bei Niederlage 0 Punkte (per l definieren wir Ziele (auch Zwischenziele) und über terminal beschreiben
Dr. Marco Block-Berlitz 22
Beispiel aus [4]
Es lassen sich Spieler über die Relation role im Spiel anmelden.
Eine Übersicht der in GGP vordefinierten Relationen:
role(a) means that a is a role / player in the game
Rollen und GGP-Vokabular
init(p) means that the datum p is true in the initial state
true(p) means that the datum p is true in the current state
does(r,a) means that player r performs action
next(p) means that the datum p is true in the next state
legal(r,a) means it is legal for r to play a in the current state
goal(r) means that player r's goal is achieved in the current state
terminal means that the current state is a terminal state
GDL-Spezifikation: http://games.stanford.edu/language/language.html
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
im Spiel anmelden.
Eine Übersicht der in GGP vordefinierten Relationen:
is a role / player in the game
in the initial state
in the current state
performs action a in the current state
in the next state
in the current state
is achieved in the current state
means that the current state is a terminal state
http://games.stanford.edu/language/language.html
Dr. Marco Block-Berlitz 23
Beispiel aus [4]
Definition 21 (Termination): A game description in GDL terminates if all infinite sequences of legal moves from the initial state of the game reach a terminal state after a finite number of steps.
Definition 22 (Playability): A game description in GDL is playable if and only if every role has at least one legal move in every non-terminal state reachable from the initial state.
Definition 23 (Monotonicity): A game description in GDL is monotonic if and only if every role has exactly one goal value in every state reachable from the initial state, and goal values never decrease.
Definition 24 (Winnability): A game description in GDL is strongly winnable if and only if, for some role, there is a sequence of individual moves of that role that leads to a terminal state of the game where that role's goal value is
„Well-formed Games“ in GDL
maximal. A game description in GDL is weakly winnable if and only if, for every role, there is a sequence of joint moves of all roles that leads to a terminal state where that role's goal value is
Definition 25 (Well-formed Games): A game description in GDL is wellis both playable and weakly winnable.
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
A game description in GDL terminates if all infinite sequences of legal moves from the initial state of the game reach a terminal state after a finite number of steps.
A game description in GDL is playable if and only if every role has at least one legal terminal state reachable from the initial state.
A game description in GDL is monotonic if and only if every role has exactly one goal value in every state reachable from the initial state, and goal values never decrease.
A game description in GDL is strongly winnable if and only if, for some role, there is a sequence of individual moves of that role that leads to a terminal state of the game where that role's goal value is maximal. A game description in GDL is weakly winnable if and only if, for every role, there is a sequence of joint moves of all roles that leads to a terminal state where that role's goal value is maximal.
A game description in GDL is well-formed if it terminates, is monotonic, and
Dr. Marco Block-Berlitz 24
Achtung: In GDL lassen sich auch nicht „well-formed Games“
definieren.
In der Spielbeschreibung lesen (und interpretieren) wir:
Der Computer-Spieler versteht nur das:
Keine vordefinierten Annahmen
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
In der Spielbeschreibung lesen (und interpretieren) wir:
Dr. Marco Block-Berlitz 25
Es gibt also keine semantischen Informationen!
Beispiel aus [4]
KIF (Knowledge Interchange Format) ist ein Standardformat für den logischen Wissensaustausch.
Die gegebenen Hornklauseln der Form (ähnlich der PROLOG
werden dabei in Prefix-Schreibweise umgestellt.
GDL in KIF
Operatoren werden umbenannt und die Variablen erhalten das Symbol ‚?‘.
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
KIF (Knowledge Interchange Format) ist ein Standardformat für den logischen Wissensaustausch.
Die gegebenen Hornklauseln der Form (ähnlich der PROLOG-Syntax)
Operatoren werden umbenannt und die Variablen erhalten das Symbol ‚?‘.
Dr. Marco Block-Berlitz 26
Beispiel aus [4]
TicTacToe in GDL (KIF)
(role x)
(role o)
(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))
(<= (row ?x ?player)
(true (cell ?x 1 ?player))
(true (cell ?x 2 ?player))
(true (cell ?x 3 ?player)))
(<= (column ?y ?player)
(true (cell 1 ?y ?player))
(true (cell 2 ?y ?player))
(true (cell 3 ?y ?player)))
(<= (diagonal ?player)
(true (cell 1 1 ?player))
(<= (next (cell ?x ?y ?player))
(does ?player (mark ?x ?y)))
Sommersemester 2009 Dr. Marco Block
(init (cell 3 1 b))
(init (cell 3 2 b))
(init (cell 3 3 b))
(init (control x))
(<= (next (cell ?x ?y ?player))
(does ?player (mark ?x ?y)))
(<= (next (cell ?x ?y ?mark))
(true (cell ?x ?y ?mark))
(does ?player (mark ?m ?n))
(distinctCell ?x ?y ?m ?n))
(<= (next (control x))
(true (control o)))
(<= (next (control o))
(true (control x)))
(true (cell 1 1 ?player))
(true (cell 2 2 ?player))
(true (cell 3 3 ?player)))
(<= (diagonal ?player)
(true (cell 1 3 ?player))
(true (cell 2 2 ?player))
(true (cell 3 1 ?player)))
(<= (line ?player) (row ?x ?player))
(<= (line ?player) (column ?y ?player))
(<= (line ?player) (diagonal ?player))
(<= open (true (cell ?x ?y b)))
(<= (distinctCell ?x ?y ?m ?n) (distinct ?x ?m))
(<= (distinctCell ?x ?y ?m ?n) (distinct ?y ?n))
(<= (legal ?player (mark ?x ?y))
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
(true (control ?player)))
(<= (legal x noop)
(true (control o)))
(<= (legal o noop)
(true (control x)))
(<= (goal ?player 100)
(line ?player))
(<= (goal ?player 50)
(not (line x))
(true (cell ?x 1 ?player))
(true (cell ?x 2 ?player))
(true (cell ?x 3 ?player)))
(true (cell 1 ?y ?player))
(true (cell 2 ?y ?player))
(true (cell 3 ?y ?player)))
(true (cell 1 1 ?player))
next(cell(M,N,P)) :-
does(P,mark(M,N))
(not (line x))
(not (line o))
(not open))
(<= (goal ?player1 0)
(line ?player2)
(distinct ?player1 ?player2))
(<= (goal ?player 0)
(not (line x))
(not (line o))
open)
(<= terminal
(line ?player))
(<= terminal
(not open))
Dr. Marco Block-Berlitz 27
(true (cell 1 1 ?player))
(true (cell 2 2 ?player))
(true (cell 3 3 ?player)))
(true (cell 1 3 ?player))
(true (cell 2 2 ?player))
(true (cell 3 1 ?player)))
(<= (line ?player) (row ?x ?player))
(<= (line ?player) (column ?y ?player))
(<= (line ?player) (diagonal ?player))
(<= open (true (cell ?x ?y b)))
(<= (distinctCell ?x ?y ?m ?n) (distinct ?x ?m))
(<= (distinctCell ?x ?y ?m ?n) (distinct ?y ?n))
(<= (legal ?player (mark ?x ?y))
Beispiel aus [4]
Es gibt verschiedene Basis-Engines (verschiedene Programmiersprachen) im Netz zu finden:
http://www.general-game-playing.de/downloads.html
Wir werden uns mit einer Java-Engine vertraut machen. Dazu bietet es sich an, die (Plugin für Eclipse) zu verwenden.
Der Code und die ersten Schritte werden später von Johannes Kulick vorgestellt.
Eine eigene GDL-KI schreiben
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Engines (verschiedene Programmiersprachen) im Netz zu finden:
playing.de/downloads.html
vertraut machen. Dazu bietet es sich an, die Palamedes-IDE
Der Code und die ersten Schritte werden später von Johannes Kulick vorgestellt.
[5]
Dr. Marco Block-Berlitz 28
Machina ludens – PART II
1) Wir definieren eine allgemeine, formale Sprache für die Beschreibungvon Spielen.
2) Wir entwerfen eine KI, die GDL versteht und mittels Suche und allgemeinemWissen die richtigen Entscheidungen trifft, um ein Spiel zu gewinnen.
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Abbildung aus [1]
1) Wir definieren eine allgemeine, formale Sprache für die Beschreibung
Wir entwerfen eine KI, die GDL versteht und mittels Suche und allgemeinemWissen die richtigen Entscheidungen trifft, um ein Spiel zu gewinnen.
Dr. Marco Block-Berlitz 29
Aus den vorhergehenden Vorlesungen kennen wir bereits die wichtigsten Suchauf dem MinMax-Prinzip für Zwei-Spieler-Spiele.
Ein sehr wichtige Rolle spielt dabei die Bewertungsfunktion:
Kombination aus Suche und Bewertung
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Aus den vorhergehenden Vorlesungen kennen wir bereits die wichtigsten Such-Techniken basierend
Ein sehr wichtige Rolle spielt dabei die Bewertungsfunktion:
Dr. Marco Block-Berlitz 30
Monte-Carlo-Verfahren basieren auf durchgeführtenwird der oft zu große Suchraum (beispielsweise beimSituation eine Bewertung vorzunehmen. Dazu werdendurchgespielt, bis diese in einer terminalen Stellungeine Bewertung den Zustand s.
Monte-Carlo-Suche
Sommersemester 2009 Dr. Marco Block
Vollständige (Adversariale-)Suche
Begrenzung der Tiefe + Bewertungsfunktion
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Zufallsexperimenten. In dem Fall der Monte-Carlo-Suchebeim Spiel Go) zufällig abgetastet, um für eine konkrete
werden viele zufälligen Spielverläufen (ab einem Zustand s)Stellung enden. Die so statistisch ermittelten Ergebnisse geben
Von den aktuell ausgewerteten Knoten wird der beste um seine Nachfolger erweitert und diese zufällig ausgespielt, um eine
Bewertung zu erhalten.
Dr. Marco Block-Berlitz 31
Bestensuche + zufällige Spielausgänge
Abbildungen aus [8]
Wir haben vier Phasen bei der Monte-Carlo-Suche: Auswahl,
Monte-Carlo-Suche
Sommersemester 2009 Dr. Marco Block
Problem: der komplette Baum muss gespeichert werden.
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Auswahl, Expansion, Ausspielen, Werte updaten
Dr. Marco Block-Berlitz 32
Abbildung aus [9]
der komplette Baum muss gespeichert werden.
Beim Ausspielen einer Stellung wird ein zufälliger SpielausgangErgebnis als Bewertung in die Baumstruktur übernommen
Zufallsspiele
Zufallsspiel(State s)
1 if Leaf(s) then Ergebnis {gewonnen || verloren}
2 else
3 Kinder_von_s := bestimmeKinder(s)
4 nextState := randomKind(Kinder_von_s)
Sommersemester 2009 Dr. Marco Block
4 nextState := randomKind(Kinder_von_s)
5 Zufallsspiel(nextState)
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Spielausgang ermittelt und dasübernommen.
1 if Leaf(s) then Ergebnis {gewonnen || verloren}
3 Kinder_von_s := bestimmeKinder(s)
4 nextState := randomKind(Kinder_von_s)
Dr. Marco Block-Berlitz 33
4 nextState := randomKind(Kinder_von_s)
Im Spiel Go hat sich UCT als Erweiterung der Monteliefert die bisher besten Ergebnisse.
„Im Allgemeinen gibt es zwei Möglichkeiten den SpielbaumEinen kann in jedem Durchlauf ein bisher unbekannterum neue Informationen zu sammeln. Dabei ist esoptimaler Pfad gefunden wurde. Zum Anderen kannPfad gewählt werden, der einmal zum Ziel geführteinen besseren (z.B. kürzeren) unentdeckten Pfad gibtdiesen beiden Möoglichkeiten wird über die UCT-Funktion
Upper Confidence Bounds for Trees (UCT)
Sommersemester 2009 Dr. Marco Block
Gewinnwahrscheinlichkeit bei der Aktion a in Zustand s
„Neues Terrain erkunden„Wissen optimal einsetzen
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Monte-Carlo-Suche etabliert und
Spielbaum zu durchlaufen: Zumunbekannter Pfad eingeschlagen werden,
es nicht relevant, ob schon einkann immer der bisher optimalste
hat, unabhängig davon, ob esgibt. Ein Kompromiss zwischen
Funktion geschaffen:“ [9]
Upper Confidence Bounds for Trees (UCT)
Dr. Marco Block-Berlitz 34
Häufigkeit der Wahl von Aktion a in Zustand s
Häufigkeit aller ausgewählten Aktionen in Zustand s
Gewichtung zwischen Neues Terrain erkunden“ und
Wissen optimal einsetzen“
Die Selektionsfunktion (Auswahl) wählt die Aktion a mit
Zurück-Propagation:
Upper Confidence Bounds for Trees (UCT)
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
mit dem höchsten Wert aus:
Upper Confidence Bounds for Trees (UCT)
Dr. Marco Block-Berlitz 35
Reward aus {0 für Niederlage,1 für Sieg}
Wir erinnern uns an die speziellen Bewertungskriterien eines Schachprogramms:
Spezielle Bewertungsfunktionen für Schachprogramme
BishopPair
Knight_Outpost
Supported_Knight_Outpost
Connected_Rooks
Opposite_Bishops
Opening_King_Advance
King_Proximity
Blocked_Knight
Draw_Value
No_Material
Passed_Pawn_Control
Doubled_Pawn
Odd_Bishop_Pawn_Pos
King_Passed_Pawn_Supported
Passed_Pawn_Rook_Supported
Blocked_EPawn
Pawn_Advance
King_Passed_Pawn_Defence
Pawn_Defence
Mega_Weak_Pawn
Sommersemester 2009 Dr. Marco Block
No_Material
Bishop_XRay
Rook_Pos
Pos_Base
Pos_Queenside
Bishop_Mobility
Queen_Mobility
Knight_SMobility
Rook_SMobility
King_SMobility
Threat
Overloaded_Penalty
Q_King_Attack_Opponent
NoQ_King_attack_Opponent
NoQueen_File_Safty
Attack_Value
Unsupported_Pawn
Mega_Weak_Pawn
Castle_Bonus
Bishop_Outpost
Supported_Bishop_Outpost
Seventh_Rank_Rooks
Early_Queen_Movement
Mid_King_Advance
Trapped_Step
Useless_Piece
Near_Draw_Value
Mating_Positions
Ending_King_Pos
Knight_Pos
Pos_Kingside
Knight_Mobility
Rook_Mobility
King_Mobility
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Wir erinnern uns an die speziellen Bewertungskriterien eines Schachprogramms:
Spezielle Bewertungsfunktionen für Schachprogramme
Passed_Pawn_Control
Odd_Bishop_Pawn_Pos
King_Passed_Pawn_Supported
Passed_Pawn_Rook_Supported
King_Passed_Pawn_Defence
Bishop_SMobility
Queen_SMobility
Piece_Values
Opponents_Threat
Q_King_Attack_Computer
NoQ_King_Attack_Computer
Queen_File_Safty
Piece_Trade_Bonus
Pawn_Trade_Bonus
Adjacent_Pawn
Dr. Marco Block-Berlitz 36
Supported_Bishop_Outpost
Seventh_Rank_Rooks
Early_Queen_Movement
Mid_King_Advance
Near_Draw_Value
Mating_Positions
Ending_King_Pos
Knight_Mobility
Adjacent_Pawn
Unstoppable_Pawn
Weak_Pawn
Blocked_Pawn
Passed_Pawn_Rook_Attack
Blocked_DPawn
Pawn_Advance
Pawn_Advance2
Pawn_Pos
Isolated_Pawn
Weak_Pawn_Attack_Value
... und viele mehr!
Es ist sehr schwer allgemeine Kriterien zu formulieren, aber ein paar erwiesen.
Analog zu Schachprogrammen
Allgemeine Bewertungskriterien
- Logisches Ableiten von Bewertungskriterien basierend auf den Goals
- Kalibrierung der Mixgewichte (alpha‘s) -> gibt es in der nächsten Vorlesung
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Es ist sehr schwer allgemeine Kriterien zu formulieren, aber ein paar Heuristiken haben sich als „gut“
Logisches Ableiten von Bewertungskriterien basierend auf den Goals
> gibt es in der nächsten Vorlesung
Dr. Marco Block-Berlitz 37
Mit der International General Game Playing Competition bei der AAAI gibt es seit 2005 einen sehr renomierten und gut organisierten Wettbewerb, bei dem viele Forschungszentren ihre Programme gegeneinander antreten lassen können (10000 Dollar und Ruhm&Ehre).
Internationale Teams:
University of California (LA) Cluneplayer
Technische Universität Dresden FLUXPLAYER
Internationale Wettbewerbe
Reykjavik University CADIAPlayer
Universität Potsdam Centurio
Freie Universität Berlin
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
International General Game Playing Competition bei der AAAI gibt es seit 2005 einen sehr renomierten und gut organisierten Wettbewerb, bei dem viele Forschungszentren ihre Programme gegeneinander antreten lassen können (10000 Dollar und Ruhm&Ehre).
Cluneplayer MinMax Sieger 2005
FLUXPLAYER Sieger 2006
[6]
CADIAPlayer UCT Sieger 2007, 2008
UCT
Dr. Marco Block-Berlitz 38
UCT = Upper Confidence bound for Trees(Monte-Carlo-Methode)
Die aktuell stärksten GO-Programme verwenden UCT.
Wir werden in den folgenden Folien das Wikinger-Brettspiels passagen aus [7]) kennenlernen und damit beginnen, es in GDL zu formulieren.
Grundzüge:
Gespielt wird auf einem schachähnlichen, quadratischen Brett mit quadratischen Feldern (in unterschiedlichen Dimensionen).
Es gibt drei verschiedene Figurentypen: Angreifer, Verteidiger
Ein Spiel in GDL erzeugen
Startaufstellungen:
Die Beispielvarianten für die Startpositionen der Spielfiguren werden hier an zwei verschiedenen Brettern gezeigt: dem 7x7 Felder großen Brett, wie man es z.B. in Irland gefunden hat und dem finnischen 9x9 Felder großen Tablut. Hnefatafl wurde aber auch auf größeren Formaten gespielt, wie z.B. auf 11x11 Feldern in Wales oder gar auf 19x19 Feldern bei der sächsischen Variante.
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Brettspiels Hnefatafl (Regeln, Abbildungen und Text-passagen aus [7]) kennenlernen und damit beginnen, es in GDL zu formulieren.
Gespielt wird auf einem schachähnlichen, quadratischen Brett mit quadratischen Feldern (in
Verteidiger und einen König.
Die Beispielvarianten für die Startpositionen der Spielfiguren werden hier an zwei verschiedenen Brettern gezeigt: dem 7x7 Felder großen Brett, wie man es z.B. in Irland gefunden hat und dem finnischen 9x9 Felder großen Tablut. Hnefatafl wurde aber auch auf größeren Formaten gespielt, wie z.B. auf 11x11 Feldern in Wales oder gar auf 19x19 Feldern bei der sächsischen Variante.
Dr. Marco Block-Berlitz 39
Angreifer
König
Verteidiger
Die braun dargestellten Figuren stellen die Königswachenblauen König in der Mitte. Sein Ziel ist es zu entkommen, d.h. eine der vier Ecken davon zu erreichen.
Die gelben Figuren symbolisieren die Angreifer, deren Ziel es ist, dies zu verhindern. Das tun sie, indem sie den König umzingeln und bewegungsunfähig machen.
Die Verteidiger beginnen das Spiel, gezogen wird abwechselnd.
Hnefatafl – Regeln und Ziele
Jeder Spieler setzt, wenn er an der Reihe ist,
Sommersemester 2009 Dr. Marco Block
Gezogen wird diese wie ein Turm im Schach, dabei sind alle Richtungen erlaubt außer diagonale.
Wird dabei ein gegnerischer Spielstein von zwei gegenüberliegenden Seiten umstelltso gilt dieser als geschlagen und wird vom Spielfeld entfernt. Die Figur muß aktiv geschlagen werden d.h., wenn eine Figur zwischen zwei Gegner gestellt wird, macht das überhaupt nichts.
Somit kann es natürlich auch vorkommen, daß
Der König beginnt auf dem "Trohn", dem mittleren Feld, das auch nur von ihm selbst betreten werden darf. Jeder Andere darf jedoch über den leeren Trohn hinwegziehen.
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Königswachen (Verteidiger) dar, mit ihrem zu entkommen, d.h. den Spielfeldrand bzw.
, deren Ziel es ist, dies zu verhindern. Das tun sie, indem sie den König umzingeln und bewegungsunfähig machen.
Die Verteidiger beginnen das Spiel, gezogen wird abwechselnd.
Jeder Spieler setzt, wenn er an der Reihe ist, eine Figur um ein oder mehr Felder weiter.
Dr. Marco Block-Berlitz 40
Gezogen wird diese wie ein Turm im Schach, dabei sind alle Richtungen erlaubt außer
von zwei gegenüberliegenden Seiten umstellt, und wird vom Spielfeld entfernt. Die Figur muß aktiv
geschlagen werden d.h., wenn eine Figur zwischen zwei Gegner gestellt wird, macht
Somit kann es natürlich auch vorkommen, daß ein Zug gleich zwei Spielsteine erwischt.
Der König beginnt auf dem "Trohn", dem mittleren Feld, das auch nur von ihm selbst betreten werden darf. Jeder Andere darf jedoch über den leeren Trohn hinwegziehen.
Die Königsjäger gewinnen, wenn vier Angreifer den König umzingelngrößeren Kreis mit einigen Wachen einschließen, was ja schließlich auch zu seiner Bewegungsunfähigkeit führt. In vielen Quellen liest man auch von der Regel, daß der König ebenfalls als gefangen gilt wenn er nur von drei Seiten umstellt ist, aber "mit dem Rücken zum Trohn" steht.
Der König gewinnt, wenn er den Spielfeldrand erreicht
In einigen Fällen kann es auch zu einer Patt-SituationAngreifer den König ein Feld vor seinem Ziel aufhält, ohne daß andere Figuren in der Nähe wären. Das könnte nämlich ewig hin und her gehen.
Hnefatafl – Spielende und Variationen
Nähe wären. Das könnte nämlich ewig hin und her gehen.
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
vier Angreifer den König umzingeln oder ihn im , was ja schließlich auch zu seiner
Bewegungsunfähigkeit führt. In vielen Quellen liest man auch von der Regel, daß der König ebenfalls als gefangen gilt wenn er nur von drei Seiten umstellt ist, aber "mit
Spielfeldrand erreicht.
Situation kommen, und zwar wenn ein Angreifer den König ein Feld vor seinem Ziel aufhält, ohne daß andere Figuren in der Nähe wären. Das könnte nämlich ewig hin und her gehen.Nähe wären. Das könnte nämlich ewig hin und her gehen.
Dr. Marco Block-Berlitz 41
• Beim Spiel sollten die Angreifer beachten, dass sievorrücken. Vor allem müssen die ungedeckten Ecken
• In der ersten Phase des Spiels kann es sich Weiß kaumweil der König sonst leicht durch die Lücke schlüpfen
• Ein einzelner Verteidiger, der sich außerhalb deskann beträchtlichen Schaden anrichten. Wenn der Ringeinen Schlagabtausch hinnehmen. Doch das ist nichtmehr Verteidiger eingeschlossen sind, desto stärkerBeweglichkeit des eigenen Königs ein.
Hnefatafl – Tipps und Strategien
Beweglichkeit des eigenen Königs ein.
• Der Angriff einiger weniger Krieger ist leicht zurückzuschlagenalle Figuren gleichmäßig einsetzen. Schwarz hingegenvon einer Seite des Brettes immer wieder auf eine weitdamit Weiß aus dem Gleichgewicht gerät.
• Gelingt es dem König, sich in die Nähe einer Ecke zutrotzdem leicht unentschieden ausgehen, weil eventuellderselben Figuren Weiß zwar den König am Erreichenjedoch nicht von allen vier Seiten umzingeln kann.
Sommersemester 2009 Dr. Marco Block
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
sie von allen Seiten gleichmäßigEcken geschützt werden.
kaum leisten, Kämpfer zu verlieren,schlüpfen kann.
Belagerungsgürtels herumtreibt,Ring enger geworden ist, kann man
nicht immer nur von Vorteil; denn jestärker schränken sie auch die
zurückzuschlagen. Weiß muss deshalbhingegen sollte versuchen, den König
weit entfernte Stelle zu verlagern,
zu retten, so kann aber das Spieleventuell durch Auf- und Abschieben
Erreichen der Brettspielkante hindert, ihn
Dr. Marco Block-Berlitz 42
Literatur- und Abbildungsquellen
Michulke D., Schiffel S.: „Matt bei Vier gewinnt“, C’t: Computer und Technik Magazin, pp.174, 1/2009
Love N., Hinrichs T., Haley D., Schkufza E., Genesereth M.: „
Language Specification“, Stanford Logic Group Computer Science Department Stanford University,
Technical Report LG-2006-01, 2008
Quenault M., Cazenave T.: „Extended General Gaming Modell
pp. 195-204, 2007
Genesereth M.: Vorlesungsfolien der Stanford-Universität, CS227B: General Game Playing,
siehe dazu: http://logic.stanford.edu/classes/cs227/index.html
[1]
[2]
[3]
[4]
Sommersemester 2009 Dr. Marco Block
siehe dazu: http://logic.stanford.edu/classes/cs227/index.html
Palamedes-IDE(Eclipse-Plugin): http://palamedes
AAAI-GGP-Competitions: http://www.aaai.org/Conferences/AAAI/2008/aaai08generalgame.php
Homepage von Frank Nießen: http://www.frank-niessen.de/hnefatafl/index.html
Coulom R.: „The Monte-Carlo Revolution in Go“, Präsentation bei dem
Möller F.M., Schneider M., Wegner M.: „Centurio 2.0
Playing”, Dokumentation der Engine Centurio, Universität Potsdam, 2008
[5]
[6]
[7]
[8]
[9]
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
“, C’t: Computer und Technik Magazin, pp.174, 1/2009
Love N., Hinrichs T., Haley D., Schkufza E., Genesereth M.: „General Game Playing: Game Description
“, Stanford Logic Group Computer Science Department Stanford University,
Extended General Gaming Modell“ Computer Games Workshop,
Universität, CS227B: General Game Playing,
http://logic.stanford.edu/classes/cs227/index.html
Dr. Marco Block-Berlitz 43
http://logic.stanford.edu/classes/cs227/index.html
http://palamedes-ide.sourceforge.net/
http://www.aaai.org/Conferences/AAAI/2008/aaai08generalgame.php
niessen.de/hnefatafl/index.html
“, Präsentation bei dem JFFoS'2008
Centurio 2.0 - Monte Carlo Tree Search für General Game
”, Dokumentation der Engine Centurio, Universität Potsdam, 2008
Übungsaufgaben
Aufgabe 1 – GDL (10 Punkte)Formulieren Sie das in der Vorlesung vorgestellte Spiel „Hnefatafl“ in GDL. DaStartstellungen gespielt werden kann, sollten Sie vorab eine genaue Beschreibungund Schritt für Schritt zeigen, wie Sie diese in GDL abbilden.Entscheiden Sie sich für eine der verschiedenen Spiel-Varianten und beschreiben
Abgabe: 19.06.2009 (eine Woche)
Aufgabe 2 – KI für GDL (30 Punkte)Es soll in Java (Palamedes-IDE/Eclipse) eine allgemeine KI für GDL entwickeltfolgenden Bestandteile aufweisen:
a) MinMax-Algorithmus
Sommersemester 2009 Dr. Marco Block
a) MinMax-Algorithmusb) Bewertungsfunktion mit Material, Mobilität und mindestens 3 weiteren Kriterien
Wünschenswert (und beim Wettbewerb sicherlich erfolgversprechender) ist es aber,implementieren.
Abgabe: 26.06.2009 (zwei Wochen)
Wettbewerb: Die abgegebenen (spielbaren) Programmeweiteren Spielen gegeneinander antreten. Es werden dieTutorien Halbfinale und Finale bestreiten.
Der Sieger wird mit Ruhm und Ehre (ein paar Zusatzpunkten)
Hier nocheinmal die Webseite mit den Spielregeln: http://www
Vorlesung: Künstliche Intelligenz
Fachbereich Mathematik/Informatik – AG Künstliche Intelligenz
Da es mit verschiedenen Brettgrößen undBeschreibung der Zustände und Regeln vornehmen
beschreiben Sie diese.
entwickelt werden. Diese soll mindestens die
Dr. Marco Block-Berlitz 44
Kriterien
aber, eine UCT-basierende Suche zu
Programme werden in dem in der Vorlesung vorgestellten Spiel Hnefatafl und zweidie vier stärksten Programme ermittelt, die live in der Vorlesung oder den
Zusatzpunkten) überschüttet.
//www.frank-niessen.de/hnefatafl/index.html