Johannes 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: