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.