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.