Fuego—An Open-Source Framework for Board Games and Go Engine Based on Monte Carlo Tree Search

FUEGO is both an open-source software framework and a state-of-the-art program that plays the game of Go. The framework supports developing game engines for full-information two-player board games, and is used successfully in a substantial number of projects. The FUEGO Go program became the first program to win a game against a top professional player in 9 × 9 Go. It has won a number of strong tournaments against other programs, and is competitive for 19 × 19 as well. This paper gives an overview of the development and current state of the FUEGO project. It describes the reusable components of the software framework and specific algorithms used in the Go engine.

[1]  E. D. Cope THE DATE OF PUBLICATION. , 1896, Science.

[2]  David B. Benson,et al.  Life in the game of Go , 1976 .

[3]  Anders Kierulf,et al.  Smart Game Board: a workbench for game playing programs, with Go and Othello as case studies , 1990 .

[4]  Ralph Gasser,et al.  Every Interactive System Evolves into Hyperspace: The Case of the Smart Game Board , 1991, Hypertext/Hypermedia.

[5]  Michael Buro,et al.  ProbCut: An Effective Selective Extension of the α-β Algorithm , 1995, J. Int. Comput. Games Assoc..

[6]  Martin Müller,et al.  Computer go as a sum of local games: an application of combinatorial game theory , 1995 .

[7]  Michael Buro,et al.  ProbCut: An Effective Selective Extension of the alphabeta Algorithm , 1995 .

[8]  Martin Mueller,et al.  solving 5 × 5 Amazons , 2001 .

[9]  Bernhard Nebel,et al.  The FF Planning System: Fast Plan Generation Through Heuristic Search , 2011, J. Artif. Intell. Res..

[10]  Martin Müller,et al.  Computer Go , 2002, Artif. Intell..

[11]  Martin Müller Counting the Score : Position Evaluation in Computer Go , 2002 .

[12]  Martin Müller Position Evaluation in Computer Go , 2002, J. Int. Comput. Games Assoc..

[13]  Zhichao Li,et al.  Locally Informed Global Search for Sums of Combinatorial Games , 2004, Computers and Games.

[14]  Akihiro Kishimoto Correct and efficient search algorithms in the presence of repetitions , 2005 .

[15]  No License,et al.  Intel ® 64 and IA-32 Architectures Software Developer ’ s Manual Volume 3 A : System Programming Guide , Part 1 , 2006 .

[16]  Olivier Teytaud,et al.  Modification of UCT with Patterns in Monte-Carlo Go , 2006 .

[17]  Rémi Coulom,et al.  Efficient Selectivity and Backup Operators in Monte-Carlo Tree Search , 2006, Computers and Games.

[18]  Csaba Szepesvári,et al.  Bandit Based Monte-Carlo Planning , 2006, ECML.

[19]  David Silver,et al.  Combining online and offline knowledge in UCT , 2007, ICML '07.

[20]  Richard S. Sutton,et al.  Reinforcement Learning of Local Shape in the Game of Go , 2007, IJCAI.

[21]  H. Jaap van den Herik,et al.  Parallel Monte-Carlo Tree Search , 2008, Computers and Games.

[22]  Olivier Teytaud,et al.  The Parallelization of Monte-Carlo Planning - Parallelization of MC-Planning , 2008, ICINCO-ICSO.

[23]  H. Jaap van den Herik,et al.  Computers and Games, 6th International Conference, CG 2008, Beijing, China, September 29 - October 1, 2008. Proceedings , 2008, Computers and Games.

[24]  Nicolas Jouandeau,et al.  A Parallel Monte-Carlo Tree Search Algorithm , 2008, Computers and Games.

[25]  H. Jaap van den Herik,et al.  Single-Player Monte-Carlo Tree Search , 2008, Computers and Games.

[26]  Yngvi Björnsson,et al.  Simulation-Based Approach to General Game Playing , 2008, AAAI.

[27]  H. Jaap van den Herik,et al.  Progressive Strategies for Monte-Carlo Tree Search , 2008 .

[28]  Richard J. Lorentz Amazons Discover Monte-Carlo , 2008, Computers and Games.

[29]  Ryan B. Hayward,et al.  Wolve Wins Hex Tournament , 2008 .

[30]  Martin Müller,et al.  Using Artificial Boundaries in the Game of Go , 2008, Computers and Games.

[31]  Nathan R. Sturtevant,et al.  An Analysis of UCT in Multi-Player Games , 2008, J. Int. Comput. Games Assoc..

[32]  Olivier Teytaud,et al.  Creating an Upper-Confidence-Tree Program for Havannah , 2009, ACG.

[33]  Yngvi Björnsson,et al.  CadiaPlayer: A Simulation-Based General Game Player , 2009, IEEE Transactions on Computational Intelligence and AI in Games.

[34]  Markus Püschel,et al.  Bandit-based optimization on graphs with application to library performance tuning , 2009, ICML '09.

[35]  Olivier Teytaud,et al.  Grid Coevolution for Adaptive Simulations: Application to the Building of Opening Books in the Game of Go , 2009, EvoWorkshops.

[36]  Martin Müller,et al.  A Study of UCT and Its Enhancements in an Artificial Game , 2009, ACG.

[37]  Martin Müller,et al.  Monte-Carlo Exploration for Deterministic Planning , 2009, IJCAI.

[38]  Martin Müller,et al.  A Lock-Free Multithreaded Monte-Carlo Tree Search Algorithm , 2009, ACG.

[39]  David Silver,et al.  Reinforcement learning and simulation-based search in computer go , 2009 .

[40]  Olivier Teytaud,et al.  Adding Expert Knowledge and Exploration in Monte-Carlo Tree Search , 2009, ACG.

[41]  Daisuke Takahashi,et al.  A Shogi Program Based on Monte-Carlo Tree Search , 2010, J. Int. Comput. Games Assoc..

[42]  H. Jaap van den Herik,et al.  Advances in Computer Games, 12th International Conference, ACG 2009, Pamplona, Spain, May 11-13, 2009. Revised Papers , 2010, ACG.

[43]  Meaghan Morris,et al.  The Many Faces of Tau , 2011, Neuron.

[44]  Sandeep Koranne,et al.  Boost C++ Libraries , 2011 .

[45]  Ryan B. Hayward,et al.  MOHEX Wins Hex Tournament , 2012, J. Int. Comput. Games Assoc..