Inicio Aprender ajedrez Ajedrez informático Stockfish: configuración, descarga y secretos

Stockfish: configuración, descarga y secretos

29

Muchos de nosotros utilizamos distintos motores de análisis para buscar ideas, jugar o simplemente encontrar errores en nuestra partidas. A día de hoy la oferta de módulos de análisis o “engines” es casi ilimitada, pero muchos jugadores eligen Stockfish por su increíble fuerza de juego y que, además se trata de un módulo gratis.

A pesar del varapalo que se llevó contra la bestia AlphaZero que ya analicé en un artículo exprofeso, Stockfish sigue estando en nuestros corazones y se trata de un motor excelente que ha ido subiendo puestos sin descanso desde su desarrollo.

Muchos jugadores eligen Stockfish por su increíble fuerza de juego

¿En qué consiste Stockfish?

Básicamente Stockfish es uno de los motores de ajedrez más fuertes del mundo. También es mucho más fuerte que los mejores maestros del ajedrez humano y, en el momento de escribir este artículo los amigos de CCRL le asignan una puntuación de 3560 puntos de ELO.

Si tenemos en cuenta que los jugadores humanos que superan los 2800 puntos de ELO se cuentan con los dedos de una mano podemos hacernos una idea de la desconmunal fuerza de Stockfish que, además, tiene el honor de ser uno de los módulos más combativos y con menor tendencia a las tablas.

 icon-arrow-right Artículo relacionado: mejores motores de análisis gratuitos

Puedes usar Stockfish en tu ordenador con Windows, OS X o Linux, o en tu dispositivo iOS o Android.

No obstante, lo mejor para mejorar tu práctica con la informática aplicada al ajedrez es que te formes, en nuestra Escuela de Ajedrez Online The Zugzwang Members, donde te daremos una formación integral por menos de lo cuesta un libro.

Muchas veces me escribís para preguntarme como analizar partidas con el móvil. Yo os recomiendo que utilicéis un software sencillo (un GUI) para cargar Stockfish en Android llamado DroidFish desarrollado por el sueco Peter Österlund.

Si sabes inglés, te recomiendo esta charla de Tord Romstad sobre la poda de árboles de variantes, tremendamente interesante. Por si no lo sabías, Tord Romstad  es un programador noruego con un gran bagaje en el desarrollo de sistemas de juego y… ¡el desarrollador de Stockfish!

¿Cómo utilizar Stockfish engine en un PC?

Antes te explicaba que tienes la opción de usar Stockfish en un móvil, sin embargo, lo más común para explotar su capacidad de análisis es hacerlo en un PC.

Para hacerlo necesitas dos programas: el GUI o lo que es lo mismo, el interface o el software en el que cargarás Stockfish, y el propio motor de análisis. Explicar cómo hacerlo funcionar de manera escrita es complicado, por eso te he creado un vídeo para que aprendas cómo hacerlo con un GUI gratuito como ARENA. No obstante, yo siempre confío para mis análisis en CHESSBASE, y los pasos que te explicaré posteriormente de configuración avanzada están basados en CHESSBASE.

Si quieres aprender a hacer todo esto y mucho más, te recomendamos nuestro curso sobre Stockfish. Allí te explico como configurar stockfish con un GUI gratuito que me encanta SCIDVSPC.

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”.

 icon-arrow-right 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

stockfish tablas hash en chessbaseLos 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.

Las tablas hash permiten optimizar la respuesta del módulo.

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.

stockfish parámetros

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)

Después de escribir este artículo han salido a la luz distintas versiones de Stockfish que analizo aquí en el blog en la sección de informática.

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.

[ninja-inline id=7491]

Soy el autor del libro de ajedrez más vendido en Amazon en 2016 y 2017: El Método Zugzwang. INSTRUCTOR FIDE (FI) He jugado algunas partidas buenas y bastantes malas. Director de la Escuela Internacional The Zugzwang Members y jugador en activo que encuentra analogías en la vida con el ajedrez cada día. Sigo en continuo aprendizaje. Actualmente divulgo mis ideas en artículos aquí y en mi canal de Youtube.

