Transposition tables in Cray Blitz

Discussion of chess software programming and technical issues.

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Post Reply
zenpawn
Posts: 296
Joined: Sat Aug 06, 2016 6:31 pm
Location: United States

Transposition tables in Cray Blitz

Post by zenpawn » Mon Sep 26, 2016 11:22 pm

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: 20562
Joined: Mon Feb 27, 2006 6:30 pm
Location: Birmingham, AL

Re: Transposition tables in Cray Blitz

Post by bob » Tue Sep 27, 2016 1:57 am

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???

Post Reply