[d]5k2/ppp2r1p/2p2ppP/8/2Q5/2P1bN2/PP4P1/1K1R4 w - -
The position is a mate in 9 for white, as shown in the other thread. But that isn't what I am about. Running this position with the current version of Pygmalion, I get weird results.
This is what it says when compiled using Clang (TT and nullmove pruning disabled - no pruning or reductions going on at all, should be the result of a full width search):
Code: Select all
0: +7.05469 - Qxf7
5.00 N in 103 mcs => 48.5 kN/s
1: +7.07812 - Rd8
201 N in 235 mcs => 855 kN/s
2: +8.04297 - Qb4 Re7 Qxb7
824 N in 584 mcs => 1.41 MN/s
3: +8.04297 - Qb4 Re7 Qxb7
2.28 kN in 1.60 ms => 1.43 MN/s
4: +8.07031 - Qb4 c5 Qxb7 c4
32.9 kN in 18.0 ms => 1.82 MN/s
5: +8.08594 - Qb4 c5 Qxb7 Bxh6 Qxa7
82.9 kN in 37.8 ms => 2.19 MN/s
6: +10.1094 - Rd8 Ke7 Qd3 f5 Rd7 Ke6 Rxf7 Kxf7 Qxe3
368 kN in 164 ms => 2.24 MN/s
7: +M5 - Rd8 Ke7 Qd3 Rf8 Qd7
1.62 MN in 517 ms => 3.13 MN/s
8: +10.1152 - Rd8 Ke7 Qd3 f5 Ne5 Rf8 Rxf8 Kxf8 Qxe3
12.2 MN in 5.37 s => 2.27 MN/s
9: +10.1621 - Rd8 Ke7 Qd3 Bd4 Qxd4 b6 Ra8 a5 a4
27.9 MN in 11.2 s => 2.49 MN/s
10: +M9 - Rd8 Ke7 Qd3 Bd4 Nxd4 Kxd8 Nxc6 Kc8 Qd8
88.0 MN in 38.4 s => 2.29 MN/s
11: +M5 - Rd8 Ke7 Qd3 Rf8 Qd7
405 MN in 167 s => 2.42 MN/s
- The result of iteration 0 (which is pure QS) finds Qxf7. Which - if I am not overlooking something - seems to be a completely moronic move. Kxf7, case closed... I fail to see how QS thinks that is better than standing pat.
- The result of iteration 7. It claims to have found a mate in 5. That's absolutely impossible, since the position was only searched at depth 7 (for a mate in 5 at least depth 10 would be needed). Besides from the fact that playing Rd8 does provably not lead to a mate in 5...
Code: Select all
0: +7.05469 - Qxf7
5.00 N in 112 mcs => 44.5 kN/s
1: +7.07812 - Rd8
201 N in 398 mcs => 504 kN/s
2: +8.04297 - Qb4 Re7 Qxb7
829 N in 1.13 ms => 730 kN/s
3: +8.04297 - Qb4 Re7 Qxb7
2.23 kN in 2.63 ms => 848 kN/s
4: +8.07031 - Qb4 c5 Qxb7 c4
32.0 kN in 41.3 ms => 776 kN/s
5: +8.08594 - Qb4 c5 Qxb7 Bxh6 Qxa7
78.7 kN in 80.5 ms => 977 kN/s
6: +10.1094 - Rd8 Ke7 Qd3 f5 Rd7 Kf6 Rxf7 Kxf7 Qxe3
257 kN in 301 ms => 855 kN/s
7: +10.1094 - Rd8 Ke7 Qd3 f5 Rd7 Ke6 Rxf7 Kxf7 Qxe3
1.70 MN in 1.32 s => 1.28 MN/s
8: +M5 - Rd8 Ke7 Qd3 Bc5 Qd7
5.37 MN in 5.88 s => 912 kN/s
9: +11.1465 - Rd8 Ke7 Qd3 Bd4 Qxd4 Ke6 Qxa7 b6 Qa6
20.3 MN in 18.4 s => 1.11 MN/s
I tried narrowing down the problem by disabling various options concerning the search. The only thing that seems to make any difference is enabling/disabling zero window searches. Disabling them (i.e. not doing PVS, but vanilla AB-search) I get the following:
Mircosoft compiler:
Code: Select all
0: +7.05469 - Qxf7
5.00 N in 117 mcs => 42.8 kN/s
1: +7.07812 - Rd8
181 N in 372 mcs => 487 kN/s
2: +8.04297 - Qb4 Re7 Qxb7
1.00 kN in 1.46 ms => 686 kN/s
3: +8.04297 - Qb4 Re7 Qxb7
3.24 kN in 4.14 ms => 781 kN/s
4: +8.07031 - Qb4 c5 Qxb7 c4
43.8 kN in 59.1 ms => 741 kN/s
5: +8.0918 - Qb4 c5 Qxb7 c4 Qb5
121 kN in 130 ms => 932 kN/s
6: +10.1094 - Rd8 Ke7 Qd3 f5 Rd7 Ke8 Rxf7 Kxf7 Qxe3
885 kN in 930 ms => 952 kN/s
7: +10.1094 - Rd8 Ke7 Qd3 f5 Rd7 Ke6 Rxf7 Kxf7 Qxe3
5.06 MN in 5.22 s => 969 kN/s
8: +11.1152 - Rd8 Ke7 Qd3 Bd4 Qxd4 f5 Rc8 Rf8 Rxc7
34.7 MN in 34.8 s => 996 kN/s
9: +9.06055 - Rd8 Ke7 Qd3 f5 Ne5 Bf4 Nxf7 Kxf7 Qc4
298 MN in 313 s => 953 kN/s
Code: Select all
0: +7.05469 - Qxf7
5.00 N in 90.8 mcs => 55.1 kN/s
1: +7.07812 - Rd8
181 N in 215 mcs => 841 kN/s
2: +8.04297 - Qb4 Re7 Qxb7
998 N in 735 mcs => 1.36 MN/s
3: +8.04297 - Qb4 Re7 Qxb7
3.29 kN in 2.19 ms => 1.51 MN/s
4: +8.07031 - Qb4 c5 Qxb7 c4
44.8 kN in 26.6 ms => 1.69 MN/s
5: +8.0918 - Qb4 c5 Qxb7 c4 Qb5
130 kN in 62.3 ms => 2.08 MN/s
6: +10.1094 - Rd8 Ke7 Qd3 f5 Rd7 Ke8 Rxf7 Kxf7 Qxe3
1.00 MN in 463 ms => 2.16 MN/s
7: +10.1094 - Rd8 Ke7 Qd3 f5 Rd7 Ke6 Rxf7 Kxf7 Qxe3
5.42 MN in 2.43 s => 2.23 MN/s
8: +10.1094 - Rd8 Ke7 Qd3 f5 Rd7 Ke6 Rxf7 Kxf7 Qxe3
37.7 MN in 16.3 s => 2.32 MN/s
9: +10.1621 - Rd8 Ke7 Qd3 Bd4 Qxd4 c5 Qd5 a6 a4
218 MN in 96.1 s => 2.26 MN/s
- Builds made with the Microsoft compiler and builds made with Clang behave differently (just look at the node counts).
- The moronic Qxf7 on iteration 0 is still there.
Ideas or hints would be greatly apreciated. Does anyone know any good positions to test QS and SEE?