Motor de ajedrez

(Redirigido desde «Módulo de ajedrez»)

Un motor de ajedrez es un programa que sabe jugar ajedrez y que implementa un lenguaje de comunicación que le permite hablar con otros programas, generalmente interfaces gráficas para jugar al ajedrez con tablero y fichas.

Historia

editar

El significado de la frase "motor de ajedrez" ha evolucionado con el tiempo. En 1986, Linda y Tony Sherzer ingresaron su programa Bebe en el 4.° Campeonato Mundial de Ajedrez Informático, ejecutándolo en "Chess Engine", su nombre comercial para el hardware informático de ajedrez[1]​ fabricado y comercializado por su empresa Sys-10, Inc.[2]​ En 1990, los desarrolladores de Deep Blue, Feng-hsiung Hsu y Murray Campbell, escribieron sobre dar a su programa un "motor de búsqueda", aparentemente refiriéndose al software más que al hardware.[3]​ En diciembre de 1991, Computer-schach & Spiele se refirió al reciente lanzamiento de Fritz de Chessbase como 'Schach-motor', la traducción alemana de 'motor de ajedrez'.[4]​ A principios de 1993, Marty Hirsch estaba haciendo una distinción entre programas de ajedrez comerciales como Chessmaster 3000 o Battle Chess por un lado, y "motores de ajedrez" como ChessGenius o su propio MChess Pro por el otro. En su caracterización, los programas de ajedrez comerciales tenían un precio bajo, tenían gráficos elegantes, pero no ocupaban un lugar destacado en las listas de clasificación de la SSDF (Asociación Sueca de Computadoras de Ajedrez), mientras que los motores eran más caros y tenían puntuaciones altas.[5]

En 1994, Shay Bushinsky estaba trabajando en una versión inicial de su programa Junior. Quería centrarse en la parte del ajedrez en lugar de en los gráficos, por lo que le preguntó a Tim Mann cómo podía conseguir que Junior se comunicara con Winboard. La respuesta de Tim formó la base de lo que se conoció como el Protocolo de Comunicación del Motor de Ajedrez o motores Winboard, originalmente un subconjunto de la interfaz de línea de comandos de GNU Chess[6]

También en 1994, Stephen J. Edwards lanzó la especificación Portable Game Notation (PGN). Menciona que los programas de lectura de PGN no necesitan tener un "motor de ajedrez completo". También menciona tres "interfaces gráficas de usuario" (GUI): XBoard, pgnRead y la base de datos Slappy.[7]

Interfaces

editar

Xboard/Winboard fue una de las primeras interfaces gráficas de usuario (GUI). Tim Mann lo creó para proporcionar una GUI para el motor GNU Chess, pero después de eso, aparecieron otros motores como Crafty que usaban el protocolo Winboard. Finalmente, el programa Chessmaster incluyó la opción de importar otros motores Winboard además del motor King que estaba incluido.

En 1995, ChessBase comenzó a ofrecer el motor Fritz como un programa separado dentro del programa de base de datos de ChessBase y dentro de la GUI de Fritz. Poco después, agregaron los motores Junior y Shredder a su línea de productos, empaquetándolos dentro de la misma GUI que se usó para Fritz. A finales de la década de 1990, la GUI de Fritz podía ejecutar motores Winboard a través de un adaptador, pero después de 2000, Chessbase simplemente agregó soporte para motores UCI y ya no invirtió mucho esfuerzo en Winboard.

En 2000, Stefan Meyer-Kahlen comenzó a vender Shredder en una interfaz gráfica de usuario UCI separada de su propio diseño, lo que permitía importar motores UCI o Winboard.

Convekta de Chess Assistant y ChessPartner de Lokasoft también añaden la capacidad de importar motores Winboard y UCI en sus productos. Shane Hudson desarrolló la Shane's Chess Information Database, una GUI gratuita para Linux, Mac y Windows. Martin Blume desarrolló Arena,[8]​ otra GUI gratuita para Linux y Windows. Lucas Monge entró al campo con la GUI gratuita de Lucas Chess.[9]​ Los tres pueden manejar motores UCI y Winboard.

En Android, Aart Bik salió con Chess para Android,[10]​ otra GUI gratuita, y Chess PGN Master[11]​ de Gerhard Kalab y Droidfish de Peter Osterlund[12]​ también pueden servir como GUI para motores.

La Wiki de Computer Chess enumera muchas GUI de ajedrez.[13]

Protocolos

editar

