ajedrez por computadora -Computer chess

Computadora de ajedrez sensible a la presión de la década de 1990 con pantalla LCD

El ajedrez por computadora incluye tanto hardware (computadoras dedicadas) como software capaz de jugar al ajedrez . El ajedrez por computadora brinda oportunidades para que los jugadores practiquen incluso en ausencia de oponentes humanos, y también brinda oportunidades para el análisis, el entretenimiento y el entrenamiento.

Las aplicaciones informáticas de ajedrez que juegan al nivel de un maestro de ajedrez o superior están disponibles en hardware desde supercomputadoras hasta teléfonos inteligentes . También hay disponibles máquinas independientes para jugar al ajedrez. Stockfish , GNU Chess , Fruit y otras aplicaciones gratuitas de código abierto están disponibles para varias plataformas.

Las aplicaciones informáticas de ajedrez, ya sea implementadas en hardware o software, utilizan estrategias diferentes a las de los humanos para elegir sus movimientos: utilizan métodos heurísticos para construir, buscar y evaluar árboles que representan secuencias de movimientos desde la posición actual e intentan ejecutar la mejor secuencia durante el juego . . Dichos árboles suelen ser bastante grandes, de miles a millones de nodos. La velocidad computacional de las computadoras modernas, capaces de procesar decenas de miles a cientos de miles de nodos o más por segundo, junto con las heurísticas de extensión y reducción que reducen el árbol a la mayoría de los nodos relevantes, hacen que este enfoque sea efectivo.

Las primeras máquinas de ajedrez capaces de jugar ajedrez o juegos reducidos similares al ajedrez fueron programas de software que se ejecutaban en computadoras digitales a principios de la era de las computadoras de tubo de vacío (década de 1950). Los primeros programas funcionaban tan mal que incluso un principiante podría vencerlos. En 40 años, en 1997, los motores de ajedrez que funcionaban en supercomputadoras o hardware especializado eran capaces de derrotar incluso a los mejores jugadores humanos . En 2006, los programas que se ejecutaban en PC de escritorio habían alcanzado la misma capacidad. En 2006, Monroe Newborn , profesora de Ciencias de la Computación en la Universidad McGill , declaró: "la ciencia se ha hecho". Sin embargo, actualmente no es posible resolver ajedrez para las computadoras modernas debido a la gran cantidad de variaciones posibles del juego .

El ajedrez informático alguna vez se consideró la " Drosophila de la IA", la vanguardia de la ingeniería del conocimiento . Pero el campo ahora se considera un paradigma científicamente completo, y jugar al ajedrez es una actividad informática mundana.

Disponibilidad y fuerza de juego

IC de ajedrez informático con el nombre del desarrollador Frans Morsch (ver Mephisto )

Las máquinas/programas de ajedrez están disponibles en varias formas diferentes: máquinas de ajedrez independientes (generalmente un microprocesador que ejecuta un programa de software de ajedrez, pero a veces como una máquina de hardware especializada), programas de software que se ejecutan en PC estándar, sitios web y aplicaciones para dispositivos móviles. . Los programas se ejecutan en todo, desde supercomputadoras hasta teléfonos inteligentes. Los requisitos de hardware para los programas son mínimos; las aplicaciones no ocupan más de unos pocos megabytes en disco, usan unos pocos megabytes de memoria (pero pueden usar mucho más, si está disponible) y cualquier procesador de 300 MHz o más rápido es suficiente. El rendimiento variará modestamente con la velocidad del procesador, pero la memoria suficiente para contener una gran tabla de transposición (hasta varios gigabytes o más) es más importante para la fuerza de juego que la velocidad del procesador.

La mayoría de los programas y máquinas de ajedrez comerciales disponibles pueden jugar con la fuerza de un súper gran maestro (Elo 2700 o más) y aprovechar las arquitecturas de CPU de computadora de múltiples núcleos e hiperprocesos. Los mejores programas como Stockfish han superado incluso a los jugadores de calibre campeón mundial. La mayoría de los programas de ajedrez comprenden un motor de ajedrez conectado a una GUI, como Winboard o Chessbase . La fuerza de reproducción, los controles de tiempo y otras configuraciones relacionadas con el rendimiento se pueden ajustar desde la GUI. La mayoría de las GUI también permiten al jugador configurar y editar posiciones, invertir movimientos, ofrecer y aceptar tablas (y renunciar), solicitar y recibir recomendaciones de movimiento y mostrar el análisis del motor a medida que avanza el juego.

Hay algunos motores de ajedrez como Sargon , IPPOLIT , Stockfish , Crafty , Fruit , Leela Chess Zero y GNU Chess que se pueden descargar (u obtener el código fuente de otro modo) de Internet de forma gratuita.

Tipos y características del software de ajedrez

Quizás el tipo más común de software de ajedrez son los programas que simplemente juegan al ajedrez. Un jugador humano hace un movimiento en el tablero, la IA calcula y juega un movimiento posterior, y el humano y la IA alternan turnos hasta que un jugador renuncia. El motor de ajedrez , que calcula los movimientos, y la interfaz gráfica de usuario (GUI) a veces son programas separados. Se pueden conectar diferentes motores a la GUI, lo que permite jugar contra diferentes estilos de oponente. Los motores a menudo tienen una interfaz de línea de comandos de texto simple , mientras que las GUI pueden ofrecer una variedad de conjuntos de piezas, estilos de tablero o incluso piezas animadas o en 3D. Debido a que los motores recientes son tan capaces, los motores o las GUI pueden ofrecer alguna forma de perjudicar la capacidad del motor, para mejorar las probabilidades de que gane el jugador humano. Los motores Universal Chess Interface (UCI) como Fritz o Rybka pueden tener un mecanismo incorporado para reducir la calificación Elo del motor (a través de los parámetros uci_limitstrength y uci_elo de UCI). Algunas versiones de Fritz tienen un modo Handicap y Fun para limitar el motor actual o cambiar el porcentaje de errores que comete o cambiar su estilo. Fritz también tiene un Modo Amigo en el que durante el juego intenta igualar el nivel del jugador.

Captura de pantalla de Chess , un componente de macOS

Las bases de datos de ajedrez permiten a los usuarios buscar en una gran biblioteca de juegos históricos, analizarlos, verificar estadísticas y formular un repertorio de aperturas. Chessbase (para PC) es un programa habitual para estos fines entre los jugadores profesionales, pero existen alternativas como Shane's Chess Information Database (Scid) para Windows, Mac o Linux, Chess Assistant para PC, Gerhard Kalab's Chess PGN Master para Android o Giordano Estudio de ajedrez de Vicoli para iOS.

Los programas como Playchess te permiten jugar juegos contra otros jugadores a través de Internet.

Los programas de entrenamiento de ajedrez enseñan ajedrez. Chessmaster tenía tutoriales de juego del MI Josh Waitzkin y el GM Larry Christiansen . Stefan Meyer-Kahlen ofrece Shredder Chess Tutor basado en los libros de texto Step de Rob Brunia y Cor Van Wijgerden. La compañía Play Magnus de los campeones mundiales Magnus Carlsen lanzó una aplicación Magnus Trainer para Android e iOS. Chessbase tiene Fritz y Chesster para niños. Convekta ofrece una gran cantidad de aplicaciones de entrenamiento, como CT-ART y su línea Chess King, basadas en tutoriales del GM Alexander Kalinin y Maxim Blokh.

También hay software para manejar problemas de ajedrez .

Computadoras versus humanos

Después de descubrir la detección de refutación, la aplicación de la poda alfa-beta para optimizar la evaluación de movimientos, en 1957, un equipo de la Universidad Carnegie Mellon predijo que una computadora derrotaría al campeón mundial humano en 1967. No anticipó la dificultad de determinar el orden correcto. para evaluar movimientos. Los investigadores trabajaron para mejorar la capacidad de los programas para identificar heurísticas asesinas , movimientos inusualmente de alta puntuación para reexaminar al evaluar otras ramas, pero en la década de 1970, la mayoría de los mejores jugadores de ajedrez creían que las computadoras pronto no podrían jugar a un nivel de Maestro . En 1968 , el maestro internacional David Levy hizo una famosa apuesta de que ninguna computadora de ajedrez sería capaz de vencerlo dentro de diez años, y en 1976 , el maestro principal y profesor de psicología Eliot Hearst de la Universidad de Indiana escribió que "la única forma en que un programa de computadora actual podría alguna vez ganar un solo juego contra un jugador maestro sería para el maestro, tal vez en un estupor ebrio mientras juega 50 juegos simultáneamente, cometer algún error de una vez en un año".

A fines de la década de 1970, los programas de ajedrez comenzaron repentinamente a derrotar a jugadores humanos altamente calificados. El año de la declaración de Hearst, el Chess 4.5 de la Universidad Northwestern en el nivel Clase B del Campeonato Americano de Ajedrez Paul Masson se convirtió en el primero en ganar un torneo humano. Levy ganó su apuesta en 1978 al vencer a Chess 4.7 , pero logró la primera victoria por computadora contra un jugador de clase magistral a nivel de torneo al ganar una de las seis partidas. En 1980 , Belle comenzó a derrotar a menudo a Masters. Para 1982, dos programas se jugaban a nivel de maestro y tres eran un poco más débiles.

La repentina mejora sin un gran avance teórico fue inesperada, ya que muchos no esperaban que la capacidad de Belle para examinar 100.000 posiciones por segundo (alrededor de ocho capas) fuera suficiente. Los Spracklens, creadores del exitoso programa de microcomputadoras Sargon , estimaron que el 90% de la mejora provino de una velocidad de evaluación más rápida y solo el 10% de evaluaciones mejoradas. New Scientist declaró en 1982 que las computadoras "juegan un ajedrez terrible ... torpes, ineficientes, difusos y simplemente feos", pero los humanos perdieron ante ellos al cometer "errores horribles, lapsus asombrosos, descuidos incomprensibles, errores de cálculo graves y similares". mucho más a menudo de lo que se dieron cuenta; "en resumen, las computadoras ganan principalmente a través de su capacidad para encontrar y explotar los errores de cálculo en las iniciativas humanas".

