Stockfish - Configuración Avanzada

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 4

Configuración avanzada de Stockfish

El módulo viene preconfigurado con unos parámetros que, por lo general, son idóneos
para cualquier usuario. Sin embargo, es posible configurarlo en función de tus
necesidades y desarrollar una cierta actividad de “tweaking”.

Artículo relacionado: analizamos el duelo entre Stockfish y AlphaZero

Parámetros y tamaño hash


Para acceder a los parámetros del módulo debes pinchar en “avanzado” dentro de la
pantalla de cargar módulos. Una vez aquí te vas a encontrar con dos secciones:

 Sección relacionada con el tamaño hash.


 Y otra sección con un montón de parámetros que aparecerá cuando pinches en
“parámetros”

Te voy a explicar en detalle en qué consiste todo lo anterior.

Las tablas hash / tamaño hash


Los programas de ajedrez que usan tablas hash (casi todos los motores de ajedrez
actuales las usan) crean un archivo de almacenamiento temporal mientras juegan o
analizan y almacenan las posiciones que han evaluado en este archivo. Si aparece una
posición más adelante en la búsqueda (mediante una transposición de movimientos) que
es lo mismo que una posición que ya se ha evaluado (y almacenado en las tablas hash),
no es necesario analizarla por segunda vez. Simplemente extraen la información de
evaluación existente de las tablas hash y luego avanzan a la siguiente posición, con lo
que optimizan su rendimiento.

Es crucial configurar las tablas hash en el valor adecuado (que a menudo no es el


“máximo” sugerido). Más grande no siempre es mejor; de hecho, puede ser francamente
perjudicial para el rendimiento de un motor.

Entonces, ¿cómo sabes qué tamaño establecer en las tablas hash? ¿Por qué no
debes configurar las tablas mucho más grandes o más pequeñas?

Si las configuras demasiado pequeñas, se llenan de posiciones demasiado rápido y


luego el motor no tiene más espacio para agregar nuevas posiciones. Esto hace que el
programa baje un poco su fuerza, aunque tampoco es el fin del mundo.

Pero configurar las tablas demasiado grandes es una historia diferente. No importa si
compraste el mejor ordenador de la tienda con 32 gigas de RAM: si configuras las
tablas hash en 32 gigas para una partida de sesenta minutos con un procesador de 800
MHz, vas a lobotomizar tu motor de ajedrez.

¿Cuál es la fórmula para configurar adecuadamente las tablas Hash?

Antes de decírtela te adelanto que te vas a asustar, pero en cuanto te lo explique vas a
ver que no es nada difícil. ¡No huyas cobarde!

HT [KB] = 2.0 * PFreq [MHz] * t [s]

Básicamente lo que nos dice esta fórmula es que para conocer el tamaño del hash
debemos multiplicar por 2 la velocidad de nuestro procesador y multiplicarlo por
el tiempo en segundos que hayamos configurado para cada jugada. Por ejemplo, si
vamos a jugar contra el módulo una partida de 10 minutos para 40 jugadas (15 seg) y
nuestro procesador es de 3.000 Mhz el resultante será: (3.000 * 2) * 15 = 90000 que
dividido entre 100 nos da 900 por lo que elegiremos el tamaño del hash más próximo a
este valor del desplegable: 1024 en nuestro caso.

No obstante, si lo que vas a realizar es análisis infinito sin jugar contra la máquina la
recomendación es más sencilla, utiliza aproximadamente la mitad de tu memoria RAM
física o incrementa el valor en torno a un 20% del cociente anterior.
Los parámetros de Stockfish

Hemos llegado al último punto en el que lo que haremos será “afinar” la configuración
del “engine”. Voy a explicarte en qué consiste cada uno de esos extraños parámetros
que te aparecen en inglés:

Write Debug Log


Si se debe o no escribir un registro de depuración. Por defecto está configurado en NO.

Contempt. Por defecto 0, Min: -100, Max: 100


