Endspiel FEN Generator

10

Ist es möglich, FEN-Strings für Endspiele basierend auf bestimmten Kriterien zu generieren: n-Teile, w / d / l und zu bewegende Seite?

Angenommen, ich wollte alle FEN-Saiten für King plus Rook vs King plus Pawn (KPKR) -Endspiele, bei denen es weiß ist, sich zu bewegen, und Weiß zieht mit perfektem Spiel.

Ich weiß, dass es eine extrem große Anzahl von Ergebnissen geben würde, und der nächste Schritt wäre, diese Ergebnisse nach anderen Kriterien weiter zu kategorisieren, beispielsweise wenn der weiße König vor dem Bauern steht oder der schwarze Bauer den 6. Rang überschritten hat.

Ich gehe davon aus, dass in einer Endgame-Tabellenbasis (egtb) diese Informationen bereits gespeichert sind, aber wie kann man diese Informationen aus ihnen herausholen? Oder gibt es eine andere Möglichkeit, dies zu generieren?

Vielen Dank!!

Dan Forbes
quelle

Antworten:

1

Erstens wird die FEN-Notation verwendet, um einen Kartenstatus oder eine Permutation zu beschreiben, nicht eine Familie von Kartenzuständen oder Permutationen.

Sie sprechen von einer Möglichkeit, Board-Positionen anhand Ihrer Kriterien zu indizieren. dh Rook vs Knight Endspiele oder so

Dies kann von den meisten Datenbanksoftware (Fritz, Chessbase) durchgeführt werden. Dazu werden Spiele in der Datenbank durchsucht und anhand der Brettpositionen herausgezogen.

Wenn ich zum Beispiel ein paar Spiele zwischen Turm und Ritter beenden möchte, kann ich nach allen FEN-Zeichenfolgen suchen, die nur K, k, p, P, r, R, n, N enthalten. Grundsätzlich Positionen, die Bauern, Ritter, Türme und Könige enthalten.

Wie bei egtb werden die Formate unter Verwendung von Bitbasen gespeichert und die Positionen einem eindeutigen Index zugewiesen. Ich würde annehmen, dass Chess Position Trainer auf diese Weise seine FEN-Saiten speichert, um Transpositionen zu bestimmen.

Yusuf Ali
quelle
1
Danke für Ihre Antwort! Ich weiß, dass Schachbasis diese Suchvorgänge ausführen kann. Das Problem ist, dass die Datenbank echte Spiele verwendet, was natürlich bedeutet, dass es Fehler im Spiel gibt (sagen wir, eine Position, die mit perfektem Spiel gewonnen werden sollte, führt zu einem Unentschieden oder sogar zu einem Verlust aufgrund eines minderwertigen Spiels). Ich möchte in der Lage sein, genau die gleiche Suche nach einem Egtb durchzuführen oder eine Möglichkeit zu haben, ein Egtb dazu zu bringen, eine Reihe von Positionen zu generieren. Ist das sinnvoll?
Dan Forbes
0

Am einfachsten wäre es, mit einem Schachprogramm mit Tabellenbasisfunktion zu beginnen und eine Routine hinzuzufügen, die jede mögliche Position einer bestimmten Endspielklasse generiert und diejenigen ausgibt, deren Tabellenbasiswerte den Auswahlkriterien entsprechen.

Wissenswertes: Ein Beispiel von KRKP:

Longest mate score (BTM): MateIn43
Sample BTM longest mating position: 8/8/8/8/5R2/2pk4/5K2/8 b - - 0 1

Optimal move sequence from the above BTM longest mating position:

1... c2 2. Rf3+ Kd4 3. Rf4+ Kd5 4. Rf5+ Kc6 {Kd6} 5. Rf8 Kb7 {Kc7} 6. Rf7+ Kb6
7. Rf6+ Kb5 8. Rf5+ Kb4 9. Rf4+ Kb3 10. Rf3+ Kb2 11. Ke3 {Rf8} c1=Q+ 12. Kd4
Qc6 {Qc7 Qc8 Qd2+ Qe1 Qg1+ Qg5 Qh6} 13. Re3 Kc2 {Qb6+ Qd6+ Qf6+} 14. Re2+ Kb3
15. Re3+ Kb4 16. Ke5 Kc4 17. Re4+ Kd3 18. Rd4+ Ke3 19. Rd6 Qe4+ 20. Kf6 Kf4 21.
Re6 Qb4 {Qc2} 22. Kf7 Qb7+ {Qc3 Qc4} 23. Ke8 Kf5 {Qc7} 24. Rd6 Ke5 {Qc8+} 25.
Rd7 {Rh6} Qa8+ {Qb3 Qb5 Qc8+} 26. Kf7 Qc6 27. Re7+ Kf5 28. Kf8 {Kg8} Qd5 29.
Ke8 {Kg7} Qg8+ 30. Kd7 Kf6 31. Re8 Qf7+ 32. Kd8 Qb7 33. Re1 Qb4 34. Re2 {Re8}
Kf7 {Qa5+ Qb6+ Qb8+ Qd4+ Qd6+} 35. Kc7 {Kd7 Ra2 Rc2 Rf2+ Rg2} Qc4+ 36. Kd6 Qxe2
37. Kd5 Ke7 {Qd1+ Qd2+ Qd3+ Qe3 Qg4} 38. Kc5 Kd7 {Ke6 Qd2 Qd3 Qe3+ Qe4} 39. Kb4
{Kd4 Kd5} Qd3 {Qe3} 40. Ka4 {Kc5} Kc6 {Kc7 Kd6 Qb1} 41. Kb4 Kb6 42. Ka4 Kc5 43.
Ka5 Qa3# {Qb5#}
ChessNotation
quelle