Author: Stuart Cracraft
Date: 14:25:52 09/04/04
Go up one level in this thread
On September 03, 2004 at 11:13:05, Robert Hyatt wrote: >On September 03, 2004 at 00:14:01, Stuart Cracraft wrote: > >>On September 02, 2004 at 21:21:41, Robert Hyatt wrote: >> >>>On September 02, 2004 at 16:44:58, Stuart Cracraft wrote: >>> >>>>On September 02, 2004 at 15:31:31, martin fierz wrote: >>>> >>>>>On September 02, 2004 at 09:45:25, Michael Henderson wrote: >>>>> >>>>>>On September 02, 2004 at 02:39:28, martin fierz wrote: >>>>>> >>>>>>>On September 01, 2004 at 10:11:18, Uri Blass wrote: >>>>>>> >>>>>>>>On September 01, 2004 at 05:57:25, martin fierz wrote: >>>>>>>> >>>>>>>>>On September 01, 2004 at 00:51:47, Stuart Cracraft wrote: >>>>>>>>> >>>>>>>>>[snip] >>>>>>>>> >>>>>>>>>Muse on P4 2.4GHz finds the mate at ply 6, failing high on Qxf4 after 0.7 >>>>>>>>>seconds (not shown in the logfile). >>>>>>>>> >>>>>>>>>the reason it can solve this at such a low search depth is probably twofold, the >>>>>>>>>first is that it generates checks in qsearch on the first ply of the qsearch (so >>>>>>>>>when you drop directly into qsearch with a nullmove, it will see Rh8# every >>>>>>>>>time), the second is probably that it is using mate-threat extensions. >>>>>>>>> >>>>>>>>>cheers >>>>>>>>> martin >>>>>>>> >>>>>>>>Do you get 2 plies only by mate extensions? >>>>>>>>In order to do it you need to extend 2/3 ply for mate threat. >>>>>>>> >>>>>>>>The line 1.Qxf4 Bxf4 2.Rxh5 gxh5 3.Rxh5 Bh6 4.Rxh6 is 7 plies and qsearch here >>>>>>>>does not see mate because it is black to move so I need 8 plies even if I >>>>>>>>disable pruning by evaluation. >>>>>>> >>>>>>>hi uri >>>>>>> >>>>>>>the reason must be that after 2.Rxh5 i get a mate threat extension and after >>>>>>>3.Rxh5 again, and since i do a full ply for that, my program sees it. >>>>>>> >>>>>>>cheers >>>>>>> martin >>>>>>> >>>>>>>> >>>>>>>>With pruning by evaluation latest movei get it only in 10 plies but I think to >>>>>>>>change my pruning to make it see it faster. >>>>>>>> >>>>>>>>Uri >>>>>> >>>>>>is recapture extension also playing a role here?...if that applies. >>>>> >>>>>it doesn't apply for me, but it probably depends on what an engine would >>>>>classify as a "recapture". some people might call any sequence of two captures >>>>>on the same square a recapture, for me a recapture is only if a piece of the >>>>>same value is recaptured. this isn't the case here. >>>>> >>>>>cheers >>>>> martin >>>> >>>>I consider a recapture to be a capture that restores the root material >>>>difference to what it was at ply = 0, before the search. >>>> >>>>Stuart >>> >>> >>>That is no good. The starting position comes right after I played BxN. It is >>>your move and you start the search. Material score is -3 for you. After you >>>make the re-capture at ply=1, I play RxR at ply=2. Score = -5. You play RxR to >>>make the score 0 again. 0 != -3 so you don't extend. >> >>Your example convinces. I discarded it and reclassify recapture extension >>as extend on 2nd capture on the same square. >> >>Didn't give a boost on the test suite though. >> >>Stuart > >I am no longer sure that the recapture extension is even any good. It worked in >the days of 8 ply searches. But today I am not sure. Ken Thompson was the >first to use it that I know of, in 1983. He later decided it was bad. Here is >one position where it helps: > >[D]2r2rk1/1bqnbpp1/1p1ppn1p/pP6/N1P1P3/P2B1N1P/1B2QPP1/R2R2K1 b - - 0 1 > >That is from the kopec-bratko test, position 22, correct move is Bxe4. > >Crafty with recapture extension: (750mhz PIII laptop) > > 5 0.06 0.00 1. ... Nh5 2. Qe3 Bf6 3. Bxf6 Nhxf6 > 4. Qf4 > 5-> 0.15 0.00 1. ... Nh5 2. Qe3 Bf6 3. Bxf6 Nhxf6 > 4. Qf4 > 6 0.24 -0.02 1. ... Nh5 2. Qe3 Bf6 3. Bxf6 Nhxf6 > 4. Qf4 Rfe8 > 6 0.41 -1 1. ... Bxe4!! > 6 0.48 -0.58 1. ... Bxe4 2. Bxe4 Qxc4 3. Qxc4 Rxc4 > 4. Nxb6 Rxe4 5. Nxd7 Nxd7 > 6-> 0.51 -0.58 1. ... Bxe4 2. Bxe4 Qxc4 3. Qxc4 Rxc4 > 4. Nxb6 Rxe4 5. Nxd7 Nxd7 > 7 0.65 -0.58 1. ... Bxe4 2. Bxe4 Qxc4 3. Qxc4 Rxc4 > 4. Nxb6 Rxe4 5. Nxd7 Nxd7 > 7-> 0.71 -0.58 1. ... Bxe4 2. Bxe4 Qxc4 3. Qxc4 Rxc4 > 4. Nxb6 Rxe4 5. Nxd7 Nxd7 > 8 1.00 -0.50 1. ... Bxe4 2. Bxe4 Qxc4 3. Qxc4 Rxc4 > 4. Bxf6 Nxf6 5. Nxb6 Rxe4 6. Rac1 > 8-> 1.17 -0.50 1. ... Bxe4 2. Bxe4 Qxc4 3. Qxc4 Rxc4 > 4. Bxf6 Nxf6 5. Nxb6 Rxe4 6. Rac1 > 9 1.99 -0.58 1. ... Bxe4 2. Bxe4 Qxc4 3. Qxc4 Rxc4 > 4. Nxb6 Rxe4 5. Nxd7 Nxd7 6. Bc3 a4 > 9-> 2.17 -0.58 1. ... Bxe4 2. Bxe4 Qxc4 3. Qxc4 Rxc4 > 4. Nxb6 Rxe4 5. Nxd7 Nxd7 6. Bc3 a4 > time=2.18 cpu=87% mat=0 n=782537 fh=94% nps=358K > ext-> chk=3964 cap=3294 pp=27 1rep=90 mate=0 > >and crafty with recapture extension set to zero: > > 5 0.06 -0.04 1. ... Nh5 2. Qe3 Bf6 3. Bc3 Nc5 > 5-> 0.10 -0.04 1. ... Nh5 2. Qe3 Bf6 3. Bc3 Nc5 > 6 0.19 0.00 1. ... Nh5 2. Qe3 Bf6 3. Bxf6 Nhxf6 > 4. Qf4 > 6-> 0.29 0.00 1. ... Nh5 2. Qe3 Bf6 3. Bxf6 Nhxf6 > 4. Qf4 > 7 0.44 -0.02 1. ... Nh5 2. Qe3 Bf6 3. Bxf6 Nhxf6 > 4. Qf4 Rfd8 > 7-> 0.58 -0.02 1. ... Nh5 2. Qe3 Bf6 3. Bxf6 Nhxf6 > 4. Qf4 Rfd8 > 8 0.90 0.00 1. ... Nh5 2. Qe3 Bf6 3. Bxf6 Nhxf6 > 4. Qf4 Nh5 5. Qg4 > 8 1.80 -1 1. ... Bxe4!! > 8 2.02 -0.58 1. ... Bxe4 2. Bxe4 Qxc4 3. Qxc4 Rxc4 > 4. Nxb6 Rxe4 5. Nxd7 Nxd7 > 8-> 2.07 -0.58 1. ... Bxe4 2. Bxe4 Qxc4 3. Qxc4 Rxc4 > 4. Nxb6 Rxe4 5. Nxd7 Nxd7 > 9 2.79 -0.69 1. ... Bxe4 2. Bxe4 Qxc4 3. Qxc4 Rxc4 > 4. Nxb6 Nxb6 5. Bd3 Rc5 > 9-> 2.98 -0.69 1. ... Bxe4 2. Bxe4 Qxc4 3. Qxc4 Rxc4 > 4. Nxb6 Nxb6 5. Bd3 Rc5 > time=3.00 cpu=87% mat=0 n=1016538 fh=93% nps=338K > ext-> chk=4568 cap=4045 pp=33 1rep=125 mate=0 > >it finds Bxe4 about 4.5X faster with recapture than without... Confirmed. GA with Recapture: (1.55 seconds) Alpha=-265 Beta=235 Maxdepth=9999999 MaxTime=999999 1/ 6 f8e8 0.01 1 92 f8e8 2/ 6 f8e8 0.03 -22 679 f8e8 a4c3 3/14 d7e5 0.04 3 3756 d7e5 f3e5 d6e5 a4c3 4/24> d7e5 0.27 253 48187 d7e5 f3d2 e5d3 e2d3 d6d5 c4d5 4/34 b7e4 1.55 985 349149 b7e4 d3e4 c7c4 e2c4 c8c4 b2f6 d7f6 e4h7 f6h7 a4b 6 c4c5 f3d4 5/34 b7e4 1.59 985 357045 b7e4 d3e4 c7c4 e2c4 c8c4 b2f6 d7f6 e4h7 f6h7 a4b 6 c4c5 f3d4 6/34 b7e4 3.98 985 864551 b7e4 d3e4 c7c4 e2c4 c8c4 b2f6 d7f6 e4h7 f6h7 a4b 6 c4c5 f3d4 7/34 b7e4 7.40 985 1622336 b7e4 d3e4 c7c4 e2c4 c8c4 b2f6 d7f6 e4h7 f6h7 a4b 6 c4c5 f3d4 8/34 b7e4 28.66 994 6037941 b7e4 d3e4 c7c4 e2c4 c8c4 a4b6 c4e4 b6d7 f6d7 b2c 3 e4a4 d1d4 a4d4 GA without Recapture: 6 seconds Alpha=-265 Beta=235 Maxdepth=9999999 MaxTime=9999 1/ 6 f8e8 0.00 1 92 f8e8 2/ 6 f8e8 0.00 -22 423 f8e8 a4c3 3/11 d7e5 0.03 26 1940 d7e5 f3e5 d6e5 4/11 d7e5 0.04 3 5828 d7e5 f3e5 d6e5 a4c3 5/12 d7e5 0.12 19 18304 d7e5 f3e5 d6e5 a4c3 f8e8 6/24 f8e8 0.62 -2 130540 f8e8 a4c3 d7e5 f3e5 d6e5 d3c2 7/32 d7e5 1.82 13 357427 d7e5 f3e5 d6e5 e2e3 f6d7 a4c3 f8e8 8/32> d7e5 5.30 263 1033125 d7e5 f3d2 f8e8 b2d4 f6d7 a4c3 c8d8 d3c2 8/32 b7e4 6.07 898 1203059 b7e4 d3e4 c7c4 e2c4 c8c4 b2f6 e7f6 e4c6 9/32 b7e4 9.00 992 1709761 b7e4 d3e4 c7c4 e2c4 c8c4 a4b6 c4e4 b6d7 f6d7 10/32 b7e4 13.69 977 2730561 b7e4 d3e4 c7c4 e2c4 c8c4 a4b6 c4e4 b6d7 f6d7 f3d 4 Recapture is regularly selected as one of several optimal settings by my qa. Currently the settings it likes the most are unlimited% check extensions in quiescence (extended back to main search with depth=1), unlimited extensions in main search, unlimited single-reply extensions, SEE >= 0 for quiescent moves, SEE with maximum positional score as margin for futility cutoff delta pruning, and unlimited extension mate threat. On any of the extensions from this set, a maximum of one is permitted per node. I am wondering if changing to fraction extensions and putting in values like check extension in quiescence fraction = 1 check extension in main fraction = 1/2 single-reply extension fraction = 1/2 mate threat fraction = 3/4 My program has a maximum hard ply limit of 99 for the quiescence and quiescence. Well, back to the drawing board... 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.