Do any of you have a link for this paper, so I can read it?bob wrote:I had already cited the warnock paper somewhere in this thread.Gerd Isenberg wrote:a blast from the past...
from rec.games.chess 1994
Jonathan SchaefferThe following paper descibes a method of generating the numbers for a hash table. By using error correcting codes, we ensure that positions that are close on the board are not close in the hash space. Some experiments showed that we got an improvement in collision rate compared to using a random set of numbers.
MacWilliams and Sloane's book on error correcting codes has
the gory details about the theory and programming.
Tony Warnock & Burton Wendroff:
"Search Tables in Computer Chess"
ICCA Journal (March 1988), pp. 10-13.... I can speak from experience here. In the early versions of my chess program Phoenix, I generated my Zobrist hash numbers using my student id number as a seed, naively thinking the radom numbers generated by this seed would be good enough. A few years later I put code in to detect when my 32-bit hash key matched the wrong position. To my surprise, there were *lots* of errors. I changed my seed to another number and the error rate dropped dramatically. With this better seed, it became very, very rare to see a hash error.
All randomly generated numbers are not the same!
It was interesting back then, still applies today, although if you try to start a discussion on this topic, the discussion goes off into the twilight zone rather than staying on topic...
Googling it did not turn up any usable hits.