29 COMENTARIOS

  1. Soy un asiduo lector del blog y te felicito por tan buen trabajo. Quiero hacer una aclaración a este artículo, concerniente a la parte de Droidfish, donde das a entender que fue desarrollado por Tord Romstad (uno de los programadores de Stockfish), pero en realidad el desarrollador de Droidfish es el sueco Peter Österlund. Saludos.

  2. Amigo Daniel Muñoz, tenga usted un buen día.
    Te escribe un lector de tu blog, quiero decirte que tu trababajo en esta página es ¡EXCELENTE!
    Soy un aficionado que me encanta el Ajedrez, para mi es la vida misma. Como te comento, tengo 54 años, aprendí a jugar desde los 7 años más o menos; pero desafortunadamente, no me dedique por completo. Lo cierto es que desde que tenía unos 23 años comencé a jugar y hasta el día de hoy siempre he jugado alguna partida. Lamentablemente me he estancado en mi juego y veo que no he logrado avanzar mucho más de lo que yo quisiera.
    Te comento que jugué por correspondencia durante un período de 20 años, hasta un día que dejé de jugar esta modalidad donde alcance la norma de EN y la media norma de MN.
    En la actualidad, no estoy participando en torneos activos; pero voy frecuentemente a la Academia de Ajedrez en mi localidad acá en la Ciudad Matanzas.
    He visto el anuncio de la publicación de tu libro, el cual creo es muy bueno. Me refiero al libro: “El Método Zungwang” esta en dos tomos I y II; pero me es imposible comprarlo.
    Mi pregunta es: “Cómo puedo mejorar mi juego” y “Qué puedo hacer”, pues a pesar de llevar tantos años jugando todavía no sé ¿Qué estudiar y como hacerlo”. De hecho, tengo algo breve que baje de un sitio sobre tu libro y he visto que hay una gran diferencia entre estudiar y entrenar. Pero en vista que no tengo la posibilidad de arquirir el libro: ¿Qué debo hacer para mejorar mi juego”. La realidad, es que me encanta este deporte, arte y ciencia que es el juego de Ajedrez. Yo no concibo un día, si dejo de jugar una partida de Ajedrez. ¿Qué consejos me das? ¿Cómo puedo mejorar en mi juego”. Muchas gracias.
    Un servidor y amigo…
    Portela.

    • Hola Nioraldo,
      Gracias por tus palabras. Es imposible darte una respuesta a esa pregunta sin conocer nada de ti y sin pegar decenas de páginas en este comentario. Lo que te sugiero es que leas mucho, en mi Blog vas a encontrar mucho material, que analices tus propias partidas y las de grandes maestros, y sigas a buenos pedagogos de Youtube como por ejemplo Michael Rahal.
      Este artículo te servirá también: https://thezugzwangblog.com/mejorar-ajedrez-rapido/
      Mucha suerte!

  3. Hola Daniel.
    Muchas gracias por tus comentarios y ayuda. Quiero agradecerte por tus consejos. Me han sido de mucha utilidad, al igual que tu Blog, el cual visito todos los días, como ya te dije: “Es un buen trabajo”. Por lo que dedico parte de mi tiempo para ver todo lo que publicas.
    Te comento que actualmente, no estoy jugando partidas de torneos; pero juego casi todos los días entre 10 y 20 partidas. Como casi siempre juego partidas Blitz a 5 min., me es imposible anotarlas; pero en ocasiones recuerdo las posiciones y las analizo en casa, sobre todo las que he perdido.
    También cuando tengo la oportunidad, entro en algunas de las páginas de Ajedrez Online y juego algunas partidas (lo cual no me es posible hacerlo siempre, ya que no tengo Internet propio, el que tengo es de mi trabajo).
    También analizo las partidas de GM sobre todo las de Magnus Carlsen entre otros jugadores.
    Espero continuar aplicando tus maravillosos consejos y de esta forma mejorar mi forma de juego.
    Un servidor y amigo…
    Portela.

  4. Hola, muchisimas gracias por su articulo, creo que es el primero, de ajedrez informatico, que se publica en español. Soy un aficionado al ajedrez, pero no me he dedicado lo suficiente dado mi profesion. no obstante, participe en tres juegos nacionales de mi profesion y gane una medallita de plata, como mejor tablero reserva. Ultimamene, sin embargo, logre configurar Stockfish 9 para que jugara en chessmaster 11, via polyglot (espero que algun dia logres publicar un tutorial sobre matchs entre motores), jugando el famoso test de aperturas de John Nunn de 20 partidas, ¡el resultado fue de 19.5 a 0.5 a favor de Bacalao (Stockfish)! eso demuestra lo fuerte que es!.

  5. Hola, gracias por su amable respuesta, le cuento que he realizado otro “experimento” a la manera como lo hacen los gringos ;), con el programa Arena. Lo publicare y comentare en tu post sobre los 5 motores de ajedrez gratuitos. Saludos.

  6. El resultado de la fórmula para configurar adecuadamente las tablas Hash, no me quedó claro. Concretamente no entiendo por qué hay que dividir el resultado final entre 100, si todos sus parámetros ya estaban expresados en la unidad de medida exigida por la fórmula inicial.
    Gracias anticipadas por la aclaración. Saludos.

      • De acuerdo en que no son iguales la unidad de medida de la fórmula (KB) respecto a la del menú de Stockfish (MB). Pero, para pasar de KB a MB, habría que dividir entre 1000, no entre 100… ¿Habría que elegir entonces un valor cercano a 90 en vez de a 900?

  7. Hola, le agradecería mucho si pudiera absolver mis dudas:
    1.- ¿Es más fuerte el juego de Stockfish corriendo en mi computador con chessbase como plataforma o Stockfish corriendo en lichess (en su analizador de posiciones, con la configuración de uso de toda la capacidad de mi computador y análisis infinito)? Hago esta pregunta porque cuando quiero analizar una posición en el Stockfish de lichess me da como evaluación +1 (ventaja blanca), pero cuando voy al Stockfish corriendo en chessbase me da 0.0 (igualdad), yo supongo que el Stockfish en chessbase debe ser más fuerte, porque veo que corre a casi el doble de Knodos/s de lichess, pero no estoy seguro.
    2.- ¿Qué efecto tiene la nube en el análisis de Stockfish? vi que hay opciones de analizar con la nube en chessbase y que en lichess analiza por defecto con la nube, yo sé que eso de la nube son servidores remotos, pero no sé si sea mejor analizar con la nube, porque si bien es cierto que ofrecen una gigantesca capacidad, también es cierto que hay una gigantesca cantidad de personas usándola, entonces no sé cuánta capacidad de esa nube tendré para analizar posiciones, si al final el análisis con la nube es mejor o peor que el análisis sólo con mi computadora, además, supongo que la nube de lichess debe estar más saturada que la nube de chessbase.
    3.- ¿Los Knodos/s (Kilonodos por segundo) son una buena medida de la fuerza de análisis de Stockfish en una determinada plataforma? pregunto esto porque en lichess da aproximadamente 400 Knodos/s, en chessbase da aprox. 800 Knodos/s, en chessbase con análisis profundo da 1700 Knodos/s y en chessbase con la nube da 1700 Knodos/s (todo esto en mi computadora y al inicio del análisis).

    • Hola Renzo,
      Contesto a tus preguntas:
      1) El motor es el mismo, el GUI solo afecta a la configuración, deberías comprobar si has modificado la configuración en los diferentes GUIs.
      2) El análisis en la nube tiene diversos beneficios: Aumenta la potencia de análisis ejecutando varios motores desde una sola ventana. Puedes integrar el análisis local con el análisis en la nube. Use las computadoras de su oficina desde casa e integrelas sin problemas como motores de ajedrez local. Si, por ejemplo, participas en ajedrez por correspondencia y llegas a un punto crítico necesitas un análisis profundo, podrías aumentar drásticamente el poder de procesamiento. Con la nube de motores, incluso los portátiles más pequeños pueden ejecutar un banco de motores potentes en máquinas potentes. No he hehco pruebas con lichess respecto a chessbase pero a priori entiendo que el sistema de pago de chessbase debe ser claramente superior.
      3) Efectivamente, a mayor número de kilonodos más jugadas por segundo se procesan.
      Un saludo

  8. Hola, como estas. Te queria hacer una consulta. Analizo la efectividad de los motores de ajedrez y encontre algo muy raro por Ej. Un problema de Finales. El cual Stockfish 9 no lo puede resolver , siendo que Komodo 9, lo resuelve en 4 Minutos. Osea una sola jugada ganadora las demas son Tablas.

    7K/R3bk2/8/8/8/p7/P7/8 w – –

    El blanco da mate en 72 movimientos, empezando con 1.Rh7! Otros movimientos blancos hacen tablasOther-
    Porque si supuestamente Stockfish 9, supera a todos no es capaz de resolver algo que si lo hacen otros engines inferiores. Son errores que voy encontrando

    • Hola Alberto, es muy interesante eso que comentas, si quieres podemos verlo en más detalle y añadirlo, aunque habría que asegurarse bien de lo “científico” de las pruebas. De entrada me rechina bastante, pero todo puede ser…
      Un saludo y gracias

  9. Hola, le queria preguntar respecto al tema syzygy. Yo participo d los torneos q organizan c motores y computadoras en infinity chess, y noto q d verdad no puedo lograr buen rendimiento en finales porque no se como configurar syzygy. Tengo los archivos hasta 5 piezas pero no se como lograr q el motor los lea. Me podría guiar en este asunto? Gracias

  10. de que me sirve hacer analisis en un ordenador ,la gracia esta en hacerlo uno mismo ,como se hacia antiguamente . hoy por hoy es un cumulo de meros datos ya preestablecidos que carece de todo valor artitstico y de novedad teorica( los ordenadores) fuerza bruta sin ton ni son ya que a mi apertura e2-e4(ruy lopez, en memoria de un monje español alla por el sigloXV!) me va a responder un movimiento que ya existio de hace mas de 100 años!. le gana a un ser humano por cansancio( eso es trampa) ya que no se cansa, ya perdio su esencia el ajedrez con las nuevas tecnologias,no aporta nada a mi saber ya que estoy jugando con una maquina que busca aleatoriamente la mejor respuesta a mi movimiento con datos de , capablanca, akiba rubeinstein, capinan evans, sultan khan, chigorin, emanuel lasker, etc ,etc.Pd:El tiempo es como el discurrir de un río, no vuelve

  11. Hola,
    Estoy pensado comprar un mac pero no me animo porque no se como conseguir un lector de partidas pgn de ajedrez. Sabes si hay algún software sencillo (un GUI) para para abrir las partidas en pgn y utilizar stockfisch?

    Muchas gracias por tus artículos,

    Saludos

  12. He bajado Stockfish en mi iPad i se ha cargado, pero al querer abrir una base de partidas PGN (por correo) se ha cerrado el programa. Es que el programa es solo para OSX i no para iOX ?

  13. Buenos días. Tengo una consulta en relación al desarrollo de una partida analizada con Stockfish. Como puedo hacer para programar el motor para que cuando éste analice las jugadas en modo Análisis Infinito, el motor siempre NO TRATE de cambiar las piezas, sino por el contrario, rechace los cambios. Gracias de antemano por su respuesta.

  14. Buenas noches, en la medida de lo posible quisiera saber que nivel tiene el modulo de stockfish 2.13.0 para Ipad pro – es el único que aparece para descarga gratuito en ios – comparativamente con la versiond de stockfish para PC, y la aproximacion en elo que pudiera tener cada programa.
    Es simple curiosidad, por si alguien lo sabe o los ha enfrentado.
    Muchas gracias

  15. Hace poco estoy usando stockfish con arena, algo que me causa mucha confusión es la valoración, ya que cada jugada varía drásticamente, ejemplo una partida que estoy analizando jugada 37 turno de las blancas arroja una valoración de +12.62 se realiza la mejor jugada indicada por stockfish, ahora es turno de las negras y la valoración pasa a ser -16.06. Hasta ahora siempre he entendido que el + es ventaja blanca y el – es ventaja negra, pero jugada a jugada cambia + y – dependiendo de que color le toque jugar. Entonces como puedo interpretar de forma correcta la valoración? Gracias

DEJA UNA RESPUESTA

¡Por favor, escribe tu comentario!
Por favor ingrese su nombre aquí

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.