Sylvain GELLY's Home Page (original) (raw)
You can find other informations and in particular history of developpement of MoGo here: MoGo on Senseis's Library.
The history of Go stretches back some 4000 years and the game still enjoys a great popularity all over the world. Although its rules are simple (see gobase for a comprehensive introduction), its complexity has defeated the many attempts done to build a good Computer-Go player since the late 70's Presently, the best Computer-Go players are at the level of weak amateurs; Go is now considered one of the most difficult challenges for AI, replacing Chess in this role. The complexity of computer-Go comes from the difficulty to evaluation of given Go board position and the huge branching factor.
MoGo has been developped tackling specifically and efficiently theses two problems:
- position evaluation by Monte-Carlo : from a given Go board position, a fast random player plays the game until the end. Then the score can be calculated quicly and precisely directly from the Go rules. We call that a simulation. Repeating the simulations a huge number of times and taking the average of the results, the position is now evaluated. This idea appeared in 1993 in computer Go. MoGo use expert knowledge in a novel way to improve the random player, and then increase significatively the evaluation precision.
- exploration-exploitation in the search tree using UCT algorithm : alpha-beta algorithm widely used and very efficient in particular in chess, happens to be inefficient for Go. MoGo is the first Go program to introduce UCT algorithm in computer Go. Advantages are:
- asymmetric growing of the tree: the most interesting moves are more deeply explored.
- effective imprecision management: the estimation of the position value at each node vary from the average to the min-max. This depends on the confidence in the estimations. Thus, if after a sufficient number of simulations, a move becomes better than the others, the value return by UCT will be close to the max among the possible moves. If the estimated values of several moves are not significatively different, then UCT will return a value close to the mean.
- anytime: the algorithm can be stopped at any moment, while giving a good result.
It worth mentionning that most of the top level 9x9 Go programs use UCT.
MoGo in competition:
There are several championships and tournaments in computer Go. The goal is to make different programs playing Go games between them, and have an estimation of their relative level.
MoGo is first ranked since August 2006 among 142 programs on Computer Go Server.
MoGo won the October 2006 KGS international tournament in 9x9 and 13x13 (see results).
MoGo won the November 2006 KGS international tournament in 13x13 and 9x9 (see results).
Acknowledgements:
Contributors: Yizao Wang, Sylvain Gelly, R�mi Munos, Olivier Teytaud, Pierre-Arnaud Coquelin and R�mi Coulom.
MoGo is by many aspects inspired from CrazyStone.