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

[computer-go] zobrist hash keys



There is an idea I would like to try out, but I don't have zobrist hash code set up, or the code to evaluate it. A lot of you seem to, so I wonder if anyone would be kind enough to humour me.

I wonder how well the first few (19^2, or 2*19^2 or whatever?) states of a 64 bit LSFR would work as key values for a zobrist hash, compared to random values and to designed values. These values can be generated as follows

k[0] = 0000000000000000000000000000000000000000000000000000000000000001 //64 bit, no sign bit
for (i = 1;i < nokeys;i++){
x = 2*k[i-1]; //ie left shift without 'wrap around'
if k[i-1] >= 2^(64-1) //ie if the carry flag got set on the last operation
k[i] = x ^ 1101000100000001000000000000000100000000000000000000001000100011 //(^=XOR) binary!
else k[i] = x
}

Please don't do this if it would be a lot of effort, because from the discussions, it seems quite hard to generate good keys. However, if this would be easy for you, and you are feeling benevolent, I would be interested to know how this performs.

It just seems counter intuitive to me that there isn't some good (better than random) way of designing hashes that is not ad hoc.

Thanks.
Tom.
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.778 / Virus Database: 525 - Release Date: 15/10/2004
_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/