Die Beförderungsregel ist tatsächlich sehr wichtig. Bei perfektem Spiel endet das Spiel mit einem Unentschieden anstelle eines Gewinns für Weiß / Gote, wenn Sie die Beförderungsregel fallen lassen. Tatsächlich ändert sich die Auswertung aller vier Bewegungen in der Ausgangsposition auf diese Weise.
Ich habe zwei unabhängige Methoden verwendet, um dieses Ergebnis zu erhalten, um zu überprüfen, ob meine Implementierungen fehlerfrei sind:
- Mit einer Engine mit Alpha-Beta-Suche, nämlich meiner Stockfish-Gabel für Feenschachvarianten (einschließlich Shogi-Varianten), habe ich vor und nach dem Deaktivieren der Promotion-Regel gründliche Suchvorgänge (~ 1 Stunde) durchgeführt (siehe Ergebnisse unten).
- Da Dobutsu Shogi ein gelöstes Spiel ist , gibt es dafür Tablebase-Generatoren. Ich habe einen Open-Source-Tabellenbasisgenerator verwendet und ihn geändert, um Werbeaktionen zu deaktivieren (ich bin mit dieser Codebasis nicht sehr vertraut, aber da die Ergebnisse der beiden Methoden konsistent sind, scheint meine Änderung gut zu funktionieren). Ich habe die Tabellenbasisgenerierung mit beiden Regelsätzen ausgeführt und die Ergebnisse überprüft, die Sie unten finden.
1. Suchergebnisse
Eingang:
setoption name multipv value 4
setoption name hash value 4096
setoption name UCI_Variant value dobutsu
position startpos
go depth 90
Ausgabe mit Promotion-Regel:
info depth 90 seldepth 87 multipv 1 score mate -43 nodes 2423491649 nps 889420 hashfull 338 tbhits 0 time 2724798 pv c1c2 a4a3 c2c1 b3b2 a1b2 c4b3 C@a1 C@a2 c1c2 a2a1+ b2a1 b3c2 b1c2 a3b3 c2b1 b4a3 E@b2 a3b4 b2c1 b3a3 a1b2 a3a4 b1c2 b4c4 b2c3 a4a3 c3b2 a3a2 C@a1 a2b2 c2b2 G@b3 b2b1 E@a3 G@c2 C@c3 c2b2 c4b4 b2a2 b4a4 a2a3 a4a3 a1a2 a3b4 b1a1 G@c2 a1b1 b4c4 E@a1 b3b4 a1b2 c4b3 a2a3 b4c4 b1a1 c2c1 b2c1 b3a3 G@a2 a3b3 a2b2 b3a4 b2a2 C@a3 c1b2 a3a2 a1a2 c3c2 C@b3 E@c3 b2c3 c4c3 b3b4+ a4b4 E@b2 c3b3 a2b1 b3b2 b1b2 E@a3 b2a1 E@b2 a1b1 G@a1 b1c2 C@c3
info depth 90 seldepth 87 multipv 2 score mate -43 nodes 2423491649 nps 889420 hashfull 338 tbhits 0 time 2724798 pv b1c2 b3b2 a1b2 c4b3 c2b1 a4a3 C@a1 C@a2 c1c2 a2a1+ b2a1 b3c2 b1c2 a3b3 c2b1 b4a3 E@b2 a3b4 b2c1 b3a3 a1b2 a3a4 b1c2 b4c4 b2c3 a4a3 c3b2 a3a2 C@a1 a2b2 c2b2 G@b3 b2b1 E@a3 G@c2 C@c3 c2b2 c4b4 b2a2 b4a4 a2a3 a4a3 a1a2 a3b4 b1a1 G@c2 a1b1 b4c4 E@a1 b3b4 a1b2 c4b3 a2a3 b4c4 b1a1 c2c1 b2c1 b3a3 G@a2 a3b3 a2b2 b3a4 b2a2 C@a3 c1b2 a3a2 a1a2 c3c2 C@b3 E@c3 b2c3 c4c3 b3b4+ a4b4 E@b2 c3b3 a2b1 b3b2 b1b2 E@a3 b2a1 E@b2 a1b1 G@a1 b1c2 C@c3
info depth 90 seldepth 87 multipv 3 score mate -43 nodes 2423491649 nps 889420 hashfull 338 tbhits 0 time 2724798 pv b1a2 a4a3 a2b1 b3b2 a1b2 c4b3 C@a1 C@a2 c1c2 a2a1+ b2a1 b3c2 b1c2 a3b3 c2b1 b4a3 E@b2 a3b4 b2c1 b3a3 a1b2 a3a4 b1c2 b4c4 b2c3 a4a3 c3b2 a3a2 C@a1 a2b2 c2b2 G@b3 b2b1 E@a3 G@c2 C@c3 c2b2 c4b4 b2a2 b4a4 a2a3 a4a3 a1a2 a3b4 b1a1 G@c2 a1b1 b4c4 E@a1 b3b4 a1b2 c4b3 a2a3 b4c4 b1a1 c2c1 b2c1 b3a3 G@a2 a3b3 a2b2 b3a4 b2a2 C@a3 c1b2 a3a2 a1a2 c3c2 C@b3 E@c3 b2c3 c4c3 b3b4+ a4b4 E@b2 c3b3 a2b1 b3b2 b1b2 E@a3 b2a1 E@b2 a1b1 G@a1 b1c2 C@c3
info depth 90 seldepth 85 multipv 4 score mate -42 nodes 2423491649 nps 889420 hashfull 338 tbhits 0 time 2724798 pv b2b3 c4b3 a1b2 a4a3 C@a1 C@a2 c1c2 a2a1+ b2a1 b3c2 b1c2 a3b3 c2b1 b4a3 E@b2 a3b4 b2c1 b3a3 a1b2 a3a4 b1c2 b4c4 b2c3 a4a3 c3b2 a3a2 C@a1 a2b2 c2b2 G@b3 b2b1 E@a3 G@c2 C@c3 c2b2 c4b4 b2a2 b4a4 a2a3 a4a3 a1a2 a3b4 b1a1 G@c2 a1b1 b4c4 E@a1 b3b4 a1b2 c4b3 a2a3 b4c4 b1a1 c2c1 b2c1 b3a3 G@a2 a3b3 a2b2 b3a4 b2a2 C@a3 c1b2 a3a2 a1a2 c3c2 C@b3 E@c3 b2c3 c4c3 b3b4+ a4b4 E@b2 c3b3 a2b1 b3b2 b1b2 E@a3 b2a1 E@b2 a1b1 G@a1 b1c2 C@c3
Ausgabe ohne Promotion-Regel:
info depth 90 seldepth 52 multipv 1 score cp 0 nodes 2745548262 nps 965315 hashfull 244 tbhits 0 time 2844199 pv b1a2 a4a3 a2b1 b3b2 a1b2 c4b3 C@a1 b4a4 c1c2 b3c2 b1c2 G@b3 b2c3 C@c4 c3b2 a4b4 E@a2 c4c3 c2c1 b3b2 c1b2 E@b3 b2b1 b3a4 G@b2 b4c4 b1c1 a4b3 a2b3 a3b3 b2b3 c4b3 G@b2 b3c4 E@b3 c4b4 c1b1 G@a3 b3a2 b4c4 b1c1 E@a4 c1b1 a4b3 b2b3 a3b3 a2b3 c4b3 G@b2 b3b4 E@b3
info depth 90 seldepth 52 multipv 2 score cp 0 nodes 2745548262 nps 965315 hashfull 244 tbhits 0 time 2844199 pv b1c2 b3b2 a1b2 c4b3 c2b1 a4a3 C@a1 b4a4 c1c2 b3c2 b1c2 G@b3 b2c3 C@c4 c3b2 a4b4 E@a2 c4c3 c2c1 b3b2 c1b2 E@b3 b2b1 b3a4 G@b2 b4c4 b1c1 a4b3 a2b3 a3b3 b2b3 c4b3 G@b2 b3c4 E@b3 c4b4 c1b1 G@a3 b3a2 b4c4 b1c1 E@a4 c1b1 a4b3 b2b3 a3b3 a2b3 c4b3 G@b2 b3b4 E@b3
info depth 90 seldepth 50 multipv 3 score cp 0 nodes 2745548262 nps 965315 hashfull 244 tbhits 0 time 2844199 pv b2b3 c4b3 a1b2 a4a3 C@a1 b4a4 c1c2 b3c2 b1c2 G@b3 b2c3 C@c4 c3b2 a4b4 E@a2 c4c3 c2c1 b3b2 c1b2 E@b3 b2b1 b3a4 G@b2 b4c4 b1c1 a4b3 a2b3 a3b3 b2b3 c4b3 G@b2 b3c4 E@b3 c4b4 c1b1 G@a3 b3a2 b4c4 b1c1 E@a4 c1b1 a4b3 b2b3 a3b3 a2b3 c4b3 G@b2 b3b4 E@b3
info depth 90 seldepth 59 multipv 4 score cp 0 nodes 2745548262 nps 965315 hashfull 244 tbhits 0 time 2844199 pv c1c2 a4a3 c2c1 b3b2 a1b2 c4b3 C@a1 b4a4 c1c2 b3c2 b1c2 G@b3 b2c3 C@c4 c3b2 a4b4 E@a2 c4c3 c2c1 b3b2 c1b2 E@b3 b2b1 b3a4 G@b2 b4c4 b1c1 a4b3 a2b3 a3b3 b2b3 c4b3 G@b2 b3c4 E@b3 c4b4 c1b1 G@a3 b3a2 b4c4 b1c1 E@a4 c1b1 a4b3 b2b3 a3b3 a2b3 c4b3 G@b2 b3a4 E@b3 a4b4 b1c1 G@a3 b3a2 b4c4 c1b1 E@b3
Weitere Informationen zur Bedeutung der Ein- und Ausgabe finden Sie in der Beschreibung des UCI-Protokolls .
2. Tabellenbasisergebnisse
Eingang:
show lines
Ausgabe mit Promotion-Regel:
Gc4-c3 : #-78 (25.00%)
Lb4-c3 : #-78 (25.00%)
Lb4-a3 : #-78 (25.00%)
Cb3xb2 : #-76 (24.99%)
Ausgabe ohne Promotion-Regel:
Cb3xb2 : 0 (25.00%)
Gc4-c3 : 0 (25.00%)
Lb4-c3 : 0 (25.00%)
Lb4-a3 : 0 (25.00%)
Bitte beachten Sie:
- Die Partnerabstände unterscheiden sich aus zwei Gründen:
- Stockfisch zählt die Partnerentfernung in vollen Zügen (es sei denn, Sie aktivieren das USI-Protokoll), während der Tabellenbasisgenerator in Lagen (halbe Züge) zählt.
- Die Suche findet nicht unbedingt den kürzesten Weg zur Paarung, wohingegen das Tabellenergebnis genau sein sollte.
- Die beiden Softwareprogramme verwenden auch unterschiedliche Koordinatensysteme, um die Quadrate zu beschreiben (die Reihenfolge der Ränge ist invertiert). Achten Sie daher darauf, sie beim Vergleich von Bewegungszeichenfolgen nicht zu verwechseln.
Ich bin jetzt überzeugt, dass die Antwort von Fabian Fichter richtig ist. Der folgende Kommentar zu Fabians Antwort kann helfen, andere davon zu überzeugen.
1. Position, die durch das Entfernen der Kükenwerbung beeinträchtigt zu werden scheint
Bei der Analyse der veröffentlichten Ergebnisse des modifizierten Stockfish konvergieren alle Spiele ziemlich schnell an der folgenden Position: S / -l- / ge - / - E - / - LG / cC.
Sente spielt
C*a4
und lässt ihr Küken in die untere linke Ecke fallen. Anfangs dachte ich, dies sei ein ziemlich verschwenderischer Tropfen, aber laut Tabellenbasis ist es eigentlich gar nicht so schlecht.Jetzt passiert etwas Interessantes. Die Tischbasis stimmt mit Stockfish überein, dass es ein Unentschieden ist, den Löwen zur Seite zu treten, aber wie wäre es, ein Küken fallen zu lassen, um gegen ein Küken zu kämpfen?
Jetzt ist das Küken
a3
einen Schritt von der Werbung entfernt und würde darüber hinaus die Werbung kontrollieren, was den Sente-Löwen zwingen würde, sie anzunehmen. Das einzige Problem ist, dass der beste Schritt darin besteht, das Küken zu verlierena3
und dass wir immer noch ziemlich weit von einem Schachmatt entfernt sind. Deshalb werden wir eine Abkürzung nehmen, so dass wir schneller verlieren, aber ohne aus anderen Gründen zu verlieren, z. B. weil wir unnötig Material verschenken.Es scheint uns gelungen zu sein, die Bedrohung durch das opferfördernde Küken zu bewahren. Fahren wir also fort!
Und da ist es, das opferfördernde Küken als bester Schachzug! Mal sehen was passiert.
Nun wollen wir sehen, was passiert, wenn wir diesen Hahn in ein Küken verwandeln:
In dieser Position bewegt sich der Schachmatt 88 (90-2) am besten, der weiter vom Schachmatt entfernt ist als die Ausgangsposition, was es plausibel macht, dass er bei der Analyse zu einer anderen Position führt, die ohne Förderung der Kükenkraft plötzlich viel weiter entfernt ist Partner als zuvor (ad infinitum). Wenn dies zutrifft , würde Position G / --- / le- / cG- / CLG / e (siehe unten) ein Unentschieden anstelle eines Gewinns ohne Kükenförderung bedeuten .
2. Richtigkeit der umfassenden Suche
Unter der Annahme , dass der verwendete Tischfuß Generator ist eine korrekte erschöpfende Suche, scheint es , dass Fabian Patch deaktivieren chick Promotions erfolgreich sein sollten als Datei
moves.c
der einzige Ort ist , diePOS_FLAGS
verwendet wird ( mit Ausnahme einer Verwendung invalidation.c
Position structs zu überprüfen) und in der Tat scheint speziell gebaut um Werbeaktionen zu deaktivieren.quelle