Cracking Go 328
prostoalex writes "IEEE Spectrum looks at current trends in artificial technology to crack the ancient Chinese game of Go, which theoretically has 10^60 potential endings. Is conquering the game via exhaustive search of all possibilities possible? 'My gut feeling is that with some optimization a machine that can search a trillion positions per second would be enough to play Go at the very highest level. It would then be cheaper to build the machine out of FPGAs (field-programmable gate arrays) instead of the much more expensive and highly unwieldy full-custom chips. That way, university students could easily take on the challenge.'"
Not Any Time Soon (Score:5, Informative)
Playing Go is more than just searching a lot of positions. The game is _very_ subtle. To even understand how a professional 9 dan player (i.e. the very highest ranked players) plays every move in a game, you really need to be at least a 7 dan or so -- anything less than that and the moves just won't make a lot of sense. I have the feeling that it will be at least a decade (but probably much longer) before computer opponents can beat professional players, and even longer than that until they can beat the very best human player.s
Re:I don't care how good it is (Score:5, Informative)
Er, actually, Fujiwara no Sai is Heian era, not Edo.
Chris Mattern
FPGAs? (Score:2, Informative)
Re:Exhaustive? (Score:5, Informative)
The basic asnwer is that we can optimise doing something simple and replicate lots, far, far better than optimisiing something complex and replicating it a few times. Which if you think about it is the approach that the brain / evolution of the brain opts for.
The "brute-force" approach described is actually mid-way between a pure brute-force (exhaustive) search and a "smart" search using quite sophisticated techniques to prune the tree. The author talks about alpha-beta pruning, null-move generation and hypothesis testing. These techniques are still pure-search (brute force) techniques - ie you could apply them to any game tree, but their effects are similar to how a smart (tailored to the specific game) approach would work.
Re:why check everything (Score:3, Informative)
We also have yet to develop heuristics that even evaluate one position very well, especially during the opening or middle game. Machine learning is not a cure-all here: there's a combinatoric explosion that happens very quickly with this game which makes most of the techniques difficult to train even under the best of circumstances.
Not to say that such won't eventually be possible, but it's handwaving.
Re:why check everything (Score:3, Informative)
Not any more than solving 128-bit cipher is a constant-time problem.
Using the Japanese rules Go has been proven to be EXPTIME-complete [wikipedia.org].
Progress in Computer Go (Score:5, Informative)
Re:FPGAs? (Score:2, Informative)
Now with FPGA's, an average clock cycle that it would be run at would be around 200 Mhz. This may seem slow at first but once you realize that at this 200 Mhz clock speed you are calculating several thousand computations you will see that you can easily crush the 10 billion opperations per second of a normal processor and reach several trillion opperations per second with a single FPGA.
It's 10^170, not 10^60 (Score:2, Informative)