Saturday, September 02, 2006

GNU Go

Name: GNU Go
Author: Many good people
license: GNU Public License
Website: http://www.gnu.org/software/gnugo/gnugo.html

Let me get this out of way, I am not a good Go player and thus not a good judge of the ability or strength of a Go player or program. That aside, GNU Go is a damn good program. At the 11th Computer Olympiad which was held recently in Turin, Italy, GNU Go finished first out of six in 19x19 competition and fourth out of eleven in the 9x9 category (results).

Go is a classic abstract strategy game. Players alternate placing stones on the intersections of a 19x19 grid. The objective is to control as much territory as possible by fencing off areas. If you surround a collection of your opponent's stones, they are captured and removed from the board. Play continues until both players pass. For a short game, a 9x9 board is often used.

There is a tradition in Go that except in tournaments, games should be evenly matched. This is done by giving the weaker player several "stones" at the beginning of the game. I find this tradition very honorable. It shows that Go players love a good game, and not just crushing a weaker opponent. Compare this to side games at a Backgammon tournaments where good players just want to take money from the weak.



Actually playing GNU Go on a PC requires you to download two programs: the GNU Go engine and a graphical front end. For the GNU Go engine, I used the compiled version from Teun Burger. The graphical front end I went with is Jago which requires that Java be installed. It is a little confusing. Once you install both, first start JagoClient and then click on "Play Go (GMP)" in the Action menu. In the resulting dialogue box, enter something like "c:\gnugo.exe --quiet --mode gmp --level 4" in the Go Protocol Server field. Fill in the other fields as you see fit and hit "play". That will get you going. The Jago interface is pretty straight-forward.

You can read about Go, its rules, and strategy at several sites. There is one aspect of Go which interests me, the endgame. The game ends when both players pass and the position is scored. There are many subtleties, disputes, and contradictions involved in this scoring. About 10 years ago, Berlekamp and Wolfe wrote Mathematical Go showing some of the problems which can occur. It was not written for Go players; it was written for mathematicians. But these theoretical problems sometime arise in real games causing real problems.

At this point, computer Go programs are not that strong compared against programs for other games such as Chess and Backgammon. Using a traditional min-max brute search techniques, it is unlikely that computer Go programs will ever challenge the best humans. However, my gut feel is that someone thinking outside the minmax box will create a much better class of Go programs. These programs will not only beat the best humans, but change the way the game is played much like how computer programs changed high level backgammon.

1 Comments:

At 10:44 AM, Anonymous Anonymous said...

Thanks, very interesting. I had a dabble and just so you know the command options for jago need to be outside the quotation marks if the address has any spaces.

 

Post a Comment

<< Home