Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Aborting a search

Author: Robert Hyatt

Date: 12:36:13 03/19/03

Go up one level in this thread


On March 19, 2003 at 14:41:30, Matthew White wrote:

>On March 18, 2003 at 22:57:21, Robert Hyatt wrote:
>
>>On March 18, 2003 at 16:33:29, Matthew White wrote:
>>
>>>On March 18, 2003 at 16:24:32, Robert Hyatt wrote:
>>>
>>>>On March 18, 2003 at 16:04:21, Matthew White wrote:
>>>>
>>>>>On March 18, 2003 at 09:59:00, Robert Hyatt wrote:
>>>>>
>>>>>>On March 18, 2003 at 04:18:05, Ed Schröder 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?
>>>>>>>
>>>>>>>Nathan,
>>>>>>>
>>>>>>>It's quite simple, just check the "time_is_up" condition after your "undo_move"
>>>>>>>call and jump to the place where you climb back one ply in the tree (as if there
>>>>>>>are no more moves to search on the current ply).
>>>>>>>
>>>>>>>My best,
>>>>>>>
>>>>>>>Ed
>>>>>>
>>>>>>
>>>>>>This can be a fatal error.  You are at ply=N and have 10 legal moves to search.
>>>>>>The first is horrible, but the second wins everything.  If you quit after
>>>>>>searching the first move and return that score, the previous ply may well like
>>>>>>the move it tried, and since it has now searched every move, it backs the
>>>>>>score up.  And so forth.  But when the game really enters this path, the
>>>>>>first move is not actually played by your opponent, he plays the second, and
>>>>>>the roof falls in.
>>>>>>
>>>>>>You have to _not_ back up things from below the root, once you have decided that
>>>>>>time is up.
>>>>>
>>>>>What if you finished ply N with a lazy eval instead of the full eval. Would that
>>>>>solve the problem?
>>>>>
>>>>>Matt
>>>>
>>>>
>>>>I don't see how. I use lazy eval all the time...
>>>>
>>>>the point is that when time runs out, you can't just stop and back things up as
>>>>you
>>>>have not finished the current root sub-tree you are working on, and the scores
>>>>are
>>>>therefore worthless for this root branch.  But anything else already completed
>>>>is
>>>>certainly good.
>>>I see what you mean. I was just wondering if giving the rest of that ply a quick
>>>"once-over" would give sufficient information to allow the score to stay in the
>>>tree.
>>
>>
>>It would be hard.  IE how do you compare a move searched normally to a move
>>"glanced over quickly" if you want to choose between them?
>That's true. The case that I was trying to solve is the one where the next move
>at that ply is the winner. Even a lazy eval would determine that.the move is a
>stinker. The problem I have is, what happens if you have searched 9 out of 10
>moves in a given ply, then your time runs out. Do you STILL throw away all that
>work? Move 10 could be obviously bad, and you'd waste a whole ply without at
>least giving it a look.
>
>Is there some way to scale the lazy eval so that it could only be used to point
>out a refutation of a line?
>
>Matt

Do what I (and others) do.  Once you start searching a move at the root, and you
run out of
time, do _not_ stop searching until you back up to the root and want to search
another move.
This lets that move that is trying to fail high have a chance to do so.  You can
always limit
this to say "I'll keep after this move until I use X units of extra time before
I give up."




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.