Computer Chess Club Archives


Search

Terms

Messages

Subject: Optimum transposition table element size

Author: Anthony Cozzie

Date: 10:39:22 09/13/03


I have decided that I want to try out MTD(f) in Zappa.  It sounds like a cute
algorithm with a number of advantages over PVS().

My hash table right now is a crafty-style limit hash: 2 bits type (upperbound,
exact, etc) and 16 bits score (zappa uses -10,000 -> +10,000 which requires 16
bits).  It seems like MTD(f) requires a dual-bound hash: 16 bits upper limit and
16 bits lower limit.  I would imagine that a single bound hash would be very
inefficient.

Unfortunately, I can't get this to fit in 64 bits.
UL: 16 bits, LL: 16 bits, Move: 24 bits, Depth: 7 bits, 1Rep: 1 bit, Mate
Threat: 1 bit, Search ID (for depth-first): 3 bits = 68 bits.

So, it seems to me that there are 4 possibilities:

1. Steal 4 bits from the hash key.  Collisions are now 16x more likely (don't
really like that)

2. Extend trans_ent to 32 bytes (wasting 45% of the total memory)

3. Extend trans_ent to 24 bytes (cache-line-aligned only 75% of the time)

4. Extend trans_ent to 21 bytes, have 3 probes and 1 pad byte. (somewhat ugly,
more memory traffic)

Option 4 looks the most appealing to me right now, but I'm open to suggestions.

anthony



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.