Author: Tony Werten
Date: 09:51:15 10/02/01
Go up one level in this thread
On October 01, 2001 at 23:37:02, Robert Hyatt wrote: >On October 01, 2001 at 17:46:57, Alvaro Jose Povoa Cardoso wrote: > >>On October 01, 2001 at 17:36:26, Robert Hyatt wrote: >> >>>On October 01, 2001 at 16:55:21, Alvaro Jose Povoa Cardoso wrote: >>> >>>>I know this question was probably made many times, but I wasn't listening :) >>>>Could someone please explain in detail the Crafty openings book binary format? >>>>Does it represent positions and not moves? >>>> >>>>Best regards, >>>>Alvaro Cardoso >>> >>> >>>Yes. It is essentially hash signatures produced by making moves and then >>>updating the hash signature after each move and storing it. >>> >>>It uses a cute "grouping" scheme so that all the signatures that share a >>>common "parent" position are lumped together in the book file so that one I/O >>>operation will read in all possible book moves for any position. >> >>Could you please explain this grouping scheme? >> > > > > >Sure. I take the upper 16 bits of the parent position hash signature, and >combine that with the lower 48 bits of the "children" signatures. I sort >the file into ascending sequence, so that all positions with the same 16 bit >parent signature part are grouped together. That gets all children of the >same parent into consecutive file positions. I then build a set of indices >that point to each of these "clusters". (A cluster is all book positions that >match in the upper 16 bits). I have a pointer to each cluster, and the first >thing in a cluster is the number of bytes in that cluster. I read the first >4 bytes the index points to to get the number of bytes in the cluster, then >I read in the entire cluster. I search it sequentially for each hash signature >match after trying a legal move. > >Simple and effective. > I don't see how this can handle either move- or color transpositions. Tony > > > >>Also, did you ever noticed any anomalies by using the hash signatures scheme >>due the non existing 'one to one relation' bettween positions and hash >>signatures? In other words, could a program make a wrong opening move because of >>hashing inconsistencies/limitations? >> >>Thank you, >>Alvaro Cardoso > > >It has never happened to me. I have heard others fight with this problem, >but it was never clear (to me) whether it was a hash signature collision or >whether it was some other sort of bug...
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.