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

Re: [computer-go] Re: Sharing Secrets



From: "John Tromp" <John.Tromp@xxxxxxxxxxxxxxxxx>

uses 64 bit Zobrist hashing to detect superko. In fact, I store Zobrist hashes
of all preceding positions in a Java HashSet.

Is there supposed to be an issue with this setup?
Or does the issue only come up with search and transposition tables and the like?
No, that will work just fine for an editor.
The "issue" is about hash collision avoidance.
When you start thinking ahead (or when you have a huge pattern database),
you will need millions of hashes and you'll get collisions even with 64-bit
hashing if you have not "taken care of the issue :)".

I have never heard of a hashing class in any programming language, neither
of any literary source that satisfactorily solves this "issue" best. The
very rare sources that hint at a really good solution are incomplete and in
fact even lead astray.

I think such "secrets" are interesting because they lay at the foundation of
everything. Without a good foundation, even the best ideas simply don't
perform at their best.

Other major secrets IMO are ways to speed things up. My ladder code takes a
few milliseconds for ladders that crisscross the board and it is
un-optimized and find even a bit more than pure ladders. A fast ladderer can
find ladder breakers in less than a second for all ladders on the board
worst-case, simply by trying all legal moves and recalculating all ladders.

If someone has found a way to speed up a ladderer in a genius way (for
example that a progressing position delta-updates ladder status, something
that appears impossible to me now but I have a feeling it *might* be
possible..), this would be an A-superplus secret I would be very interested
to hear about.

_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/