Saturday, January 28, 2006

Back to the Drawing Board!

In the best sense of the word.

Yesterday I started with the design of a TsumeGo module. Pattern recognition - although limited in its capabilities - is excellent for Fuseki and Joseki, Tesuji and "good shape", the basis for a high-end Go program. What's still missing is a tactical module.

I hear from kyu- and dan-level players that MoyoGo gives them ideas for moves they wouldn't have considered before, and because MoyoGo doesn't "dumbly" suggest moves but shows the situation in games in which those moves were played, a player can make an informed judgment whether that (semi)-local move really is interesting in his own global position.

As to the usefullness of a pattern-recognition system to suggest strong Go moves in general: Of course such a system can never be (highly) "tactical" and the more "thinking ahead" required, the less useful any pattern-based system, but it excels at the opening stages of the game, yielding pro-level Fuseki and Joseki suggestions and their continuations, all the way to midgame.

Of course, players want to analyze "deeper" too, they want to get 100% proven answers as to whether chains can be captured or connected.

If anyone doubted my commitment to providing such functionality (as a free update), have a look at a few of the crates of ordners I have with computer Go abstracts.. Some titles: "Tree Search", "Secure Territories", "Adversarial planning", "Life & Death", "Eyes" and "Combinatorial Game Theory". Most are filled to the brim with publications, and I have read (but not always understood ;-) them all.

I started collecting them five years ago. It is so important to get the design of a TsumeGo module straight, that I did not want to embark on a "quick & dirty" implementation. So I decided to fund the development of the world's strongest TsumeGo module with the world's best (only?) Go pattern expert system. That is the right way to do it, because the biggest moves are in the opening and a TsumeGo module can't achieve pro-level strength in the opening. MoyoGo's pattern system can, and often does. I start with the opening and work my way forward :)

Whilst putting the finishing touch on the Fuseki/Joseki information system - in this phase it is important to listen to the "early adopters" - it becomes time to work on many small feature requests and minor bugfixes, and parallel to that, on the TsumeGo module. The goal is to design a system that is able to handle problems that can't be handled (fast enough) by GoTools or MadLab, but that will be a tough nut to crack. I started to read Steve Pavlina's articles on personal development to prepare myself for this intimidating yet intriguing challenge.