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

Re: [computer-go] Re: Sharing Secrets



----- Original Message ----- From: "Nicol N. Schraudolph" <compgo@xxxxxxxxxxxxxxxxx>
To: "computer-go" <computer-go@xxxxxxxxxxxxxxxxx>
Sent: Friday, October 22, 2004 4:26 AM
Subject: Re: [computer-go] Re: Sharing Secrets


I have "another secret" and that is a method of re-using 20 bits of a 64-bit
Zobrist hash for a totally different purpose and still keep the full 64-bit
spread of a 64-bit hash.
Now this I do not believe.  Any technique that makes your hash key
carry an extra 20 bits of unrelated information reduces the entropy
available for hashing by 20 bits, period.
That is not true.

So either your 20 bits
are position-related and thus effectively part of the hash (albeit a
non-Zobrist part), or they're not, in which case you're using a 44-bit
hash.  Which may be perfectly adequate, I might add.  Also, I'm not saying
that whatever trick you're using isn't clever and useful -- only that your
interpretation of what it does amounts to a mathematical impossibility.
You are mistaken.

I have started this thread with saying that I had a few major things to share about Zobrist hashing that had "invention-level" importance and the replies are scorn and incredulence instead of some good ideas back, as I asked for. I did not say I invented the Perpetuum mobile.

I will explain, not because you deserve to know how this is done, but because you have tricked me into either accepting the "you are a fool" label that has just been stuck onto me, or to telling how it's done.

Let's say you have 1,048,576 blocks of 8 64-bit hashes.

Every block's address is a 20-bit value.

Any Zobrist hash' 20 LSB's form the address of the block in which it will be stored.

Which means that now the block's address (a number from 0 to 1,048,576) is equal to the 20 LSB of the Zobrist hash.

Which means that you can simply take the 20 LSB of any hash stored and put whatever you like in it. You can put the New Testament in those 5 nibbles x 1 MB.

Whenever you want to know what the actual hash is, you replace that piece of Bible with the address of the block.

So:

- Hashes are stored in 2^20 blocks.

- Hashes with 20 LSB forming 0 are in the first block.
Hashes with 20 LBS forming 1 are in the second block.
.
.
Hashes with 20 LSB forming 1,048,575 are stored in the last block.

Every block contains 8 hashes that have identical 20 LSB.

(A total of 8,388,608 hashes with very uniform distribution, obtained by having larger "harvesting blocks" sorted in importance and leaving the 8 most important hashes)

I hope you do not need further explanation.

You understand that the Zobrist hash is fully 64-bits. And you understand that I was 100% correct in saying I use a 100% bona-fide full 64-bits hash and do whatever I want with its 20 bits.

I had much more to share with this group but I object to getting answers like: "I do not believe" and "This does not work". My patience is small for that kind of spielerei.

I invite anyone to contact me personally when they want to continue to sharing ideas.
But don't waste my time.
_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/