Table Of ContentJohannes Aldinger
Matr.Nr. 1321288
Lehrstuhl Grundlagen der KI
Prof. Dr. Bernhard Nebel
Freiburg, 29. April 2009
L(cid:246)sen allgemeiner Spiele durch heuristische Suche
Erkl(cid:228)rung
Hiermit erkl(cid:228)re ich, dass ich diese Abschlussarbeit selbstst(cid:228)ndig verfasst habe, keine anderen
als die angegebenen Quellen und Hilfsmittel verwendet habe und alle Stellen, die aus ver(cid:246)f-
fentlichten Schriften entnommen wurden, als solche kenntlich gemacht habe. Dar(cid:252)ber hinaus
erkl(cid:228)re ich, dass diese Abschlussarbeit nicht bereits f(cid:252)r eine andere Pr(cid:252)fung angefertigt wur-
de.
Freiburg, den 29. April 2009
Johannes Aldinger
Inhaltsverzeichnis
1 Einf(cid:252)hrung 5
2 Grundlagen 6
2.1 Wettbewerb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Spielmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Datalog und GDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.1 Die Syntax von GDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.2 Die Semantik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.3 KIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.4 Vorde(cid:28)nierte Relationen in GDL . . . . . . . . . . . . . . . . . . . . . 14
2.3.5 Restriktionen der GDL-Relationen . . . . . . . . . . . . . . . . . . . . 17
3 Bestandteile eines GGP-Systems 19
3.1 Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Planungsmodul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.1 Bestensuche f(cid:252)r Einpersonenspiele . . . . . . . . . . . . . . . . . . . . . 21
3.2.2 Minimax f(cid:252)r Zweipersonenspiele . . . . . . . . . . . . . . . . . . . . . . 22
3.2.3 GGP-Anpassung von Minimax . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 Heuristikmodul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3.1 Evaluierungsfunktionen f(cid:252)r Spiele . . . . . . . . . . . . . . . . . . . . . 25
3.3.2 Heuristiken f(cid:252)r Planungsprobleme . . . . . . . . . . . . . . . . . . . . . 27
3.3.3 Parallele Pl(cid:228)ne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.4 FF-Heuristik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4 Die Evaluierungsfunktion f . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
JO
3.5 (cid:220)bersetzung von GDL nach FF . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.5.1 Zustandsvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.5.2 Initialzustand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.5.3 Operatoren und Axiome . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.5.4 Zielformel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4 Implementierung 37
4.1 Vorgehen und (cid:220)berblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 Erstellen der Zustandsvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3 Syntax-basierte Erreichbarkeitsanalyse . . . . . . . . . . . . . . . . . . . . . . 39
4.4 Initial- und Terminalzustand . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.5 Operatoren und Axiome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.6 Der Planer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5 Experimente 41
5.1 Maze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.2 Blocksworld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.3 Tic-Tac-Toe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.4 Minichess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.5 Ergebnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6 Fazit 45
4
1 Einf(cid:252)hrung
Spiele stehen seit jeher im Fokus der k(cid:252)nstlichen Intelligenz. Dem Schachspiel kam dabei ein
besonders gro(cid:255)es Interesse zu. Computerschach sollte zur Unterhaltung und zur Analyse von
Schachpartien dienen, und au(cid:255)erdem einen Einblick in das menschliche Denken und Handeln
bringen.MitderZeitwurdendieProgrammeimmerst(cid:228)rker,undheutesindSchachprogramme
1
f(cid:252)r Heimcomputer besser als die menschlichen Gro(cid:255)meister. Dennoch sind die Einblicke in
die menschliche Denkweise d(cid:252)rftig. Zwar spielen Schachcomputer sehr gut Schach, aber eben
nur Schach. Andere Spiele, selbst einfache wie Tic-Tac-Toe, k(cid:246)nnen von ihnen nicht gel(cid:246)st
werden. Ein Spezialgebiet konnte mit Hilfe von Expertenwissen soweit perfektioniert werden,
dass der Computer seine schnellere Rechenzeit gegen(cid:252)ber dem Menschen ausspielen kann,
ein tieferer Einblick bleibt aber versagt. Ein Schritt in Richtung eines allgemeineren Denkens
sind Computerprogramme, welche nicht nur ein Spiel spielen k(cid:246)nnen, sondern jedes Spiel.
Dem Computer werden dazu lediglich die Spielregeln eines Spiels vermittelt. Die Forschung in
diesem Gebiet nennt sich General Game Playing (GGP).
Ein erfolgversprechender Ansatz um allgemeine Spiele zu l(cid:246)sen wird hier vorgestellt. Planungs-
probleme k(cid:246)nnen, nicht zuletzt auch auf Grund (cid:228)u(cid:255)erst erfolgreicher Forschung der Universi-
t(cid:228)t Freiburg [HN01][Hel06][RW08], sehr fortschrittlich gel(cid:246)st werden. Einspieler-Knobelspiele
sindimGrundegenommennichtsanderesalsPlanungsprobleme.Lediglichdie Eingabesprache
(Game Description Language (GDL) statt Planning Domain Description Language (PDDL))
unterscheidet sich ein wenig. Mehrpersonenspiele erweitern die Problemstellung um die Un-
gewissheit der Aktionen der Mitspieler, aber dennoch gibt es M(cid:246)glichkeiten, diese Teilgebiete
miteinander zu verbinden.
In Kapitel 2 wird der Rahmen beschrieben, in welchem die GGP-Forschung statt(cid:28)ndet. In
Kapitel 3 werden theoretische Vor(cid:252)berlegungen zum allgemeinen L(cid:246)sen von Spielen vermittelt
und Anpassungsm(cid:246)glichkeiten auf die GGP-Problemstellung aufgezeigt. Kapitel 4 beschreibt
schlie(cid:255)lich die praktische Realisierung dieses Ansatzes in Java. Die hieraus gewonnenen Er-
gebnisse werden schlie(cid:255)lich im Kapitel 5 beschrieben.
1 Deep Fritz - Kramnik 4:2 (2006)
5
2 Grundlagen
GGP [GL05] ist ein aktueller Forschungsbereich, der insbesondere durch seine allgemeine Aus-
richtung interessant ist. Entgegen den bisherigen Experten-Spielprogrammen k(cid:246)nnen allge-
meine Spielprogramme viele verschiedene Spiele spielen. Aber auch andere Aufgaben wie z.B.
Gesch(cid:228)ftsmodellmanagement, Automatisierungsprozesse im elektronischen Handel sowie Veri-
(cid:28)kationsprobleme lassen sich als (cid:18)Spiel(cid:16) modellieren [GL05]. Um verschiedene Ans(cid:228)tze mitein-
ander vergleichen zu k(cid:246)nnen, ist ein Rahmen n(cid:246)tig, welcher einen gemeinsamen Standard als
Grundlage scha(cid:27)t. Dieser wird durch den GGP-Wettbewerb der Stanford University gegeben,
welcher ein Teil der AAAI-Konferenz ist. Im Folgenden wird der so de(cid:28)nierte Rahmen be-
schrieben. Dies sind einerseits der Wettbewerb selbst, andererseits die Spielmodellierung und
die Spielregelbeschreibungssprache GDL.
2.1 Wettbewerb
Von der Association for the Advancement of Arti(cid:28)cial Intelligence (AAAI) wird regelm(cid:228)(cid:255)ig ein
o(cid:27)ener Wettbewerb im Bereich GGP veranstaltet, bei dem die Teilnehmer ihre allgemeinen
Spielprogramme in einem Turnier gegeneinander antreten lassen. Das beste Programm wird
mit einer Siegpr(cid:228)mie von 10.000 US$ belohnt.
Sowohl Normierungen wie die Sprache GDL als auch die Kommunikations- und Kontroll-
Plattform Game Master (GM) werden zur Verf(cid:252)gung gestellt. Die Kommunikation mit GM
erfolgt (cid:252)ber das Internet mit dem Hyper Text Transfer Protocol (HTTP). Der GM regelt
die Kommunikation der Spieler, misst die Zeit und fungiert als Schiedsrichter. So w(cid:228)hlt er
beispielsweise zuf(cid:228)llige Z(cid:252)ge aus, falls die zur Verf(cid:252)gung stehende Zeit abgelaufen ist oder ein
illegaler Zug (cid:252)bermittelt wurde. Zudem verf(cid:252)gt er (cid:252)ber ein gra(cid:28)sches Interface, so dass die
Spiele des Wettbewerbs anschaulich mitverfolgt werden k(cid:246)nnen.
2.2 Spielmodell
Die Spiele, welche im Rahmen von GGP betrachtet werden, sind endliche, synchrone Spiele.
Endlich bedeutet, dass sowohl die Anzahl der Spieler, die Anzahl der m(cid:246)glichen Z(cid:252)ge und der
Zust(cid:228)ndeendlichist.Synchronbedeutet,dassinjederRundealleSpielergleichzeitigeinenZug
ausw(cid:228)hlen. Das ist keine Einschr(cid:228)nkung, da in vielen sequentiellen Spielen der einzig legale
Zug eines Spielers (cid:18)noop(cid:16) (also die (cid:18)mache-nichts(cid:16)-Aktion) ist, wenn er nicht an der Reihe ist.
Im Gegensatz zu spezialisierten Spielprogrammen m(cid:252)ssen GGP-Spieler sowohl einfache (Tic-
6
Tac-Toe) wie auch komplexe Spiele (Schach) spielen k(cid:246)nnen. Die Welt kann sowohl statisch als
auch dynamisch formuliert werden. Spiele mit partieller Information werden bisher noch nicht
unterst(cid:252)tzt, eine Erweiterung der Spielbeschreibungssprache GDL ist aber m(cid:246)glich [LHH+08].
Ein Spiel besteht formal aus den folgenden Komponenten:
(cid:136)
eine Menge von Zust(cid:228)nden S
(cid:136)
n Spieler, sogenannten (cid:18)Rollen(cid:16) r ,...,r
1 n
(cid:136)
n Aktionsmengen, eine f(cid:252)r jeden Spieler I ,...,I
1 n
(cid:136)
legale Z(cid:252)ge f(cid:252)r jeden Spieler in einem Zustand l ,...,l , l ⊆ I ×S
1 n i i
(cid:136)
eine partielle Zustand(cid:252)bergangsfunktion, die aus den Aktio- u:I ×···×I ×S → S
1 n
nen der Spieler und dem aktuellen Zustand den Nachfolgezu-
stand berechnet.
(cid:136)
einem Initialzustand s ∈ S
0
(cid:136)
eine Menge von Terminalzust(cid:228)nden T ⊆ S
(cid:136)
eine Funktion pro Spieler, die den Gewinn (Nutzen) in einem g ,...,g ,
1 n
Terminalzustand berechnet. g : T → {0,...,100}
i
EinSpielstartetinZustands undwirdsolangegespielt,biseinTerminalzustandt ∈ T erreicht
0
ist. In jeder Runde w(cid:228)hlt jeder Spieler einen legalen Zug aus. Endet das Spiel, so erh(cid:228)lt jeder
Spieler den durch g beschriebenen Gewinn. Die Spiele werden hier nicht notwendigerweise als
i
Nullsummenspiele modelliert. In einem Terminalzustand t ist die Summe der Spielergewinne
(cid:80)n g [t] also nicht unbedingt 0, wie dies z.B. bei Schach (g = 1,g = −1, oder
i=1 i Sieger Verlierer
0 bei einem Unentschieden) der Fall ist. Die Zustandsbeschreibung kann in Automatenform
repr(cid:228)sentiert werden (Abb. 1). Diese erlaubt synchrone Z(cid:252)ge, und mehrfach erreichbare Zu-
st(cid:228)nde m(cid:252)ssen entgegen anderen Darstellungsformen (wie z.B. einer Baumdarstellung) nur
einmal angegeben werden. In Abbildung 1 ist s = a, T = {c,e,i,k} und I = I = {x,y}.
0 1 2
Die unterschiedliche Schattierung symbolisiert unterschiedlich hohe Gewinne. An den Kanten
sind die m(cid:246)glichen Aktionen der Spieler angegeben.
AlleSpielesindzudemschwachgewinnbar,wasbedeutet,dassesf(cid:252)rjedenSpielereineSequenz
von Spielz(cid:252)gen aller Spieler gibt, so dass dieser Spieler seinen maximalen Gewinn erh(cid:228)lt. Gibt
2
es sogar eine Sequenz von Spielz(cid:252)gen eines Spielers , bei der dieser seinen maximalen Gewinn
2 (cid:252)bernommen von [GL05], intuitiver w(cid:228)re die Existenz einer Strategie (bedingter Plan), und nicht die
st(cid:228)rkere Forderung nach einem konformanten Plan
7
x/x x/y
b e h
x/x y/y
x/y x/x x/x
x/y y/x y/y x/y x/y x/x
a c f i k
x/y y/x y/x
y/y y/y
x/x x/x
d g j
Abbildung 1: u als Zustandsautomat
erreichen kann, unabh(cid:228)ngig wie die anderen Spieler spielen, so bezeichnet man ein Spiel als
stark gewinnbar, und dieser Spieler hat eine Gewinnstrategie. Bei Mehrpersonenspielen gibt es
diese im Allgemeinen allerdings nicht. Damit die Spiele wohlgeformt sind, m(cid:252)ssen sie zudem
terminieren. Alle Spiele lassen sich theoretisch durch Spielen aller m(cid:246)glichen Kombinationen
auf Wohlgeformtheit (cid:252)berpr(cid:252)fen. Alle Spiele des Wettbewerbs k(cid:246)nnen allerdings ohne Beweis
als wohlgeformt vorausgesetzt werden.
2.3 Datalog und GDL
Die Spielregeln der GGP-Spiele m(cid:252)ssen dem Computerprogramm in irgendeiner Form vermit-
telt werden. Nat(cid:252)rliche Sprache bietet sich hierf(cid:252)r aus mehreren Gr(cid:252)nden nicht an. Einerseits
ist sie oft unpr(cid:228)zise, so dass Konstellationen auftreten k(cid:246)nnen, die nicht eindeutig in den Re-
geln abgedeckt sind. Auf der anderen Seite ist nat(cid:252)rliche Sprache sehr komplex. Das Spiel
intern so zu repr(cid:228)sentieren, dass der Computer das Spiel (cid:18)versteht(cid:16), stellt eine computerlin-
guistische Herausforderung dar, welche mit dem eigentlichen Fokus von GGP wenig zu tun
hat. Stattdessen verwendet der GGP-Wettbewerb die logische Sprache GDL. GDL basiert auf
Datalog, mit einigen problemspezi(cid:28)schen Anpassungen. Datalog ist eine an Prolog angelehnte
Datenbanksprache, welche eine kompakte Repr(cid:228)sentation des Zustandsraums erm(cid:246)glicht.
GDL baut auf Datalog auf, verzichtet allerdings auf einen Gleichheitstest und f(cid:252)gt Funktio-
nen ein. Ferner werden in Kap. 2.3.4 einige Relationen mit einer festen Bedeutung de(cid:28)niert.
Gleichheit ist in Datalog auf einer syntaktischen Ebene de(cid:28)niert. (a = a und a (cid:54)= b). Statt der
8
Datalog-Tests f(cid:252)r (cid:18)=(cid:16) und (cid:18)(cid:54)=(cid:16) wird in GDL lediglich ein Test auf Ungleichheit (distinct)
ben(cid:246)tigt.EinGleichheitstestistnichtnotwendig,damanbeimErstellenderSpielbeschreibung
3
einfach die gleichen Variablen verwenden kann.
2.3.1 Die Syntax von GDL
Die Syntax von Datalog, und die Unterschiede zu GDL, werden in [LHH+08] beschrieben.
Da die Unterschiede f(cid:252)r uns nicht relevant sind, wird gleich die f(cid:252)r GDL angepasste Syntax
vorgestellt.
De(cid:28)nition 1 (Vokabular) Das Vokabular von GDL besteht aus
(cid:136)
Relationsbezeichner: Konstante mit Stelligkeit, z.B. adjacent/2, terminal/0
(cid:136)
Funktionsbezeichner: Konstante mit Stelligkeit, z.B. cell/3
(cid:136)
Objekten: auch Objekt-Konstanten, z.B. a, 1, blank
(cid:136)
Variablen: z.B. X, Y
Aus einem Vokabular l(cid:228)sst sich eine Sprache bilden.
De(cid:28)nition 2 (Term) Als Terme bezeichnet man
(cid:136)
Objekt-Konstanten oder
(cid:136)
(Objekt-)Variablen oder
(cid:136)
Funktionsbezeichner mit Stelligkeit n angewandt auf n Terme
z.B. cell(a, 2, white_knight)
Selbst das L(cid:246)sen einfacher genereller Spiele stellt eine gro(cid:255)e Herausforderung dar. Der Fo-
kus dieser Arbeit liegt bei sequentiellen Zweipersonenspielen. Parallele Spiele sowie Spiele
mit drei oder mehr Spielern werden hier nicht behandelt. In der Spezi(cid:28)kation der GDL-
Spielbeschreibungenk(cid:246)nnenzudemFunktionenbeliebigerSchachtelungstiefevorkommen.Hier
(wie auch in allen bisherigen Wettbewerben) werden allerdings nur Funktionen mit einer
Schachtelungstiefe von 1 (d.h. Funktionen, deren Parameter Objekte, aber nicht selbst wieder
Funktionen sind) behandelt.
3 Unique name assumption
9
Wie im Kapitel 2.2 erw(cid:228)hnt soll GDL endliche Zustandsautomaten beschreiben. Die Berech-
nung der Zustands(cid:252)bergangsfunktion ist immer entscheidbar und die L(cid:246)sung ist immer einer
von endlich vielen Zust(cid:228)nden. Auch GDL soll diese Eigenschaften haben. Durch die Hinzu-
nahme von Funktionen k(cid:246)nnen aber bei rekursiven Funktionen Probleme auftauchen.
De(cid:28)nition 3 (Abh(cid:228)ngigkeitsgraph) Sei ∆ eine Menge von Datalogregeln. Dann sind die
Knoten des Abh(cid:228)ngigkeitsgraphen die Relationsbezeichner des Vokabulars. Er enth(cid:228)lt eine Kan-
te von r zu r , wenn es eine Regel R ∈ ∆ gibt, in welcher r im Kopf und r im Rumpf
b h h b
vorkommt. Wenn r f(cid:252)r ein negatives Literal steht, wird diese Kante mit (cid:18)¬(cid:16) beschriftet.
b
De(cid:28)nition 4 (Rekursionsrestriktion) Sei ∆ eine Menge von Regeln und G der Abh(cid:228)ngig-
keitsgraph von ∆, und ∆ enth(cid:228)lt eine Regel
p(t ,...,t ) ⇐ b ∧···∧q(v ,...,v )∧···∧b
1 n 1 1 k m
bei welcher q in einem Zykel mit p in G vorkommt. Dann muss entweder f(cid:252)r alle j ∈ {1,...,k}
der Term v ∈ {t ,...,t } variablenfrei sein, oder es existiert ein i ∈ {1,...,m}, so dass
j 1 n
b = r(...,v ,...), wobei r nicht in einen Zykel mit p vorkommt.
i j
Dadurch wird sichergestellt, dass Funktionsterme eine endliche Gr(cid:246)(cid:255)e haben.
De(cid:28)nition 5 (Atom, atomarer Satz) Ein Atom, atomarer Satz oder auch eine Relation
ist ein Relationsbezeichner der Stelligkeit n angewandt auf n Terme.
z.B. adjacent(a, b)
De(cid:28)nition 6 (Literal) Ein Literal ist ein Atom, oder dessen negierte Form.
z.B. ¬adjacent(a, c),successor(1, 2)
Die im n(cid:228)chsten Kapitel 2.3.3 vorgestellte Notation verwendet das Knowledge Interchange
Format(KIF).DortwirddieDisjunktion(cid:18)∨(cid:16) verwendet,undbeschrieben,dassdiesedurchden
s-stelligen logischen Operator (cid:18)or(cid:16) ausgedr(cid:252)ckt wird. Dessen De(cid:28)nition fehlt in der o(cid:30)ziellen
Spezi(cid:28)kation [LHH+08], obwohl (cid:18)or(cid:16) in Spielbeschreibungen verwendet wird.
10
Description:Von der Association for the Advancement of Artificial Intelligence (AAAI) wird regelmäÿig ein offener Wettbewerb im . Datalog ist eine an Prolog angelehnte. Datenbanksprache .. tionales Planen, insbesondere bei komplexeren Spielen, wird schnell zu einem sehr (und für unsere Ansprüche zu)