Turochamp es un programa de ajedrez desarrollado por Alan Turing y David Champernowne en 1948. Fue creado como parte de una investigación realizada por ambos sobre informática y aprendizaje automático. Turochamp es capaz de jugar una partida completa de ajedrez contra un jugador humano en un nivel de juego bajo calculando todos los movimientos potenciales y todos los movimientos potenciales del jugador en respuesta, así como algunos movimientos adicionales que considere considerables. Luego asigna valores de puntos a cada estado del juego y selecciona el movimiento que genera el valor de puntos más alto.
Turochamp es el primer juego de computadora conocido que entró en desarrollo, pero Turing y Champernowne nunca lo completaron, ya que su algoritmo era demasiado complejo para ser ejecutado por las primeras computadoras de la época, como el Automatic Computing Engine . Turing intentó convertir el programa en código ejecutable para la computadora Ferranti Mark 1 de 1951 en Manchester, pero no pudo hacerlo. Turing jugó un partido contra el científico informático Alick Glennie usando el programa en el verano de 1952, ejecutándolo manualmente paso a paso, pero cuando murió en 1954 todavía no podía ejecutar el programa en una computadora real. Champernowne no continuó el proyecto y el programa original no se conservó.
A pesar de que nunca se ejecutó en una computadora, el programa es candidato a ser el primer programa de ajedrez; Se diseñaron o propusieron varios otros programas de ajedrez casi al mismo tiempo, incluido otro que Turing intentó ejecutar sin éxito en el Ferranti Mark 1. El primer programa exitoso en 1951, también desarrollado para el Mark 1, se inspiró directamente en Turochamp y fue capaz sólo de resolver problemas de " mate en dos ". En 2012 se construyó una recreación de Turochamp para la Conferencia del Centenario de Alan Turing . Esta versión se utilizó en una partida con el gran maestro de ajedrez Garry Kasparov , quien pronunció un discurso de apertura en la conferencia.
Turochamp simula una partida de ajedrez contra el jugador aceptando los movimientos del jugador como entrada y emitiendo su movimiento en respuesta. El algoritmo del programa utiliza una heurística para determinar el mejor movimiento a realizar, calculando todos los movimientos potenciales que puede realizar, luego todas las respuestas potenciales del jugador que podrían realizarse en turno, así como otros movimientos "considerables", como capturas de piezas indefensas, recapturas y captura de una pieza de mayor valor por otra de menor valor. Luego, el programa asigna un valor de punto a cada estado resultante, luego realiza el movimiento con los puntos resultantes más altos, empleando un algoritmo minimax para hacerlo. [1] [2] [3] Los puntos se determinan en función de varios criterios, como la movilidad de cada pieza, la seguridad de cada pieza, la amenaza de jaque mate, el valor de la pieza del jugador si se toma y varios otros factores. A diferentes movimientos se les asignan diferentes valores de puntos; por ejemplo, tomar la reina recibe 10 puntos, pero un peón solo un punto, y colocar al rey en jaque recibe un punto o medio punto según la disposición del tablero. [4] Según Champernowne, el algoritmo está diseñado principalmente en torno a la decisión de tomar una pieza o no; Según Turing, la jugabilidad resultante produce un juego de ajedrez de bajo nivel, que él consideraba acorde con el nivel promedio de habilidad que él mismo describe en el juego. [1] [4]
Alan Turing fue un matemático , informático , lógico , criptoanalista , filósofo y biólogo teórico inglés . [5] Turing fue muy influyente en el desarrollo de la informática teórica , proporcionando una formalización de los conceptos de algoritmo y computación con la máquina de Turing , que puede considerarse un modelo de computadora de propósito general . [6] [7] [8] Turing es ampliamente considerado como el padre de la informática teórica y la inteligencia artificial . [9] A partir de 1941, mientras trabajaba en criptoanálisis en tiempos de guerra en Bletchley Park , Turing comenzó a discutir con sus colegas la posibilidad de que una máquina pudiera jugar al ajedrez o realizar otras tareas "inteligentes", así como la idea de que una computadora resolviera un problema buscando entre todas las soluciones posibles utilizando una heurística o un algoritmo. [10] [11] Algunos de los trabajos de criptoanálisis de Turing, como en Bombe , se realizaron a través de este modelo de máquina informática que buscaba posibilidades de solución. [11] Continuó discutiendo la idea con sus colegas durante toda la guerra, como con el estadístico económico DG Champernowne en 1944, y en 1945 estaba convencido de que una máquina capaz de realizar cálculos generales sería teóricamente capaz de replicar cualquier cosa que fuera un cerebro humano. podía hacer, incluido jugar al ajedrez. [10] [12]
Después de la Segunda Guerra Mundial , Turing trabajó en el Laboratorio Nacional de Física (NPL), donde diseñó el Motor de Computación Automática (ACE), uno de los primeros diseños de una computadora con programa almacenado. En 1946, Turing escribió un informe para la NPL titulado "Calculadora electrónica propuesta" que describía varios proyectos para los que planeaba utilizar el ACE; uno de ellos era un programa para jugar al ajedrez. Al año siguiente dio una lectura en la Sociedad Matemática de Londres en la que presentó la idea de que una máquina programada para jugar al ajedrez podría aprender por sí sola y adquirir su propia experiencia. Posteriormente, en 1948, escribió un nuevo informe para la NPL, titulado "Intelligent Machinery", que sugería una forma de imitación del ajedrez. [13]
A finales del verano de 1948, Turing y Champernowne, entonces su colega en el King's College de Cambridge , idearon un sistema de reglas teóricas para determinar los siguientes golpes de una partida de ajedrez. Diseñaron un programa que implementaría un algoritmo que seguiría estas reglas, aunque el programa era demasiado complejo para poder ejecutarse en el ACE o en cualquier otra computadora de la época. [1] El programa recibió el nombre de Turochamp , una combinación de sus apellidos. [13] A veces se informa erróneamente como "Turbochamp". [14] Según Champernowne, su esposa jugó un juego simulado contra el programa, apodado "la máquina de papel", y perdió. [13] [15] Turing intentó convertir el programa en código ejecutable para la computadora Ferranti Mark 1 de 1951 en Manchester, pero no pudo hacerlo debido a la complejidad del código. [14] Según Jack Copeland , autor de varios libros sobre Turing, no le preocupaba que el programa no pudiera ejecutarse, ya que estaba convencido de que la velocidad y la sofisticación de los ordenadores pronto aumentarían para hacerlo posible. [16] Ese mismo año, escribió un artículo que describía cómo funcionaba el algoritmo del programa, aunque no nombró el programa, que se volvió a publicar en 1953 en el libro Faster Than Thought . [17] En el verano de 1952, Turing jugó un partido contra el científico informático Alick Glennie usando el programa, ejecutándolo manualmente paso a paso. En el partido, que fue grabado, el programa Turochamp perdió ante Glennie en 29 movimientos, y cada uno de los movimientos del programa tardó hasta 30 minutos en evaluarse. Aunque el partido demostró que el programa podía jugar contra un humano en un juego completo, no se ejecutó en una computadora real antes de la muerte de Turing en 1954. [14]
Turochamp es candidato para el primer programa de ajedrez, aunque el programa original nunca se ejecutó en una computadora. Se diseñaron e intentaron varios otros programas de ajedrez casi al mismo tiempo, como en el artículo de Claude Shannon de 1950 Programando una computadora para jugar al ajedrez , las rutinas de ajedrez de Konrad Zuse desarrolladas entre 1941 y 1945 para su lenguaje de programación propuesto Plankalkül , y Donald Michie. y el programa de ajedrez Maquiavelo de Shaun Wylie , que Turing intentó ejecutar sin éxito en el Ferranti Mark I al mismo tiempo que Turochamp . [13] [18] [19] [20] En noviembre de 1951, Dietrich Prinz , que trabajaba en Ferranti y se inspiró en el trabajo de Turing en Turochamp , desarrolló el primer programa de ajedrez ejecutable por ordenador para el Ferranti Mark I, que podía resolver " problemas de " compañero en dos ". [1]
El código y algoritmo originales escritos por Turing y Champernowne no se han conservado. En 1980, Champernowne describió el funcionamiento de Turochamp , pero no era capaz de recordar todos los detalles de las reglas del juego. [1] [16] En 2012 se desarrolló una versión de Turochamp a partir de descripciones del algoritmo del juego como una recreación simbólica. [21] Después de que la recreación inicial no pudo recrear el partido simulado de Turing contra Glennie, se consultó a varios expertos en ajedrez informático y contemporáneos de Turing para interpretar las descripciones del programa de Turing y Champernowne, incluido Ken Thompson , creador de la máquina de ajedrez Belle de 1983 y la Sistema operativo Unix . No pudieron encontrar la explicación de la desviación hasta que consultaron con Donald Michie, quien sugirió que Turing no se había preocupado por determinar meticulosamente exactamente qué movimiento recomendaría Turochamp . Teniendo esto en cuenta, pudieron demostrar que desde el primer movimiento del juego, Turing se había desviado incorrectamente de movimientos que parecían subóptimos sin calcular su valor en puntos. [a] La recreación resultante se presentó en la Conferencia del Centenario de Alan Turing del 22 al 25 de junio de 2012, en un partido con el gran maestro de ajedrez y ex campeón mundial Garry Kasparov . [22] Kasparov ganó la partida en 16 movimientos y elogió el programa por su lugar en la historia y el "logro excepcional" de desarrollar un programa de ajedrez informático funcional sin poder ejecutarlo nunca en una computadora. [23]