Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Root Search Question

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.