[computer-go] Caching of local search
Chrilly
c.donninger at wavenet.at
Wed Aug 9 23:51:38 PDT 2006
>
> -- hash only the portion of the board that is relevant. This means empty
> but relevant intersections are assigned nonzero hash values, to
> distinguish them from irrelevant intersections.
For the matching operation one has to create the same hash-value over the
same dirty area?
I think one can not do this incrementally because there can be different
local searches and one has to calculate for each corresponding area an own
hash-key.
If the dirty-area is small, calculating the key for the current
board-position is fast. For a ladder running over the board it takes some
time. Its still faster than searching the ladder again, if one has a match.
But in case of no match, its a considerable loss of time. Depends on the
matching rate.
One idea I head is to partition the board in 25 4x4 (3x3) tiles. One
computes incrementally for each tile a hash-number. The local search stores
then a bit-vector of the dirty tiles and the XOR of the involved
tile-hashes.
The dirty area gets somewhat larger due to the tiles, but recalculating the
hash should be much faster.
Chrilly
More information about the computer-go
mailing list