Definiere "findet den Fehler".
Avoid move Teststellung, im Sinne von, jeder andere Zug an erster Stelle im Output gilt als gelöst?
Wie lange soll die single variant mode Rechenzeit sein, um sicher zu sein, dass es sich die Engine nicht doch noch zum Schlechteren überlegt?
Darf's auch SF dev. statt SF9 sein? (Ich hab' ihn sicher noch irgendwo, aber ich müsste ihn jedenfalls neu installieren.)
Allen diesen Fragen mal vorgreifend, 24threads einer 12x3GHz Intel- CPU, 32G Hash mit leerem Hash gestartet, jeweils so 3 Minuten laufen lassen, immer nur ein einzelner Versuch (3 sollte man für SMP immer wenigstens machen eigentlich):
21.Tfe1? am
Analysis by Brainfish 280918 64 POPCNT:
23.Dd3 Tca8 24.a3 Dd8 25.Lf3 bxa3 26.Txa3
+/- (0.82) Tiefe: 7/7 00:00:08 55kN
...
23.Dd3 Sg8 24.Lf3 Tc2 25.a4 Txb2 26.De3 Ta8 27.Lg4 Dd8 28.Dc1 Tb3 29.Dc4 Tb2
= (0.00) Tiefe: 26/30 00:00:11 82188kN
23.Dd3
= (0.08 ++) Tiefe: 27/37 00:00:13 106MN
23.Dd3 Sg8 24.Lf3 Tc2 25.a4 Txb2 26.De3 Ta8 27.Lg4 Dd8 28.Dc1 Tb3 29.Dc4 Tb2
= (0.00) Tiefe: 27/37 00:00:13 106MN
...
23.Dd3 Sg8 24.Lf3 Tc2 25.a4 Txb2 26.De3 Ta8 27.Lg4 Dd8 28.Dc1 Tb3 29.Dc4 Tb2
= (0.00) Tiefe: 51/15 00:03:15 4150MN
Und dann 29...Lxd6? am
Analysis by Brainfish 280918 64 POPCNT:
29...La8 30.Kb1 c5 31.dxc5+ Kxc5 32.Thh8 Lxd6 33.exd6
-/+ (-1.32) Tiefe: 7/9 00:00:01 63kN
29...La8 30.g6 S8xg6 31.Sc8+ Kc7 32.Sxe7 Sxe7 33.Txd8 Sd3+ 34.Kb1
=/+ (-0.46) Tiefe: 8/10 00:00:01 93kN
29...La6 30.Kc2 c5 31.dxc5+ Kxc5 32.Thh8 Kd4 33.g6 Kxe5 34.g7
= (-0.22) Tiefe: 9/11 00:00:01 269kN
29...Kc7 30.Thh8 Se2+ 31.Kb1 Sxd4 32.g6 Sxg6 33.Txd8 Sxh8 34.Txh8 Lxd6
= (0.17) Tiefe: 10/14 00:00:01 1045kN
29...La6 30.Thh8 b4 31.g6 c3 32.bxc3 bxc3 33.Kc2 Ld3+ 34.Kxc3 Lxg6 35.Lxg6 S4xg6 36.Th1
=/+ (-0.48) Tiefe: 11/14 00:00:01 1654kN
29...La6 30.Thh8 Se2+ 31.Kd2 Sxd4 32.g6 Sf3+ 33.Kc2 Sxg6 34.Lxg6 Txg8 35.Txg8 Sxe5 36.Sf7 Sf3
=/+ (-0.37) Tiefe: 12/20 00:00:01 1775kN
...
29...La6 30.Thh8 b4 31.Lh5 c3 32.bxc3 bxc3 33.Kc2 c5 34.Kxc3 cxd4+ 35.Kxd4 Sxh5 36.Txh5 Lxd6 37.exd6 Txd6+ 38.Kc3 Td3+ 39.Kb2 Td2+ 40.Kc1 Txf2 41.g6 Sxg6 42.Txg6 Lc4 43.a3 Ta2 44.Th4 Lb3 45.Kb1 Txa3 46.Kb2 Ta4 47.Txa4 Lxa4 48.Txe6+ Kc5 49.Ka3 Ld7 50.Tf6 Le8 51.Tf2
= (0.14) Tiefe: 27/44 00:00:09 209MN
...
29...La6 30.Kc2 b4 31.Th4 Sd3 32.Te4 Sxf2 33.Te3 c5 34.dxc5+ Kxc5 35.g6 Kd4 36.g7 Kxe3 37.Th8 c3 38.g8D Ld3+ 39.Kc1 Sg6 40.Lxg6 Txg8 41.Txg8 cxb2+ 42.Kxb2 a4 43.Lxd3 Sxd3+ 44.Kc2 Sxe5 45.Sb5 Sc6 46.Ta8 b3+ 47.axb3 axb3+ 48.Kxb3 Sd4+ 49.Sxd4 Kxd4 50.Kc2 e5 51.Kd1 Kd3 52.Ta7
= (0.14) Tiefe: 31/54 00:00:44 1040MN
29...La6
= (0.06 ++) Tiefe: 32/20 00:00:54 1288MN
29...La6 30.Thh8 b4 31.Lh5 Sd3+ 32.Kc2 Se1+ 33.Kd1 Sd3
= (0.00) Tiefe: 32/51 00:01:13 1733MN
...
29...La6 30.Thh8 b4 31.Lh5 Sd3+ 32.Kc2 Se1+ 33.Kd1 Sd3
= (0.00) Tiefe: 40/43 00:03:18 4655MN
Mein Vorschlag für avoid move prinzipiell immer der am einfachsten durchführbare Weg, um zu sehen, ob die Engine mit dem am selbst auch richtig umgeht, ihn ihr nach der Testzeit mit leerem Hash auf der Teststellung gestartet, eingeben.
Alternativ gleich auf dem ausgeführten am mit neuerliche leerem Hash starten, ist eine zweite Möglichkeit, sagt aber natürlich nix ohne den Vortest auf der Vorstellung.
Gleich mit so vielen MV- Lines starten, dass der am dabei ist, ist eine weitere Möglichkeit, kostet aber auch Zeit und ist auch nur bedingt vergleichbar mit den anderen Methoden.
Wenn es knifflige Stellungen sind, braucht man Testlines, mit denen man mehr als den ersten Halbzug nach der Teststellung im Output vergleichen kann, Eval allein ohne Züge dazu reicht eigentlich nie.
Daher hier jetzt nur noch der Folgeoutput nach Methode eins, gleich nach dem ersten Output in der angegebenen Rechenzeit den am eingegeben:
Analysis by Brainfish 280918 64 POPCNT:
23...Dd8 24.Lf3 Db6 25.g4 f6 26.g5 fxg5
= (0.00) Tiefe: 7/7 00:00:00 18kN
...
23...Sg8 24.Dd3 Dd8 25.Lf3 Sf6 26.Le2 Tca8 27.Dc4 Ta4 28.Lf1 Da5 29.b3 Txa2 30.Txa2 Dxa2 31.Dxb4 Sg4 32.Le2 Sf6
= (0.00) Tiefe: 20/20 00:00:00 903kN
23...Sg8 24.Dd3 Dd8 25.Lf3 Sf6 26.Le2 Tca8 27.Dc4 Ta4 28.Lf1 b3 29.Dxb3 Sxe4 30.Lxh3 Da5 31.De3 Sc5 32.Lf1 Txa2 33.Txa2 Dxa2 34.Dc3 Dxd5 35.Lc4 Dd4 36.Dxd4 exd4 37.Te7 Ta1+ 38.Kg2
= (-0.08) Tiefe: 21/40 00:00:00 1944kN
23...Sg8 24.Dd3 Dd8 25.Lf3 Sf6 26.Le2 Tca8 27.Dc4 Ta4 28.Lf1 b3 29.Dxb3 Sxe4 30.Lxh3 Da5 31.Tec1 Sc5 32.Dc2 Td4 33.Td1 Txd1+ 34.Dxd1 Dxb5 35.b3 Ta3 36.De1 Dd3 37.Lf1 Dc2
= (-0.08) Tiefe: 22/40 00:00:00 2294kN
23...Sg8 24.Dd3 Dd8 25.Lf3 Sf6 26.Le2 Tca8 27.Dc4 Ta4 28.Lf1 b3 29.Dxb3 Sxe4 30.Lxh3 Da5 31.Tec1 Sc5 32.Dc2 Td4 33.Lf1 Td2 34.Dc4 Txb2 35.Tc2 Tb4 36.Dc3 Td4 37.Dxa5 Txa5
= (-0.09) Tiefe: 23/40 00:00:00 6469kN
...
23...Tca8
= (-0.30 ++) Tiefe: 41/58 00:02:04 2653MN
23...g5
=/+ (-0.48 ++) Tiefe: 41/62 00:03:07 4017MN
23...g5 24.a4 bxa3 25.bxa3 Ta4 26.De3 g4 27.Db3 Tcc4 28.Tec1 Txc1+ 29.Txc1 Td4 30.a4 Dd8 31.Da3 Db6 32.a5 Dxb5 33.Dxd6 f6 34.Db6 Dxb6 35.axb6 Tb4 36.f3 Txb6 37.fxg4 Tb3 38.Td1 Kf7 39.g5 fxg5 40.Tf1+ Ke7 41.Lf3 g4 42.Le2 Tb2 43.Kf2 Sf7 44.Ke3 Sd6 45.Lxg4 Txh2 46.Te1 Kf6 47.Kf3 b5 48.Ld7 b4 49.Tb1 Tc2 50.Lxh3 Tc3+ 51.Kg4 b3 52.Lg2
=/+ (-0.59) Tiefe: 41/62 00:04:03 5218MN
23...g5
=/+ (-0.68 ++) Tiefe: 42/22 00:04:40 6023MN
23...g5
-/+ (-0.76 ++) Tiefe: 42/56 00:05:17 6834MN
23...g5
-/+ (-0.89 ++) Tiefe: 42/56 00:05:55 7673MN
-/+ (-0.89 ++) Tiefe: 42/56 00:05:55 7673MN
Danach, weil die falsche 0.00- Eval zwar nur Sekunden lang bestehen bleibt, dann aber noch lange keine ordentliche Diskrimination zum Output vor dem am zeigt, könnte man z.B. immer noch trefflich streiten, ob das jetzt als gelöst gelten soll, oder nicht.
Hingegen nach dem Eingeben von 29...Lxd6? am:
Analysis by Brainfish 280918 64 POPCNT:
2.exd6 c5 3.Thh8 Txd6 4.Txf8 Txd4 5.Tb8
+/= (0.33) Tiefe: 7/7 00:00:00 22kN
...
2.exd6
+/- (1.03 ++) Tiefe: 26/48 00:00:08 195MN
2.exd6
+/- (1.28 ++) Tiefe: 26/48 00:00:10 255MN
2.exd6 c5 3.f3 Txd6 4.Txf8 Lxf3 5.Tf1 Sd3+ 6.Kd2 Se5 7.Tb8+ Ka7 8.Txb5 Txd4+ 9.Kc1 Ka6 10.Tb8 Le4 11.g6 Lxg6 12.Lxg6 Sxg6 13.Te1 Sf4 14.Kc2 Ka7 15.Tf8 Kb7 16.Tf7+ Kc6 17.a3 a4 18.Ta7 Kb5 19.Kb1 Kc6 20.Te5 Kd6
+/- (1.29) Tiefe: 26/49 00:00:13 307MN
...
2.exd6 c5 3.f3 Sd3+ 4.Kd2 Txd6 5.Txf8 Txd4 6.g6 Sf4+ 7.Ke3 e5 8.g7 Td3+ 9.Kf2 Txf3+ 10.Ke1 Te3+ 11.Kd2 Td3+ 12.Kc2 Lxh1 13.g8D Le4 14.Lg6 Sxg6 15.Tf6+ Kc7 16.Tf7+ Td7+ 17.Kc1 Sf4 18.Txd7+ Kxd7 19.Df7+ Kd6 20.a4 bxa4 21.Df8+ Kd7 22.Kd2 Se6 23.Db8 Sc7 24.Dh8 Ld5 25.Dxe5 Kc6 26.Dg5 Kb5 27.Dg7 Kb6
+- (1.98) Tiefe: 29/52 00:00:45 1111MN
2.exd6
+- (2.07 ++) Tiefe: 30/66 00:00:52 1265MN
...
2.exd6 c5 3.f3 Txd6 4.Txf8 Lxf3 5.Tf1 Sd3+ 6.Kd2 Se5 7.Lxe6 Txd4+ 8.Ke3 Te4+ 9.Kf2 Kc7 10.Kg3 Lg4 11.Lf5 Lxf5 12.T8xf5 a4 13.Td1 Sd3 14.g6 Te8 15.Kh4 Tg8 16.Kg5 Sxb2 17.Txc5+ Kb6 18.Tdd5 Sd3 19.Txb5+ Kc6 20.Kf5 c3 21.Txd3 Kxb5
+- (2.22) Tiefe: 31/69 00:01:18 1919MN
...
2.exd6
+- (2.31 ++) Tiefe: 32/61 00:01:40 2465MN
An diesem Vergleich zum Output der eigentlichen Testellung stimmt zwar die Evalrelation recht bald, die im ersten ist allerdings zu niedrig, könnte man also als wirklich beweisendes Ergebnis auch anzweifeln.
Avoid Move Teststellungen sind schwer zu beurteilen, dazu kommt noch, dass sie einen gewissen "Verführungsgrad" darstellen müssen, soll heißen, die Engines sollten gute (schlechte
) Gründe haben, ihn überhaupt spielen zu wollen. Sonst hat es jedenfalls keinen Sinn, sie in Testsets einzubauen, in denen nur single move "found" (solved- not solved) als Plus oder Minus gezählt wird.