Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Aborting a search

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.