Author: Robert Hyatt
Date: 06:20:39 12/29/99
Go up one level in this thread
On December 29, 1999 at 06:38:36, José Carlos wrote: >On December 28, 1999 at 10:02:23, Robert Hyatt wrote: > >>On December 28, 1999 at 01:38:49, William Bryant wrote: >> >>>I looked at this a year ago, but want to again ask the best way to handle >>>this situation. >>> >>>You fail high at the root, >>> increase alpha to beta -1 >>> increase beta to Mate (or Mate - 1 depending upon how these are defined) >>>Then you fail low on the same move. >>> >>>What I have been doing is accepting the fail high as correct, >>> making this the PV move, >>> and continuing the search at the next iteration with >>> a window set around alpha which is the old beta -1, + or - the aspiration >>> window size. >>> >>>Is this correct, is there a better way to handle a fail high/low. >>> >>>Thanks >>> >>>William >>>wbryant@ix.netcom.com >> >> >>I have two cases. (don't forget I use PVS). >> >>1. get a value for first root move as normal, then a later move fails high >>on the null-window search, but when I re-search with the normal PVS window, >>it now fails low. I pretend the fail high didn't happen and keep the original >>root move. >> >>2. A root move fails high, but then fails low on the re-search. I keep the >>fail-high move. You can probably eliminate the fail-low by simply searching >>with -inf,+inf, but it will be slower, and due to hash overwrites/draft problems >>this fail-high/fail-low problem will happen without this large window. And with >>the large window you might fail high on bound X, but get a score back that is >>< X... >> >>It is mainly an artifact of null-move search and hashing... > > I don't use null-move, but I use hashing, and I don't understand how is it >possible to get a fail-high and then a fail-low in the research due to the >hashing. > As I understand, when I fail-high in the pvs, I get a lower-bound for the real >value of the position (I use fail-soft), so if I research with the new alfa set >to that value, I could never fail-low. Am I wrong? > > José C. No... here is how it happens. You search deeper than normal, thanks to the opponent taking a long time. When you reach (down in the tree) position X, you store that position in the hash, with "score > .3" and draft=7. He makes a different move and you start over. But you find a sequence of moves that transposes to reach position X. But when you check the draft, you get 7 and that 'fail high' deep in the tree is enough to cause you to fail high at the root. Now you relax beta and search again. When you again return to X, you find that the draft is still ok, but the bound is useless because beta is +inf, and the table entry says score >.3. You can't fail high here now, you have to search on your own. And you can't get deep enough to see why the fail high occurred, so you fail low instead. nothing you can do about it except to require exact draft matches on the hash hits, which will grossly affect performance, or else disable hashing which would be even worse. The rest of us ignore it as an artifact that can't be solved.
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.