Para 1982, los programas de ajedrez de microcomputadora podían evaluar hasta 1500 movimientos por segundo y eran tan fuertes como los programas de ajedrez de computadora central de cinco años antes, capaces de derrotar a la mayoría de los jugadores aficionados. Si bien solo pudieron mirar hacia adelante una o dos capas más que en su debut a mediados de la década de 1970, al hacerlo mejoraron su juego más de lo que esperaban los expertos; mejoras aparentemente menores "parecen haber permitido el cruce de un umbral psicológico, después del cual se vuelve accesible una rica cosecha de errores humanos", escribió New Scientist . Mientras revisaba SPOC en 1984, BYTE escribió que "las computadoras (mainframes, minis y micros) tienden a jugar al ajedrez feo y poco elegante", pero señaló la declaración de Robert Byrne de que "tácticamente están más libres de errores que el jugador humano promedio". La revista describió a SPOC como un "programa de ajedrez de última generación" para IBM PC con un nivel de juego "sorprendentemente alto", y estimó su calificación USCF en 1700 (Clase B).

En el Campeonato Norteamericano de Ajedrez Informático de 1982 , Monroe Newborn predijo que un programa de ajedrez podría convertirse en campeón mundial en cinco años; el director del torneo y Maestro Internacional Michael Valvo pronosticó diez años; los Spracklen predijeron 15; Ken Thompson predijo más de 20; y otros predijeron que nunca sucedería. Sin embargo, la opinión más extendida decía que ocurriría alrededor del año 2000. En 1989, Levy fue derrotado por Deep Thought en un combate de exhibición. Deep Thought, sin embargo, todavía estaba considerablemente por debajo del nivel del Campeonato Mundial, como lo demostró el actual campeón mundial, Garry Kasparov , en dos fuertes victorias en 1989. No fue hasta un partido de 1996 con Deep Blue de IBM que Kasparov perdió su primer juego contra una computadora . en los controles de tiempo del torneo en Deep Blue versus Kasparov, 1996, juego 1 . Este juego fue, de hecho, la primera vez que un campeón mundial reinante perdió ante una computadora que usaba controles de tiempo regulares. Sin embargo, Kasparov se reagrupó para ganar tres y empatar dos de los cinco juegos restantes del partido, para una victoria convincente.

En mayo de 1997, una versión actualizada de Deep Blue derrotó a Kasparov 3½–2½ en un partido de vuelta. En 2003 se realizó un documental principalmente sobre el enfrentamiento, titulado Game Over: Kasparov and the Machine .

un b C d mi F gramo h
8
Tablero de ajedrez480.svg
h7 torre blanca
f6 dama negra
h6 rey negro
d5 dama blanca
g5 caballero blanco
d4 peón negro
a3 peón blanco
b3 peón blanco
f3 peón negro
g3 peón blanco
h3 peón blanco
f2 caballero negro
h2 rey blanco
e1 torre negra
8
7 7
6 6
5 5
4 4
3 3
2 2
1 1
un b C d mi F gramo h
Posición definitiva

Con una potencia de procesamiento cada vez mayor y funciones de evaluación mejoradas, los programas de ajedrez que se ejecutan en estaciones de trabajo disponibles comercialmente comenzaron a rivalizar con los mejores jugadores. En 1998, Rebel 10 derrotó a Viswanathan Anand , quien en ese momento ocupaba el segundo lugar en el mundo, por una puntuación de 5-3. Sin embargo, la mayoría de esos juegos no se jugaron en los controles de tiempo normales. De los ocho juegos, cuatro fueron juegos blitz (cinco minutos más cinco segundos de retraso de Fischer para cada movimiento); estos Rebel ganaron 3-1. Dos fueron juegos semi-blitz (quince minutos para cada lado) que Rebel también ganó (1½–½). Finalmente, se jugaron dos partidas como partidas regulares de torneo (cuarenta jugadas en dos horas, una hora muerte súbita); aquí fue Anand quien ganó ½–1½. En los juegos rápidos, las computadoras jugaban mejor que los humanos, pero en los controles de tiempo clásicos, en los que se determina la calificación de un jugador, la ventaja no era tan clara.

A principios de la década de 2000, los programas disponibles comercialmente como Junior y Fritz pudieron empatar partidos contra el ex campeón mundial Garry Kasparov y el campeón mundial clásico Vladimir Kramnik .

En octubre de 2002, Vladimir Kramnik y Deep Fritz compitieron en el partido Brains in Bahrain de ocho juegos , que terminó en empate. Kramnik ganó los juegos 2 y 3 con tácticas anticomputadoras "convencionales" : juegue de manera conservadora para obtener una ventaja a largo plazo que la computadora no puede ver en su búsqueda del árbol del juego. Fritz, sin embargo, ganó el juego 5 después de un grave error de Kramnik. El sexto juego fue descrito por los comentaristas del torneo como "espectacular". Kramnik, en una mejor posición al principio del medio juego , intentó sacrificar una pieza para lograr un fuerte ataque táctico, una estrategia conocida por ser altamente riesgosa contra las computadoras que se defienden más fuerte contra tales ataques. Fiel a su estilo, Fritz encontró una defensa hermética y el ataque de Kramnik se agotó dejándolo en una mala posición. Kramnik renunció al juego, creyendo que la posición había perdido. Sin embargo, el análisis humano y por computadora posterior al juego ha demostrado que era poco probable que el programa Fritz hubiera podido forzar una victoria y Kramnik efectivamente sacrificó una posición empatada. Los dos juegos finales fueron empates. Dadas las circunstancias, la mayoría de los comentaristas siguen calificando a Kramnik como el jugador más fuerte del partido.

En enero de 2003, Kasparov jugó Junior , otro programa informático de ajedrez, en la ciudad de Nueva York. El partido terminó 3-3.

En noviembre de 2003, Kasparov jugó X3D Fritz . El partido terminó 2-2.

En 2005, Hydra , una computadora dedicada al ajedrez con hardware personalizado y sesenta y cuatro procesadores y también ganadora del 14° IPCCC en 2005, derrotó al séptimo clasificado Michael Adams 5½–½ en un encuentro de seis partidas (aunque la preparación de Adams fue mucho menor). completo que el de Kramnik para la serie de 2002).

En noviembre-diciembre de 2006, el campeón mundial Vladimir Kramnik jugó Deep Fritz. Esta vez ganó la computadora; el partido terminó 2-4. Kramnik pudo ver el libro de apertura de la computadora. En los primeros cinco juegos, Kramnik dirigió el juego hacia una típica competencia posicional "anti-computadora". Perdió un juego ( pasando por alto un mate en uno ), y empató los siguientes cuatro. En el juego final, en un intento por empatar el partido, Kramnik jugó la Defensa Siciliana más agresiva y fue aplastado.

Se especuló que el interés en la competencia de ajedrez entre humanos y computadoras se desplomaría como resultado del partido Kramnik-Deep Fritz de 2006. Según Newborn, por ejemplo, “la ciencia está hecha”.

Las partidas de ajedrez entre humanos y computadoras mostraron que los mejores sistemas informáticos superaron a los campeones de ajedrez humanos a fines de la década de 1990. Durante los 40 años anteriores a eso, la tendencia había sido que las mejores máquinas ganaban alrededor de 40 puntos por año en la calificación Elo, mientras que los mejores humanos solo ganaban aproximadamente 2 puntos por año. La calificación más alta obtenida por una computadora en competencia humana fue la calificación USCF de Deep Thought de 2551 en 1988 y la FIDE ya no acepta resultados humanos-computadoras en sus listas de calificación. Se han creado grupos especializados de Elo solo para máquinas para calificar máquinas, pero esos números, aunque tienen una apariencia similar, no se comparan directamente. En 2016, la Asociación Sueca de Informática de Ajedrez calificó al programa informático Komodo con 3361.

Los motores de ajedrez siguen mejorando. En 2009, los motores de ajedrez que funcionan con hardware más lento alcanzaron el nivel de gran maestro . Un teléfono móvil ganó un torneo de categoría 6 con una calificación de rendimiento de 2898: el motor de ajedrez Hiarcs 13 que se ejecuta dentro de Pocket Fritz 4 en el teléfono móvil HTC Touch HD ganó el torneo de la Copa Mercosur en Buenos Aires, Argentina con 9 victorias y 1 empate el 4 de agosto. 14 de enero de 2009. Pocket Fritz 4 busca menos de 20.000 posiciones por segundo. Esto contrasta con las supercomputadoras como Deep Blue que buscaban 200 millones de posiciones por segundo.

Advanced Chess es una forma de ajedrez desarrollada en 1998 por Kasparov donde un humano juega contra otro humano y ambos tienen acceso a computadoras para mejorar su fuerza. Kasparov argumentó que el jugador "avanzado" resultante era más fuerte que un humano o una computadora. Esto se ha demostrado en numerosas ocasiones, como en los eventos de Freestyle Chess.

Los jugadores de hoy tienden a tratar los motores de ajedrez como herramientas de análisis en lugar de oponentes. El gran maestro de ajedrez Andrew Soltis declaró en 2016 que "las computadoras son demasiado buenas" y que el campeón mundial Magnus Carlsen no jugará ajedrez de computadora porque "simplemente pierde todo el tiempo y no hay nada más deprimente que perder sin siquiera estar en el juego. "

Métodos informáticos

