stringtranslate.com

motor de ajedrez

En ajedrez por computadora , un motor de ajedrez es un programa de computadora que analiza posiciones de ajedrez o variantes de ajedrez y genera un movimiento o lista de movimientos que considera más fuertes. [1]

Un motor de ajedrez suele ser un back-end con una interfaz de línea de comandos sin gráficos ni ventanas . Los motores se utilizan normalmente con una interfaz gráfica de usuario con ventana, como Chessbase o WinBoard , con la que el usuario puede interactuar mediante un teclado, un ratón o una pantalla táctil. Esto permite al usuario jugar contra múltiples motores sin aprender una nueva interfaz de usuario para cada uno, y permite que diferentes motores jueguen entre sí.

Muchos motores de ajedrez ahora están disponibles para teléfonos móviles y tabletas, lo que los hace aún más accesibles.

Historia

El significado del término "motor de ajedrez" ha evolucionado con el tiempo. En 1986, Linda y Tony Scherzer inscribieron su programa Bebe en el 4º Campeonato Mundial de Ajedrez por Computadora , ejecutándolo en "Chess Engine", su marca para el hardware de computadora de ajedrez [2] fabricado y comercializado por su compañía Sys-10, Inc. [3] En 1990, los desarrolladores de Deep Blue , Feng-hsiung Hsu y Murray Campbell , escribían sobre darle a su programa un "motor de búsqueda", aparentemente refiriéndose al software más que al hardware . [4] En diciembre de 1991, Computer-schach & Spiele se refirió al recientemente lanzado Fritz de Chessbase como un 'motor Schach', la traducción alemana de 'motor de ajedrez'. [5] A principios de 1993, Marty Hirsch estaba trazando una distinción entre programas comerciales de ajedrez como Chessmaster 3000 o Battle Chess, por un lado, y 'motores de ajedrez' como ChessGenius o su propio MChess Pro, por el otro. Según su caracterización, los programas comerciales de ajedrez tenían un precio bajo, tenían gráficos sofisticados, pero no ocupaban un lugar alto en las listas de calificación de la SSDF ( Asociación Sueca de Computación de Ajedrez ), mientras que los motores eran más caros y tenían calificaciones altas. [6]

En 1994, Shay Bushinsky estaba trabajando en una primera versión de su programa Junior . Quería centrarse en la parte del juego de ajedrez en lugar de los gráficos, por lo que le preguntó a Tim Mann cómo podía lograr 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 . [7]

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

A mediados de la década de 2000, los motores se habían vuelto tan potentes que podían vencer incluso a los mejores jugadores humanos. Excepto con fines de entretenimiento, especialmente el uso de motores con fuerza limitada, las coincidencias entre humanos y motores ahora son raras; Los motores se consideran cada vez más como herramientas de análisis que como oponentes.

Protocolo de interfaz

Los motores Winboard comunes 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 motores en protocolo CB como programas separados que podían instalarse en el programa Chessbase o en una de las otras GUI estilo Fritz. Fritz 1-14 solo se emitieron como motores Chessbase, mientras que Hiarcs , Nimzo, Chess Tiger y Crafty se adaptaron al formato Chessbase a pesar de que eran motores UCI o Winboard. Recientemente, Chessbase ha comenzado a incluir motores Universal Chess Interface (UCI) en sus programas de juego, como Komodo , Houdini , Fritz 15-16 y Rybka , en lugar de convertirlos a motores Chessbase.

En 2000, Stefan Meyer-Kahlen y Franz Huber lanzaron la Universal Chess Interface , un protocolo más detallado que introdujo un conjunto más amplio de características. Poco después, Chessbase dejó de admitir motores Winboard y agregó soporte para UCI a la GUI de su motor y a los programas Chessbase . La mayoría de los mejores motores son UCI en estos días: Stockfish , Komodo , Leela Chess Zero , Houdini , Fritz 15-16, Rybka , Shredder , Fruit , Critter , Ivanhoe y Ruffian.

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

Fuerza creciente

Los motores de ajedrez aumentan continuamente su fuerza de juego. Esto se debe en parte al aumento de la potencia de procesamiento que permite realizar cálculos cada vez con mayor profundidad en un tiempo determinado. Además, se han mejorado las técnicas de programación, lo que permite a los motores ser más selectivos en las líneas que analizan y adquirir una mejor comprensión posicional. Un motor de ajedrez a menudo utiliza un vasto "libro" de aperturas previamente calculado para aumentar su fuerza de juego durante los primeros movimientos, posiblemente hasta 20 movimientos o más en líneas profundamente analizadas. [ cita necesaria ]

