Author: Robert Hyatt
Date: 07:39:07 01/22/02
Go up one level in this thread
On January 22, 2002 at 03:59:07, David Rasmussen wrote: >On January 22, 2002 at 00:44:53, Robert Hyatt wrote: > >> >>What if you run out of time? You failed high on the null-window search. >>You started a new search with a wider window and time expired. Do you play >>the fail-high move or stick with the previous best move? I stick with the >>last verified move. >> >>Unless I fail high a second time which means the original aspiration window >>was too small and I am now going to +infinity. I trust the second fail high >>but not the first. >> >> > >You are right. I don't take care of that now. Can you tell me where in Crafty >this is done? As far as I could see, if you fail high at the root, whether in a >null-window search or not, you just return. So maybe some code in iterate.c >takes care of this? I couldn't find it though. I couldn't find anything that >discriminates between null-windows fail-highs and alpha;beta windows fail-highs. You have to look carefully. In the SearchRoot() code, I call search on the first move with a normal window (alpha/beta passed in from outside SearchRoot()). On the remaining moves, I call search with the usual alpha, alpha+1 PVS window. If I fail high here, _nothing_ is done except to re-search with alpha,beta. If it doesn't fail high here, nothing is updated and the original best move and PV is still there. If I fail high here, then I do update the best move and PV and drop back to Iterate() to adjust beta and try again... > >> >> >>>>2. If you get a fail high at the root on the zero-width window, and when you >>>>re-search you get another fail high on the original aspiration window, or you >>>>get a true score, then you can trust it. >>>> >>> >>>That's what I'm doing now, I think. >>> >>>>Case 1 is the killer although it doesn't happen every move, once in a game >>>>is more than enough. >>> >>>I'm sure. >>> >>>But when I posted, I was really talking about the case where you search with an >>>aspiration window, and then you get a fail high with value v. You search with a >>>new aspiration windows (in my case [v;MATE]), but then the search turns out to >>>find nothing. The fail high was false. How do I avoid that? >>> >> >> >>You just take that and go with it. It is easy to see how it can happen, >>where a hash entry says "score >= XXX" which will cause a fail high, but >>now you can't use that and if you can't see it with a search, you are now >>forced to fail low. But the fail high was _right_. >> >>It is that PVS null-window fail high that can't be trusted at all... >> > >Prelimiary testing shows that aspiration search gives me nothing. If I can >confirm this, or if I can find no positions where it really help, I will drop >aspiration, and I won't have this kind of error. Also, I wont have to deal with >the case above, as beta at the root will always be MATE; > >/David
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.