Desde la era de las máquinas mecánicas que jugaban finales de torre y rey ​​y las máquinas eléctricas que jugaban otros juegos como el hexágono en los primeros años del siglo XX, los científicos y teóricos han buscado desarrollar una representación procedimental de cómo los humanos aprenden, recuerdan, piensan y aplican conocimiento, y el juego de ajedrez, debido a su enorme complejidad, se convirtió en la " Drosophila de la inteligencia artificial (IA)". La resolución procesal de la complejidad se convirtió en sinónimo de pensamiento, y las primeras computadoras, incluso antes de la era de los autómatas de ajedrez, se conocían popularmente como "cerebros electrónicos". Se idearon varios esquemas diferentes a partir de la segunda mitad del siglo XX para representar el conocimiento y el pensamiento, aplicados al juego de ajedrez (y otros juegos como las damas):

Usando la heurística de "fines y medios", un jugador de ajedrez humano puede determinar intuitivamente los resultados óptimos y cómo lograrlos independientemente de la cantidad de movimientos necesarios, pero una computadora debe ser sistemática en su análisis. La mayoría de los jugadores están de acuerdo en que para jugar bien es necesario mirar al menos cinco movimientos por delante (diez capas ) cuando sea necesario. Las reglas normales de los torneos dan a cada jugador un promedio de tres minutos por jugada. En promedio, hay más de 30 movimientos legales por posición de ajedrez, por lo que una computadora debe examinar mil billones de posibilidades para anticipar diez capas (cinco movimientos completos); uno que pudiera examinar un millón de posiciones por segundo requeriría más de 30 años.

Los primeros intentos de representaciones procedimentales de jugar al ajedrez son anteriores a la era electrónica digital, pero fue la computadora digital del programa almacenado la que dio lugar al cálculo de tal complejidad. Claude Shannon, en 1949, expuso los principios de la solución algorítmica del ajedrez. En ese documento, el juego está representado por un "árbol" o estructura de datos digitales de opciones (ramas) correspondientes a movimientos. Los nodos del árbol eran posiciones en el tablero resultantes de las elecciones de movimiento. La imposibilidad de representar un juego completo de ajedrez construyendo un árbol desde el primer movimiento hasta el último se hizo evidente de inmediato: hay un promedio de 36 movimientos por posición en el ajedrez y un juego promedio dura alrededor de 35 movimientos hasta la resignación (60-80 movimientos si se juega). para dar jaque mate, punto muerto u otro empate). Hay 400 posiciones posibles después del primer movimiento de cada jugador, unas 200 000 después de dos movimientos cada uno y casi 120 millones después de solo 3 movimientos cada uno.

Por lo tanto, se propuso una anticipación limitada (búsqueda) con cierta profundidad, seguida del uso de conocimientos específicos del dominio para evaluar las posiciones de terminal resultantes. Resultaría una especie de posición intermedia, dados buenos movimientos por ambos lados, y su evaluación informaría al jugador sobre la bondad o maldad de los movimientos elegidos. Las operaciones de búsqueda y comparación en el árbol se adaptaban bien al cálculo por computadora; la representación del conocimiento sutil del ajedrez en la función de evaluación no lo era. Los primeros programas de ajedrez sufrieron en ambas áreas: la búsqueda en el vasto árbol requería recursos computacionales mucho más allá de los disponibles, y llevaría décadas descubrir qué conocimiento del ajedrez era útil y cómo debía codificarse.

Los desarrolladores de un sistema informático para jugar al ajedrez deben decidir sobre una serie de cuestiones fundamentales de implementación. Éstos incluyen:

  • Interfaz gráfica de usuario (GUI): cómo se ingresan y comunican los movimientos al usuario, cómo se graba el juego, cómo se configuran los controles de tiempo y otras consideraciones de la interfaz
  • Representación en la junta : cómo se representa una sola posición en las estructuras de datos;
  • Técnicas de búsqueda: cómo identificar los posibles movimientos y seleccionar los más prometedores para un examen más detenido;
  • Evaluación de hoja : cómo evaluar el valor de una posición en el tablero, si no se realizarán más búsquedas desde esa posición.

Adriaan de Groot entrevistó a varios ajedrecistas de diferentes fortalezas y concluyó que tanto los maestros como los principiantes miran entre cuarenta y cincuenta posiciones antes de decidir qué movimiento jugar. Lo que hace que los primeros jugadores sean mucho mejores es que usan habilidades de reconocimiento de patrones construidas a partir de la experiencia. Esto les permite examinar algunas líneas con mucha mayor profundidad que otras simplemente sin considerar movimientos que pueden suponer que son malos. Más evidencia de que este sea el caso es la forma en que a los buenos jugadores humanos les resulta mucho más fácil recordar posiciones de juegos de ajedrez genuinos, dividiéndolas en una pequeña cantidad de subposiciones reconocibles, en lugar de arreglos completamente aleatorios de las mismas piezas. Por el contrario, los jugadores pobres tienen el mismo nivel de recuerdo para ambos.

El equivalente de esto en el ajedrez informático son las funciones de evaluación para la evaluación de hojas, que corresponden a las habilidades de reconocimiento de patrones de los jugadores humanos, y el uso de técnicas de aprendizaje automático para entrenarlos, como el ajuste de Texel, el descenso de gradiente estocástico y el aprendizaje por refuerzo , que corresponde a la construcción de experiencia en jugadores humanos. Esto permite que los programas modernos examinen algunas líneas con mucha mayor profundidad que otras mediante el uso de la poda directa y otras heurísticas selectivas para simplemente no considerar los movimientos que el programa supone que son deficientes a través de su función de evaluación, de la misma manera que lo hacen los jugadores humanos. La única diferencia fundamental entre un programa de computadora y un humano en este sentido es que un programa de computadora puede buscar mucho más profundo que un jugador humano, lo que le permite buscar más nodos y evitar el efecto horizonte en una medida mucho mayor de lo que es posible con humanos . jugadores

Interfaz gráfica del usuario

Los programas de ajedrez por computadora generalmente admiten una serie de estándares comunes de facto . Casi todos los programas actuales pueden leer y escribir movimientos de juego como notación de juego portátil (PGN) y pueden leer y escribir posiciones individuales como notación de Forsyth-Edwards (FEN). Los programas de ajedrez más antiguos a menudo solo entendían la notación algebraica larga , pero los usuarios de hoy esperan que los programas de ajedrez entiendan la notación algebraica estándar .

A fines de la década de 1990, los programadores comenzaron a desarrollar motores por separado (con una interfaz de línea de comandos que calcula qué movimientos son más fuertes en una posición) o una interfaz gráfica de usuario (GUI) que proporciona al jugador un tablero de ajedrez que puede ver y las piezas. que se puede mover. Los motores comunican sus movimientos a la GUI mediante un protocolo como el Protocolo de comunicación del motor de ajedrez (CECP) o la Interfaz universal de ajedrez (UCI). Al dividir los programas de ajedrez en estas dos partes, los desarrolladores pueden escribir solo la interfaz de usuario o solo el motor, sin necesidad de escribir ambas partes del programa. (Ver también motor de ajedrez ).

Los desarrolladores tienen que decidir si conectar el motor a un libro de aperturas y/o tablas de finales o dejar esto en manos de la GUI.

Representaciones de la junta

La estructura de datos utilizada para representar cada posición de ajedrez es clave para el rendimiento de la generación de movimientos y la evaluación de posiciones . Los métodos incluyen piezas almacenadas en una matriz ("buzón" y "0x88"), posiciones de piezas almacenadas en una lista ("lista de piezas"), colecciones de conjuntos de bits para ubicaciones de piezas (" bitboards ") y posiciones codificadas Huffman para compacto almacenamiento a largo plazo.

Técnicas de búsqueda

Los programas informáticos de ajedrez consideran los movimientos de ajedrez como un árbol de juego . En teoría, examinan todos los movimientos, luego todos los movimientos contrarios a esos movimientos, luego todos los movimientos que los contrarrestan, y así sucesivamente, donde cada movimiento individual de un jugador se denomina " ply ". Esta evaluación continúa hasta una cierta profundidad de búsqueda máxima o el programa determina que se ha alcanzado una posición final de "hoja" (por ejemplo, jaque mate).

búsqueda minimax

Un tipo particular de algoritmo de búsqueda utilizado en el ajedrez por computadora son los algoritmos de búsqueda minimax , donde en cada capa se selecciona el "mejor" movimiento del jugador; un jugador está tratando de maximizar el puntaje, el otro de minimizarlo. Mediante este proceso alternativo, se llegará a un nodo terminal particular cuya evaluación representa el valor buscado de la posición. Su valor está respaldado hasta la raíz, y esa evaluación se convierte en la valoración de la posición en el tablero. Este proceso de búsqueda se llama minimax.

Una implementación ingenua del algoritmo minimax solo puede buscar a una pequeña profundidad en un período de tiempo práctico, por lo que se han ideado varios métodos para acelerar en gran medida la búsqueda de buenos movimientos. La poda alfa-beta , un sistema para definir los límites superior e inferior de los posibles resultados de búsqueda y buscar hasta que los límites coincidan, se usa normalmente para reducir el espacio de búsqueda del programa.

Además, también se utilizan varias heurísticas de búsqueda selectiva, como la búsqueda en reposo , la poda directa, las extensiones de búsqueda y las reducciones de búsqueda. Estas heurísticas se activan en función de ciertas condiciones en un intento de eliminar movimientos obviamente malos (movimientos históricos) o para investigar nodos interesantes (por ejemplo, extensiones de cheques, peones pasados ​​en séptima fila , etc.). Sin embargo, estas heurísticas de búsqueda selectiva deben usarse con mucho cuidado. Si se extiende demasiado, el programa pierde demasiado tiempo buscando posiciones poco interesantes. Si se poda o reduce demasiado, existe el riesgo de eliminar nodos interesantes.

Búsqueda del árbol de Montecarlo

