Author: Robert Hyatt
Date: 06:55:56 03/18/03
Go up one level in this thread
On March 18, 2003 at 00:16:19, Nathan Thom wrote: >On March 17, 2003 at 23:46:49, Robert Hyatt wrote: > >>On March 17, 2003 at 21:54:36, Nathan Thom wrote: >> >>>Im having troubles trying to figure out what to do with my search results when a >>>timeout occurs. eg I could have searched 10 plies fully, and am part way through >>>the 11th ply when time runs out. >>> >>>The simplest thing to do is ditch all results from the last incomplete search >>>and just go with what you had after 10 plies. But this seems a big waste. >>> >>>Thoughts? >> >> >>This is easy to handle after you think about it. When a time-out occurs, >>return a _special_ value that is outside the -MATE, +MATE range so you >>can tell it is not a real score. When you get that score backed up, just >>do an immediate return all the way back to the root. >> >>Now, if you have successfully searched the first root move at depth=11, the >>result should have already been backed up to the root with a good score. That >>can be used. If you have not yet backed up a score for the first root move at >>depth=11, you just return an indicator that says "no move found, timeout >>occurred". >> >>If you did search the first move, but time out on a later move, you justs take >>the score for any move that was backed up to the root prior to the time-out... >> >>The only danger is aborting the search and backing up a partial-search score to >>the root and using that... it will kill you.. > >I guess my main concern is searching the previous pv and finding it's actually >alot worse than realised, then timing out later on after having not found >anything better than the pv. > >My guess is that there is a better move out there somewhere than the new pv, but >i dont have time to find it. Is this what people are suggesting to trigger a >time extension? I guess thats a whole other ball game to do with time >controls... When you check the time and notice that you have used all the time you originally wanted to use, check to see if current score < previous iteration score - window. "window" could be one of several values. For example: if current_score < previous-.5 then use up to 2x more time to make that condition false (bring current score to within .5 of previous iteration score). if current_score < previous-1.0 then use up to 5x more time to try to avoid losing that pawn.
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.