Algunos motores de ajedrez mantienen una base de datos de posiciones de ajedrez, junto con evaluaciones y mejores movimientos previamente calculados; en efecto, una especie de "diccionario" de posiciones de ajedrez recurrentes. Dado que estas posiciones están precalculadas, el motor simplemente reproduce uno de los movimientos indicados en la base de datos, lo que ahorra tiempo de cálculo y da como resultado un juego más fuerte y rápido.

Algunos motores de ajedrez utilizan tablas de finales para aumentar su fuerza de juego durante el final . Una base de datos de finales incluye todas las posiciones posibles de finales con una pequeña cantidad de material. Cada posición se determina de manera concluyente como una victoria, una pérdida o un empate para el jugador a quien le toca moverse, y el número de movimientos hasta el final con el mejor juego de ambos lados. La tabla identifica para cada posición el movimiento que ganará más rápido contra una defensa óptima, o el movimiento que perderá más lento contra una ofensiva óptima. Estas bases de datos están disponibles para todos los finales de ajedrez con siete piezas o menos (se excluyen las posiciones triviales de finales, como seis piezas blancas versus un solo rey negro ). [11] [12]

Cuando las maniobras en un final para lograr una mejora irreversible requieren más movimientos que el horizonte de cálculo de un motor de ajedrez, no se garantiza que un motor encuentre el mejor movimiento sin el uso de una tabla de finales y, en muchos casos, puede fallar. Como resultado, la regla de los cincuenta movimientos . Muchos motores utilizan el cerebro permanente (que continúa calculando durante el turno del oponente) como método para aumentar su fuerza.

La computación distribuida también se utiliza para mejorar el código de software de los motores de ajedrez. En 2013, los desarrolladores del programa de ajedrez Stockfish comenzaron a utilizar la informática distribuida para realizar mejoras en el código del software. [13] [14] [15] Hasta junio de 2017 , se ha utilizado un total de más de 745 años de tiempo de CPU para jugar más de 485 millones de partidas de ajedrez, y los resultados se han utilizado para realizar mejoras pequeñas e incrementales en el ajedrez. -software de reproducción. [16] En 2019, el autor de Ethereal, Andrew Grant, inició el marco de pruebas de computación distribuida OpenBench, basado en el marco de pruebas de Stockfish, [17] [18] y ahora es el marco de pruebas más utilizado para motores de ajedrez. [ cita necesaria ]

Limitar la potencia de un motor

A finales de la década de 1990, los mejores motores se habían vuelto tan fuertes que pocos jugadores tenían posibilidades de ganarles una partida. Para darles a los jugadores más oportunidades, los motores comenzaron a incluir configuraciones para ajustar o limitar su fuerza. En 2000, cuando Stefan Meyer-Kahlen y Franz Huber lanzaron el protocolo Universal Chess Interface, incluyeron los parámetros uci_limitstrength y uci_elo, lo que permitió a los autores del motor ofrecer una variedad de niveles clasificados de acuerdo con la clasificación Elo , calibrada por una de las listas de clasificación. La mayoría de las GUI para motores UCI permiten a los usuarios configurar esta calificación Elo dentro de los menús. Incluso los motores que no han adoptado este parámetro a veces tendrán un parámetro de fuerza ajustable (por ejemplo, Stockfish 11). Los motores que tienen un parámetro uci_elo incluyen Houdini , Fritz 15–16, Rybka , Shredder , Hiarcs , Junior , Zappa y Sjeng . GUI como Shredder , Chess Assistant , Convekta Aquarium, [19] Hiarcs Chess Explorer y Martin Blume's Arena [20] tienen menús desplegables para configurar el parámetro uci_elo del motor. Las GUI de la familia Fritz, Chess Assistant y Aquarium también tienen medios independientes para limitar la fuerza de un motor aparentemente basados ​​en la capacidad de un motor para generar listas clasificadas de movimientos (llamadas multipv por 'variación de principio').

Comparaciones

Torneos

Los resultados de los torneos informáticos dan una idea de las fortalezas relativas de los motores de ajedrez. Sin embargo, los torneos no juegan una cantidad estadísticamente significativa de juegos para determinar la fuerza con precisión. De hecho, el número de partidas que deben jugarse entre motores bastante igualados para lograr importancia asciende a miles y, por lo tanto, no es práctico en el marco de un torneo. [21] La mayoría de los torneos también permiten cualquier tipo de hardware, por lo que sólo se comparan combinaciones de motor/hardware.

