Skip to content
Pikafish: la guía completa del motor de Xiangqi más fuerte

Pikafish: la guía completa del motor de Xiangqi más fuerte

Qué es Pikafish, cuál es su fuerza real y cómo instalarlo, configurarlo y leerlo

Matthew Leroy8 min

¿Qué es Pikafish?

Pikafish es un motor de Xiangqi gratuito y de código abierto: un programa que recibe una posición y devuelve la jugada que considera mejor, junto con una valoración numérica de quién está mejor. No tiene interfaz propia. Es un núcleo de cálculo que dialoga con un programa gráfico mediante órdenes de texto, igual que un motor va bajo el capó de un coche. Esa separación es deliberada: al separar motor e interfaz, el mismo núcleo puede alimentar un tablero de análisis en la computadora, una aplicación móvil o un sitio web. Pikafish se ha convertido en el motor de referencia del mundo del Xiangqi por las mismas razones que Stockfish en ajedrez: es más fuerte que las alternativas comerciales, no cuesta nada y su código es público, así que cualquiera puede verificar qué hace. Si buscas el panorama completo de cómo las máquinas se impusieron en el Xiangqi, nuestro repaso de los motores de IA en Xiangqi cuenta toda la historia; este artículo se centra en Pikafish.

¿De dónde viene Pikafish? La herencia de Stockfish

Pikafish es un derivado de Stockfish, el motor de ajedrez de código abierto que domina el ajedrez informático desde hace más de una década. En lugar de reconstruir un algoritmo de búsqueda desde cero, sus autores tomaron la búsqueda ya probada de Stockfish — la parte que decide qué ramas del árbol de jugadas merecen explorarse y cuáles pueden podarse sin riesgo — y la adaptaron a un juego con tablero de 9x10, río, palacio y piezas que no se comportan en nada como sus equivalentes ajedrecísticas. La evaluación, en cambio, hubo que rehacerla por completo: saber que una torre es potente en columna abierta no dice nada sobre cuánto vale un cañón que necesita una pantalla para capturar. Esa herencia explica muchas cosas: el lenguaje de órdenes, las opciones de configuración, las convenciones de publicación y la licencia vienen todas de la familia Stockfish. Se distribuye bajo GPL v3, es decir, libre de usar y modificar, pero cualquier obra derivada debe publicarse en los mismos términos.

¿Qué fuerza tiene realmente Pikafish?

Muchísima: tanta que la pregunta de cómo ganarle ya no tiene respuesta seria. Con hardware moderno corriente y unos segundos por jugada, Pikafish juega muy por encima del nivel de los Grandes Maestros humanos más fuertes. No comete errores groseros, no se cansa, calcula secuencias forzadas más lejos de lo que ninguna persona sostiene en la cabeza y evalúa posiciones tranquilas con una constancia que nadie mantiene durante una partida larga. La comparación interesante no es humano contra motor, sino para qué sirve el motor. A un jugador de 1400 no le aporta nada que le digan que su posición está dos puntos peor; le aporta entender qué jugada creó el problema. Por eso la fuerza bruta importa mucho menos que el uso que le des. Nuestro artículo sobre el Elo en el Xiangqi pone en perspectiva las escalas humanas y muestra que la distancia entre un jugador de club y un Gran Maestro es menor que la que separa al Gran Maestro del motor.

¿Qué es NNUE y por qué Pikafish necesita un archivo aparte?

NNUE designa una red neuronal de actualización eficiente, y es la parte de Pikafish que juzga las posiciones. Los motores clásicos evaluaban con reglas escritas a mano: una torre vale tanto, un soldado protegido pasado el río vale tanto, un general expuesto resta puntos. NNUE sustituye esa tabla manual por una pequeña red neuronal entrenada con millones de posiciones, capaz de captar sutilezas que nadie logró formular como regla. La clave está en la palabra eficiente: la red está diseñada para que, cuando se mueve una sola pieza, solo haya que rehacer una parte pequeña del cálculo, y eso es lo que la hace lo bastante rápida como para ejecutarse millones de veces por segundo. En la práctica, esa red vive en un archivo separado, normalmente con un nombre parecido a pikafish.nnue. El ejecutable del motor por sí solo no la contiene. Es con diferencia la mayor fuente de confusión para quien empieza, y el tema de la sección siguiente.

¿Cómo se descarga y se ejecuta Pikafish?

