Gomoku AI

ROLE: Programmer



This was a project I did in the Taiwan Evolutionary Intelligence Laboratory. We implemented genetic algorithm and tournament selection for the computer Gomoku player. The computer used minimax to search for its next play.

Feature extraction was an important part in genetic algorithm, because they needed to be crossed over to determine their children's characteristics. Board patterns were chosen to be the features after some trials and errors. Zobrist hashing and iterative deepening were also implemented to speed up the seaching process.

We built the player on Linux, because the genetic algorithm required a lot of time, so we needed to run it in the cluster. We implemented simple multithreading to accelerate the evolution process, and some scripts to load our program into the cluster. I was in charge of managing the structure of the entire program, the core game rules, hashing, and some utility functions.

The final result was a computer Gomoku player capable of beating beginning to intermediate level human players.