Históricamente, los programas comerciales han sido los motores más potentes. Si un motor amateur gana un torneo o tiene un buen desempeño (por ejemplo, Zappa en 2005), se comercializa rápidamente. Los títulos obtenidos en estos torneos otorgan mucho prestigio a los programas ganadores y, por lo tanto, se utilizan con fines de marketing. Sin embargo, después del auge de proyectos informáticos distribuidos voluntarios como Leela Chess Zero y Stockfish y marcos de prueba como FishTest y OpenBench a finales de la década de 2010, los programas gratuitos y de código abierto han desplazado en gran medida a los programas comerciales como los motores más potentes de los torneos.

Lista de torneos

Los torneos actuales incluyen:

Los torneos históricos incluyen:

Calificaciones

Las listas de clasificación de motores de ajedrez tienen como objetivo proporcionar medidas estadísticamente significativas de la fuerza relativa del motor. Estas listas juegan múltiples juegos entre motores. Algunos también estandarizan los libros de apertura, los controles de tiempo y el hardware informático que utilizan los motores, en un intento de medir únicamente las diferencias de fuerza de los motores. Estas listas proporcionan no sólo una clasificación, sino también márgenes de error en las calificaciones dadas.

Las clasificaciones en las listas de clasificación, aunque se calculan utilizando el sistema Elo (o métodos de clasificación similares), no tienen relación directa con las clasificaciones Elo de la FIDE ni con otras clasificaciones de jugadores humanos de la federación de ajedrez. A excepción de algunos juegos de hombre contra máquina que la SSDF había organizado hace muchos años (cuando los motores estaban lejos de la potencia actual), no existe ninguna calibración entre ninguna de estas listas de clasificación y grupos de jugadores. Por tanto, los resultados que importan son las clasificaciones y las diferencias entre las calificaciones, y no los valores absolutos.

En muchas listas de calificación faltan IPPOLIT y sus derivados. Aunque son muy fuertes y de código abierto , hay acusaciones de intereses comerciales de software de que se derivaron de un binario desensamblado de Rybka . [22] Debido a la controversia , todos estos motores han sido incluidos en la lista negra de muchos torneos y listas de clasificación. Rybka, a su vez, fue acusado de basarse en Fruit , [23] y en junio de 2011, la ICGA afirmó formalmente que Rybka se derivaba de Fruit and Crafty y prohibió a Rybka del Campeonato Mundial de Ajedrez por Computadora de la Asociación Internacional de Juegos de Computadora, y revocó sus victorias anteriores ( 2007, 2008, 2009 y 2010). [24] La ICGA recibió algunas críticas por esta decisión. [25] A pesar de todo esto, Rybka todavía figura en muchas listas de calificación, como CCRL y CEGT, además de Houdini , un derivado del IPPOLIT Robbolito, [26] y Fire, un derivado de Houdini. Además, Fat Fritz 2 , un derivado de Stockfish, [27] también está incluido en la mayoría de las listas de clasificación.

Diferencias entre listas de calificación

Hay una serie de factores que varían entre las listas de clasificación de los motores de ajedrez:

Estas diferencias afectan los resultados y dificultan las comparaciones directas entre listas de calificación.

Lista de listas de calificación

Las listas de calificación actuales y las organizaciones de listas de calificación incluyen:

Las listas de calificación histórica y las organizaciones de listas de calificación incluyen:

Conjuntos de pruebas

Los motores se pueden probar midiendo su rendimiento en posiciones específicas. Típico es el uso de conjuntos de pruebas donde para cada posición dada hay un mejor movimiento para encontrar. Estas posiciones pueden orientarse hacia el juego posicional, táctico o de finales. El conjunto de pruebas de Nolot , por ejemplo, se centra en sacrificios profundos. [30] Los conjuntos de pruebas BT2450 y BT2630 miden la capacidad táctica de un motor de ajedrez y han sido utilizados por REBEL . [31] [32] También hay un conjunto de pruebas general llamado Brilliance que fue compilado principalmente de Cómo reevaluar su libro de ejercicios de ajedrez . [33] El Strategic Test Suite (STS) prueba la fortaleza estratégica de un motor. [34] Otro conjunto de pruebas moderno es Nightmare II, que contiene 30 acertijos de ajedrez. [35] [ cita irrelevante ]

Kasparov versus el mundo (juego de ajedrez jugado con asistencia de computadora)

