Author: Robert Hyatt
Date: 14:36:10 05/16/99
Go up one level in this thread
On May 16, 1999 at 00:42:15, William Bryant wrote: >On May 15, 1999 at 20:56:39, Robert Hyatt wrote: > >>The most common bug with null move is a fail high, and on the research where >>beta has been relaxed, you get a fail-low. _that_ can be a serious problem if >>you don't ignore the false fail-high at the root. You will occasionally play a >>totally garbage move. >> >> >>if I fail high on the pvs search (ie searching 2nd root move with window >>alpha,alpha+1, I the research with alpha,beta. If this fails low I just >>ignore the original fail high and keep going. Anything else leads to >>trouble. Because if you re-search with -infinity, alpha, what good is >>that? You want to let the score drop below the already found best score >>at the root? > >I under stand what you are saying, but I think I am thoroughly confused on the >exact implementation. Here is what I understand. >Is this the correct concept? > >You set a + or - window around the last score returned from your root search and >search the next iteration of moves around this 'aspiration' window. correct... > >you search the first move (which should be the PV move with good move ordering) >with this new window, and the rest of the moves with a >window of -alpha-1, -alpha. If this PVS search returns a score between the >windowed alpha and beta, then it must be researched with a >window of -beta, -alpha . > yes... >//this is the PVS part of it > if (firstmove) > Score = -Search(-beta, -alpha, depth-1, NullMoveOK); > else { // try a PVS Search > Score = -Search(-alpha-1, -alpha, depth - 1, NullMoveOK); > if ((Score>alpha) && (Score<beta) && (!OutOfTime)) > Score = -Search(-beta,-alpha, depth-1, true); //PVS research > } > >Where I am lost is when the aspiration window search fails high and low. In the above, after doing the _second_ call to search (using the original alpha and beta values) it is possible that you get 'alpha' back, rather than a score > alpha+1 which the fail-high suggested you would get. When this happens, I just fall out of the above and do nothing... I don't accept the move nor the score, and stick with the previous best move... > >if the aspiration window fails high, > I flag this and relax the window to alpha = beta -1; beta = INFINITYSCORE; > and research the rest of the root moves including the one that failed high. > >if the aspiration search returns a score equal to the aspiration alpha score, > then I flag this and relax the window to alpha = -INFINITYSCORE without > changing beta and research all of the root moves with this new window. that is where I am questioning what you are doing. You failed high on alpha,alpha+1, then you re-searched with alpha,beta, and this returned alpha. Which means the score is <= alpha. I don't want such a score as I already have a move that will give me 'alpha' as the best, so what use is it to find that this move is < alpha? The first fail-high (alpha,alpha+1) was wrong, it was caused by a null-move search screwing up somewhere down in the tree, and in my case, I just toss it out... Before doing this I watched crafty blow a easily won game vs ferret one afternoon... it failed high, took the move even though it then failed low on the re-search, and played it. And immediately went from +3 to -2 on the next search after making that lemon... > >As I understand you comments, > If the aspiration search fails low on the rest of the root moves after a > fail high, then research the moves after the one that failed high with the > original aspiration window, ignoring the previous fail high. I don't follow "fails low on the rest of the root moves after a fail high" exactly, unless you mean that more than one might fail high, then fail low on the re-search. Note that if the _research_ fails high, I play the move, even if I change the bound to beta,+infinity and search again and it fails low. IE I trust the fail high on the big window, but I don't trust the fail-high on the PVS null-window unless it produces a good score... > >Thanks for your assistance with, for me, a difficult concept. > >William >wbryant@ix.netcom.com
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.