Settlers of Catan AI

Project Overview

  • Duration: April 2019 (1 month)
  • Team: 3 undergraduate engineering students, 1 graduate engineering student (equal contribution)
  • My role: Developer
  • Tools & Frameworks: Python, Jupyter, matplotlib

Motivation

For my final project in UC Berkeley's EECS 126 Stochastic Processes class my team decided to create an AI that could play Settlers of Catan well. This put together many of the probabilistic topics we learned in the class, most specifically properties of discrete-time Markov chains. My team designed both single and multiplayer policies for a playable Catan AI Engine that minimizes the number of moves to win using the expected hitting time properties of discrete-time Markov chains to learn the action corresponding to the lowest time. This can be interpreted as finding the lowest amount of remaining moves to win after the AI decides from a pool of legal actions such as: buy a card, build a settlement, or upgrade an existing settlement. Additionally, we had optimizations and heuristics that helped the AI choose an optimal starting spot, dealing with trades through ports and building roads. My team's AI won second place in the Settlers of Catan AI round-robin tournament and won the second prize after the final project presentations. A deeper dive into my team's strategies and results can be found in our report above!