En 1999, Garry Kasparov jugó una partida de ajedrez llamada "Kasparov versus el mundo" a través de Internet , alojada en MSN Gaming Zone . Ambos bandos utilizaron asistencia informática (motor de ajedrez). El "Equipo Mundial" contó con la participación de más de 50.000 personas de más de 75 países, que decidieron sus movimientos por voto plural . La partida duró cuatro meses y terminó después del movimiento 62 de Kasparov cuando anunció un jaque mate forzado en 28 movimientos encontrados con el programa de computadora Deep Junior . Los votantes del Equipo Mundial dimitieron el 22 de octubre. Después de la partida, Kasparov dijo: "Es la partida más grande de la historia del ajedrez. La gran cantidad de ideas, la complejidad y la contribución que ha hecho al ajedrez la convierten en la partida más importante". juego jamás jugado." [36]

Motores para variantes de ajedrez.

Algunos motores de ajedrez han sido desarrollados para jugar variantes de ajedrez , añadiendo el código necesario para simular piezas de ajedrez no estándar , o para analizar el juego en tableros no estándar. ChessV y Fairy-Max , por ejemplo, son capaces de jugar variantes en un tablero de ajedrez de hasta 12×8 de tamaño, como Capablanca Chess (tablero de 10×8).

Para tableros más grandes, sin embargo, hay pocos motores de ajedrez que puedan jugar efectivamente y, de hecho, las partidas de ajedrez jugadas en un tablero ilimitado ( ajedrez infinito ) prácticamente no son tocadas por el software de ajedrez, aunque teóricamente un programa que use un algoritmo derivado de MuZero podría manejar un espacio de estados ilimitado .

Interfaces gráficas de usuario

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 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 GUI UCI separada de su propio diseño, lo que permitía importar motores UCI o Winboard.

Chess Assistant de Convekta y ChessPartner de Lokasoft también agregaron la capacidad de importar motores Winboard y UCI a sus productos. Shane Hudson desarrolló la base de datos de información de ajedrez de Shane , una GUI gratuita para Linux, Mac y Windows. Martin Blume desarrolló Arena, [20] otra GUI gratuita para Linux y Windows. Lucas Monge entró al campo con la GUI gratuita de Lucas Chess. [37] Los tres pueden manejar motores UCI y Winboard.

En Android, Aart Bik lanzó Chess para Android, [38] otra GUI gratuita, y Chess PGN Master de Gerhard Kalab [39] y Droidfish de Peter Osterlund [40] también pueden servir como GUI para motores.

Computer Chess Wiki enumera muchas GUI de ajedrez. [41]

Ver también

Notas

