views:

398

answers:

3

There are plenty of Chess AI's around, and evidently some are good enough to beat some of the world's greatest players.

I've heard that many attempts have been made to write successful AI's for the board game Go, but so far nothing has been conceived beyond average amateur level.

Could it be that the task of mathematically calculating the optimal move at any given time in Go is an NP-complete problem?

+10  A: 

Chess and Go are both EXPTIME complete. IIRC, Go has more possible moves, so I think it a higher multiple of that complexity class than chess. Wikipedia has a good article on the complexity of Go.

rmeador
You might want to mention that both results are for generalized versions of the games. The games with constant-sized boards can, trivially, both be solved in constant time. (Though the constant is too large for us to deal with right now, and possibly ever.)
ShreevatsaR
In terms of understanding what is meant when an expert says "Chess is EXPTIME-complete" ShreevatsaR's point is very important.
PeterAllenWebb
A: 

Even if Go is merely in P it could still be something horrendous like O(n^m) where n is the number of spaces and m is some (large) fixed number. Even being in P doesn't make something reasonable to compute.

BCS
+1  A: 

Neither Chess or Go AIs completely evaluate all possibilities before deciding on a move.

Chess AIs use various heuristics to narrow down the search space, and to quantify how 'good' a given position on the board happens to be. This can be done recursively by evaluating possible board positions 14-15 moves ahead and choosing a path that leads to a good position.

There's a bit of 'magic' in how a board position is quantified so the that at the top level, the AI can simply go Move A > Move B therefore lets do Move A. But since there's a limited number of pieces and they all have quantifiable value a 'good enough' algorithm can be implemented.

But it turns out to be a lot harder for a program to evaluate two possible board positions in Go and make that A > B calculation. Without that critical piece its a little hard to make the rest of the AI work.

Adam Luchjenbroers