Inspiration

We were inspired to build this project because our love for playing the game othello or reversi. Traditionally, othello games are subject to extreme scrutiny with machine learning models, and we wanted to see if an AI could beat us playing othello against it.

What it does

This program uses Alpha-beta pruning with a variety of heuristics, such as playing for corners, edge conditions and overlaps between pieces to figure out the next best possible moves within the othello board. It uses a depth of around 16 to 20 moves to calculate the next best possible move. As a result, in fast paced AI othello matches where timing and accuracy is both needed, a sufficient enough depth is provided with not much accuracy loss.

How we built it

We used a combination of Python and online board creation websites to test our AI. This Python framework can easily be applied into a website, which will be our next step to extend the project. We were having trouble running the program in cases when depths are reached too high and the program needs to terminate for a single request. We experimented with AWS load balancing for this.

Challenges we ran into

We ran into many challenges when deciding what AI techniques and heuristics to use. For example, we had to figure out how to tune the AI to decide in what conditions what heuristics it needed to prioritize when compared to the beginning of the game, middle of the game, and end of the game. It was extremley difficult to just guess and check this, so we used a K-means hyperparameter tuning method to model our heuristic parameters that took very long to run and find the right ones.

Accomplishments that we're proud of

We are extremley proud that it could beat us every single time, and when paired up against online AI othello bots, it was in the top 25% percentile.

Built With

Share this project:

Updates