Aproximadamente equivalente al “optimismo”. Los valores positivos de desprecio
favorecen el juego más “arriesgado”, mientras que los valores negativos favorecerán el
estilo de juego sólido. Cero es neutro, ni muy agresivo ni muy sólido. Es el valor por
defecto.

Min Split Depth Por defecto: 0, Min: 0, Max: 12


Cuando se utilizan varios subprocesos, el parámetro Split Depth define la profundidad
mínima a la que se dividirá el trabajo entre los núcleos.
Al usar múltiples hilos, se supone, lógicamente, que la eficiencia de los motores se
multiplicará automáticamente en un porcentaje igual a 100 (es decir, un núcleo = 100
por ciento, dos núcleos = 2×100 por ciento). Pero no es así. Agregar un segundo núcleo
no significa que agreguemos otro 100% de eficiencia a su poder de análisis. Significa
que agregamos una eficiencia de aproximadamente el 75 por ciento a sus 100 anteriores.
Y este porcentaje disminuye con cada núcleo que agregas a la configuración de tu PC,
todo por el hecho de que los núcleos trabajan en paralelo y a menudo pueden tratar de
trabajar simultáneamente en el líneas de análisis.

Threads, Por defecto: 1, Min: 1, Max: 128


Número de hilos a usar durante el análisis. Este número debes configurarlo en la
cantidad de núcleos en tu CPU.
Hash, Por defecto: 16, Min: 1, Max: 1048576
La cantidad de memoria que se debe usar para el hash durante la búsqueda, especificado
en MB (megabytes). Este número debe ser más pequeño que la cantidad de memoria
física para su sistema.

Move overhead
Move Overhead es una variable interna en Stockfish que compensa cualquier ruido
ambiental externo en su algoritmo de administración del tiempo. Se establece en
milisegundos, por lo que un valor de 1000 obligaría al stockfish a mantener un búfer de
1 segundo antes de realizar una jugada. Puedes incrementar este valor si realizas
partidas entre módulos y detectas derrotas por tiempo.

Skill Level Por defecto: 20, Min: 0, Max: 20


Este valor determina lo bien que quieres que juegue Stockfish. En el nivel 0, Stockfish
hará movimientos tontos. El nivel 20 es el mejor / el valor más fuerte.

Slow Mover Por defecto: 89, Min: 10, Max: 1000


Esto significa algo así como “mover lento”, lo que te permite es configurar cuánto
piensa el motor en cada jugada dentro de los límites del tiempo. Cuando aumentas el
valor, haces que SF piense más, disminuyéndolo (hasta 10 que es el mínimo) haces que
SF mueva más rápido.

SyzygyProbeDepth Por defecto: 1, Min: 1, Max: 100


Este valor determina la profundidad a la que las tablas se sondearán durante una
búsqueda (ten en cuenta que la posición de la raíz siempre se tratará de encontrar si
‘Usar Syzygy’ está habilitado y el número de piezas en el tablero es menor o igual al
‘SyzygyProbeLimit‘ [ver a continuación]. Un número más alto significa que SF
esperará más para comenzar a sondear las tablas.

Syzygy50MoveRule Por defecto, activado.


Cuando se usan tablas de Nalimov o Syzygy en el análisis algunas posiciones pueden
contener una secuencia de jugadas hasta el mate que requieren romper la regla de 50
movimientos. Si no está marcada esta casilla se permite no respetar esta norma.

SyzygyProbeLimit Por defecto: 6, Min: 0, Max: 6


Esto determina cuántas piezas debe haber en el tablero antes de que Stockfish comience
a sondear la base de datos de finales. Por defecto, esto está configurado en 6 (el límite
superior actual de las tablas de Syzygy)

Si quieres contactar con el foro de soporte de usuarios de Stockfish puedes hacerlo en el


enlace anterior.

Página oficial de Stockfish y descarga del módulo.

También podría gustarte