Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Turning null-move off

Author: J. Wesley Cleveland

Date: 09:36:51 10/08/01

Go up one level in this thread


On October 08, 2001 at 10:56:38, Robert Hyatt wrote:

>On October 08, 2001 at 07:29:04, Bernhard Bauer wrote:
>
>>On October 07, 2001 at 21:39:52, Robert Hyatt wrote:
>>
>>>
>>>2.  You can tone down (or even disable) the null-move search.  You can
>>>try sel=2/3 (the default) then sel=2/2, sel=1/1, and finally sel=0/0 which
>>>will turn null-move off.  This will further reduce the search depth and overall
>>>strength.
>>>
>>
>>From my experience sel=0/0 doesn't turn null-move completely off.
>>Here an example with sel=0/0
>>
>>[D]4B/8/6N/5p/1r4p/6pk/7b/4K2Q w - -
>>
>>
>>        (4)    6->   1.90  -0.44   1. Bc6 Rb1+ 2. Ke2 Rxh1 3. Nf4+ Kh4
>>                                   4. Bxh1 Kg5 5. Ke3
>>        (3)    7     1.96  -0.22   1. Bc6 Rb1+ 2. Ke2 Rxh1 3. Nf4+ Kh4
>>                                   4. Bxh1 Bg1 5. Bg2 Bd4
>>               7     2.75     ++   1. Kd2!!
>>        (2)    7     3.79   0.00   1. Kd2 g2 2. Qe1 g1=Q 3. Qh4+ Kg2 4.
>>                                   Bc6+ Re4 5. Bxe4+ fxe4 6. Qxg4+ Kh1
>>                                   7. Qxe4+ Qg2+ 8. Ke3
>>        (2)    7->   6.29   0.00   1. Kd2 g2 2. Qe1 g1=Q 3. Qh4+ Kg2 4.
>>                                   Bc6+ Re4 5. Bxe4+ fxe4 6. Qxg4+ Kh1
>>                                   7. Qxe4+ Qg2+ 8. Ke3
>>               8     8.14   0.00   1. Kd2 g2 2. Qe1 g1=Q 3. Qh4+ Kg2 4.
>>                                   Bc6+ Re4 5. Bxe4+ fxe4 6. Qxg4+ Kh1
>>                                   7. Qxe4+ Qg2+ 8. Ke3 Qxe4+ 9. Kxe4
>>                                   Bg3
>>        (2)    8->  14.57   0.00   1. Kd2 g2 2. Qe1 g1=Q 3. Qh4+ Kg2 4.
>>                                   Bc6+ Re4 5. Bxe4+ fxe4 6. Qxg4+ Kh1
>>                                   7. Qxe4+ Qg2+ 8. Ke3 Qxe4+ 9. Kxe4
>>                                   Bg3
>>               9    20.50   0.00   1. Kd2 g2 2. Qe1 g1=Q 3. Qh4+ Kg2 4.
>>                                   Bc6+ Re4 5. Bxe4+ fxe4 6. Qxg4+ Kh1
>>                                   7. Qxe4+ Qg2+ 8. Ke3 Qxe4+ 9. Kxe4
>>                                   Bg3 10. Nf4
>>        (2)    9->  42.50   0.00   1. Kd2 g2 2. Qe1 g1=Q 3. Qh4+ Kg2 4.
>>                                   Bc6+ Re4 5. Bxe4+ fxe4 6. Qxg4+ Kh1
>>                                   7. Qxe4+ Qg2+ 8. Ke3 Qxe4+ 9. Kxe4
>>                                   Bg3 10. Nf4
>>              10     1:05   0.00   1. Kd2 g2 2. Qe1 g1=Q 3. Qh4+ Kg2 4.
>>                                   Bc6+ Re4 5. Bxe4+ fxe4 6. Qxg4+ Kh1
>>                                   7. Qxe4+ Qg2+ 8. Ke3 Qxe4+ 9. Kxe4
>>                                   Bg3 10. Nf4 Bxf4
>>        (2)   10->   2:22   0.00   1. Kd2 g2 2. Qe1 g1=Q 3. Qh4+ Kg2 4.
>>                                   Bc6+ Re4 5. Bxe4+ fxe4 6. Qxg4+ Kh1
>>                                   7. Qxe4+ Qg2+ 8. Ke3 Qxe4+ 9. Kxe4
>>                                   Bg3 10. Nf4 Bxf4
>>              11     3:35   0.00   1. Kd2 g2 2. Qe1 g1=Q 3. Qh4+ Kg2 4.
>>                                   Bc6+ Re4 5. Bxe4+ fxe4 6. Qxg4+ Kh1
>>                                   7. Qxe4+ Qg2+ 8. Ke3 Qxe4+ 9. Kxe4
>>                                   Bg3 10. Nf4 Bxf4 11. Kxf4 Kh2
>>             time=5:00  cpu=201%  mat=4  n=142525014  fh=89%  nps=474k
>>             ext-> chk=10823921 cap=287226 pp=207595 1rep=668532 mate=112510
>>             predicted=0  nodes=142525014  evals=28834988
>>             endgame tablebase-> probes done=0  successful=0
>>             hashing-> trans/ref=47%  pawn=99%  used=99%
>>             SMP->  split=1018  stop=90  data=7/32  cpu=10:05  elap=5:00
>>
>>
>>Kind regards
>>Bernhard
>
>
>I'm not sure what that is supposed to show.  But look at option.c to see how
>the selective command changes null_min and null_max, then look at search.c
>(the only place a null-move search is done) to see how it uses those two
>values.  0/0 will definitely turn it off...
>
>Completely...

the code in search is

    null_depth=(depth>6*INCPLY && pieces>8) ? null_max : null_min;
    if (depth-null_depth >= INCPLY)
      value=-Search(tree,-beta,1-beta,ChangeSide(wtm),
                    depth-null_depth,ply+1,NO_NULL);
    else
      value=-Quiesce(tree,-beta,1-beta,ChangeSide(wtm),ply+1);

which looks to me like it will perform a null move to the full search depth with
null_max and null_min 0. The if statment that controlls the null move
does not reference null_max and null_min.

  if (do_null && !tree->in_check[ply] && pieces && (pieces>5 || depth<421)) {




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.