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.