Author: Frank Phillips
Date: 12:40:09 12/03/02
I have failed miserably to implement ETC.
My broad understanding is that you try for a transposition table cutoff for each
move (successor position) at a node before recursing the search from that node.
In my implementation the search tree is reduced, but Searcher plays noticeably
weaker in real games, despite its performance on test suites not deteriorating -
in fact improving slightly. Below is my pseudo code. Any help appreciated.
Frank
for (each move)
{
// MakeMove
// Check for Draws.
// Extensions for this move.
tdepth=depth-1+extension;
hit=HashRetrieve(pboard,tdepth-1,&tscore,&flag);
// UnMakeMove
if (hit)
{
tscore=-tscore;
if (tscore>=beta && (flag==upper_bound || flag==exact_value))
return (tscore);
if (tscore<=alpha && (flag==lower_bound || flag==exact_value)
return (alpha);
}
}
The basic idea is that upper_bound for the successor is the same as lower_bound
for parent etc.
And I would call the successor with depth=depth-1+extensions, therefore should
probe the hash table with that depth.
exact_value == score is equal to stored value.
lower_bound == score is at least stored value.
upper_bound == score is at most stored value.
This page took 0.01 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.