Arbeiten Stockfish und die Tischbasis zusammen oder unabhängig voneinander?

9

Ich benutze Arena GUI zusammen mit Stockfisch in Engine-Spielen. Ich möchte eine 6-teilige Tabellenbasis herunterladen, aber das ist nur eine Menge Arbeit (und möglicherweise unnötig). Wenn ich die Tischbasis herunterlade (syzygy), funktioniert Stockfisch damit oder wartet ich nur darauf, dass das Brett 6 Teile hat, und dann macht die Tischbasis ihre Bewegungen?

Hier ist, was ich genauer meine

Stockfisch, der mit der Tischbasis arbeitet

Ich gehe davon aus, dass ich folgende Position habe:

(Hinweis: Derzeit spreche ich nicht über die besten Züge, nur ein Beispiel)

Stockfisch 8 - Wais Kamal, Computerschachspiel, 1-0
1. Dxd4 Rxd4 1-0

Stockfish konsultiert die Tabellenbasis darüber, was nach Qxd4 Rxd4 passiert (ohne den Rest der Zeile weiter auszuwerten). Wenn diese Linie gewinnt, geht es für sie.

Stockfisch arbeitet alleine

Stockfish spielt das Spiel weiter, bis sechs Teile auf dem Brett liegen, dann macht die Tischbasis die Züge.

Welches davon findet tatsächlich statt?

Wais Kamal
quelle
Die Ausgangsposition wird für Weiß gewonnen, aber die Eroberung der schwarzen Königin ist ein schwerer Fehler. Keine Ahnung, warum Schwarz das aufgeben würde ...
Deduplikator
Derzeit spreche ich nicht über die besten Züge, nur ein Beispiel.
Wais Kamal

Antworten:

15

spiele das Spiel bis zu sechs Teilen

Stockfish macht das nicht, dafür ist Tablebase nicht gedacht. Kurz gesagt, die Tabellenbasis verstärkt die Suchmaschine, lange bevor die Position von sechs Männern auf dem Brett erreicht ist.

Lassen Sie uns eine Übung machen, das Brett 5 Stück hinzufügen. Jetzt hast du 10 Teile auf dem Brett und es ist nichts, was du in irgendeiner Tischbasis finden kannst. Während der Suchmaschine kann Stockfish jedoch immer dann, wenn es bis zu 6 Stück handelt , die Tabellenbasisinformationen sofort verwenden. Die Tabellenbasis-Informationen geben Stockfish an, ob es sich bei der Position um einen Gewinn / Verlust / Unentschieden handelt, ohne jemals auf 5 Teile zu sinken. Daher ist die Suche schneller und effizienter.

BEARBEITEN:

Der relevante Code lautet https://github.com/official-stockfish/Stockfish/blob/master/src/search.cpp :

// Step 4a. Tablebase probe
if (!rootNode && TB::Cardinality)
{
    int piecesCount = pos.count<ALL_PIECES>();

    if (    piecesCount <= TB::Cardinality
        && (piecesCount <  TB::Cardinality || depth >= TB::ProbeDepth)
        &&  pos.rule50_count() == 0
        && !pos.can_castle(ANY_CASTLING))
    {

TB::Cardinalityist standardmäßig 6. Stockfish überprüft, wie viele Teile es sind. Wenn es nicht mehr als 6 sind, werden die Tabellenbasisinformationen konsultiert. Ansonsten regelmäßige Suche.

SmallChess
quelle
Konsultiert Stockfisch die Tischbasis, bevor er eine Position mit 6 Teilen auf dem Brett erreicht?
Wais Kamal
@WaisKamal Ich habe mit relevantem Code aktualisiert. SF führt die Überprüfung durch.
SmallChess