Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: The Null Move Killer

Author: Stuart Cracraft

Date: 16:50:06 09/30/04

Go up one level in this thread


On September 30, 2004 at 19:40:30, Ross Boyd wrote:

>On September 30, 2004 at 15:54:57, Stuart Cracraft wrote:
>
>>On September 30, 2004 at 11:49:23, Ross Boyd wrote:
>>
>>>On September 30, 2004 at 02:54:32, Stuart Cracraft wrote:
>>>
>>>>On September 30, 2004 at 00:51:07, Ross Boyd wrote:
>>>>
>>>>>On September 29, 2004 at 23:52:15, Stuart Cracraft wrote:
>>>>>
>>>>>>[D] 4r1k1/p1qr1p2/2pb1Bp1/1p5p/3P1n1R/1B3P2/PP3PK1/2Q4R w - - bm Qxf4;
>>>>>>
>>>>>>In this position I had everything turned on and got the solution
>>>>>>in a little more than 1 1/2 minutes:
>>>>>>
>>>>>> 1/11  g2f1  0.01 -953      945 g2f1 f4d5
>>>>>>                                g2f1 f4d5
>>>>>> 2/12  g2f1  0.01 -953     1644
>>>>>>                                g2f1 f4d5 c1g5
>>>>>> 3/12  g2f1  0.02 -953     5064
>>>>>>                                g2f1 f4d5 c1g5 d5f6
>>>>>> 4/20  g2f1  0.09 -953    20655
>>>>>>                                g2f1 f4d5 b3d5 c6d5 c1c7 d6c7 f1g1
>>>>>> 5/22  g2f1  0.65 -953   168943
>>>>>>                                g2f1 b5b4 b3a4 f4d5 f6g5 d5e7
>>>>>> 6/26  g2f1  2.59 -953   620310
>>>>>>                                g2f1 b5b4 mtmt
>>>>>> 7/32> g2f1 60.58 -552 14192153 g2f1 e8c8 c1b1 f4d5 b1e4 d6b4 f6e5 c7b6
>>>>>>                                g2f1 e8c8 c1b1 f4d5 b1e4 d6b4
>>>>>> 7/34  c1f4 99.42 5113 24537823 c1f4 e8e6 f4g5 d7e7 b3e6 e7e6 h1d1 d6e7 f6e7
>>>>>>                                c1f4 e8e6 f4g5 d7e7 b3e6 e7e6 h1d1
>>>>>>
>>>>>>
>>>>>>I turned off null move (R=2) and got the solution in about 11 seconds:
>>>>>>
>>>>>>Alpha=-1332 Beta=-531 Maxdepth=9999999 MaxTime=99999999
>>>>>> 1/11 g2f1  0.01 -953      908 g2f1 f4d5
>>>>>>                                g2f1 f4d5
>>>>>> 2/12 g2f1  0.01 -953     1565
>>>>>>                                g2f1 f4d5 c1g5
>>>>>> 3/14 g2f1  0.07 -953    20084
>>>>>>                                g2f1 f4d5 c1g5 d5f6
>>>>>> 4/22 g2f1  0.60 -953   131543
>>>>>>                                g2f1 f4d5 b3d5 c6d5 c1c7 d6c7 f1g1
>>>>>> 5/26>g2f1  6.80 -552  1607444
>>>>>>                                g2f1 b5b4 b3a4 f4d5 f6g5 d5e7
>>>>>> 5/36 c1f4 10.70 2260  2466497 c1f4 d6f4 h4h5 g6h5 h1h5 f4h6 h5h6 c7g3 g2g3 d7d6
>>>>>>
>>>>>>                                c1f4 d6f4 h4h5 g6h5 h1h5 f4h6 h5h6 c7g3 g2g3 d7d
>>>>>>
>>>>>>So now my question is, would it make sense to consider an idea of
>>>>>>disabling null move under additional circumstances if those
>>>>>>circumstances can be identified.
>>>>>>
>>>>>>   endgame
>>>>>>   side to move in check
>>>>>>   inside principal variation
>>>>>>   last move a null move
>>>>>>
>>>>>>These are the ones I disable for -- I don't disable null move for
>>>>>>any material-related or alpha/beta related measures but perhaps
>>>>>>I should. Are any in common use?
>>>>>>
>>>>>>Stuart
>>>>>
>>>>>Hi Stuart,
>>>>>I'll dodge your question and cut to the chase.
>>>>>
>>>>>You are seeing in action the weakness of nullmove when paired with a dumb
>>>>>qsearch.  MATE THREAT extensions help to a certain extent, HOWEVER, to solve
>>>>>WAC141 instantly you can generate 'quiet' checks in first ply of qsearch. (That
>>>>>is, if your capture search has not produced a beta cut, you then try generating
>>>>>non-capture checks and search them as well).
>>>>>
>>>>>This will extend the false horizons created by recursive nullmove and it
>>>>>complements the MATE THREAT extension very nicely. Note, the tree doesn't
>>>>>explode because you only do it when all the captures failed.. and then only at
>>>>>1st ply of qsearch.... so the overhead is not too bad.
>>>>>
>>>>>TRACE now solves WAC141 on a P3-450 in half a second. I can tell you that before
>>>>>implementing those quiet checks at ply 1 of qsearch it took over 3 minutes to
>>>>>solve it.
>>>>>
>>>>>YMMV... well actually, barring bugs - it's guaranteed to solve your problem.
>>>>>
>>>>>Ross
>>>>
>>>>What has the above done to your program's other results on test suites
>>>>and against components, all the same ones you faced before the change.
>>>>
>>>>Stuart
>>>
>>>Overall, it has improved TRACE's OTB play by ~70 ELO. On test suites it sees
>>>tactics involving checks/mates much faster. Another WAC problem that benefits
>>>greatly from qsearch checks is #163...
>>>
>>>[D] 5rk1/2p4p/2p4r/3P4/4p1b1/1Q2NqPp/PP3P1K/R4R2 b - - bm Qg2+;
>>>
>>>TRACE 1.30 on a PIII-600:
>>>   3	00:00	       4.753	158.433	-0.20	c6d5
>>>   3	00:00	       5.280	132.000	-0.62	c6d5 b3d5 g4e6 d5e5
>>>   3	00:00	       5.280	132.000	-0.62	c6d5 b3d5 g4e6 d5e5
>>>   3	00:00	       7.305	121.750	-0.61	f3g2
>>>   3	00:00	       8.241	117.728	-0.14	f3g2 e3g2 h3g2 h2g2 g4f3 b3f3 e4f3 g2g1
>>>c6d5
>>>   3	00:00	       8.241	117.728	-0.14	f3g2 e3g2 h3g2 h2g2 g4f3 b3f3 e4f3 g2g1
>>>c6d5
>>>   4	00:00	       9.822	122.775	-0.34	f3g2
>>>   4	00:00	      12.015	109.227	-0.40	f3g2 e3g2 h3g2 h2g2 g4f3 b3f3 e4f3 g2g1
>>>c6d5 a2a4
>>>   4	00:00	      12.015	109.227	-0.40	f3g2 e3g2 h3g2 h2g2 g4f3 b3f3 e4f3 g2g1
>>>c6d5 a2a4
>>>   5	00:00	      17.556	117.040	-0.20	f3g2
>>>   5	00:00	      23.535	130.750	-0.03	f3g2 e3g2 h3g2 h2g2 g4f3 b3f3 e4f3 g2g1
>>>c6d5 f1c1 c7c6
>>>   6	00:00	      41.398	159.223	-0.23	f3g2
>>>   6	00:00	      58.923	143.714	-0.30	f3g2 e3g2 h3g2 h2g2 g4f3 b3f3 e4f3 g2g1
>>>c6d5 a2a4 c7c5 a4a5
>>>   6	00:00	      58.923	143.714	-0.30	f3g2 e3g2 h3g2 h2g2 g4f3 b3f3 e4f3 g2g1
>>>c6d5 a2a4 c7c5 a4a5
>>>   7	00:00	     102.455	146.364	-0.10	f3g2
>>>   7	00:01	     138.531	164.917	+0.07	f3g2 e3g2 h3g2 h2g2 g4f3 b3f3 e4f3 g2g1
>>>c6d5 f1e1 h6d6 e1e7 c7c5
>>>   8	00:01	     235.578	169.480	+0.27	f3g2
>>>   8	00:01	     265.048	173.233	+2.27	f3g2
>>>   8	00:02	     349.987	176.761	+M10	f3g2 e3g2 h3g2 h2g2 g4f3 b3f3 e4f3 g2g1
>>>f8f5 f1e1 f5h5 e1e8 g8f7 e8e7 f7e7 a1e1 e7d8 e1e8
>>>   9	00:02	     484.263	190.654	+M10	f3g2 e3g2 h3g2 h2g2 g4f3 b3f3 e4f3 g2g1
>>>f8f5 f1e1 f5h5 e1e8 g8f7 e8e7 f7e7 a1e1 e7d8 e1e8 d8e8 d5c6
>>>  10	00:04	     860.458	192.496	+M10	f3g2 e3g2 h3g2 h2g2 g4f3 b3f3 e4f3 g2g1
>>>f8f5 f1e1 f5h5 e1e8 g8f7 e8e7 f7e7 a1e1 e7d8 e1e8 d8e8 d5c6
>>>  11	00:09	   2.060.677	223.258	+M10	f3g2 e3g2 h3g2 h2g2 g4f3 b3f3 e4f3 g2g1
>>>f8f5 f1e1 f5h5 e1e8 g8f7 e8e7 f7e7 a1e1 e7d8 e1e8 d8e8 d5c6
>>>  12	00:22	   5.669.700	249.217	+M10	f3g2 e3g2 h3g2 h2g2 g4f3 b3f3 e4f3 g2g1
>>>f8f5 f1e1 f5h5
>>>
>>>
>>>Hope this helps,
>>>
>>>Ross
>>
>>Very much so -- this is key information -- the key point is to do
>>the normal capture and check-evasion search first.
>>
>>Only after it is all done and without the cut, then generate
>>non-capture checks and do those.
>
>Exactly.
>
>You still do your check evasions ad-infinitum but generating/searching
>non-captures that GIVE check is only attempted at ply 1 of qs.
>
>BTW, I'd suggest toning down your recapture extensions somewhat. I don't allow
>recap extensions unless they occur in the last 3 ply of the main search. The
>point is there is no point in extending recaps at shallow depths because the
>tree simply explodes. You may have been using over-aggressive recap extensions
>to 'compensate' for the lack of other key extensions.
>
>>
>>Great stuff -- can hardly wait to try it. Do I dare implement it
>>at work during the day? Heh, heh.
>>
>>Stuart
>
>Or do you dare implementing it at home during the night? Its a double-edged
>sword isn't it. :-) Chess programmers must have a mortgage on insomnia (as well
>as insanity).
>
>Good luck with it,
>
>Ross

All I know is that the boss doesn't like it and the wife doesn't like it.

But heck, this is more important!

Stuart



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.