Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Null move and move ordering stats

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.