[computer-go] Caching of local search in SlugGo
Chrilly
c.donninger at wavenet.at
Tue Aug 8 20:45:31 PDT 2006
----- Original Message -----
From: "David G Doshay" <ddoshay at mac.com>
To: "computer-go" <computer-go at computer-go.org>
Sent: Wednesday, August 09, 2006 3:07 AM
Subject: Re: [computer-go] Caching of local search in SlugGo
> The multiple global searches done in SlugGo are cached using Zobrist
> hashing. We do see hits that speed the lookahead.
>
> Cheers,
> David
>
Zobrist Hashing over the overall board or only some dirty region?. Currently
I use in Suzie global hashing, but the hit-rate is not very high. A stone
set in a completly unrelated area invalidates the entry.
If one makes some local scheme one has a) set the dirty region and b)
Calculate some efficient key for this region.
I have not checked it in the code, but according the documentation GnuGo
calculates the dirty region by marking every visited intersectiion and then
expanding these region 4 steps in every direction.
But no hash-code is calculated, the dirty region is stored and if some stone
is set in this region the cache is invalidated. I do not like this second
step. A hashtable should not be dependent of move orders by not invalidating
some entries. Additionally one invalidates probably more than is necessary.
E.g. a move is done, the cache is invalidated, the move is taken back,
another move is done which does not invalidate the chache. The entry should
be still available for this move. But its probably no problem in GnuGo type
programms were no global search is done. The only moves which are done are
the moves played in the game. In this case the do-move undo-move sequence
does not happen.
In case of Suzie even this is a problem, because when a move is played on
the board, the interface always sends the whole move-sequence from the
starting position. This is usuall in chess. It makes the invalidation of a
cache tricky.
Chrilly
More information about the computer-go
mailing list