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.