Author: Dan Newman
Date: 12:26:51 12/21/01
Go up one level in this thread
On December 21, 2001 at 11:40:17, José Carlos wrote: >On December 21, 2001 at 11:33:48, Will Singleton wrote: > >>On December 21, 2001 at 09:27:01, José Carlos wrote: >> >>>On December 21, 2001 at 02:14:48, Will Singleton wrote: >>> >>>>On December 20, 2001 at 18:31:41, Dan Newman wrote: >>>> >>>>>>What kind of move you search first in case you don't have the move from >>>>>>hashtable? >>>>>> >>>>>>Ren. >>>>> >>>>>If I'm in the PV, I do an internal iterative deepening search and use >>>>>that move. If not I generate the captures, sort them with a SEE, >>>>>and use the top one of those. >>>>> >>>>>-Dan. >>>> >>>>I was thinking of doing IID, and I'm not sure what you mean by the above. Do >>>>you mean that if the ply 1 move is the pv move, then below that you always do >>>>IID in any branch? And after the left side, you don't want to spend the effort >>>>to do IID because of ... ? >>>> >>>>Will >>> >>> I can't speak for him, but I'll tell you what I do: >>> I have 3 different "alphabetas": AB, AB_PV, and QSearch. In the root, I first >>>call AB_PV (which implements IID). For every 1st move, AB_PV calls AB_PV. For >>>the rest, it calls AB. AB allways calls AB. >>> When AB_PV calls AB, and it returns a score above alpha (which is the only >>>bound I pass to AB), I open the window again and call AB_PV to see if this is >>>really a PV move. >>> When depth=0, they both call QSearch. >>> So I don't use IID in the whole left branch of the tree, but only in the "real >>>PV nodes". >>> The reason is to apply it only on nodes that are searched with an open window >>>(BTW, I don't do any prunning in that nodes, because I expect them to be the >>>PV!). For the rest of the tree, I don't need "the best move", just a "good >>>enough move", that's why I don't bother to do IID there. >>> >>> José C. >> >>OK, interesting. Is the benefit significant? > > In my program it works fine. However, other programmers have reported no >benefit at all. Worth trying anyway. > > José C. I was never absolutely convinced that I saw any improvement and fiddled around with IID a good bit. It doesn't seem to hurt though, so it's still there...and I intend to work on it some more as I suspect that I haven't got it quite right yet... What I do to detect the "PV" is to simply check if the window is open (alpha+1 != beta). I used to do what Bob does in Crafty which is to compare the current alpha and beta to the root's (with appropriate reversals depending on side-to-move). I like your idea of having a separate function for the PV since it eliminates an if-test, reduces the number of parameters pushed for the non-PV search, and easily allows doing different stuff depending on whether you are in the PV or not. I may have to try it sometime... -Dan.
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.