Los motores comunes de Winboard incluirían Crafty, ProDeo (basado en Rebel ), Chenard, Zarkov y Phalanx.

En 1995, ChessBase lanzó una versión de su programa de base de datos que incluía Fritz 4 como motor independiente. Esta fue la primera aparición del protocolo ChessBase. Poco después, agregaron los motores Junior y Shredder a su línea de productos, incluidos los motores en el protocolo CB como programas separados que podrían instalarse en el programa Chessbase o en una de las otras GUI de estilo Fritz. Fritz 1-14 solo se emitieron como motores Chessbase, mientras que Hiarcs, Nimzo, Chess Tiger y Crafty se han adaptado al formato Chessbase a pesar de que eran motores UCI o Winboard. Recientemente, Chessbase ha comenzado a incluir motores de Interfaz Universal de Ajedrez (UCI) en sus programas de juego, como Komodo, Houdini , Fritz 15-16 y Rybka en lugar de convertirlos en motores de ChessBase.

En 2000, Stefan Meyer-Kahlen y Franz Huber lanzaron la Interfaz Universal de Ajedrez, un protocolo más detallado que introdujo un conjunto más amplio de características. Poco después, Chess<base abandonó el soporte para los motores Winboard y agregó soporte para UCI a las GUI de sus motores y los programas de ChessBase. La mayoría de los motores principales son UCI en estos días: Stockfish, Komodo, Leela Chess Zero, Houdini, Fritz, Rybka, Shredder, Fruit, Critter, Ivanhoe y Ruffian.

Desde 1998, la empresa alemana Millenium 2000 pasó brevemente de las computadoras dedicadas al ajedrez al mercado de software, desarrollando el protocolo Millennium Chess System (MCS) para una serie de CD que contienen ChessGenius o Shredder, pero después de 2001 dejó de lanzar software nuevo.[14]​ La empresa holandesa Lokasoft ha utilizado un protocolo de motor más antiguo,[15]​ que finalmente se hizo cargo de la comercialización de Rebel de Ed Schröder.

Fuerza creciente

editar

Los motores de ajedrez incrementan su fuerza de juego cada año. Esto es en parte por el incremento en la capacidad de procesamiento que permite hacer cálculos más profundos en un tiempo dado. Adicionalmente, las técnicas de programación han mejorado permitiendo a los módulos ser más selectivos en las líneas que analizan y tener más "entendimiento posicional".

Algunos motores usan bases de datos de finales para incrementar su fuerza durante el final. Una base de datos de finales almacena todas las posibles posiciones con pequeños grupos de material. Cada posición es de manera concluyente determinada como ganadora, perdedora, o tablas para el jugador que mueve, y el número de jugadas para el final con el mejor juego de cada lado. Las bases de datos de finales en todos los casos identifican la mejor jugada en cada posición incluida (identificando la jugada que más rápido contra una defensa perfecta, o la jugada que pierde más lentamente contra un ataque óptimo). Hay bases de datos disponibles para finales de 3 a 6 piezas (contando los reyes) y para algunos de 7 piezas. Cuando la maniobra en un final para lograr un mejoramiento irreversible se va más allá del horizonte de cálculo del motor, no se garantiza que éste encuentre la mejor jugada sin el uso de una base de datos de finales, y en muchos casos puede incurrir en la regla de las 50 jugadas. Algunos expertos han señalado el potencial mal uso de las bases de datos de finales por los programadores, llevando a un mal juego.

Comparación entre motores

editar

Torneos

editar

Los resultados de los torneos de motores, como el Torneo Mundial de Ajedrez por Computadora, dan una idea de las fuerzas relativas entre los motores de ajedrez. Sin embargo, en los torneos no se juega un número de partidas estadísticamente significativo para determinar de manera precisa la fuerza de los motores. De hecho, el número de partidas necesario para alcanzar la precisión, es de miles y es impracticable bajo el esquema de un torneo . Muchos torneos permiten además cualquier tipo de hardware, en estos se comparan las combinaciones motor/hardware.

Históricamente, los programas comerciales han sido los motores más fuertes. Rybka ganó el WCCC de 2007. Algo que se ha visto, es que si un motor gana un torneo o tiene un buen desempeño en uno (por ejemplo Zappa en 2005), entonces es rápidamente comercializado.

Listas de clasificación de motores

editar

