Move Prediction in the Game of Go
Brett Alexander Harrison · 2010
As a direct result of artificial intelligence research, computers are now expert players in a variety of popular games, including Checkers, Chess, Othello (Reversi), and Backgammon. Yet one game continues to elude the efforts of computer scientists: Go, also known as Igo in Japan, Weiqi in China, and Baduk in Korea. Due in part to the strategic complexity of Go and the sheer number of moves available to each player, most typical game-playing algorithms have failed to be effective with Go. Even state-of-the-art computer Go programs are weaker than high-ranking amateurs. Thus Go provides the perfect framework for developing and testing new ideas in a variety of fields in computer science, including algorithms, computational game theory, and machine learning. In this thesis, we explore the problem of move prediction in the game of Go. The move prediction problem asks how we can build a program which trains on Go games in order to predict the moves of professional and high-ranking amateur players in other Go games. An accurate move predictor could serve as a powerful component of Go-playing programs, since it can be used to reduce the branching factor in game tree search and can be used as an effective move ordering heuristic. Our first main contribution to this field is the creation of a novel move prediction system, based on a naive Bayes model, which builds upon the work of several previous move prediction systems. Our move prediction system achieves competitive results in terms of move prediction accuracy when tested on professional games and high-ranking amateur games. Our system is simple, fast to train, and easy to implement. Our second main contribution is that we describe in detail the process of implementing the framework for our move prediction system, such that future researchers can quickly reproduce our results and test new ideas using our framework.