Author: Stuart Cracraft
Date: 12:54:57 09/30/04
Go up one level in this thread
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. Great stuff -- can hardly wait to try it. Do I dare implement it at work during the day? Heh, heh. Stuart
This page took 0.01 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.