La búsqueda de árbol de Monte Carlo (MCTS) es un algoritmo de búsqueda heurística que expande el árbol de búsqueda basado en un muestreo aleatorio del espacio de búsqueda. Una versión de la búsqueda de árbol de Monte Carlo comúnmente utilizada en el ajedrez informático es PUCT , Predictor y Límites superiores de confianza aplicados a los árboles.

AlphaZero y Leela Chess Zero de DeepMind usan MCTS en lugar de minimax. Dichos motores utilizan lotes en unidades de procesamiento de gráficos para calcular sus funciones y políticas de evaluación (selección de movimiento) y, por lo tanto, requieren un algoritmo de búsqueda paralelo ya que los cálculos en la GPU son inherentemente paralelos. Los algoritmos de poda minimax y alfa-beta utilizados en el ajedrez informático son algoritmos inherentemente seriales, por lo que no funcionarían bien con el procesamiento por lotes en la GPU. Por otro lado, MCTS es una buena alternativa, porque el muestreo aleatorio utilizado en la búsqueda de árboles de Monte Carlo se presta bien a la computación paralela y es por eso que casi todos los motores que admiten cálculos en la GPU usan MCTS en lugar de alfa-beta.

Otras optimizaciones

Se pueden usar muchas otras optimizaciones para fortalecer los programas de juego de ajedrez. Por ejemplo, las tablas de transposición se utilizan para registrar posiciones que han sido evaluadas previamente, para ahorrar el recálculo de las mismas. Las tablas de refutación registran movimientos clave que "refutan" lo que parece ser un buen movimiento; por lo general, estos se prueban primero en posiciones variantes (ya que es probable que un movimiento que refute una posición refuta otra). El inconveniente es que las tablas de transposición en profundidades de capas profundas pueden volverse bastante grandes, de decenas a cientos de millones de entradas. La tabla de transposición Deep Blue de IBM en 1996, por ejemplo, tenía 500 millones de entradas. Las tablas de transposición que son demasiado pequeñas pueden hacer que se dedique más tiempo a buscar entradas inexistentes debido a la trilla que el tiempo ahorrado por las entradas encontradas. Muchos motores de ajedrez utilizan la ponderación , buscando niveles más profundos en el tiempo del oponente, de forma similar a los seres humanos, para aumentar su fuerza de juego.

Por supuesto, un hardware más rápido y una memoria adicional pueden mejorar la fuerza de juego del programa de ajedrez. Las arquitecturas con hiperprocesos pueden mejorar el rendimiento modestamente si el programa se ejecuta en un solo núcleo o en una pequeña cantidad de núcleos. La mayoría de los programas modernos están diseñados para aprovechar múltiples núcleos para realizar búsquedas paralelas. Otros programas están diseñados para ejecutarse en una computadora de uso general y asignar la generación de movimientos, la búsqueda paralela o la evaluación a procesadores dedicados o coprocesadores especializados.

Historia

El primer artículo sobre búsqueda fue de Claude Shannon en 1950. Predijo las dos posibles estrategias de búsqueda principales que se utilizarían, a las que denominó "Tipo A" y "Tipo B", antes de que nadie programara una computadora para jugar al ajedrez.

Los programas de tipo A usarían un enfoque de " fuerza bruta ", examinando cada posición posible para un número fijo de movimientos usando un algoritmo minimax ingenuo puro . Shannon creía que esto no sería práctico por dos razones.

