[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [HELP] Zobrist Hashing



The basic idea is to set up big table of random numbers and use them to
incrementally
update the hash value for a position.  In go, you would have 361 numbers
for white, 361
for black, and perhaps 361 for the ko point.  When the state of a point
changes, just
xor the hash index with the corresponding random number.  This is simple,
fast, and
gives a good hash distribution.  If you use 64 bit numbers, use some bits
as index
into your hash table, and the rest as the tag for the entry, you have a low
likelihood
of sprious collisions (where the tag matches, but the position is not
really the
same).

Try a web search for Zobrist.  It's commonly used in computer chess and
other games
with search.

David

At 04:56 PM 10/30/98 -0800, Mousheng Xu wrote:
>Hi,
>	I read throught all computer-go posts containing the word "Zobrist", but
>can not figure out exactly what "Zobrist Hashing" is and why it is "good"
>for game playing.
>	The original articles are not readily available. I searched Univ. of
>Washington Library system, but could not find it. Nor could I find any
>detail enough description on the Web.
>	So, could some please give 
>	1) An brief description about what "Zobrist Hashing" is, and why it is
>good for game playing?
>OR	2) Be generous enough to FAX me the original papers?
>	
>	Thanks a million.
>
>-- Mousheng Xu
>Phone:	(425)489-8034
>Fax: 	(425)489-8019
>
>