[computer-go] How to cache local tactical searches?
Chrilly
c.donninger at wavenet.at
Mon Jul 31 01:29:31 PDT 2006
The eval of Suzie has a ladder-searcher which I plan now to extend to Geta's
and simple 3-Liberty Problems. Although the ladder-code is reasonable fast,
in more complicated positions the speed of the eval goes down considerable
due to the local tacitical search. So far I use the most primitive cache
method. A hash-table with the global hash-code. Due to iterative deeping
there are some cache-hits, but the percentage is much lower than with a more
clever cache-scheme.
One idea is that the local search marks a Dirty-Bitmap. All the intersection
which have been visited (and probably also the neighbours of the visited
stones, because e.g. the status of a ladder-breaker depends also on its
liberties). The dirty Bitmap and the current Board-Bitmaps are stored. When
the local search is called again, the old result is used, if the new board
matches the stored one on the intersections of the dirty bitmap.
I do not know if the method works in case of ladders at all, e.g. the
liberties of a ladder breaker can depend on a stone in a completly other
part of the board. Its not my intention to have a perfect ladder code. The
question is, if the idea is flawed at all and not only in some tricky
special cases.
A also do not know if the BitMap Key is the best way. I am not really
satiesfied with this idea. One has to store 3 Bitmaps and also the
comparision is relative slow (but of course much faster than doing the
search again). Any other suggestions?
Chrilly
More information about the computer-go
mailing list