Referencias

  1. ^ blog.chess.com Creación de un motor de ajedrez desde cero (Parte 1: Conceptos básicos), fecha del enlace 28 de junio de 2012
  2. ^ "Cuarto Campeonato Mundial de Ajedrez por Computadora - Nueva York 1983 (Torneos ICGA)". Game-ai-forum.org .
  3. ^ "Nuevo SYS-10". Sys-10.com . Consultado el 26 de junio de 2022 .
  4. ^ Feng-hsiung Hsu, Thomas Anantharaman, Murray Campbell y Andreas Nowatzyk. "Una máquina de ajedrez de gran maestro". Científico americano. Octubre de 1990.
  5. ^ Computer-schach & Spiele comenzarían más tarde a usar la palabra inglesa "motor", por ejemplo. 1997#6 al describir a Fritz o Hiarcs .
  6. ^ "El verdadero valor del software de ajedrez". Informes de ajedrez informático. 1992-3. vol. 3 núm. 2p. 22
  7. ^ "Historial del proyecto XBoard". Tim-mann.org .
  8. ^ "Estándar: Guía de implementación y especificación de notación de juegos portátil" (TXT) . Thechessdrum.net . Consultado el 26 de junio de 2022 .
  9. ^ Computadora-schach & Spiele.
  10. ^ "Inicio - Lokasoft - Hogar de ChessPartner". Lokasoft.nl . Consultado el 26 de junio de 2022 .
  11. ^ http://tb7.chessok.com Sitio web de Lomonosov que permite a los usuarios registrados acceder a una tabla de 7 piezas y a un foro con las posiciones encontradas.
  12. ^ "¿Quién gana con esto? (rompecabezas de ajedrez)" Un ejemplo de posición de ajedrez encontrada en la base de datos de ajedrez de Lomonosov.
  13. ^ "Marco de pruebas de stockfish". Pruebas.stockfishchess.org . Consultado el 7 de marzo de 2014 .
  14. ^ "Participe". Stockfishchess.org . Consultado el 8 de marzo de 2014 .
  15. ^ Costalba, Marco (1 de mayo de 2013). "Marco de pruebas distribuidas Fishtest". Talkchess.com . Consultado el 18 de abril de 2014 .
  16. ^ "Marco de pruebas de stockfish: usuarios". Prueba.stockfishchess.org . Consultado el 17 de junio de 2017 .
  17. ^ "Github - AndyGrant/OpenBench: OpenBench es un marco de prueba SPRT distribuido para motores de ajedrez". Github.com . Consultado el 23 de diciembre de 2021 .
  18. ^ "Banco abierto". Ajedrez.grantnet.us . Consultado el 16 de febrero de 2022 .
  19. ^ "Tienda ChessOK, software, formación, equipos, libros". Tienda.chessok.com . Consultado el 26 de junio de 2022 .
  20. ^ ab "Arena de interfaz gráfica de usuario (GUI) de ajedrez gratuita para motores de ajedrez". Archivado desde el original el 14 de marzo de 2007 . Consultado el 29 de noviembre de 2018 .
  21. ^ "mizarchessengine.com" . Consultado el 25 de septiembre de 2016 .
  22. ^ "Controversia del motor de ajedrez en chessvibes.com, consultado el 28 de mayo de 2010". Archivado desde el original el 28 de mayo de 2010 . Consultado el 28 de mayo de 2010 .
  23. ^ "Evaluación". Archivado desde el original el 11 de agosto de 2011 . Consultado el 18 de diciembre de 2010 .
  24. ^ "Rybka descalificado y excluido del Campeonato Mundial de Ajedrez por Computadora | ChessVibes". Archivado desde el original el 2 de marzo de 2012 . Consultado el 30 de junio de 2011 .
  25. ^ Riis, Dr. Søren (2 de enero de 2012). "Un grave error judicial en el ajedrez informático (primera parte)". Noticias de Chessbase . Consultado el 19 de febrero de 2012 .
  26. ^ "Free Houdini supera al comercial Rybka 23,5-16,5". Vibraciones de ajedrez. 10 de febrero de 2010. Archivado desde el original el 10 de abril de 2014 . Consultado el 25 de octubre de 2013 .
  27. ^ El equipo de Stockfish (21 de julio de 2021). "Nuestra demanda contra ChessBase". Stockfishchess.org . Archivado desde el original el 21 de julio de 2021 . Consultado el 18 de agosto de 2021 .
  28. ^ "Listas CCRL 40/15, 2m1s y FRC 40/2 actualizadas (21-10-2023)" . talkchess.com . Consultado el 22 de octubre de 2023 .
  29. ^ "Probadores CEGT". Cegt.net . Consultado el 26 de junio de 2022 .
  30. ^ "Suite de pruebas de Nolot". Archivado desde el original el 17 de agosto de 2007 . Consultado el 4 de agosto de 2007 .
  31. ^ "Suite de pruebas BT2450". Archivado desde el original el 7 de septiembre de 2007 . Consultado el 10 de octubre de 2007 .
  32. ^ Rosenboom, Manfred. "Preguntas frecuentes de Rebel Century: 3. Uso de Rebel" . Consultado el 25 de septiembre de 2016 .
  33. ^ "SUITE DE PRUEBAS DE BRILLANCIA (2 min/movimiento)". Talkchess.com . Consultado el 26 de junio de 2022 .
  34. ^ "Suite de pruebas estratégicas". Sitios.google.com . Consultado el 26 de junio de 2022 .
  35. ^ "Uups - Ups: Link-Fehler und URL-Umleitungen". Glarean-magazin.ch . 10 de octubre de 2010 . Consultado el 26 de junio de 2022 .
  36. ^ Harding, T. (2002). 64 grandes partidas de ajedrez , Dublín: Chess Mail. ISBN 0-9538536-4-0
  37. ^ "Lucas Ajedrez". Lucaschess.pythonanywhere.com . Consultado el 26 de junio de 2022 .
  38. ^ "Sitio web de Aart Bik". Aartbik.com .
  39. ^ "Maestro de ajedrez PGN". Pgnmaster.kalab.com . Consultado el 26 de junio de 2022 .
  40. ^ "Copia archivada". Archivado desde el original el 10 de diciembre de 2018 . Consultado el 29 de noviembre de 2018 .{{cite web}}: Mantenimiento CS1: copia archivada como título ( enlace )
  41. ^ "Computer_chess:wiki:lists:gui_protocol_support_list - Wiki de ajedrez informático". Computer-chess.org .

enlaces externos