On Thu, 2007-02-08 at 15:58 -0800, steve uurtamo wrote: > > > > tranforms as the "cannonical" key. In most cases 8 positions will > > > > > > IIRC, choosing the smallest may cause some unwanted effects. Not sure... > > > > It's not quite as good as using 64 bits free and clear because there is > > compression towards the lower bits. > > i must be missing something here -- the whole point of canonicalization is > that you want to be able to recognize a 'book line' when it appears, even if > you have to rotate and/or reflect your board in order to match the book line, > right? you save 8x the space by only stashing one copy of the book line, > and by using some canonical version of the hash key and doing 8 transforms > on every board position when the game move is less than the longest known > line length, or somesuch. > > if you're only storing a few hundred lines, or a few thousand, why not store > all 8 copies? then it's just a lookup with no extra transforms.
Well then my collision rate would go up signficantly. I don't think it's a big issue with 64 bits but there is no performance issues with lookup speed and the routine to do the tranforms has to be there no matter what - it's now isolated to one routine. And why waste the memory if there is no performance issues? I current keep the book sorted in memory and I would prefer to keep it reasonably small in the case I may someday have tens of thousands of moves. Of course by then I probably would have chosen a different storage scheme. This discussion has generated enough ideas that I may consider some changes. - Don > s. > > > > > > ____________________________________________________________________________________ > Need a quick answer? Get one in minutes from people who know. > Ask your question on www.Answers.yahoo.com _______________________________________________ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/