Computer Chess Club Archives




Subject: Re: A fast hash -- assuming you are not planning to do incremental updates

Author: martin fierz

Date: 03:00:23 06/15/01

Go up one level in this thread

On June 15, 2001 at 05:19:42, Dann Corbit wrote:

>On June 15, 2001 at 05:09:35, martin fierz wrote:
>>On June 15, 2001 at 02:40:15, Dann Corbit wrote:
>>>Suppose that you have a chessboard represented as 64 characters, and you want to
>>>make a hash from it.  This works well, if you make a 64 bit hash by hashing the
>>>first 32 characters and then the second 32 characters to make two 32 bit chunks.
>>> It was quite a bit faster than Zobrist hashing.  On the other hand, it cannot
>>>be used to do incremental updates, so you might be sorry you used it if you
>>>decide to go that route.
>>one of the best checkers programs (kingsrow by ed gilbert) uses this hash
>>function. ed wrote me once that this was faster than zobrist. i have
>>never tried it myself.
>I can verify that it is faster than Zobrist hashing if you hash the whole board
>at once.  However, if you do incremental updates, then Zobrist once again
>becomes faster and by a goodly margin.  With Zobrist hashing, you can
>make/unmake for a single piece.

i am using zobrist with incremental updates, ed gilbert is using this jenkins
hash. his program is a lot faster than mine, but probably just because he is
generally a better programmer than i am :-)
anyway, he wrote me that this hash was faster than zobrist incremental...
of course, in checkers you have a smaller board and only 4 kinds of pieces,
so there is a difference to chess there - in chess and checkers, you have about
the same incremental update difference with zobrist, but in checkers you have a
much smaller effort to generate a whole new hashkey because of the smaller board
and less piece types.


This page took 0.16 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.