Las listas de calificación de los motores de ajedrez ayudan a proveer medidas estadísticas sobre la fuerza de los distintos motores. Estas listas juegan muchas partidas entre motores en plataformas estándar de hardware, quitando así el factor de diferencias de procesador que puede ser una ventaja. Estas listas no solo establecen una clasificación, sino también márgenes de error para las calificaciones dadas. Además las listas típicamente juegan partidas continuamente, publicando muchos datos por año, comparando con los torneos que solo se hacen una vez al año.

Listas de clasificación al 11 de noviembre de 2020
Lista de clasificación Control de tiempo

(movimientos / minutos)

Año

iniciado

Última actualización Entradas de motor / plataforma Juegos

jugados

Los tres mejores motores Clasificación
CCRL[16] 40/40

Reflexión APAGADO

2005 7 de noviembre de 2020 2,732 1,189,229
  • Stockfish 12 x64 4CPU
  • Komodo 14 x64 4 CPU
  • Houdini 6 x64 4CPU
  • 3516
  • 3419
  • 3400
CEGT[17] 40/20

Reflexionar APAGADO

2006 8 de noviembre de 2020 1875 1,401,865
  • Stockfish 12.0 x64 4CPU
  • LCZero 0.26.3 MILAGROS
  • Houdini 6.0
  • 3587
  • 3539
  • 3426
IPON 5m + 3s

~ 16min / partida Reflexionar ENCENDIDO

2006 15 de julio de 2018 208 546,430
  • Stockfish 9
  • Houdini 6.02
  • Komodo 11.2.2
  • 3383
  • 3347
  • 3322
SSDF[18] Torneo 40/120

(+20 movimientos / hora) ¿ Reflexionar sobre ?

1984 11 de julio de 2020 391 153,481
  • Stockfish 11 x64
  • Komodo 13,1 x64
  • Trituradora profunda 13 x64

Suites de prueba

editar

Los motores se pueden probar midiendo su desempeño en posiciones específicas. El uso de Suites de prueba es típico, en donde para una posición dada hay una mejor jugada por encontrar. Estas posiciones pueden ser orientados hacia lo posicional, táctico o juego de finales. La suite de prueba Nolot, por ejemplo, se enfoca en sacrificios profundos.[1] Hay otras suites como la BT2450 y BT2630 desarrolladas por Hubert Bednorz y Fred Toennissen. Estas suites miden la capacidad táctica de un módulo [2] y han sido utilizadas por lo menos por REBEL.[3] Hay además una suite de uso general llamada Brilliancy por Dana Turnmire. La suite ha sido compilada en su mayoría desde How to Reassess Your Chess Workbook.[4]

Categorías de motores

editar

Motores gratuitos

editar

Hay cientos de motores de ajedrez disponibles de manera gratuita y que cumplan con alguno de los protocolos de comunicación mencionados anteriormente. Muchos corren en Windows o son open source. Unos cuantos de los más fuertes se listan. Otros pueden encontrarse mirando las listas de calificación o los enlaces externos.

Puntajes Elo tomados de CCRL 40/40, accedido en julio de 2011.

  • Alaric Archivado el 8 de diciembre de 2021 en Wayback Machine. (v707 Elo 2752) por Peter Fendrich (SE)
  • Alfil (v811 Elo 2706) por Enrique Sánchez (SP)
  • Aristarch (v4.50 Elo 2698) por Stefan Zipproth (DE)
  • Baron (v1.8.1 Elo 2625) por Richard Pijl (NL)
  • Crafty (v21.5 Elo 2631 - 21.6 disponible) por Bob Hyatt (US)
  • Delfi (v5.2 Elo 2756) por Philippe Fabiani (FR)
  • Fruit (v2.3.1 Elo 2863) por Fabien Letouzey (FR)
  • Gambit Fruit (derivado de Fruit) por Fabien Letouzey/Bryan Hofmann (FR/US)
  • Houdini (v1.5a Elo 3309)
  • Glaurung (v1.2.1 Elo 2726) por Tord Romstad (NO)
  • Ktulu (v4.2) por Rahman Paidar (IR)
  • List (v5.12 Elo 2720) por Fritz Reul (DE)
  • Movei (v0.08.438 Elo 2748) por Uri Blass (IL)
  • Naum (v1.91 Elo 2704) por Aleksandar Naumov (RS/CA)
  • Pharaon (3.5.1 Elo 2708) por Franck Zibi (FR)
  • ProDeo Archivado el 30 de julio de 2007 en Wayback Machine. (v1.2 Elo 2689) por Ed Schröder (NL)
  • Ruffian (v1.0.5 Elo 2711) por Per-Ola Valfridsson (SE)
  • Rybka (v.10 (versión gratuita) Elo 2920) por Vasik Rajlich (CZ/US)
  • Scorpio (v1.9 Elo 2754) por Daniel Shawul (ET)
  • Sjeng (es el módulo de Mac OS X Chess) por Gian-Carlo Pascutto (BE)
  • Slow Chess (vBlitz WV2.1 Elo 2740) por Jonathan Kreuzer (US)
  • Spike (v1.2 Turin Elo 2855) por Volker Böhm y Ralf Schäfer (DE)
  • Strelka (v1.8 Elo 2867) por Yuri Osipov (RU)
  • Toga II (v1.3.4 Elo 2868) derivado de Fruit por Fabien Letouzey/Thomas Gaksch (FR/DE)
  • Wildcat (v7 Elo 2730) por Igor Korshunov (RU)
  • Zappa (v1.1 (versión gratuita)) Elo 2687 por Anthony Cozzie (US)