Pikafish se distribuye como binario compilado en su repositorio público, github.com/official-pikafish/Pikafish, con versiones para Windows, Linux, macOS y Android. Las publicaciones suelen ofrecer varias variantes de la misma versión, nombradas según juegos de instrucciones del procesador: avx2, bmi2, vnni y similares. No son motores distintos, sino el mismo programa compilado para aprovechar funciones de procesador más o menos recientes. Elige la más reciente que tu máquina admita; si se niega a arrancar con un error de instrucción ilegal, baja a una compilación más conservadora. El archivo de la publicación ya incluye la red NNUE, así que una descarga normal no requiere ningún paso extra. Solo tienes que conseguir la red por tu cuenta si compilas desde el código fuente: entonces vive en el repositorio Networks y va junto al binario. El fallo tampoco es sutil: un motor que no puede cargar su red imprime la ruta que intentó y la URL de descarga, y termina — nunca sigue jugando débil. Y recuerda que el binario no tiene ventana ni tablero: necesitas una interfaz gráfica que hable el mismo protocolo para usarlo de verdad.

¿Cómo se configura bien Pikafish?

Tres ajustes concentran casi toda la diferencia práctica. Threads indica cuántos núcleos del procesador debe usar el motor. Más hilos significan más posiciones examinadas por segundo, pero dejar al menos un núcleo libre mantiene la máquina receptiva; poner más hilos que núcleos reales solo ralentiza. Hash es la memoria que el motor dedica a recordar posiciones ya evaluadas, en megabytes. Demasiado poca y recalcula lo mismo sin parar; demasiada y compite con el resto del sistema. Unos cientos de megabytes son cómodos para analizar en una computadora normal. El tercer ajuste no lo es del todo: es cuánto tiempo le dejas pensar. La fuerza crece con el tiempo, pero con rendimientos decrecientes: el salto de un segundo a diez es enorme, el de diez a cien mucho menor. Para estudiar tus propias partidas, unos segundos por posición sobran. Esos mismos equilibrios, aplicados a rivales en lugar de al análisis, son los que describimos en cómo equilibramos la dificultad de los bots.

¿Cómo se lee lo que dice Pikafish?

El motor emite un flujo continuo de líneas, y tres números importan. La evaluación se expresa en equivalentes de peón desde el punto de vista del bando que mueve: un valor positivo significa que quien mueve está mejor, y un valor cercano a cero indica equilibrio. Algo como +1 equivale más o menos a la ventaja de un soldado sano de más, no a una partida ganada. La profundidad es cuántas medias jugadas ha calculado; una evaluación alta a poca profundidad merece mucha menos confianza que una modesta a gran profundidad. La variante principal es la secuencia de jugadas que el motor considera mejor para ambos bandos, y es con diferencia lo más instructivo: la evaluación te dice que algo va mal, la variante te dice por qué. Los principiantes solo leen el número; quienes progresan leen la línea. Si la notación de esas líneas te resulta ajena, nuestra guía de la notación en Xiangqi explica los sistemas en uso.

Usar un motor para mejorar, y dónde está el límite

Un motor es una máquina de respuestas implacable, lo que lo convierte a la vez en el mejor y el peor compañero de estudio. El método productivo consiste en analizar tus propias partidas después de jugarlas, y pensar antes de mirar: forma tu propio juicio sobre dónde giró la partida y luego comprueba. Cuando el motor te contradice, la contradicción es la lección. El método improductivo consiste en pasar la partida viendo moverse la barra de evaluación: parece estudio y no enseña nada. Por debajo de unos 2000, la mayoría de las derrotas vienen de tácticas que puedes encontrar tú mismo con más disciplina, no de sutilezas que solo un motor revela; nuestra guía para progresar en Xiangqi propone un camino más eficaz. Y lo evidente, que aun así conviene decir: usar asistencia de motor durante una partida en directo contra otra persona es hacer trampas, en cualquier plataforma seria y en cualquier federación. Los motores son para después de la partida, o para posiciones que nadie está jugando.

Usar Pikafish sin instalar nada

Si lo único que quieres es un motor potente que analice tus posiciones, no tienes que instalar absolutamente nada. Xiangqi One ejecuta Pikafish directamente, de forma nativa en las aplicaciones móviles y compilado a WebAssembly en el navegador, de modo que el análisis ocurre en tu propio dispositivo, sin instalación, sin archivo de red que descargar y sin configuración. Abres un tablero, repasas una partida y obtienes el mismo juicio del motor descrito arriba, a la profundidad que te permita la paciencia. Los bots contra los que juegas usan el mismo núcleo, deliberadamente contenido para producir rivales a un nivel que de verdad resulte útil enfrentar; el razonamiento está en cómo equilibramos la dificultad de los bots. Para analizar una posición o jugar contra un rival calibrado ahora mismo, abre Xiangqi One. Para el panorama completo de los motores y de cómo las computadoras cambiaron el juego, sigue con nuestro repaso de los motores de IA en Xiangqi o recorre la categoría de motores.

Sigue leyendo