Author: Tom Likens
Date: 09:31:14 04/19/02
Go up one level in this thread
On April 17, 2002 at 03:09:12, Tony Werten wrote:
>Search for the current position in the tablebase. Then try all moves and search
>them in egtb as well. If the best move is not following the current position (ie
>also draw, checkmate or checkmated in rootposition-1) then disable egtb's and
>don't retry until a piece is captured or promoted.
>
>Tony
This doesn't seem to handle the more general case of problems deep in the
search. For example, in the position:
[D]4K2k/8/5P2/6R1/8/r7/8/8 w - - 0 1
If we assume the program has the KRPKR tablebases but *not* the KQRKR
tablebases then part of the search looks like this:
root [KRPKR] hit
/
1 f7 { move A }
[KRPKR] hit
/
1... Rf3 {move B} <-- This is the last "good" tablebase score
[KRPKR] hit
/
2 f8=Q+ {move C} <-- This value can't be trusted as perfect
[KQRKR] miss knowledge.
When updating the PV with tablebase moves {move C} should be trucated since
it represents an untrustworthy value. But the moves A and B *are* valid and
should be preserved. Here this is a trivial case, but it becomes much more
interesting deep in a search when these moves don't represent plies 1,2 and 3
but 11, 12 and 13. The natural place to handle this is in the function that
manages the updating of the PV when a tablebase hit occurs.
One other possiblity that occurs to me is that the program could actually
play out the moves and then restart the normal search at the end of variation,
effectively leapfrogging a few plies. Regardless though of the value returned
from this search the tablebase value should be returned up the tree, since
it again represents god-like knowledge. The root of course would have to be
handled slightly differently.
Thoughts?!
regards,
--tom
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.