info depth 1 AB nodes 4 QS nodes 42 (91.30%) cutoff by tt move 0 (0.00 %) cutoff by capture 1 (25.00%)
info depth 2 AB nodes 21 QS nodes 162 (88.52%) cutoff by tt move 1 (4.76 %) cutoff by capture 3 (14.29%)
info depth 3 AB nodes 87 QS nodes 465 (84.24%) cutoff by tt move 18 (20.69%) cutoff by capture 28 (32.18%)
info depth 4 AB nodes 342 QS nodes 1163 (77.28%) cutoff by tt move 51 (14.91%) cutoff by capture 50 (14.62%)
info depth 5 AB nodes 2293 QS nodes 13260 (85.26%) cutoff by tt move 400 (17.44%) cutoff by capture 562 (24.51%)
info depth 6 AB nodes 2864 QS nodes 20486 (87.73%) cutoff by tt move 468 (16.34%) cutoff by capture 593 (20.71%)
info depth 7 AB nodes 10332 QS nodes 56344 (84.50%) cutoff by tt move 1574 (15.23%) cutoff by capture 2081 (20.14%)
info depth 8 AB nodes 33872 QS nodes 186752 (84.65%) cutoff by tt move 4897 (14.46%) cutoff by capture 6572 (19.40%)
info depth 9 AB nodes 78509 QS nodes 484916 (86.07%) cutoff by tt move 9614 (12.25%) cutoff by capture 16332 (20.80%)
info depth 10 AB nodes 158530 QS nodes 901745 (85.05%) cutoff by tt move 13247 (8.36 %) cutoff by capture 29330 (18.50%)
info depth 11 AB nodes 555120 QS nodes 3349566 (85.78%) cutoff by tt move 36230 (6.53 %) cutoff by capture 104669 (18.86%)
the tt percentage seems way too low. i also have to set a limit for QS maximum depth.
i also tested for cutoffs before move 5, close to 50%. this information will be useful for reductions.
what do you guys think?
I always take these statistics per remaining depth. At d<2 TT hits will be much less frequent than at higher depth. It would also be interesting to see how often the TT move does not give you a cutoff. And how often null move does it. And how many cut-nodes you had in the first place.
info depth 1 PVS nodes 3 QS nodes 8 (72.73%) cutoff by tt move 0 ( 0.00%) cutoff by capture 1 (33.33%)
info depth 2 PVS nodes 19 QS nodes 67 (77.91%) cutoff by tt move 1 ( 5.26%) cutoff by capture 4 (21.05%)
info depth 3 PVS nodes 65 QS nodes 212 (76.53%) cutoff by tt move 8 (12.31%) cutoff by capture 11 (16.92%)
info depth 4 PVS nodes 126 QS nodes 367 (74.44%) cutoff by tt move 14 (11.11%) cutoff by capture 28 (22.22%)
info depth 5 PVS nodes 238 QS nodes 561 (70.21%) cutoff by tt move 33 (13.87%) cutoff by capture 42 (17.65%)
info depth 6 PVS nodes 940 QS nodes 1590 (62.85%) cutoff by tt move 119 (12.66%) cutoff by capture 114 (12.13%)
info depth 7 PVS nodes 1522 QS nodes 2597 (63.05%) cutoff by tt move 198 (13.01%) cutoff by capture 178 (11.70%)
info depth 8 PVS nodes 3359 QS nodes 5087 (60.23%) cutoff by tt move 470 (13.99%) cutoff by capture 330 ( 9.82%)
info depth 9 PVS nodes 4863 QS nodes 8055 (62.35%) cutoff by tt move 678 (13.94%) cutoff by capture 505 (10.38%)
info depth 10 PVS nodes 8828 QS nodes 15191 (63.25%) cutoff by tt move 1166 (13.21%) cutoff by capture 1073 (12.15%)
info depth 11 PVS nodes 12635 QS nodes 20265 (61.60%) cutoff by tt move 1681 (13.30%) cutoff by capture 1381 (10.93%)
info depth 12 PVS nodes 20096 QS nodes 30207 (60.05%) cutoff by tt move 2644 (13.16%) cutoff by capture 1944 ( 9.67%)
info depth 13 PVS nodes 32734 QS nodes 43801 (57.23%) cutoff by tt move 4298 (13.13%) cutoff by capture 2750 ( 8.40%)
info depth 14 PVS nodes 53954 QS nodes 64689 (54.52%) cutoff by tt move 6963 (12.91%) cutoff by capture 4008 ( 7.43%)
info depth 15 PVS nodes 111637 QS nodes 140822 (55.78%) cutoff by tt move 12968 (11.62%) cutoff by capture 10352 ( 9.27%)
info depth 16 PVS nodes 179273 QS nodes 224953 (55.65%) cutoff by tt move 20599 (11.49%) cutoff by capture 16475 ( 9.19%)
info depth 17 PVS nodes 206243 QS nodes 255154 (55.30%) cutoff by tt move 23833 (11.56%) cutoff by capture 17970 ( 8.71%)
info depth 18 PVS nodes 247635 QS nodes 301211 (54.88%) cutoff by tt move 28727 (11.60%) cutoff by capture 20364 ( 8.22%)
info depth 19 PVS nodes 298339 QS nodes 356799 (54.46%) cutoff by tt move 34412 (11.53%) cutoff by capture 23373 ( 7.83%)
info depth 20 PVS nodes 394109 QS nodes 457823 (53.74%) cutoff by tt move 45342 (11.50%) cutoff by capture 29207 ( 7.41%)
info depth 21 PVS nodes 547497 QS nodes 623927 (53.26%) cutoff by tt move 62349 (11.39%) cutoff by capture 39141 ( 7.15%)
info depth 22 PVS nodes 738317 QS nodes 819139 (52.59%) cutoff by tt move 83696 (11.34%) cutoff by capture 50210 ( 6.80%)
info depth 23 PVS nodes 959297 QS nodes 1036643 (51.94%) cutoff by tt move 108934 (11.36%) cutoff by capture 62314 ( 6.50%)
info depth 24 PVS nodes 1373667 QS nodes 1444279 (51.25%) cutoff by tt move 155768 (11.34%) cutoff by capture 87543 ( 6.37%)
info depth 25 PVS nodes 1881372 QS nodes 1963236 (51.06%) cutoff by tt move 207054 (11.01%) cutoff by capture 123022 ( 6.54%)
Dumb is much more selective than your engine and goes deeper, but the % of cutoff are also rather low. However it seems to fluctuate less with depth than your numbers.
hgm wrote: ↑Thu Sep 15, 2022 9:17 pm
I always take these statistics per remaining depth. At d<2 TT hits will be much less frequent than at higher depth. It would also be interesting to see how often the TT move does not give you a cutoff. And how often null move does it. And how many cut-nodes you had in the first place.
info depth 1 total nodes 1439 cut nodes 0 (0.00%) cutoff by NMP 0 (-nan%) cutoff by tt move 0 (-nan%) cutoff by capture 0 (-nan%) cutoff before 5 moves 0 (-nan%)
info depth 2 total nodes 2440 cut nodes 47 (1.93%) cutoff by NMP 0 (0.00%) cutoff by tt move 0 (0.00%) cutoff by capture 47 (100.00%) cutoff before 5 moves 47 (100.00%)
info depth 3 total nodes 19987 cut nodes 95 (0.48%) cutoff by NMP 0 (0.00%) cutoff by tt move 47 (49.47%) cutoff by capture 67 (70.53%) cutoff before 5 moves 92 (96.84%)
info depth 4 total nodes 34877 cut nodes 1548 (4.44%) cutoff by NMP 5 (0.32%) cutoff by tt move 89 (5.77%) cutoff by capture 1475 (95.59%) cutoff before 5 moves 1533 (99.35%)
info depth 5 total nodes 282901 cut nodes 3719 (1.31%) cutoff by NMP 35 (0.94%) cutoff by tt move 1422 (38.60%) cutoff by capture 2884 (78.28%) cutoff before 5 moves 3561 (96.66%)
info depth 6 total nodes 1333988 cut nodes 18790 (1.41%) cutoff by NMP 1236 (6.58%) cutoff by tt move 1361 (7.75%) cutoff by capture 12481 (71.10%) cutoff before 5 moves 15968 (90.97%)
info depth 7 total nodes 2873678 cut nodes 58400 (2.03%) cutoff by NMP 2260 (3.87%) cutoff by tt move 13711 (24.42%) cutoff by capture 30284 (53.94%) cutoff before 5 moves 54007 (96.20%)
i compare the move statistics to the cut nodes not cut by NMP.
i expected more cutoffs by NMP in kiwipete since there are many captures and it's easy to filter out the stupid ones (right?).
abulmo2 wrote: ↑Thu Sep 15, 2022 11:58 pm
However it seems to fluctuate less with depth than your numbers.
i suppose this happens because my engine (not selective at all) will visit many positions and 1) the TT slots will change frequently (TT move not always availabe) 2) all those wild positions will be very different (% of captures will vary greatly).
i started checking how often my tt move was illegal and it was close to 50% in middle game positions!!
i quickly found out why, my TT is basically empty. in all kinds of positions it never exceeds 30% usage.
i blame the hash keys for this but i'm not sure, the code is very short and it seems like i've done everything correctly.
Are you updating the hash key incrementally as you make/unmake? If so, have you confirmed that code is bug-free? I have a "verify board" compiler switch that makes sure things like make/unmake, SEE, etc., don't have any errors.
JVMerlino wrote: ↑Wed Sep 21, 2022 5:43 pm
Are you updating the hash key incrementally as you make/unmake? If so, have you confirmed that code is bug-free? I have a "verify board" compiler switch that makes sure things like make/unmake, SEE, etc., don't have any errors.
no, i calculate it from scratch in every node.
i also tried other other keys like the ones from Crafty to see if it was my PRNG but it was not. i don't really have an idea on how to approach this.