Sunday, June 11, 2006

Delta-updating n-th order Liberties

I decided I need to administrate a much higher order of liberties* (5 seems a good start), to be able to detect that a chain has no room to escape.

I found a way to do this extremely quickly, and get payback for the expense in clockcycles in the form of a much more agressive & accurate tree pruning/plausible move ordering.

The method is very exotic and involves neither bitboards nor coordinate lists. It has most definitely never been done before, otherwise there would already been dan-level Go programs :)

It goes too far to explain it all, the system can only work when other, similarly complex systems are in place but I am confident it will work. The most exciting aspect is that I think that there'll be a working tactical module "technology preview" this year.

Some folks still seem to think I'm making a "pattern-based" Go program, well, I am doing no such thing. I can't help it that my Pattern library (for Joseki & Fuseki etc.) was such a huge success that many now think that somehow that is going to be the "core" of my Go engine. Wrong. The pattern expert has been made to do Fuseki, Joseki & Good Shape, never anything else. Not TsumeGo! Not connectivity! Some egomaniacs/ignoramusses like to tell me that it's "impossible" to write a strong Go program, or that a bad Go player can't write a strong Go program.

Their asses will be used to wipe the floor with :)

*The 5th order liberties of a chain is the wavefront of a floodfill of liberties of liberties of liberties of liberties of liberties.