Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: More thoughts on adding Null move code

Author: Uri Blass

Date: 03:43:30 05/11/03

Go up one level in this thread


On May 11, 2003 at 06:08:23, Geoff wrote:

>Hi
>
>Seems several of us are currently struggling with adding Null move logic to our
>code. I have added it to what started off as TSCP.
>
>My first attempt was pretty hopeless.
>
>Added new features were ;-)
>
>1) Failure to return from search in some positions
>2) Timeout code was broken as the taking back of moves after a timeout now went
>wrong.
>3) Depth extension if in check now causes something to go wrong too.
>
>Anyways I have been tinkering and trying to fix it. Null move is a small amount
>of extra code but very tricky to debug and understand. Least it is for me !
>
>I am not sure I have got it totally fixed now, but it seems to be working OK at
>the moment (only a couple hours of testing)
>
>The results are amazing, so good in fact I am wondering if I am doing too many
>Null moves and potentially adding a bug? A time of 324.6 Secs drops to 9.6 Secs.
>Is this plausible ?

Yes

Of course it is not going always to be the case and there may be cases when you
find the solution one ply later or worse than it.

>
>See results below on a particular test position I tried. The one thing that I
>havent figured out yet is does adding Null move screw up the reps. detect.
>I suspect it does but dont know what to do to fix it ? Any thoughts ?
>
>        Regards Geoff
>
>
>Test Results
>
>/* Queen Sacrifice Mate in 07 Apr 2003  Alexandra Kosteniuk (White) v John D.
>Bick (Black)
>
> 1.f5xf7+ f8xf7 2.h2xh7+ f7-g8 3.h7-h8+ g8-f7 4.g4xf4+ e7-f6 5.f4xf6+ f7-e7
> 6.h8-h7+ e7-d8 7.f6-f8# */
>
>[D]1r3k2/2q1bb1p/2Bp2p1/3P1QP1/3B1pR1/2P2P2/P1PK3R/1r6 w - - 0 1
>
>Before NullMove Mods
>Ply   Eval   Time      Nodes    Principle Variation
> 1:    332      0         66    f5f4
> 2:    293      0        856    f5f4 f8g8 h2h7 g8h7 f4f7
> 3:    325      0       3315    f5f4 f8g8 a2a4
> 4:    323      3      16149    f5f4 f8g8 g4h4 h7h5 g5h6ep e7h4 h2h4
> 5:    323     17      79165    f5f4 f8g8 g4h4 h7h5 g5h6ep e7h4 h2h4
> 6:    494    137     545323    f5f4 h7h5 g5h6ep g6g5 g4g5 e7g5 f4g5
> 7:    533    475    1971525    f5f4 h7h5 g5h6ep g6g5 f4e3 f8g8 a2a4
> 8:    805   2659   10248418    f5f7 f8f7 h2h7 f7g8 h7g7 g8f8 g4f4 e7f6 g7c7
> 9:    805   8301   33627573    f5f7 f8f7 h2h7 f7g8 h7g7 g8f8 g4f4 e7f6 g7c7
>10:   1164  32432  124888939    f5f7 f8f7 h2h7 f7g8 h7g7 g8f8 g4f4 e7f6 g7c7
>b8b2 g5f6 b2a2
>
>
>After Null move Mods but 1 Null Move per search line only
>Ply   Eval   Time      Nodes    Principle Variation
> 1:    332      0         66    f5f4
> 2:    293      0        856    f5f4 f8g8 h2h7 g8h7 f4f7
> 3:    325      0       3316    f5f4 f8g8 a2a4
> 4:    323      3      14578    f5f4 f8g8 g4h4 h7h5 g5h6ep e7h4 h2h4
> 5:    323     14      61484    f5f4 f8g8 g4h4 h7h5 g5h6ep e7h4 h2h4
> 6:    494     40     166882    f5f4 h7h5 g5h6ep g6g5 g4g5 e7g5 f4g5
> 7:    533    107     435051    f5f4 h7h5 g5h6ep g6g5 f4g3 f8g8 a2a4
> 8:    805    237     958128    f5f7 f8f7 h2h7 f7g8 h7g7 g8f8 g4f4 e7f6 g7c7
> 9:    805    914    3817929    f5f7 f8f7 h2h7 f7g8 h7g7 g8f8 g4f4 e7f6 g7c7
>10:   1164   4659   18642807    f5f7 f8f7 h2h7 f7g8 h7g7 g8f8 g4f4 e7f6 g7c7
>b8b2 g5f6 b2a2
>
>
>After Null move but more than 1 allowed per search line
>Ply   Eval   Time      Nodes    Principle Variation
> 1:    332      0         66    f5f4
> 2:    293      0        856    f5f4 f8g8 h2h7 g8h7 f4f7
> 3:    325      1       3316    f5f4 f8g8 a2a4
> 4:    323      4      14578    f5f4 f8g8 g4h4 h7h5 g5h6ep e7h4 h2h4
> 5:    323     15      61484    f5f4 f8g8 g4h4 h7h5 g5h6ep e7h4 h2h4
> 6:    494     45     166882    f5f4 h7h5 g5h6ep g6g5 g4g5 e7g5 f4g5
> 7:    533    115     435052    f5f4 h7h5 g5h6ep g6g5 f4g3 f8g8 a2a4
> 8:    805    178     674742    f5f7 f8f7 h2h7 f7g8 h7g7 g8f8 g4f4 e7f6 g7c7
> 9:    805    462    1790313    f5f7 f8f7 h2h7 f7g8 h7g7 g8f8 g4f4 e7f6 g7c7
>10:   1164    960    3758500    f5f7 f8f7 h2h7 f7g8 h7g7 g8f8 g4f4 e7f6 g7c7
>b8b2 g5f6 b2a2
>
>Computer's move: f5f7

I tried the same test position
Movei finds Qf7+ at depth 2 but I admit that it does a lot of check extensions
when part of them are in the qsearch.

It does not show the last mate move because a problem in updating the pv in my
qsearch but it is no problem in games because the first move is never in
qsearch.

 1 385 0 93 f5f4
 2 382 0 273 f5f4 f8g8
2 383 0 674 f5f7
2 412 0 696 f5f7
 2 1243 1 1028 f5f7 f8f7 h2h7 f7g8 h7g7 g8f8 g4f4 e7f6 g7c7 f8g8 f4f6
 2 1243 1 1037 f5f7 f8f7 h2h7 f7g8 h7g7 g8f8 g4f4 e7f6 g7c7 f8g8 f4f6
 3 1243 1 2301 f5f7 f8f7 h2h7 f7g8 h7g7 g8f8 g4f4 e7f6 g7c7 f8g8 f4f6
 3 1243 2 2998 f5f7 f8f7 h2h7 f7g8 h7g7 g8f8 g4f4 e7f6 g7c7 f8g8 f4f6
 4 9987 3 5185 f5f7 f8f7 h2h7 f7g8 h7h8 g8f7 g4f4 e7f6 f4f6 f7e7 h8h7 e7d8
 4 9987 4 6407 f5f7 f8f7 h2h7 f7g8 h7h8 g8f7 g4f4 e7f6 f4f6 f7e7 h8h7 e7d8

Uri



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.