Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Question on RootSearch

Author: Robert Hyatt

Date: 11:27:43 09/08/99

Go up one level in this thread


On September 08, 1999 at 11:20:54, James Robertson wrote:

>On September 08, 1999 at 09:49:07, Robert Hyatt wrote:
>
>I have had a terrible time trying to implement something like this, and finally
>gave up. How much does it help Crafty/Screamer? Is it worth it to try to get it
>to work?
>
>James
>

I think it is 'minimal' in most cases.  My old Cray Blitz partner Harry Nelson
loves to solve problems, however, and he complained that when I left Beta at
+infinity, it could effectively make the search take too long...

He also hates the fact that when I fail high, I just dump beta to +infinity.
In Cray Blitz we did this in stages.  IE suppose the initial window is 0,30.
On a fail high, we went to 0,130 (+1 pawn more than original window) then we
went to 0,330, then 0,930, and only then 0,+infinity.  The reason for this
was that he found a position  where there were zillions of mates, but none were
forced.  The problem was to win a piece.  But when beta went to +inf, all the
mates had to be searched as well... and we could _never_ get any score back in
reasonable time with our extensions.  By going to +130, then +330, at the +330
point we could see winning the piece, still letting all those unforced mate
scores cause cutoffs without having to search them further, etc...

But the idea is that after a fail high from 0,30 to 0,+inf, you get the score
back for the first move (say +80) but then you still search all the other ply-1
moves with 30,+inf as the window.  And mates don't cause cutoffs.  Adjusting
beta back to 30+40 (I use a window of 40 everywhere, you should test this to
find the best value for your program) will save some nodes in many positions.
And save a _lot_ of nodes in a very few positions...  And since it is totally
free, I just take the tiny improvement and run...




>>On September 07, 1999 at 22:52:10, William Bryant wrote:
>>
>>>I was reviewing my code, and noted in the root search when the score obtained
>>>is > alpha (and < beta) I was doing the following:
>>>
>>>alpha = score;
>>>beta = alpha + WindowSize;
>>>
>>>I thought this idea came from Crafty, but now I can't find it in the Crafty
>>>source. Further, although it makes the initial ply's slightly slower, it speeds
>>>up the search overall and improves the LCTII score as well.
>>>
>>
>>It is in SearchRoot().  I do it because after I fail high at the root, and
>>get a score, I don't want to continue searching root moves with beta=+infinity
>>as that can slow you down if the position is wild.
>>
>>
>>
>>>Question:
>>>	Is there any harm in updating beta to the aspiration window size at the root
>>>when a score is backed up to the root and alpha is changed?
>>>
>>>	Is this idea good, bad, neither?
>>>
>>>	Did this come from Crafty at one point?
>>
>>It had better still be in there.  :)  Although I can't guarantee that it was
>>not removed for a version or two for testing something else.  In the current
>>SearchRoot() (searchr.c) I find this at line 150:
>>
>>
>>      alpha=value;
>>      beta=value+40;
>>      root_beta=beta;
>>
>>
>>
>>>
>>>Thanks.
>>>
>>>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.