¿Funcionan Stockfish y la tabla base juntos o de forma independiente?


9

Uso Arena GUI junto con stockfish en juegos de motor. Quiero descargar una base de tabla de 6 piezas, pero eso es solo mucho trabajo (y quizás innecesario). Si descargo la base de tabla (syzygy), ¿funciona stockfish con ella o simplemente espera a que el tablero tenga 6 piezas y luego la base de tabla realiza sus movimientos?

Esto es lo que quiero decir con más detalle.

Stockfish trabajando con la base de la mesa

Asumo que tengo la siguiente posición:

(Nota: actualmente no estoy hablando de los mejores movimientos, solo un ejemplo)

Stockfish 8 - Wais Kamal, juego de ajedrez informático, 1-0
1. Qxd4 Rxd4 1-0

Stockfish consulta la tabla base sobre lo que sucede después de Qxd4 Rxd4 (sin continuar evaluando el resto de la línea). Si esta línea está ganando, va por ella.

Stockfish trabajando solo

Stockfish continúa jugando hasta que quedan seis piezas en el tablero, luego la base de la mesa hace los movimientos.

¿Cuál de estos realmente tiene lugar?


La posición inicial se gana para las blancas, pero capturar a la reina negra es un grave error. No tengo idea de por qué las negras se rendirían ...
Deduplicador

Actualmente no estoy hablando de los mejores movimientos, solo un ejemplo.
Wais Kamal

Respuestas:


15

jugar el juego hasta seis piezas

Stockfish no hace eso, esa no es la base de la tabla. Brevemente, la base de tabla aumenta la búsqueda del motor mucho antes de que la posición de seis hombres llegue al tablero.

Hagamos un ejercicio, agreguemos al tablero 5 piezas. Ahora tiene 10 piezas en el tablero, y no es algo que pueda encontrar en cualquier base de tabla. Sin embargo, durante la búsqueda del motor cada vez que Stockfish cotiza a 6 piezas , puede usar instantáneamente la información de la tabla de base. La información de la base de tabla le da a Stockfish si la posición es una victoria / pérdida / empate sin tener que bajar a 5 piezas. Por lo tanto, la búsqueda es más rápida y más eficiente.

EDITAR:

El código relevante es 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::Cardinalityes por defecto 6. Stockfish comprueba cuántas piezas, si no es más de 6, consulta la información de la base de la tabla. De lo contrario, búsqueda regular.


Entonces, ¿stockfish consulta la base de la tabla antes de alcanzar una posición con 6 piezas en el tablero?
Wais Kamal

@WaisKamal Actualicé con el código relevante. SF hace la comprobación.
SmallChess
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.