Primero, con aproximadamente treinta movimientos posibles en una posición típica de la vida real, esperaba que buscar las aproximadamente 10 9 posiciones involucradas en mirar tres movimientos hacia adelante para ambos lados (seis capas ) tomaría alrededor de dieciséis minutos, incluso en el "muy optimista" caso de que la computadora de ajedrez evaluara un millón de posiciones cada segundo. (Se necesitaron unos cuarenta años para lograr esta velocidad. Un algoritmo de búsqueda posterior llamado poda alfa-beta , un sistema para definir los límites superior e inferior de los posibles resultados de búsqueda y buscar hasta que los límites coincidieran, redujo logarítmicamente el factor de ramificación del árbol del juego, pero todavía no era factible que los programas de ajedrez en ese momento explotaran la explosión exponencial del árbol.

En segundo lugar, ignoró el problema de la inactividad, tratando de evaluar solo una posición que se encuentra al final de un intercambio de piezas u otra secuencia importante de movimientos ("líneas"). Esperaba que la adaptación de minimax para hacer frente a esto aumentaría en gran medida la cantidad de puestos que debían examinarse y ralentizaría aún más el programa. Esperaba que la adaptación del tipo A para hacer frente a esto aumentaría en gran medida el número de puestos que debían examinarse y ralentizaría aún más el programa.

Esto condujo naturalmente a lo que se conoce como "búsqueda selectiva" o "búsqueda de tipo B", utilizando conocimientos de ajedrez (heurística) para seleccionar algunos movimientos presumiblemente buenos de cada posición para buscar y eliminar los demás sin buscar. En lugar de desperdiciar el poder de procesamiento examinando movimientos malos o triviales, Shannon sugirió que los programas de tipo B utilizarían dos mejoras:

  1. Emplear una búsqueda de reposo .
  2. Emplear poda hacia adelante; es decir, solo mire algunos buenos movimientos para cada posición.

Esto les permitiría mirar más adelante ("más profundo") en las líneas más significativas en un tiempo razonable.

Sin embargo, los primeros intentos de búsqueda selectiva a menudo dieron como resultado que el mejor movimiento o movimientos fueran eliminados. Como resultado, se avanzó poco o nada durante los siguientes 25 años dominados por esta primera iteración del paradigma de búsqueda selectiva. El mejor programa producido en este período inicial fue Mac Hack VI en 1967; jugó aproximadamente al mismo nivel que el aficionado promedio (clase C en la escala de calificación de la Federación de Ajedrez de los Estados Unidos).

Mientras tanto, el hardware siguió mejorando y, en 1974, se implementó por primera vez la búsqueda de fuerza bruta en el programa Northwestern University Chess 4.0. En este enfoque, se buscan todos los movimientos alternativos en un nodo y no se elimina ninguno. Descubrieron que el tiempo requerido para simplemente buscar todos los movimientos era mucho menor que el tiempo requerido para aplicar heurísticas intensivas en conocimiento para seleccionar solo algunos de ellos, y el beneficio de no eliminar los buenos movimientos prematuramente o sin darse cuenta resultó en un rendimiento sustancialmente más fuerte. .

En las décadas de 1980 y 1990, finalmente se avanzó en el paradigma de la búsqueda selectiva, con el desarrollo de la búsqueda en reposo , la poda de movimiento nulo y otras heurísticas modernas de búsqueda selectiva. Estas heurísticas tenían muchos menos errores que las heurísticas anteriores, y se descubrió que valía la pena el tiempo extra que ahorraban porque podían buscar más profundamente y ser ampliamente adoptadas por muchos motores. Si bien muchos programas modernos utilizan la búsqueda alfa-beta como sustrato para su algoritmo de búsqueda, estas heurísticas de búsqueda selectiva adicionales utilizadas en los programas modernos significan que el programa ya no realiza una búsqueda de "fuerza bruta". En cambio, confían en gran medida en estas heurísticas de búsqueda selectiva para extender las líneas que el programa considera buenas y podar y reducir las líneas que el programa considera malas, hasta el punto en que la mayoría de los nodos en el árbol de búsqueda se eliminan, lo que permite que los programas modernos busquen muy profundamente.

En 2006, Rémi Coulom creó la búsqueda en árbol de Monte Carlo , otro tipo de búsqueda selectiva de tipo B. En 2007, Levente Kocsis y Csaba Szepesvári crearon una adaptación de la búsqueda de árbol de Monte Carlo llamada Límites superiores de confianza aplicados a árboles o UCT para abreviar. En 2011, Chris Rosin desarrolló una variación de UCT llamada Predictor + Límites superiores de confianza aplicados a árboles, o PUCT para abreviar. Luego, PUCT se usó en AlphaZero en 2017 y luego en Leela Chess Zero en 2018.

Conocimiento versus búsqueda (velocidad del procesador)

En la década de 1970, la mayoría de los programas de ajedrez se ejecutaban en superordenadores como Control Data Cyber ​​176 o Cray-1, lo que indica que durante ese período de desarrollo del ajedrez informático, la potencia de procesamiento era el factor limitante del rendimiento. La mayoría de los programas de ajedrez tuvieron problemas para buscar a una profundidad superior a 3 capas. No fue hasta las máquinas de ajedrez de hardware de la década de 1980, que se hizo evidente una relación entre la velocidad del procesador y el conocimiento codificado en la función de evaluación.

Se ha estimado que al duplicar la velocidad de la computadora se obtienen aproximadamente de cincuenta a setenta puntos Elo en la fuerza de juego ( Levy & Newborn 1991 : 192).

Evaluación de hojas

Para la mayoría de las posiciones de ajedrez, las computadoras no pueden anticipar todas las posibles posiciones finales. En cambio, deben mirar hacia adelante algunas capas y comparar las posiciones posibles, conocidas como hojas. El algoritmo que evalúa las hojas se denomina " función de evaluación ", y estos algoritmos suelen ser muy diferentes entre los diferentes programas de ajedrez. Las funciones de evaluación suelen evaluar las posiciones en centésimas de peón (llamado centipawn), donde, por convención, una evaluación positiva favorece a las blancas y una evaluación negativa favorece a las negras. Sin embargo, algunas funciones de evaluación generan porcentajes de ganancia/empate/pérdida en lugar de centipawns.

Históricamente, las funciones de evaluación artesanales consideran el valor material junto con otros factores que afectan la fuerza de cada lado. Al contar el material para cada lado, los valores típicos para las piezas son 1 punto por un peón , 3 puntos por un caballo o alfil , 5 puntos por una torre y 9 puntos por una reina . (Consulte Valor relativo de la pieza de ajedrez ). A veces, al rey se le asigna un valor alto arbitrario, como 200 puntos ( documento de Shannon ) para garantizar que un jaque mate supere todos los demás factores ( Levy & Newborn 1991 : 45). Además de los puntos por piezas, la mayoría de las funciones de evaluación artesanales tienen en cuenta muchos factores, como la estructura de los peones, el hecho de que un par de alfiles suelen valer más, las piezas centralizadas valen más, etc. Se suele considerar la protección de los reyes, así como la fase del juego (apertura, medio o final). Las técnicas de aprendizaje automático , como el giro de Texel, el descenso de gradiente estocástico o el aprendizaje por refuerzo, se suelen utilizar para optimizar las funciones de evaluación artesanales.

La mayoría de las funciones de evaluación modernas utilizan redes neuronales . La función de evaluación más común que se usa hoy en día es la red neuronal actualizable de manera eficiente , que es una red neuronal poco profunda cuyas entradas son tablas de piezas cuadradas . Las tablas de piezas cuadradas son un conjunto de 64 valores correspondientes a las casillas del tablero de ajedrez y, por lo general, existe una tabla de piezas cuadradas para cada pieza y color, lo que da como resultado tablas de 12 piezas cuadradas y, por lo tanto, 768 entradas en la red neuronal. Además, algunos motores utilizan redes neuronales profundas en su función de evaluación. Las redes neuronales generalmente se entrenan utilizando algún algoritmo de aprendizaje por refuerzo , junto con el aprendizaje supervisado o el aprendizaje no supervisado .

La salida de la función de evaluación es un escalar único, cuantificado en centipawns u otras unidades, que es, en el caso de funciones de evaluación artesanales, una suma ponderada de los diversos factores descritos, o en el caso de funciones de evaluación basadas en redes neuronales, la salida de la cabecera de la red neuronal. La evaluación supuestamente representa o aproxima el valor del subárbol debajo del nodo evaluado como si hubiera sido buscado hasta la terminación, es decir, el final del juego. Durante la búsqueda, se compara una evaluación con las evaluaciones de otras hojas, eliminando los nodos que representan malas o malas jugadas para cualquiera de los lados, para producir un nodo que, por convergencia, representa el valor de la posición con mejor juego de ambos lados.

Bases de tablas de finales

El juego de finales había sido durante mucho tiempo una de las grandes debilidades de los programas de ajedrez debido a la profundidad de búsqueda necesaria. Algunos programas de otro nivel de maestría no pudieron ganar en posiciones donde incluso los jugadores humanos intermedios podrían forzar una victoria.

Para resolver este problema, se han utilizado computadoras para analizar completamente algunas posiciones de finales de ajedrez , comenzando con rey y peón contra rey. Estas bases de tablas de finales se generan de antemano utilizando una forma de análisis retrógrado , comenzando con posiciones en las que se conoce el resultado final (p. ej., donde se ha dado mate a un lado) y viendo qué otras posiciones están a un movimiento de distancia de ellas, luego cuáles están a un movimiento. de esos, etc. Ken Thompson fue un pionero en esta área.

Los resultados del análisis por computadora a veces sorprendían a la gente. En 1977, la máquina de ajedrez Belle de Thompson usó la base de la tabla de finales para un rey y una torre contra rey y una dama y pudo dibujar ese final teóricamente perdido contra varios maestros (ver Posición de Philidor # Reina contra torre ). Esto fue a pesar de no seguir la estrategia habitual de retrasar la derrota manteniendo al rey y la torre defensores juntos durante el mayor tiempo posible. Cuando se le pidió que explicara las razones detrás de algunos de los movimientos del programa, Thompson no pudo hacerlo más allá de decir que la base de datos del programa simplemente devolvió los mejores movimientos.

La mayoría de los grandes maestros se negaron a jugar contra la computadora en el final de dama contra torre, pero Walter Browne aceptó el desafío. Se estableció una posición de dama contra torre en la que la dama puede ganar en treinta movimientos, con un juego perfecto. A Browne se le permitieron dos horas y media para jugar cincuenta movimientos, de lo contrario, se reclamaría un empate según la regla de los cincuenta movimientos . Después de cuarenta y cinco movimientos, Browne acordó tablas, al no poder forzar el jaque mate o ganar la torre en los siguientes cinco movimientos. En la posición final, Browne todavía estaba a diecisiete movimientos del jaque mate, pero no tan lejos de ganar la torre. Browne estudió el final del juego y volvió a jugar con la computadora una semana después en una posición diferente en la que la dama puede ganar en treinta movimientos. Esta vez, capturó la torre en el movimiento quincuagésimo, dándole una posición ganadora ( Levy & Newborn 1991 :144–48), ( Nunn 2002 :49).

Otras posiciones, que durante mucho tiempo se creyó ganadas, resultaron requerir más movimientos contra el juego perfecto para ganar de lo que permitía la regla de los cincuenta movimientos del ajedrez. Como consecuencia, durante algunos años se modificaron las reglas oficiales de ajedrez de la FIDE para ampliar el número de jugadas permitidas en estos finales. Después de un tiempo, la regla volvió a cincuenta movimientos en todas las posiciones: se descubrieron más posiciones de este tipo, lo que complicó aún más la regla, y no hizo ninguna diferencia en el juego humano, ya que no podían jugar las posiciones perfectamente.

A lo largo de los años, se han lanzado otros formatos de bases de datos de finales, incluidos Edward Tablebase, De Koning Database y Nalimov Tablebase, que es utilizado por muchos programas de ajedrez como Rybka , Shredder y Fritz . Se encuentran disponibles bases de mesa para todas las posiciones con seis piezas. Algunos finales de siete piezas han sido analizados por Marc Bourzutschky y Yakov Konoval. Los programadores que utilizan las supercomputadoras Lomonosov en Moscú han completado una tabla de ajedrez para todos los finales con siete piezas o menos (se excluyen las posiciones triviales de finales, como seis piezas blancas contra un rey negro solitario ). En todas estas bases de datos de finales se supone que el enroque ya no es posible.

Muchas tablas no consideran la regla de los cincuenta movimientos, según la cual un juego en el que pasan cincuenta movimientos sin una captura o movimiento de peón puede ser reclamado como un empate por cualquiera de los jugadores. Esto da como resultado que la base de la tabla arroje resultados como "mate forzado en sesenta y seis movimientos" en algunas posiciones que en realidad se dibujarían debido a la regla de los cincuenta movimientos. Una razón para esto es que si las reglas del ajedrez se cambiaran una vez más, dando más tiempo para ganar tales posiciones, no sería necesario regenerar todas las bases de la tabla. También es muy fácil para el programa que usa las bases de tablas notar y tener en cuenta esta 'característica' y, en cualquier caso, si usa una base de tablas de finales, elegirá el movimiento que conduce a la victoria más rápida (incluso si no cumple con los cincuenta). -regla de movimiento con juego perfecto). Si juegas contra un oponente que no usa una base de mesa, esa elección te dará buenas posibilidades de ganar en cincuenta movimientos.

Las bases de tablas de Nalimov, que utilizan técnicas de compresión de última generación , requieren 7,05 GB de espacio en el disco duro para todos los finales de cinco piezas. Para cubrir todos los finales de seis piezas se requieren aproximadamente 1,2 TB . Se estima que una base de mesa de siete piezas requiere entre 50 y 200 TB de espacio de almacenamiento.

Las bases de datos de finales ocuparon un lugar destacado en 1999, cuando Kasparov jugó un partido de exhibición en Internet contra el resto del mundo . Se llegó a un final de dama y peón de siete piezas con el Equipo Mundial luchando por salvar las tablas. Eugene Nalimov ayudó generando la base final de la tabla de seis piezas donde ambos lados tenían dos reinas, lo que se usó mucho para ayudar en el análisis de ambos lados.

libro de apertura

Los módulos de ajedrez, al igual que los seres humanos, pueden ahorrar tiempo de procesamiento, así como seleccionar fuertes variaciones tal como las exponen los maestros, al hacer referencia a un libro de aperturas almacenado en una base de datos en disco. Los libros de apertura cubren los movimientos de apertura de un juego con una profundidad variable, según la apertura y la variación, pero generalmente hasta los primeros 10-12 movimientos (20-24 capas). Dado que las aperturas han sido estudiadas en profundidad por los maestros durante siglos, y algunas se conocen bien en el medio juego, las valoraciones de variaciones específicas por parte de los maestros generalmente serán superiores a las heurísticas generales del programa.

Mientras que en un momento, jugar un movimiento fuera del libro para poner el programa de ajedrez en sus propios recursos podría haber sido una estrategia efectiva porque los libros de apertura de ajedrez eran selectivos para el estilo de juego del programa, y ​​los programas tenían debilidades notables en relación con los humanos. , eso ya no es cierto hoy en día. Los libros de apertura almacenados en las bases de datos de la computadora probablemente sean mucho más extensos que incluso los humanos mejor preparados, y jugar un movimiento temprano fuera del libro puede hacer que la computadora encuentre el movimiento inusual en su libro y cargue al oponente con una gran desventaja. . Incluso si no es así, jugar fuera del libro puede ser mucho mejor para los programas de ajedrez tácticamente agudos que para los humanos que tienen que descubrir movimientos fuertes en una variación desconocida sobre el tablero.

Listas de clasificación de ajedrez por computadora

CEGT , CSS, SSDF , WBEC, REBEL , FGRL e IPON mantienen listas de calificación que permiten a los fanáticos comparar la potencia de los motores. Varias versiones de Stockfish , Komodo , Leela Chess Zero y Fat Fritz dominan las listas de clasificación a principios de la década de 2020.

CCRL (Computer Chess Rating Lists) es una organización que prueba la fuerza de los motores de ajedrez de la computadora al jugar los programas entre sí. CCRL se fundó en 2006 para promover la competencia entre computadoras y tabular los resultados en una lista de clasificación.

La organización ejecuta tres listas diferentes: 40/40 (40 minutos por cada 40 jugadas jugadas), 40/4 (4 minutos por cada 40 jugadas jugadas) y 40/4 FRC (mismo control de tiempo pero Chess960). La reflexión (o el cerebro permanente ) se apaga y el tiempo se ajusta a la CPU AMD64 X2 4600+ (2,4 GHz) utilizando Crafty 19.17 BH como punto de referencia. Se utilizan libros de apertura genéricos y neutrales (a diferencia del propio libro del motor) hasta un límite de 12 movimientos en el juego junto con bases de mesa de 4 o 5 jugadores .

Historia

La era anterior a la computadora

La idea de crear una máquina para jugar al ajedrez se remonta al siglo XVIII. Alrededor de 1769, el autómata de ajedrez llamado El Turco , creado por el inventor húngaro Farkas Kempelen , se hizo famoso antes de ser descubierto como un engaño. Antes del desarrollo de la computación digital , las pruebas serias basadas en autómatas como El Ajedrecista de 1912, que jugaba un final de rey y torre contra rey, eran demasiado complejas y limitadas para ser útiles para jugar partidas completas de ajedrez. El campo de la investigación del ajedrez mecánico languideció hasta la llegada de la computadora digital en la década de 1950.

Primera era del software: búsqueda selectiva

Desde entonces, los entusiastas del ajedrez y los ingenieros informáticos han construido, con grados crecientes de seriedad y éxito, máquinas para jugar al ajedrez y programas informáticos. Uno de los pocos grandes maestros de ajedrez que se dedicó seriamente al ajedrez por computadora fue el ex campeón mundial de ajedrez Mikhail Botvinnik , quien escribió varios trabajos sobre el tema. También obtuvo un doctorado en ingeniería eléctrica. Trabajando con hardware relativamente primitivo disponible en la Unión Soviética a principios de la década de 1960, Botvinnik no tuvo más remedio que investigar técnicas de selección de movimientos de software; en ese momento, solo las computadoras más poderosas podían lograr mucho más que una búsqueda de ancho completo de tres capas, y Botvinnik no tenía tales máquinas. En 1965, Botvinnik fue consultor del equipo ITEP en un partido de ajedrez por computadora entre Estados Unidos y la Unión Soviética (ver Kotok-McCarthy ).

La última era del software: búsqueda de ancho completo

Un hito en el desarrollo ocurrió cuando el equipo de la Universidad Northwestern , responsable de la serie de programas Chess y ganó los primeros tres Campeonatos de Ajedrez Informático ACM (1970–72), abandonó la búsqueda tipo B en 1973. El programa resultante, Chess 4.0, ganó El campeonato de ese año y sus sucesores llegaron en segundo lugar tanto en el Campeonato ACM de 1974 como en el Campeonato Mundial de Ajedrez Informático inaugural de ese año , antes de volver a ganar el Campeonato ACM en 1975, 1976 y 1977. La implementación del tipo A resultó ser igual de rápido: en el tiempo que solía llevar decidir qué movimientos valían la pena buscar, era posible buscarlos todos. De hecho, el Ajedrez 4.0 estableció el paradigma que fue y sigue siendo esencialmente seguido por todos los programas modernos de Ajedrez en la actualidad.

El auge de las máquinas de ajedrez

En 1978, una versión temprana de la máquina de ajedrez de hardware de Ken Thompson, Belle , ingresó y ganó el Campeonato de ajedrez informático de América del Norte sobre el dominante Northwestern University Chess 4.7.

La revolución de las microcomputadoras

Los avances tecnológicos por órdenes de magnitud en el poder de procesamiento han hecho que el enfoque de la fuerza bruta sea mucho más incisivo que en los primeros años. El resultado es que un jugador de IA táctico muy sólido, ayudado por un conocimiento posicional limitado integrado por la función de evaluación y las reglas de poda/extensión, comenzó a igualar a los mejores jugadores del mundo. Resultó producir excelentes resultados, al menos en el campo del ajedrez, dejar que las computadoras hicieran lo que mejor saben hacer (calcular) en lugar de persuadirlas para que imitaran los procesos de pensamiento y el conocimiento humanos. En 1997 , Deep Blue , una máquina de fuerza bruta capaz de examinar 500 millones de nodos por segundo, derrotó al campeón mundial Garry Kasparov, marcando la primera vez que una computadora derrota a un campeón mundial de ajedrez en control de tiempo estándar.

ajedrez sobrehumano

En 2016, NPR pidió a los expertos que caracterizaran el estilo de juego de los motores de ajedrez informáticos. Murray Campbell de IBM declaró que "las computadoras no tienen ningún sentido de la estética... Juegan lo que creen que es objetivamente el mejor movimiento en cualquier posición, incluso si parece absurdo, y pueden jugar cualquier movimiento sin importar lo feo que sea". es." Los grandes maestros Andrew Soltis y Susan Polgar afirmaron que es más probable que las computadoras retrocedan que los humanos.

La revolución de las redes neuronales

Si bien las redes neuronales se han utilizado en las funciones de evaluación de los motores de ajedrez desde finales de la década de 1980, con programas como NeuroChess, Morph, Blondie25, Giraffe, AlphaZero y MuZero , las redes neuronales no fueron ampliamente adoptadas por los motores de ajedrez hasta la llegada de sistemas eficientes . redes neuronales actualizables en el verano de 2020. Las redes neuronales eficientemente actualizables fueron desarrolladas originalmente en computadora shogi en 2018 por Yu Nasu, y primero tuvieron que ser portadas a un derivado de Stockfish llamado Stockfish NNUE el 31 de mayo de 2020, e integrado en el Stockfish oficial motor el 6 de agosto de 2020, antes de que otros programadores de ajedrez comenzaran a adoptar redes neuronales en sus motores.

Algunas personas, como Venki Ramakrishnan de la Royal Society , creen que AlphaZero condujo a la adopción generalizada de redes neuronales en los motores de ajedrez. Sin embargo, AlphaZero influyó en muy pocos motores para que comenzaran a usar redes neuronales, y estos tendían a ser nuevos motores experimentales como Leela Chess Zero , que comenzó específicamente a replicar el papel de AlphaZero. Las redes neuronales profundas utilizadas en la función de evaluación de AlphaZero requerían costosas unidades de procesamiento de gráficos , que no eran compatibles con los motores de ajedrez existentes. La gran mayoría de los motores de ajedrez solo usan unidades de procesamiento central , y la información de procesamiento y computación en las GPU requiere bibliotecas especiales en el backend, como CUDA de Nvidia , a las que ninguno de los motores tenía acceso. Por lo tanto, la gran mayoría de los motores de ajedrez como Komodo y Stockfish continuaron utilizando funciones de evaluación artesanales hasta que las redes neuronales actualizables de manera eficiente se trasladaron al ajedrez informático en 2020, lo que no requería el uso de GPU o bibliotecas como CUDA. Incluso entonces, las redes neuronales utilizadas en el ajedrez por computadora son bastante superficiales, y los métodos de aprendizaje de refuerzo profundo promovidos por AlphaZero todavía son extremadamente raros en el ajedrez por computadora.

Cronología

  • 1769 – Wolfgang von Kempelen construye el Turk . Presentado como un autómata que juega al ajedrez, es operado en secreto por un jugador humano escondido dentro de la máquina.
  • 1868: Charles Hooper presenta el autómata Ajeeb , que también tiene un jugador de ajedrez humano escondido en su interior.
  • 1912 – Leonardo Torres y Quevedo construye El Ajedrecista , una máquina que podía jugar finales de rey y torre contra rey .
  • 1941 – Precediendo al trabajo comparable por al menos una década, Konrad Zuse desarrolla algoritmos de ajedrez por computadora en su formalismo de programación Plankalkül . Sin embargo, debido a las circunstancias de la Segunda Guerra Mundial, no se publicaron ni salieron a la luz hasta la década de 1970.
  • 1948: el libro Cybernetics de Norbert Wiener describe cómo se podría desarrollar un programa de ajedrez utilizando una búsqueda minimax limitada en profundidad con una función de evaluación .
  • 1950: Claude Shannon publica "Programación de una computadora para jugar al ajedrez", uno de los primeros artículos sobre los métodos algorítmicos del ajedrez por computadora.
  • 1951: Alan Turing es el primero en publicar un programa, desarrollado en papel, que era capaz de jugar un juego completo de ajedrez (llamado Turochamp ).
  • 1952 – Dietrich Prinz desarrolla un programa que resuelve problemas de ajedrez.
un b C d mi F
6 a6 torre negra b6 caballo negro c6 dama negra d6 rey negro e6 caballo negro f6 torre negra 6
5 a5 peón negro b5 peón negro c5 peón negro d5 peón negro e5 peón negro f5 peón negro 5
4 a4 b4 c4 d4 e4 f4 4
3 a3 b3 c3 d3 e3 f3 3
2 a2 peón blanco b2 peón blanco c2 peón blanco d2 peón blanco e2 peón blanco f2 peón blanco 2
1 a1 torre blanca b1 caballero blanco c1 reina blanca d1 rey blanco e1 caballero blanco torre blanca f1 1
un b C d mi F
Ajedrez de Los Álamos . Esta versión simplificada del ajedrez fue jugada en 1956 por lacomputadora MANIAC I.
  • 1956 - El ajedrez de Los Alamos es el primer programa para jugar un juego similar al ajedrez, desarrollado por Paul Stein y Mark Wells para la computadora MANIAC I.
  • 1956: John McCarthy inventa el algoritmo de búsqueda alfa-beta .
  • 1957: se desarrollan los primeros programas que pueden jugar un juego completo de ajedrez, uno por Alex Bernstein y otro por programadores rusos que utilizan un BESM .
  • 1958: NSS se convierte en el primer programa de ajedrez en utilizar el algoritmo de búsqueda alfa-beta.
  • 1962 – El primer programa para jugar con credibilidad, Kotok-McCarthy , se publica en el MIT .
  • 1963: el gran maestro David Bronstein derrota a un M-20 que ejecuta un programa de ajedrez temprano.
  • 1966–67: se juega el primer partido de ajedrez entre programas de computadora. El Instituto de Física Teórica y Experimental de Moscú (ITEP) derrota a Kotok-McCarthy en la Universidad de Stanford por telégrafo durante nueve meses.
  • 1967 – Mac Hack VI , por Richard Greenblatt et al. introduce tablas de transposición y emplea docenas de heurísticas de selección de movimientos cuidadosamente ajustadas; se convierte en el primer programa en derrotar a una persona en un torneo. Mac Hack VI jugó sobre el nivel de clase C.
  • 1968 – El campeón escocés de ajedrez David Levy hace una apuesta de 500 libras con los pioneros de la IA John McCarthy y Donald Michie de que ningún programa de computadora le ganaría una partida de ajedrez en 10 años.
  • 1970 – Monty Newborn y la Asociación de Maquinaria Informática organizan el primer Campeonato Norteamericano de Ajedrez Informático en Nueva York.
  • 1971: Ken Thompson , un informático estadounidense de Bell Labs y creador del sistema operativo Unix, escribe su primer programa de juego de ajedrez llamado "ajedrez" para la primera versión de Unix .
  • 1974 – David Levy , Ben Mittman y Monty Newborn organizan el primer Campeonato Mundial de Ajedrez Informático que gana el programa ruso Kaissa .
  • 1975: después de casi una década de progreso marginal desde el punto más alto de MacHack VI de Greenblatt en 1967, se presenta Northwestern University Chess 4.5 con búsqueda de ancho completo e innovaciones de bitboards y profundización iterativa. También restableció una tabla de transposición como se vio por primera vez en el programa de Greenblatt. Por lo tanto, fue el primer programa con una estructura moderna integrada y se convirtió en el modelo para todo el desarrollo futuro. Chess 4.5 jugó fuerte en la clase B y ganó el 3er Campeonato Mundial de Ajedrez Informático al año siguiente. Northwestern University Chess y sus descendientes dominaron el ajedrez por computadora hasta la era de las máquinas de ajedrez de hardware a principios de la década de 1980.
  • 1976: en diciembre, el programador canadiense Peter R. Jennings lanza Microchess , el primer juego para microcomputadoras que se vende.
Lanzado en 1977, Boris fue uno de los primeros ordenadores de ajedrez que se comercializó ampliamente. Se ejecutó en un microprocesador Fairchild F8 de 8 bits con solo 2,5 KiB de ROM y 256 bytes de RAM.
  • 1977: en marzo, Fidelity Electronics lanza Chess Challenger , la primera computadora de ajedrez dedicada a la venta. La Asociación Internacional de Ajedrez Informático está fundada por programadores de ajedrez para organizar campeonatos de ajedrez informático e informar sobre investigaciones y avances en ajedrez informático en su revista. También ese año, Applied Concepts lanzó Boris , una computadora dedicada al ajedrez en una caja de madera con piezas de ajedrez de plástico y un tablero plegable.
  • 1978: David Levy gana la apuesta realizada 10 años antes, derrotando a Chess 4.7 en un partido de seis partidas con una puntuación de 4½–1½. La victoria de la computadora en el cuarto juego es la primera derrota de un maestro humano en un torneo.
  • 1979 – Frederic Friedel organiza una partida entre el MI David Levy y el Ajedrez 4.8 , que es retransmitida por la televisión alemana. Levy y Chess 4.8, que se ejecutan en una CDC Cyber ​​176, la computadora más poderosa del mundo, lucharon en un agotador empate de 89 movimientos.
  • 1980: las computadoras Fidelity ganan el Campeonato Mundial de Microcomputadoras cada año desde 1980 hasta 1984. En Alemania, Hegener & Glaser lanzan su primera computadora dedicada al ajedrez Mephisto . La USCF prohíbe que las computadoras compitan en torneos humanos excepto cuando estén representadas por los creadores de los sistemas de ajedrez. Se establece el Premio Fredkin, que ofrece 100.000 dólares al creador de la primera máquina de ajedrez que derrote al campeón mundial de ajedrez.
  • 1981: Cray Blitz gana el campeonato estatal de Mississippi con una puntuación perfecta de 5-0 y una calificación de rendimiento de 2258. En la ronda 4, derrota a Joe Sentef (2262) para convertirse en la primera computadora en vencer a un maestro en un torneo y la primera computadora en obtener una calificación maestra.
  • 1984: la línea Mephisto de computadoras de ajedrez dedicadas de la compañía alemana Hegener & Glaser comienza una larga racha de victorias (1984-1990) en el Campeonato Mundial de Microcomputadoras utilizando computadoras dedicadas que ejecutan los programas ChessGenius y Rebel .
  • 1986: Software Country (ver Software Toolworks ) lanzó Chessmaster 2000 basado en un motor de David Kittinger, la primera edición de lo que se convertiría en la línea de programas de ajedrez más vendida del mundo.
  • 1987 – Frederic Friedel y el físico Matthias Wüllenweber fundan Chessbase , lanzando el primer programa de base de datos de ajedrez. Stuart Cracraft lanza GNU Chess , uno de los primeros ' motores de ajedrez ' que se incluye con una interfaz gráfica de usuario (GUI) separada, chesstool.
  • 1988 – HiTech , desarrollado por Hans Berliner y Carl Ebeling , gana un partido contra el gran maestro Arnold Denker 3½–½. Deep Thought comparte el primer lugar con Tony Miles en el Campeonato de Software Toolworks, por delante del ex campeón mundial Mikhail Tal y varios grandes maestros, incluidos Samuel Reshevsky , Walter Browne y Mikhail Gurevich . También vence al gran maestro Bent Larsen , convirtiéndose en la primera computadora en vencer a un GM en un torneo. Su calificación de desempeño en este torneo de 2745 (escala USCF) fue la más alta obtenida por un jugador de computadora.
  • 1989: Deep Thought derriba a David Levy en un partido de 4 juegos 0-4, poniendo fin a su famosa serie de apuestas que comenzó en 1968.
  • 1990: el 25 de abril, el ex campeón mundial Anatoly Karpov perdió en una simultánea contra la computadora de ajedrez Mephisto Portorose M68030 de Hegener & Glaser.
  • 1991 - La ChessMachine basada en Rebel de Ed Schröder gana el Campeonato Mundial de Ajedrez de Microcomputadoras
  • 1992: ChessMachine gana el 7º Campeonato Mundial de Ajedrez por Computadora , la primera vez que una microcomputadora vence a las mainframes . El GM John Nunn publica Secrets of Rook Endings , el primer libro basado en tablas de finales desarrollado por Ken Thompson .
  • 1993 – Deep Thought-2 pierde un partido de cuatro juegos contra Bent Larsen . Los programas de ajedrez que se ejecutan en computadoras personales superan a las computadoras de ajedrez dedicadas de Mephisto para ganar el Campeonato de Microcomputadoras, marcando un cambio de hardware de ajedrez dedicado a software en computadoras personales multipropósito.
  • 1995: Fritz 3 , que se ejecuta en una PC Pentium de 90 MHz, vence a la máquina de ajedrez dedicada Deep Thought-2 y a los programas que se ejecutan en varias supercomputadoras, para ganar el 8º Campeonato Mundial de Ajedrez Informático en Hong Kong. Esta es la primera vez que un programa de ajedrez que se ejecuta en hardware básico vence a máquinas de ajedrez especializadas y supercomputadoras masivas, lo que indica un cambio en el énfasis del poder computacional bruto a las mejoras algorítmicas en la evolución de los motores de ajedrez.
  • 1996: Deep Blue de IBM pierde un partido de seis juegos contra Garry Kasparov , 2–4.
  • 1997 – Deep(er) Blue , una versión altamente modificada del original, gana un partido de seis juegos contra Garry Kasparov , 3.5-2.5.
  • 2000: Stefan Meyer-Kahlen y Rudolf Huber redactan Universal Chess Interface , un protocolo para que las GUI se comuniquen con los motores que gradualmente se convertiría en la forma principal que tomarían los nuevos motores.
  • 2002: Vladimir Kramnik empata un partido de ocho juegos contra Deep Fritz .
  • 2003: Kasparov empata un partido de seis juegos contra Deep Junior y empata un partido de cuatro juegos contra X3D Fritz .
  • 2004: un equipo de computadoras ( Hydra , Deep Junior y Fritz ) gana 8½–3½ contra un fuerte equipo humano formado por Veselin Topalov , Ruslan Ponomariov y Sergey Karjakin , que tenía una calificación Elo promedio de 2681. Fabien Letouzey publica el código fuente de Fruit 2.1, un motor bastante competitivo con los mejores motores de código cerrado de la época. Esto lleva a muchos autores a revisar su código, incorporando las nuevas ideas.
  • 2005 – Rybka gana el torneo IPCCC y muy pronto se convierte en el motor más fuerte.
  • 2006 – El campeón mundial, Vladimir Kramnik , es derrotado 4-2 por Deep Fritz .
  • 2009 – Bolsillo Fritz . 4 ejecutándose en un teléfono inteligente, gana la Copa Mercosur, un torneo internacional de nivel Master, con una puntuación de 9½/10 y una calificación de rendimiento de 2900. Un grupo de programadores rusos seudónimos libera el código fuente de Ippolit, un motor aparentemente más fuerte que Rybka . Esto se convierte en la base de los motores Robbolito e Ivanhoe, y muchos autores de motores adoptan ideas de él.
  • 2010: antes del Campeonato Mundial de Ajedrez de 2010 , Topalov se prepara luchando contra la supercomputadora Blue Gene con 8192 procesadores capaces de 500 billones (5 × 10 14 ) de operaciones de punto flotante por segundo. El desarrollador de Rybka, Vasik Rajlich , acusa a Ippolit de ser un clon de Rybka.
  • 2011: ICGA despoja a Rybka de sus títulos de WCCC.
  • 2017: AlphaZero , un autómata digital basado en redes neuronales, vence a Stockfish 28–0, con 72 empates, en un partido de 100 juegos.
  • 2018: se inventa la evaluación de la red neuronal actualizable eficientemente (NNUE) para el shogi informático .
  • 2019: Leela Chess Zero (LCZero v0.21.1-nT40.T8.610), un motor de ajedrez basado en AlphaZero, derrota a Stockfish 19050918 en una partida de 100 partidas con una puntuación final de 53,5 a 46,5 para ganar la temporada 15 de TCEC .
  • 2020: se agrega NNUE a la evaluación de Stockfish , lo que aumenta notablemente su fuerza.

Categorizaciones

hardware dedicado

Estos sistemas de juego de ajedrez incluyen hardware personalizado con aprox. fechas de introducción (excluyendo microcomputadoras dedicadas):

Computadoras dedicadas comerciales

Computadora de viaje de ajedrez Boris Diplomat (1979)
Fidelity Voice Chess Challenger (1979), la primera computadora de ajedrez parlante
Salida de voz de Voice Chess Challenger
Milton Bradley Grandmaster (1983), la primera computadora de ajedrez automática comercial
Novag Super Constellation (1984), conocido por su estilo de juego similar al humano
DGT Centaur (2019), una computadora de ajedrez moderna basada en Stockfish que se ejecuta en una Raspberry Pi

A fines de la década de 1970 y principios de la de 1990, había un mercado competitivo para las computadoras dedicadas al ajedrez. Este mercado cambió a mediados de la década de 1990 cuando las computadoras con procesadores dedicados ya no podían competir con los procesadores rápidos de las computadoras personales.

  • Boris en 1977 y Boris Diplomat en 1979, computadoras de ajedrez que incluyen piezas y tablero, vendidas por Applied Concepts Inc.
  • Chess Challenger, una línea de computadoras de ajedrez vendidas por Fidelity Electronics de 1977 a 1992. Estos modelos ganaron los primeros cuatro Campeonatos Mundiales de Ajedrez de Microcomputadoras .
  • ChessMachine , una computadora dedicada basada en ARM , que podría ejecutar dos motores:
  • Excalibur Electronics vende una línea de unidades de potencia para principiantes.
  • Mephisto , una línea de computadoras de ajedrez vendida por Hegener & Glaser. Las unidades ganaron seis Campeonatos Mundiales de Ajedrez de Microcomputadoras consecutivos .
  • Novag vendió una línea de computadoras tácticamente fuertes, incluidas las marcas Constellation, Sapphire y Star Diamond.
  • Phoenix Chess Systems fabrica unidades de edición limitada basadas en procesadores StrongARM y XScale que ejecutan motores modernos y emulan motores clásicos.
  • Saitek vende unidades de gama media de potencia intermedia. Compraron Hegener & Glaser y su marca Mephisto en 1994.

Recientemente, algunos aficionados han estado usando Multi Emulator Super System para ejecutar los programas de ajedrez creados para las computadoras Mephisto de Fidelity o Hegener & Glaser en sistemas operativos modernos de 64 bits como Windows 10 . El autor de Rebelde , Ed Schröder, también ha adaptado tres de los Mephisto de Hegener & Glaser que escribió para que funcionen como motores UCI.

programas DOS

Estos programas se pueden ejecutar en MS-DOS y se pueden ejecutar en Windows 10 de 64 bits a través de emuladores como DOSBox o Qemu :

teóricos notables

Los teóricos del ajedrez informático más conocidos incluyen:

  • Georgy Adelson-Velsky , matemático e informático soviético e israelí
  • Hans Berliner , informático estadounidense y campeón mundial de ajedrez por correspondencia, supervisor de diseño de HiTech (1988)
  • Mikhail Botvinnik , ingeniero eléctrico soviético y campeón mundial de ajedrez, escribió Pioneer
  • Alexander Brudno , informático ruso, elaboró ​​por primera vez el algoritmo de poda alfabético
  • Feng-hsiung Hsu , el desarrollador principal de Deep Blue (1986-1997)
  • El profesor Robert Hyatt desarrolló Cray Blitz y Crafty
  • Danny Kopec , profesor estadounidense de informática y maestro internacional de ajedrez, desarrolló la prueba Kopec-Bratko
  • Alexander Kronrod , científico informático y matemático soviético
  • Profesor Monroe Newborn , presidente del comité de ajedrez informático de la Asociación de Maquinaria Informática
  • Claude E. Shannon , informático y matemático estadounidense
  • Alan Turing , informático y matemático inglés

Resolviendo ajedrez

Las perspectivas de resolver completamente el ajedrez generalmente se consideran bastante remotas. Se conjetura ampliamente que no existe un método computacionalmente económico para resolver el ajedrez, incluso en el sentido muy débil de determinar con certeza el valor de la posición inicial, y de ahí la idea de resolver el ajedrez en el sentido más fuerte de obtener una descripción utilizable en la práctica de un estrategia para el juego perfecto para cualquier lado parece poco realista hoy en día. Sin embargo, no se ha probado que no exista una forma computacionalmente económica de determinar la mejor jugada en una posición de ajedrez, ni siquiera que un buscador alfa-beta tradicional que se ejecute en el hardware informático actual no pueda resolver la posición inicial en una cantidad aceptable de tiempo. tiempo. La dificultad para probar esto último radica en el hecho de que, si bien el número de posiciones en el tablero que pueden ocurrir en el transcurso de una partida de ajedrez es enorme (del orden de al menos 10 43 a 10 47 ), es difícil descartar con certeza matemática la posibilidad de que la posición inicial permita a cualquiera de los lados forzar un mate o una repetición triple después de relativamente pocos movimientos, en cuyo caso el árbol de búsqueda podría abarcar solo un subconjunto muy pequeño del conjunto de posiciones posibles. Se ha demostrado matemáticamente que el ajedrez generalizado (ajedrez que se juega con un número arbitrariamente grande de piezas en un tablero de ajedrez arbitrariamente grande) es EXPTIME-completo , lo que significa que determinar el bando ganador en una posición arbitraria del ajedrez generalizado lleva probablemente un tiempo exponencial en el peor de los casos. ; sin embargo, este resultado teórico no da un límite inferior a la cantidad de trabajo necesario para resolver el ajedrez ordinario de 8x8.

Se ha resuelto el Miniajedrez de Martin Gardner , que se juega en un tablero de 5×5 con aproximadamente 10 18 posiciones posibles en el tablero; su valor teórico del juego es 1/2 (es decir, un empate puede ser forzado por cualquiera de los lados), y se ha descrito la estrategia de forzamiento para lograr ese resultado.

También se han logrado avances desde el otro lado: a partir de 2012, todos los finales de 7 piezas o menos (2 reyes y hasta otras 5 piezas) se han resuelto.

motores de ajedrez

Un "motor de ajedrez" es un software que calcula y ordena qué movimientos son los más fuertes para jugar en una posición determinada. Los autores de motores se enfocan en mejorar el juego de sus motores, a menudo simplemente importando el motor a una interfaz gráfica de usuario (GUI) desarrollada por otra persona. Los motores se comunican con la GUI mediante protocolos estandarizados, como la hoy en día omnipresente Universal Chess Interface desarrollada por Stefan Meyer-Kahlen y Franz Huber. Existen otros, como el Chess Engine Communication Protocol desarrollado por Tim Mann para GNU Chess y Winboard . Chessbase tiene su propio protocolo propietario, y en un momento Millennium 2000 tenía otro protocolo utilizado para ChessGenius . Los motores diseñados para un sistema operativo y un protocolo pueden trasladarse a otros sistemas operativos o protocolos.

Los motores de ajedrez se comparan regularmente entre sí en torneos de motores de ajedrez dedicados .

aplicaciones web de ajedrez

En 1997, Internet Chess Club lanzó su primer cliente Java para jugar al ajedrez en línea contra otras personas dentro del navegador web. Esta fue probablemente una de las primeras aplicaciones web de ajedrez. Free Internet Chess Server siguió poco después con un cliente similar. En 2004, la Federación Internacional de Ajedrez por Correspondencia abrió un servidor web para reemplazar su sistema basado en correo electrónico. Chess.com comenzó a ofrecer Live Chess en 2007. Chessbase / Playchess ha tenido durante mucho tiempo un cliente descargable y agregó un cliente basado en la web en 2013.

Otra aplicación web popular es el entrenamiento táctico. El ahora desaparecido Chess Tactics Server abrió su sitio en 2006, seguido de Chesstempo al año siguiente, y Chess.com agregó su Tactics Trainer en 2008. Chessbase agregó una aplicación web de entrenador de tácticas en 2015.

Chessbase puso su base de datos de juegos de ajedrez en línea en 1998. Otra de las primeras bases de datos de juegos de ajedrez fue Chess Lab, que comenzó en 1999. New In Chess había intentado inicialmente competir con Chessbase lanzando un programa NICBase para Windows 3.x , pero finalmente decidió renunciar al software y, en cambio, centrarse en su base de datos en línea a partir de 2002.

Uno podía jugar contra el motor Shredder en línea desde 2006. En 2015, Chessbase agregó una aplicación web Play Fritz, así como My Games para almacenar los juegos.

A partir de 2007, Chess.com ofreció el contenido del programa de formación Chess Mentor a sus clientes en línea. Los mejores GM como Sam Shankland y Walter Browne han aportado lecciones.

Ver también

notas

Referencias

Fuentes

Otras lecturas

enlaces externos

Medios de comunicación