Ikarus y Ferret, fueron los ganadores del World Computer Speed Chess Championship.

Motores pedagógicos

editar

Estos programas open source fueron expresamente escritos para enseñar el arte de la programación de ajedrez.

Programas comerciales

editar

Estos programas se distribuyen comercialmente. Muchos incluyen su propia interfaz de usuario.

Hardware dedicado

editar

Estos sistemas de juego incluyen hardware modificado o corren en supercomputadoras.

Computadores comerciales dedicados

editar

En los 1980s y principios de los 1990s, había un mercado competitivo para computadoras dedicadas al ajedrez. A mitad de los 90s el mercado de los computadoras dedicadas al ajedrez no pudo competir con los rápidos procesadores en las computadoras personal. Hoy en día, la mayoría de unidades dedicadas que se venden son de nivel principiante o intermedio.

  • Chess Challenger, una línea de computadoras de ajedrez que fue vendida por Fidelity Electronics de 1980 a 1992. Estos modelos ganaron los cuatro primeros World Microcomputer Chess Championships.
  • Chessmachine, una computadora dedicada basada en ARM, que podía ejecutar 2 módulos:
  • Mephisto, una línea de computadoras de ajedrez vendida por Hegner & Glaser. Las unidades programadas por Richard Lang ganaron 6 World Microcomputer Chess Championships consecutivos.
  • Novag vendió una línea de computadoras tácticamente fuertes, incluyendo las marcas Constellation y Sapphire.
  • Saitek venció unidades de nivel intermedio.
  • Excalibur vende una línea de unidades de nivel intermedio.

Programas históricos

editar

Estos programas corren en hardware obsoleto.

Véase también

editar

Referencias

editar
  1. https://www.game-ai-forum.org/icga-tournaments/tournament.php?id=65
  2. http://www.sys-10.com/
  3. Feng-hsiung Hsu, Thomas Anantharaman, Murray Campbell and Andreas Nowatzyk. "A Grandmaster Chess Machine." Scientific American. October 1990.
  4. Computer-schach & Spiele would later start using the English word 'engine,' eg. 1997#6 when describing Fritz or Hiarcs.
  5. "The True Value of Chess Software." Computer Chess Reports. 1992-3. vol. 3 no. 2 page 22
  6. http://tim-mann.org/history.html
  7. http://www.thechessdrum.net/PGN_Reference.txt
  8. «Archived copy». Archivado desde el original el 14 de marzo de 2007. Consultado el 29 de noviembre de 2018. 
  9. https://lucaschess.pythonanywhere.com/
  10. http://www.aartbik.com/android.php
  11. http://pgnmaster.kalab.com/
  12. http://hem.bredband.net/petero2b/droidfish/index.html
  13. http://computer-chess.org/doku.php?id=computer_chess:wiki:lists:gui_protocol_support_list
  14. Computer-schach & Spiele.
  15. http://www.lokasoft.nl/
  16. «CCRL 40/15». www.computerchess.org.uk (en inglés). 16 de mayo de 2020. Consultado el 17 de mayo de 2017. 
  17. «CEGT Best Versions 40/20 (AMD 4200+)». archive.is (en inglés). 8 de septiembre de 2012. Archivado desde el original el 8 de septiembre de 2012. Consultado el 17 de mayo de 2020. 
  18. «The SSDF Rating List». ssdf.bosjo.net (en inglés). 10 de diciembre de 2019. Consultado el 17 de mayo de 2020. 

Enlaces externos

editar