Northridge users can login to download this file.

Masters Thesis

Applying heuristics to the Monte Carlo/UCT method of playing go

I have ported the original C GoJin program to Java and redesigned it to support the addition of heuristics to Monte Carlo/UCT. By implementing the Go rules using Java, I was able to more easily maintain meta information about the game to use in the heuristics. The overhead of maintaining the meta information needed to be optimized significantly due to the fact that Monte Carlo/UCT depends heavily on speed in order to provide reasonable performance. Utilizing CGOS and gogui-twogtp, I was able to measure the various improvements I made against the basic Java port with no meta information. I looked at each stage of the program, starting with meta information, adding various top level heuristics, and finally adding heuristics to the simulations. My tests focused on finding out how strongly all the extra overhead affected the Monte Carlo/UCT algorithm and whether it was worth the sacrifice in speed in exchange for more intelligent move analysis.

Items in ScholarWorks are protected by copyright, with all rights reserved, unless otherwise indicated.