Evolution of a Go program

About the development of Moyo Go Studio, software to (help) play the Oriental game of Go. Go is a two-player zero-sum game of perfect information. It is considered much harder than Chess. Currently, in spite of enormous effort expended, no computer program plays it above the level of a beginner.

Saturday, June 10, 2006

2nd-order Liberties

I realized I'm not done yet. Many tactical problems involve moving on second order liberties. I will make a tactical pattern recognizer based on Moyo Go's existing pattern system (with smaller patterns but therefore a thousand times faster and more sophisticated). That module needs to know about 2nd order liberties anyway, so I might just as well maintain them in the tactical engine.

The tactical pattern classifier will order plausible moves based on automated learning from a billion moves in pro- and high-ranking ama games. This neatly avoids me having to learn & encode hundreds or even thousands of patterns and heuristics, and it's a much superior method anyway. It will be easy to build such a system: I've done it before and I already know it works very well :)

I will camp in the forest this weekend and design both: A fast incremental second-order liberty updater and a tactical pattern expert suitable for a hyperfast plausible move generator.

The PMG's hash table should fit snugly in the Opteron's L2 cache, which is 1 MB.