Author: Robert Hyatt
Date: 09:14:11 12/27/99
Go up one level in this thread
On December 27, 1999 at 10:45:18, Vincent Diepeveen wrote: >On December 27, 1999 at 00:07:47, William Bryant wrote: > >>If your search fails low on the root PV move. >>(IE. the full alpha beta window for the PV move returns a score <= alpha >>and nothing is backed up into the PV array). >> >>Do you? >> >>1) Stop PVS and search the rest of the root moves for this iteration with a >> full alpha beta window? >> >>2) Stop PVS until at least one move for this iteration falls into the alpha >> beta window. If no moves fall into the window, research the whole >> iteration with a lower window. (fail low). This means that you may end up >> searching every move with a full alpha beta window which would take more >> time before the fail low occurs. >> >>3) Stop now and lower the window and research with PVS. >> >>4) Do Nothing? >> Continue the rest of the root moves within the -alpha-1, -alpha PVS window. >> Only search moves outside the PVS window for the rest of this iteration >> if they return a score > alpha on the PVS search. Hope that if the >> every root move is going to fail low, that this will speed up the >> search until the window is lower. >> >>5) Suggest something better. > >I'm not having this problem too much in DIEP. >I'm searching using PVS, so i start with -infinite, infinite window. >I don't have any problems with PV arrays, as i simply don't have >a PV array. I only have 1 variable called: bestmove. >The rest of the PV i get out of hashtable. > >How pvs works: > search: > alfabeta(-inf,inf); > For me, adding aspiration search here helps significantly. IE start off with alfabeta(last-X, last+X); That (for me) reduces the size of the tree by 10% in the average case, much more in wild tactical positions. IE a position where there are zillions of mates, but none are forced. with -inf,+inf, you have to follow all those mates to their conclusion. With last-X, last+X, you don't... Harry had one problem position where -inf,+inf could not ever return a good score, yet last-X would find the solution very quickly (score was only +2 or something). > alfabeta(int alfa,int beta,... > > firstmove: > alfabeta(alfa,beta...); > > other moves: > t = alfabeta(alfa,alfa+1... > if( t > alfa && t < beta ) > t = alfabeta(t,beta,...); > >>Fail low on the root move seem to bring my search to a crawl and I'm looking >>for a way to be more efficient. >> >>Thanks in advance. >> >>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.