Stockfish et la table fonctionnent-ils ensemble ou indépendamment?


9

J'utilise Arena GUI avec stockfish dans les jeux de moteurs. Je veux télécharger une base de table de 6 pièces, mais c'est juste beaucoup de travail (et peut-être inutile). Si je télécharge la base de table (syzygy), est-ce que stockfish fonctionne avec elle ou attend simplement que la planche ait 6 pièces, puis la base de table fait ses mouvements?

Voici ce que je veux dire plus en détail

Stockfish travaillant avec la base de table

Je suppose que j'ai le poste suivant:

(Remarque: actuellement, je ne parle pas des meilleurs mouvements, juste un exemple)

Stockfish 8 - Wais Kamal, Jeu d'échecs informatique, 1-0
1. Qxd4 Rxd4 1-0

Stockfish consulte la base de table sur ce qui se passe après Qxd4 Rxd4 (sans continuer à évaluer le reste de la ligne). Si cette ligne gagne, elle y va.

Stockfish travaillant seul

Stockfish continue de jouer jusqu'à ce qu'il reste six pièces sur le plateau, puis la base de la table effectue les mouvements.

Lequel de ces événements a réellement lieu?


La position initiale est gagnée pour les blancs, mais capturer la reine noire est une grave erreur. Aucune idée pourquoi les noirs abandonneraient ça ...
Déduplicateur

Actuellement, je ne parle pas des meilleurs coups, juste un exemple.
Wais Kamal

Réponses:


15

jouer le jeu jusqu'à six pièces

Stockfish ne fait pas ça, ce n'est pas à ça que sert la base de table. En bref, la base de la table stimule la recherche du moteur bien avant que la position des six hommes n'atteigne le tableau.

Faisons un exercice, ajoutons 5 pièces au tableau. Maintenant, vous avez 10 pièces sur le plateau, et ce n'est pas quelque chose que vous pouvez trouver dans n'importe quelle base de table. Cependant, lors de la recherche du moteur chaque fois que Stockfish s'échange jusqu'à 6 pièces , il peut instantanément utiliser les informations de la base de table. Les informations sur la table donnent à Stockfish si la position est une victoire / une perte / un tirage sans jamais descendre à quelque chose comme 5 pièces. Par conséquent, la recherche est plus rapide et plus efficace.

ÉDITER:

Le code pertinent est 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::Cardinalityest par défaut 6. Stockfish vérifie le nombre de pièces, s'il ne dépasse pas 6, il consulte les informations de la base de table. Sinon, recherche régulière.


Le stockfish consulte-t-il la table avant d'atteindre une position avec 6 pièces sur le plateau?
Wais Kamal

@WaisKamal J'ai mis à jour avec le code correspondant. SF vérifie.
SmallChess
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.