This week, our team continued to work on building our AI agent. We considered the potential for newer methods of representing the game board.
Training an AI to play a game requires some representation of the game’s state. For board games like Chess or Go, it’s easy to programmatically recreate the game board using a 2D vector or matrix. Each matrix element would contain information about the piece in the corresponding space. Adjacent spaces are easy to calculate: you would adjust the row or column index by 1 to get the space up, down, left, or right.

With Catan, however, the game is played on a hexagonal board rather than a square grid. Thus, it becomes difficult to represent the board using vectors. Even if one numbers each vertex (like in the diagram above), determining which vertices are adjacent is not intuitive. Because of this, it is easier to represent the board using a graph data structure instead.
This gave us the idea of using an artificial neural network specialized for graphs: Graph Neural Networks (GNNs). There would be 54 nodes total, one for each vertex in the game, with 72 edges connecting them. Each node has an associated feature vector detailing the pieces on the corresponding vertex and the adjacent tiles. Each edge also has an associated feature vector for any road placed on that edge. We hope that GNNs will provide a new means of representing the game board and improve the overall model’s understanding of the game of Catan.
Next week, we have our second Qualification Review Board (QRB) presentation, where we will once again present our project and hopefully get feedback on our new testing plan.
That’s all for now! See you next week!