Tuesday, May 10, 2005

Computer go v. computer chess

What do you know about computer go?

There is a phenomenon that current computer programs for chess are on par with international chess grandmasters. Meanwhile, the best computer go can't even compete with average players who have played for a year.

What's the difference? Well, the common arguments are to the effect that go has a "bigger branching factor" because there are so many more possible moves in a typical position. This allows chess programs to look ahead up to twice as many moves ahead as a go program, given no pruning at all. Another reason is that chess programs can use sophisticated opening and endgame databases, and thus are really only able to lose a game in the mid-game.

This analysis is undermined if one notices that computer go is equally skillful (or unskillful) at playing 9x9 go as it is at playing 19x19 go. In 9x9 go, the branching factor is much closer to that in chess (around 40 moves on average). Again, opening databases can be used, and very few games are won or lost in the endgame anyway.

So, why do computers suck at go? The answer is that they don't suck at all. Rather, we humans are just much better at go than we are at chess. Spacial symmetry and spacial reasoning is much more meaningful in go than in chess, and we are good at spacial problems.

Go is a game where we win by proving to ourselves that a certain move is "good enough", not by finding the best move. Even pros play this way. In go, there are often many variations on a particular play that lead to essentially the same result. Though the stones might be in slightly different positions, we can see that the differences are either trivial or else don't matter at all. Our minds automatically fold these possibilities into each other and we forget about the unimportant differences. The effective branching factor is thus much smaller for go than it appears.

Logical separation of the action in different parts of the board is also possible in go to an extent that is not possible in chess. Long-range dependencies certainly exist in go, even on a relatively empty board, and good players take advantage of them. However, we can play reasonably well by forgetting about them, and it can save a lot of mental effort. That's a good trade-off, especially in the positions where we can prove to ourselves that the positions are truly independent.

These reasons make go a much more interesting game than chess in which to pit computers against humans. Sure, computers can beat us at chess using tree search and clever hacks. To beat us at go will take much more. Computers will have to think a lot more like we do.

Go is a game that offers big rewards for players that possess skills native to humans, to an extent that chess does not. The day that a computer became the world's chess champion was a milestone for artificial intelligence. The day that computers beat us in go will be a much bigger one.

4 Comments:

Blogger Frank said...

This comment has been removed by a blog administrator.

2:43 PM  
Blogger Frank said...

Great post. I am linking to it in my own blog at http://moyogo.com/blog/blog.htm

I am not sure people are so much better at Go then they are at Chess, so I am neither sure that this is a main reason computers are much worse at Go than they are at Chess.

I think the main reasons computers are bad at Go is that there hasn't been too much effort expended at finding better algorithms targeted at computer Go. There have been thousands of very serious Chess programmers as opposed to only dozens of very serious Go programmers.

Computer Go remains an elusive area, and it's easy to get stuck in the quicksand.

2:43 PM  
Anonymous Anonymous said...

I think the main reasons computers are bad at Go is that there hasn't been too much effort expended at finding better algorithms targeted at computer Go. There have been thousands of very serious Chess programmers as opposed to only dozens of very serious Go programmers.

That's true, but it's also undeniable that a very straightforward and fast evaluation function for chess can make for good playing, while in Go the same approach makes for bad playing. So, yes, there seems to be some inherent difficulty for making good go computer programs.

PS: All this assuming that game-tree searching is the chosen approach, of course - which AFAIK is true for most games, with the exception of Backgammon for example.

6:04 AM  
Anonymous Anonymous said...

Its not so much that there hasn't been effort, because a bit of searching and you can see that there has been plenty of work, it's just that the game is too big. It is too complex for a computer to currently play, at least on the 19x19 board. Maybe it's just the approach people are taking to try and make it work.

11:00 AM  

Post a Comment

<< Home