The topic of my term paper was to make an intelligent go playing bot. My team of three started off with reading up on GO and learning the game ourselves.Finally we submitted our bot which runs the MonteCarlo GO Algorithm.It ran on terminal (No GUI).
Here's a rough summary for the online material for those looking to explore this awesome game..
You'll read
GO is a difficult game for AI agents on every paper or website you'll refer to...
They all are
not lying...! Still, "fun" is worth the effort.
Square 1:
Wikipedia -
Get those terms in your mind .. "joseki, fuseki "(board-opening techniques), "komi"(scoring dues) etc...they are the ones who irritate at the last hour...plus, discussing the game in these terms will make the journey more intuition and fun..
Square 2:
Algorithm to be followed
- Expert System
- Pattern Recognition
- Make a hash table storing the different table positions and do a look-up before next step.
- This hash table can also guide us on the value to each state - to give a sense of victory or loss - based on expert advice.This is very difficult not just for memory reasons, but getting the expert data is also difficult.BTW, you'll find good video presentations on this approach.
- Intelligent System
- Monte Carlo GO, RAVE, UCT are some of the advanced tree searching algorithms.Papers available on the web.
- Some papers also describe the Genetic Algorithms, NN or fuzzy logic methods.But keeping in mind the time and resources, we need to choose the best.But understanding these methods wont do us a harm...so spend a week to get an overview on above mentioned "fancy" stuff.
Square 3:
Decide the final
presentation of the result of the work.The GUI you'll be using.Any server you are going to upload your bot on.This will decide the structure of your code.
- To upload your bot for competition on a server, there are some protocols to be followed.
- To impress a class/instructor try some GUIs or terminal running bots (My bot ran on terminal by the way)
Square 4:
Refer to some online bots available.Lithos, feugo, pachi, GNU Go etc.Now that you have an idea what is Monte Carlo Search in context of Go, these works will be more simple.But still, their codes are daunting and it's difficult to integrate our simple code pieces into the system. If anything goes wrong, we go clueless. So, a good place to start with is the wiki book on GO.It gives step-by-step guidelines on how to build basic bot that runs in terminal.Then, you are free to refer to papers and code the algorithms you wanted to.This method is
not advisable for those who want to use
PR.
So this is a "short" outline to get the bot GOing..!