Abstract
A game is a form of playing that follows a series of rules for the player(s) to achieve specific goals. In general, humans usually are the player in the game. However, other entities like an autonomous computer system can also be a player in the game. In Artificial Intelligence (AI), that system is called a Game-playing Agent (GPA). Examples of GPAs with high performance when playing against humans are DeepBlue (specific to play only chess) and AlphaGo (Go). There are techniques to develop a GPA further into a General Game-playing (GGP) agent, an agent that can play more than one game. An example of the GGP agent is AlphaZero which can play Go, Shogi, and Chess.
The development of GGP agents has also gone in parallel with the development of a general game-playing system, a system with the capability to model more than one game. One example of such a system is Ludii. In Ludii, a game can be modeled using a class grammar and played by an agent developed using Java Programming Languages. In this research, we develop a GGP agent that can play more than one game in the Ludii systems. This agent will implement algorithms that are inspired by the AlphaZero: Monte Carlo Tree Search (MCTS) and neural networks trained by self-play.
However, to enable the agent to run in Ludii, we must make several adjustments and modifications to the agent. For example, we must use a wrapper to allow the conversion between the object that models the game features given by Ludii and the tensor needed to train the neural network. Subsequently, experiments are performed on the GGP agent using three games: Tic-Tac-Toe, Hex, and Reversi. To reduce the resources needed for experiments, we shrink the board size of Hex and Reversi. Afterward, we use two neural network models and two types of wrappers to train the agent. Finally, the trained agent is tested by playing games against agents that implement different kinds of algorithms. The results show that our agent has been successfully trained and can play the three chosen games with moderate success. In Tic-Tac-Toe, our agent can achieve drawing results in all 100 games against agents with an optimal algorithm such as alpha-beta pruning. Whereas in 4x4 Hex, our agent wins all 100 games when playing as the first player.Contribution
- Implementing MCTS-based algorithm part in Java
- Using DJL (Deep Java Library) for the Deep Learning part in searching reward and exploration policy.
- Creating Thesis in Indonesian Langguage with code documentation