Transposition tables in Cray Blitz

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

zenpawn
Posts: 349
Joined: Sat Aug 06, 2016 8:31 pm
Location: United States

Transposition tables in Cray Blitz

Post by zenpawn »

In Computer Chess II, David E. Welsch, Boris Baczynskyj, 1985, the first chapter on Cray Blitz, had this surprising (to me) description of how it used the main transposition table:

"...it first checks the transposition table to determine whether the position is stored. If so, it then checks to see whether the score is valid and if it was generated at a search depth at least two plies greater than the ply depth at which the position is now encountered; ..."

Isn't the usual comparison tt.depth >= depth?
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Transposition tables in Cray Blitz

Post by bob »

zenpawn wrote:In Computer Chess II, David E. Welsch, Boris Baczynskyj, 1985, the first chapter on Cray Blitz, had this surprising (to me) description of how it used the main transposition table:

"...it first checks the transposition table to determine whether the position is stored. If so, it then checks to see whether the score is valid and if it was generated at a search depth at least two plies greater than the ply depth at which the position is now encountered; ..."

Isn't the usual comparison tt.depth >= depth?
Yep. That's wrong. Don't know where David came up with that. CB did it just like everyone else does it today. The source code is available. Here's a peek:



if(and(ishft(htab2,-(25+hshft)),127)-64.lt.rdepth-ply)

if the above is true (the table depth is LESS_THAN current depth) we do not use the entry. If it is greater-than-or-equal, we do...

So no idea where that came from.

Wait. That might be a mis-interpretation. This sounds like the "hash table to avoid null-move search trick." Which simply asks "if we don't have enough depth to stop the search, do we have enough depth to note that the current entry says "fail low" which says "we should not try a null-move since a real search won't fail high here..."

So perhaps he mangled that???