Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Null-Move: Difference between R = 2 and R = 3 in action

Author: Christophe Theron

Date: 23:44:17 07/13/02

Go up one level in this thread


On July 13, 2002 at 21:26:30, Omid David wrote:

>On July 13, 2002 at 11:52:36, Vincent Diepeveen wrote:
>
>>On July 13, 2002 at 11:09:19, Omid David wrote:
>>
>>>On July 13, 2002 at 10:33:19, Vincent Diepeveen wrote:
>>>
>>>>On July 13, 2002 at 04:47:16, Omid David wrote:
>>>>
>>>>>On July 13, 2002 at 02:39:38, Dann Corbit wrote:
>>>>>
>>>>>>On July 13, 2002 at 02:22:00, Omid David wrote:
>>>>>>
>>>>>>>On July 13, 2002 at 02:07:17, Vincent Diepeveen wrote:
>>>>>>>
>>>>>>>>I still do not understand which positions you talk about which R=2
>>>>>>>>is finding and R=3 isn't.
>>>>>>>
>>>>>>>I read your other post, that's also my point: Although at fixed depth, R=2 is
>>>>>>>much better than R=3 (see also "adaptive null-move pruning" Heinz 1999), in
>>>>>>>practice R=3 performs about the same as R=2 since on many occasions it finds the
>>>>>>>correct move one ply later with lower search cost.
>>>>>>
>>>>>>By the way, if you have not found Vincent's post on double null move you should
>>>>>>look it up.  It is a clear win for sure.
>>>>>
>>>>>Yes it's a nice idea. But the main null-move pruning deficiency is its tactical
>>>>>weakness due to horizon effect. Zugzwangs are not a major problem, and as
>>>>>Vincent points out, he invented the double null-move idea just to show that
>>>>>null-move pruning is OK. Now nobody doubts effectiveness of null-move pruning at
>>>>>all, the only discussion nowadays is the depth reduction value.
>>>>
>>>>I'm missing any position where you have a problem though. Seems to me
>>>>your thing is incredible weak, and or doing other dubious things which
>>>>gets looked up in hashtable, after which it weakens your program.
>>>>
>>>>In DIEP i don't have all these problems.
>>>>  - no dubious forward pruning
>>>>  - no futility
>>>>  - no razoring or any of these techniques.
>>>>  - checks in qsearch
>>>>
>>>>Just PVS with nullmove R=3 and a bunch of extensions. That's it.
>>>>
>>>>Means that after a nullmove i don't get transpositions to positions
>>>>where you have stored a score which is based upon a dubious score.
>>>>
>>>>Best regards,
>>>>Vincent
>>>
>>>Why do you think there is a problem?! All the results I got are natural. I'm
>>>sure even in DIEP, R=2 works better under "fixed theoretical" conditions.
>>
>>No it works worse, because i search at least a ply less deeply. If i search
>>a ply deeper that doesn't only mean i get a ply more. Because the depth
>>is already pretty decent it also means all extensions might get triggered
>>a ply extra (like singular extensions).
>>
>>>However in practice you don't search to fixed depth and thus R=3 might be better
>>>in practice.
>>>
>>>My only point is that "R=3 might be better than most people consider it." (Take
>>>DIEP as a successful use of R=3)
>>>
>>>P.S.
>>>Have you published anything regarding double null-move?
>>
>>I simply posted in CCC and RGCC. the thing is real easy.
>>allow 2 nullmoves in a row always, but not 3.
>>Exception is if both sides only have pawns (of course you
>>can solve a few testset positions sooner by saying that
>>if either side has only pawns you don't allow nullmove
>>FOR BOTH SIDES, but that's in reality not so smart to do).
>>
>>Apart from that the normal conditions that i don't nullmove
>>when in check.
>>
>>This in fact results in nullmove not missing zugzwangs anymore.
>>Of course for more than 1 zugzwang the extra depth needed is
>>pretty big.
>>
>>Best regards,
>>Vincent
>
>I'd rather see such articles as "double null-move pruning" in ICCA than the
>usual pure-theoretical-non-practical articles!



Double null-move sounds elegant, but actually it's a zugzwang detection search
at depth D-2R-2 (D=remaining depth, and R is the classic null move reduction
constant).

It is less flexible than a zugzwang detection search because:
1) the depth is fixed to D-2R-2, so you can't adjust it to a better value (and
D-2R-2 is not an optimal value).
2) it's less easy to declare the conditions determining when you want to do (or
avoid to do) the zugzwang detection (but this can be discussed).



    Christophe



This page took 0.06 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.