This is an old revision of the document!
Table of Contents
CADIAPlayer
Project Goal: A powerful general game-playing engine
Student: Hilmar Finnsson (2007-Present)
Student: Gylfi Þór Guðmundsson (2008)
PI: Yngvi Björnsson
CADIAPlayer, our general game-playing software agent, it has won the General Game Playing (GGP) world-championship twice.
GGP Competition 2007
CADIAPlayer earned the title by winning the 3rd International General Game-Playing (GGP) competition, ahead of a field of players from universities world-wide. It won both the preliminaries and the finals. The preliminaries consisted of 8 days of play, with over 40 different games being played.
The Preliminaries Results
Rank Player Total Score Institution ------------------------------------------------------------------------------------------------------- 1 CADIAPlayer 2723.50 Reykjavik University 2 FluxPlayer 2355.50 Technical University of Dresden 3 Ary 2252.75 University of Paris 8 4 ClunePlayer 2122.25 University of California, LA 5 UTexas LARG 1798.00 University of Texas, Austin 6 Jigsawbot 1524.00 India Institute of Technology 7 LuckyLemming 1250.50 Technical University of Dresden 8 WWolfe 821.25 Independent (Stanford student)
The GGP competition finals took place at the AAAI conference in Vancouver in July 22-26. The CADIA-Player agent won ClunePlayer, an agent from UCLA, in the final exciting match.
GGP Competition 2008
CADIAPlayer defended the title by winning the 4th International General Game-Playing (GGP) competition, again winning both the preliminaries and the finals. The preliminaries consisted of 6 days of play, with various single- two- and multi-player games being played.
The Preliminaries Results
Rank Player Total Score Institution ------------------------------------------------------------------------------------------------------- 1 CADIAPlayer 1530.00 Reykjavik University 2 ClunePlayer 1429.00 University of California, LA 3 Ary 1402.75 University of Paris 8 4 FluxPlayer 1336.25 Technical University of Dresden 5 Maligne 1149.00 University of Alberta 6 Monomaniac 1058.75 University of New South Wales 7 Centurio 904.50 University of Potsdam 8 Testplayer 448.50 Alex Vitvitskyy 9 UTexas LARG 336.75 University of Texas, Austin
The GGP competition finals this year took place at the AAAI conference in Chicago in July 15-17. Like the year before CADIAPlayer and the UCLA agent ClunePlayer went head to head in the final match, which consisted of three different games. In the end CADIAPlayer was victorious, winning two games of the three.
All details regarding game scores and results can be viewed in this Google spreadsheet document.
GGP Competition 2009
CADIAPlayer had a bad run in the 2009 competition, missing out on reaching the 4 finalists heat by a tie breaking rule. This time a pre-tournament playing period (June 15-28) on the Dresden GGP server replaced the preliminaries where CADIAPlayer, still showed its strength by placing 1st.
The Preliminaries Results
Rank Player Average Score Institution ------------------------------------------------------------------------------------------------------- 1 CADIAPlayer 70.1856 Reykjavik University, Iceland 2 Ary 66.9859 Universite de Paris 8/10, France 3 TurboTurtle 56.1768 Independent (Stanford students), USA 4 FluxPlayer 52.2034 Technical University of Dresden 5 Centurio 49.3675 UUniversity of Potsdam, Germany 6 Gamer 31.0576 TU Dortmund / TZI Bremen, Germany 7 Hex 0.1053 Carlos III University, Spain 8 Ethan - N/A - Stanford University, USA 9 Maligne - N/A - University of Alberta, Canada 10 Lucky Lemming - N/A - Dresden University of Technology, Germany
The GGP competition finals this year took place at the IJCAI conference in Pasadena in July 11-17. This year Ary placed 1st, FluxPlayer was in 2nd place and Maligne 3rd.
All details regarding game scores and results can be viewed here Dresden Server Tournaments Page (tournaments with prefix ggp09).
GGP Competition 2010
This year the preliminaries were a part of the final competition where the top 8 teams advanced to quarterfinals, from there 4 teams advanced to semifinals and finally 2 teams battled for the 1st place.
The 2010 Participants and Results
Rank Player Institution ------------------------------------------------------------------------------------------------------- 1 Ary Universite de Paris 8/10, France 2 Maligne University of Alberta, Canada 3 CADIAPlayer Reykjavik University, Iceland 4 FluxPlayer Technical University of Dresden - Atax, Centurio, Gamer, Gorgon, Nex, Tortoise and TurboTurtle.
CADIAPlayer managed to reach the semifinals and placed 3rd overall after winning FluxPlayer which was the other team to reach as far as the semifinals. Ary and Maligne (which knocked out CADIAPlayer) were the teams that made it to the finals and in the end Ary was victorious, defending its title from 2009. Well done Ary!
The GGP competition finals this year took place at the AAAI conference in Atlanta, Georgia July 11-15.
All details regarding game scores and results can be viewed here The Stanford GGP Website.
Background
Artificial Intelligence researchers have for decades worked on building game-playing systems capable of matching wits with the strongest humans in the world. The success of such systems has largely been because of years of knowledge-engineering effort on behalf of the program developers, manually adding application-dependent knowledge to their programs.
The hope is to take this approach to the next level: to build intelligent software systems that can, given the rules of any game, automatically learn a strategy for playing the game without any human intervention. Artificial Intelligence technology has now matured to the point where this is within realm of possibility, so Stanford University started the General Game-Playing Competition (http://games.stanford.edu) as an initiative to facilitate further research in the area. This is the third year the competition is held. In the first year ClunePlayer, an entry from University of California Los Angeles, won; FluxPlayer (http://www.fluxagent.org/fluxplayer.htm) from Technical University of Dresden is the reigning GGP world-champion after winning last year's competition. This is the first time CADIA, Reykjavik University's AI laboratory, enters the competition.
The GGP project is led by Dr. Yngvi Björnsson. He and Hilmar Finnsson, a Ph.D. student in computer science, are the authors of CADIA-Player.
CADIAPlayer Source
This code is presented “as is” without any guarantees, but it has been running for several years on both OS X and CentOS.
System Requirements for 64-bit compilation:
- Boost C++ Libraries version 1.36.0+ (uses the asio library)
- YAP Prolog version 6.2.0
System Requirements for 32-bit compilation:
- Boost C++ Libraries version 1.36.0+ (uses the asio library)
- YAP Prolog version 6.2.0 or 5.1.1 (do not use 5.1.3)
Instructions
Download the compressed file cadiaplayer-2.0.1.tar.gz (last updated:June 8 2011) and execute the following commands:
tar -xf cadiaplayer-3.0.tar.gz cd cadiaplayer-3.0 ./configure make make install
This creates a folder named bin in the current directory which contains all you need, which is:
cadiaplayer - The CadiaPlayer GGP agent. cadiaplayer.ini - Settings file for the CAdiaPlayer GGP agent. games - Folder structure for the GDL to Prolog conversion. Must be in the same folder as the player. ggp.extensions.pl - Prolog functionality to get game information. ggpserver - HTTP server to manage communication between Game Manager and a GGP player. externalserver - HTTP server to manage communication between CadiaPlayer and an external GGP player (root paralellization). kif2ggp - KIF/GDL to YAP Prolog compiled state. kif2pl - KIF/GDL to Prolog conversion.
Testing CADIAPlayer
By running ./cadiaplayer you are running a ggp player that communicates in the GGP protocol minus the HTML through the standard in/out pipes. It has an augmented command set for testing purposes. This document, CADIAPlayer Commands, lists all the commands it can be sent.
Running CADIAPlayer
To run CADIAPlayer as a full-fledged GGP agent communicating through HTTP use:
./ggpserver ./cadiaplayer 59834
The ggpserver strips the HTTP protocol information from messages before sending them to the program named as the first parameter (here “./cadiaplayer”) and constructs HTTP header information for the messages from it, before sending them to the Game Master. The second parameter is the port to listen for messages from the Game Master, the port 59834 shown is also the default port if this parameter is omitted.
Publications
- Abdallah Saffidine, Hilmar Finnsson and Michael Buro (2012)Alpha-Beta Pruning for Games with Simultaneous Moves. In The Twenty-Sixth AAAI Conference on Artificial Intelligence, pp. 556–564.
- Hilmar Finnsson (2012)Generalized Monte-Carlo Tree Search Extensions for General Game Playing. In The Twenty-Sixth AAAI Conference on Artificial Intelligence, pp. 1550–1556.
- Hilmar Finnsson and Yngvi Björnsson (2011)Game-Tree Properties and MCTS Performance. The IJCAI-11 Workshop on General Game Playing.
- Yngvi Björnsson and Hilmar Finnsson (2011)CadiaPlayer: Search-Control Techniques. In KI - Künstliche Intelligenz, 25(1):9-16, March 2011.
- Hilmar Finnsson and Yngvi Björnsson (2010)Learning Simulation Control in General Game Playing Agents. In The Twenty-Fourth AAAI Conference on Artificial Intelligence, pp. 954–959.
- Hilmar Finnsson and Yngvi Björnsson (2009)Simulation Control in General Game Playing Agents. The IJCAI-09 Workshop on General Game Playing.
- Yngvi Björnsson and Hilmar Finnsson (2009)CADIAPlayer: A Simulation-based Approach to General Game Playing. In IEEE Transactions on Computational Intelligence and AI in Games, vol. 1(1).
- Hilmar Finnsson and Yngvi Björnsson (2008)Simulation-based Approach to General Game Playing. In The Twenty-Third AAAI Conference on Artificial Intelligence, pp. 259–264.
- Hilmar Finnson (2007) CADIA-Player: A General Game Playing Agent. MSc Thesis, School of Computer Science, Reykjavik University.