Othello AI
Uses Alpha-Beta pruning and Monte Carlo Tree Search for othello AI
Othello is a classic game, involving two players who fight over control of a board. Much like a game of chess, each turn elicits more and more options for each following move, creating a decision tree that grows exponentially. In order to create a feasible
and explorable decision tree, this project takes advantage of game theory algorithms that enable the "AI" to prune decision that are mathematically least optimal. It's impossible to describe these algorithms in a short summary, but I
will try to avoid technical explainations and simply just link thorough explainations.
The most basic of turn-based games is mini-max where weights are determined that offer the min or max value options for each move branch. Alpha-Beta pruning builds off this by eliminating branches that are compartatively less optimal. Lastly,
Monte Carlo Tree Search integrates probability, essentially finding the branch with the highest possibility of the higher moves. This offer several
advantages. While alpha-beta essentially guarentees the best move to a specific depth, the depth is limited, even with pruning. Meanwhile, Monte Carlo simply chooses to follow the path with the best probability, exploring a greater depth.
However, it can suffer from uncertainty and missed optimal moves. In the end, implementation is essentialy. However, I found that Monte Carlo was more effective around 60% of the time.
See the repository here.