Sylvain GELLY's Home Page
New!! Download MoGo!
Visit the
download page
More information on MoGo
Technical Report on MoGo
Article on INRIA's web site
Article on )i( Interstices's web site (in french)
ICML paper on MoGo
MoGo: a program playing Go
New life of MoGo
The following text is in english. Si vous preferez lire le texte en francais: site francais de MoGo .
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 (and now 19x19 as well) 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. Here is a brief list (not updated since February 2007) of tournaments played by MoGo.
Since the last complete update, MoGo has won other 9x9, 13x13 and 19x19 tournaments on KGS. MoGo had other successes, like winning the Gold Medal in the 2007 Computer Game Olympiad for the game of Go, and being the first program to defeat a professional player in 9x9 Go.
MoGo is first ranked since August 2006 among 142 programs on Computer Go Server.
MoGo won the October 2006 KGS international tournaments in 9x9 and 13x13 (see results).
MoGo won the November 2006 KGS international tournaments in 13x13 and 9x9 (see results).
MoGo ended 2nd in Formal division of the December 2006 KGS international tournaments in 19x19 (see results).
MoGo won the 2006 KGS international Slow tournament in 19x19 (see results).
MoGo won the January 2007 KGS international tournaments in 9x9 and 13x13 (see results).
MoGo won the February 2007 KGS international tournaments in 9x9 and 13x13 (see results).
Acknowledgements:
Contributors (before September 2007):
Yizao Wang, Sylvain Gelly, David Silver, Remi Munos, Olivier Teytaud, Pierre-Arnaud Coquelin.