FUEGO – an Open-Source Framework for Board Games and Go Engine Based on Monte-Carlo Tree Search

FUEGO – an Open-Source Framework for Board Games and Go Engine Based on Monte-Carlo Tree Search

FUEGO – An Open-source Framework for Board Games and Go Engine Based on Monte-Carlo Tree Search Markus Enzenberger, Martin Muller,¨ Broderick Arneson and Richard Segal Abstract—FUEGO is both an open-source software frame- available source code such as Hoffmann’s FF [20] have had work and a state of the art program that plays the game of a similarly massive impact, and have enabled much followup Go. The framework supports developing game engines for full- research. information two-player board games, and is used successfully in UEGO a substantial number of projects. The FUEGO Go program be- F contains a game-independent, state of the art came the first program to win a game against a top professional implementation of MCTS with many standard enhancements. player in 9×9 Go. It has won a number of strong tournaments It implements a coherent design, consistent with software against other programs, and is competitive for 19 × 19 as well. engineering best practices. Advanced features include a lock- This paper gives an overview of the development and free shared memory architecture, and a flexible and general current state of the FUEGO project. It describes the reusable components of the software framework and specific algorithms plug-in architecture for adding domain-specific knowledge in used in the Go engine. the game tree. The FUEGO framework has been proven in applications to Go, Hex, Havannah and Amazons. I. INTRODUCTION The main innovation of the overall FUEGO framework may lie not in the novelty of any of its specific methods and Research in computing science is driven by the interplay algorithms, but in the fact that for the first time, a state of of theory and practice. Advances in theory, such as Monte- the art implementation of these methods is made available Carlo Tree Search (MCTS) and the UCT algorithm [1], [2], freely to the public in form of a consistent, well-designed, have led to breakthrough performance in computer Go, as tested and maintained open source software. pioneered by the programs CRAZY STONE [1] and MOGO Among comparable systems, only an executable is avail- [3], [4]. In turn, attempts to improve the playing strength able for MOGO [3], [21] and for commercial programs of these programs have led to improved algorithms, such as such as THE MANY FACES OF GO,ZEN and KCC IGO. RAVE and prior knowledge initialization [5]. Another crucial The reference MCTS implementations by Dailey [22] and advance has been the development of parallel MCTS algo- Boon provide a very useful starting point, but are far from a rithms, both for shared and distributed memory architectures competitive system. Similarly, Lew’s LIBEGO [23] provides [6], [7], [8]. Recently, the scope of Monte-Carlo tree search an extremely fast but limited implementation of MCTS. methods has greatly expanded to include many other games Recent versions of GNU GO [19] contain a hybrid system [9], [10], [11], [12], [13] as well as a number of interesting adding Monte-Carlo search to GNU GO. However, it is single-agent applications [14], [15], [16], [17] and multi- several hundred Elo rating points weaker than state of the player games [18]. art programs. Baudis’ PACHI [24] is a strong and relatively FUEGO is an open-source software framework for devel- new open source MCTS Go program. All these programs are oping game engines for full-information two-player board specialized to play the game of Go. games, as well as a state of the art Go program. Open source software can facilitate and accelerate research. It lowers the A. Why Focus on MCTS and on Go? overhead of getting started with research in a field, and allows Research in computer Go has been revolutionized by experiments with new algorithms that would not be possible MCTS methods, and has seen more progress within the last otherwise because of the cost of implementing a complete four years than in the two decades before. Programs are close state of the art system. Successful previous examples show to perfection on 7 × 7 and have reached top human level the importance of open-source software: GNU GO [19] on the 9 × 9 board. In August 2009, FUEGO became the provided the first open source Go program with a strength first program to win an even game against a top-level 9 Dan approaching that of the best classical programs. It has had a professional player on 9 × 9. See Section IV-A for details. huge impact, attracting dozens of researchers and hundreds of MOGO,CRAZY STONE and THE MANY FACES OF GO have hobbyists. In chess, programs such as GNU CHESS,CRAFTY also achieved a number of successes against professional and FRUIT have popularized innovative ideas and provided players on 9 × 9. reference implementations. To give one more example, in the On 19 × 19, programs are still much weaker than top field of domain-independent planning, systems with publicly humans, but they have achieved some success with handicaps Dept. of Computing Science, University of Alberta; IBM. Corresponding of 6-9 stones [25]. The top programs ZEN,THE MANY author email: [email protected]. FACES OF GO and AYA have reached amateur dan (master) level on 19 × 19. Many MCTS programs have surpassed the provides a large number of classes and functions. The API strength of all classical programs. In a four stone handicap is not stable between major releases. Porting applications game shown in Section IV-A, FUEGO was able to score a that depend on the FUEGO libraries to a new major release lucky win against a strong 6 Dan amateur. can be a significant effort. For each major release a stable MCTS has greatly improved the state of the art in General branch is created, which is used for applying critical bug fixes Game Playing (GGP). The first MCTS program, CADIA- that do not break the API, and can be used by applications PLAYER by Finnsson and Bjornsson,¨ won both the 2007 and that do not want or need to follow new developments in 2008 AAAI competitions [9]. MCTS has now been adopted the main branch. The code is divided into five libraries, and by all strong GGP programs. uses a largely consistent coding style. Figure 1 shows the The MCTS approach is being intensely investigated in dependency graph of the libraries and applications. several other games as well. Recent games programming con- The code is written in C++ with portability in mind. Apart ferences are dominated by papers on MCTS and applications. from the standard C++ library, it uses selected parts of the In the games of Amazons and Hex, MCTS-based programs Boost libraries [34], which are available for a large number of have surpassed the strength of classical approaches [10], [11]. platforms. The required version of Boost is 1.33.1 or newer. At the 13th International Computer Games Championship in FUEGO compiles successfully with recent versions of gcc, Beijing 2008, the MCTS-based Amazons program INVADER from 4.1.2 up. Older versions of gcc will probably work but won a close match against the five time defending champion, have not been tested. the classical alpha-beta searcher 8 QUEENS PROBLEM, and Platform-dependent functionality, such as time measure- convincingly defended its title in Pamplona the following ment or process creation, is encapsulated in classes of year. In Hex, the current champion MOHEX, built upon the SMARTGAME library (see Section II-D). The default FUEGO’s MCTS implementation, remained unbeaten in Pam- implementation of those classes uses POSIX function calls. plona 2009 [12] after finishing in second place in Beijing No attempt is made to provide GUI-specific functionality. 2008 [11]. The recently popular game of Havannah is another GUIs or other controllers can interface to the game engines success story for MCTS [13]. by linking, if they are written in C++ or a compatible In games where alphabeta works very well there is natu- language, or by inter-process communication using the Go rally less interest in new techniques. A paper on MCTS in Text Protocol. shogi has won the best paper award at the yearly workshop on game programming in Japan, GPW, in 2008 [26]. A MCTS GtpEngine analysis option is provided in the top chess program Rybka [27]. SmartGame II. THE FUEGO SOFTWARE FRAMEWORK A. History FUEGO builds on two previous projects: Kierulf’s SMART Go GAME BOARD [28], [29] and Muller’s¨ EXPLORER [30], [31]. SMART GAME BOARD is a workbench for game-playing programs that has been under development since the mid SimplePlayers GoUct 1980’s. EXPLORER is a Go-playing program built on top of SMART GAME BOARD. It’s history goes back to Chen and Kierulf’s first version, called GO EXPLORER, in 1988. FuegoTest FuegoMain Motivated by the successes of CRAZY STONE and MOGO, Enzenberger started to implement an MCTS program in Fig. 1. Libraries and applications of FUEGO 2007. This program was built on top of the SMARTGAME and GO core routines but independent of the remaining EXPLORER code base. This program, simply called UCT C. GTPENGINE library at first, was renamed to FUEGO and in May 2008 became GTP, the Go Text Protocol [35], is a text-based protocol an open source project. for controlling a Go engine over a command and response stream, such as the standard I/O streams of the process, B. Technical Description and Requirements or network sockets. It was first used by GNU GO [19] This paper describes version 0.4.1 of FUEGO. File down- and has gained widespread adoption in the Computer Go loads and access to the version control system are available community.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    12 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us