3.6. EN TORNO AL AJEDRECISTA DE TORRES QUEVEDO. EL AJEDREZ EN LA HISTORIA DE LA COMPUTACIÓN

Javier de Lope Asiaín

Dpto. Inteligencia Artificial. Universidad Politécnica de Madrid.

El ajedrez siempre ha sido considerado como el juego de juegos y circulan innumerables y bonitas leyendas relacionadas con su nacimiento, como la que indica que fue creado para demostrar a un rey que él solo, sin sus súbditos, no sería capaz de hacer nada, sobre sus componentes, el tablero, lo que representa cada una de las figuras, etc., o incluso como simple arte en la creación de juegos de piezas y tablero de los más caros y refinados materiales. Por otra parte, la inteligencia artificial en sus inicios siempre pretendía enfrentarse problemas en los que fuese necesaria una notable ración de inteligencia para resolverlos, pero que a la vez estuviesen perfectamente descritos en un mundo simulado, perdiendo así parte de lo que actualmente se entiende por inteligencia, es decir, eliminando toda la percepción el mundo exterior. Los juegos han sido fundamentales en el desarrollo de lo que se conoce como inteligencia artificial clásica. El entorno de juego, por ejemplo, el tablero, es perfectamente representable en un ordenador. Los objetivos están bien definidos, ganar a los adversarios. Las reglas del juego también están bien definidas y es seguro que no podrá suceder nada diferente, nuevo o imprevisto ya que en ese caso se consideraría ilegal. No es extraño, por tanto, que dado ese acercamiento del mundo de la inteligencia artificial al de los juegos, se haya tomado como referencia durante muchos años el ajedrez. El matemático ruso Alexander Kronrod ya lo definió hace algunos años como la drosophila melanogaster, la mosca de la fruta de la inteligencia artificial porque gracias a su gran dificultad es posible elaborar y probar muchas de las técnicas y estrategias que posteriormente pueden ser exportadas a otros ámbitos de investigación. Habitualmente, se toma como primer referente de una máquina que era capaz de jugar al ajedrez por sí sola a un ingenio mecánico creado por Wolfgang von Kempelen conocido como “el Turco” (Maelzel Automaton) a mediados del siglo XVIII, la fecha exacta es un tanto confusa, pero las fuentes lo suelen datar en un año cercano a 1760. El Turco se trataba de un dispositivo puramente mecánico con apariencia de un turco que era capaz de disputar partidas completas de ajedrez. Von Kempelen solía mostrar las presuntas habilidades de su máquina tanto en ferias como en reuniones de la alta sociedad en la que permitía que las personas que allí se encontraban 326 J. de Lope Asiaín

jugasen partidas contra su autómata. Quizá, la partida más famosa y referida de las disputadas fue la que entabló contra el propio Napoleón. El Turco estuvo en funcionamiento durante cerca de setenta años sirviendo de admiración a todas las personas que presenciaban el espectáculo, pero con el tiempo se descubrió que el presunto autómata capaz de desarrollar un juego inteligente se trataba de un fraude: los engranajes estaban realmente gobernados por una persona que se encontraba en su interior, según una leyenda, un fugitivo con las piernas amputadas.

Si bien no nos sirve como una verdadera máquina inteligente capaz de resolver las partidas por ella misma, sí debe al menos hacerse referencia a ella por el valor de lo que es el propio ingenio estrictamente mecánico, que lamentablemente se perdió en un incendio, y porque sin lugar a dudas se trata de una referencia inicial obligada siempre que se traten temas de ajedrez por computadora desde un punto de vista histórico. Hecho este apunte inicial, el primer dispositivo que funcionaba en la realidad de forma autónoma se debe a Leonardo Torres y Quevedo y data de finales del siglo XIX, aproximadamente entre 1890 y 1914. Se trata de un dispositivo electromecánico que es capaz de disputar finales de rey-torre por el bando de las blancas contra rey negro que, como es sabido, es un final favorable al bando de las blancas. El autómata mueve las piezas blancas y es capaz de dar mate a un oponente humano en pocos movimientos, concretamente en unas 63 jugadas de media para el caso más desfavorable, es decir, el caso en el que el lado de las blancas no partan de una ventaja posicional inicial. El autómata en sí estaba basado en un conjunto de reglas concretas para el final de rey-torre contra rey que, como ya mencionamos antes, se trata de un En torno al ajedrecista de Torres Quevedo 327

final muy estudiado en ajedrez, en el que tiene la ventaja el jugador que tiene la torre. Si bien se trata de una partida muy simple y en la que habitualmente se da por vencedor al jugador que lleve la torre, tenemos que destacar que para el periodo en el que construyó se trataba de una solución muy destacable y avanzada.

Probablemente, fue a partir de 1950 cuando con la ayuda de se definieron las bases de lo que podrían ser verdaderas máquinas que jugasen al ajedrez y, en general, a casi cualquier tipo de juego de los que consideramos inteligentes. Shannon que contribuyó tanto en el desarrollo como en las bases de otras muchas disciplinas íntimamente relacionadas con la computación y las telecomunicaciones, describió cuáles eran las bases teóricas de un juego como el ajedrez y cómo se podía afrontar el problema de escribir un programa que jugase a al ajedrez para los ordenadores de la época.

328 J. de Lope Asiaín

Básicamente, Shannon afirmaba que el ajedrez es un juego finito, en el que tarde o temprano, por la propia aplicación de las reglas de movimiento de cada una de las piezas de ambos bandos que están sobre el tablero se llega a una situación de victoria, derrota o tablas, situación de empate de ambos bandos en el ajedrez. Ser finito significa que existe un número finito de posiciones y que de cada una de éstas puede llegarse a un número finito de nuevas posiciones que, como dijimos anteriormente, están perfectamente definidas por las reglas de movimiento de las piezas. Entonces, el problema puede o, mejor dicho, podría resolverse recorriendo lo que se conoce como árbol de juego y seleccionando la alternativa del primer nivel del árbol que hace que el jugador para el que se está considerando o calculando el movimiento llegue a una posición de victoria. Un hipotético árbol de juego completo para el ajedrez estaría formado en su nivel superior o raíz por un nodo que representase el tablero con todas las piezas colocadas en su posición inicial. El segundo nivel estaría formado por todas los tableros a los que se puede llegar a partir de éste, como en el ajedrez el bando de las blancas es el que sale, se trataría los veinte tableros que fuesen salidas legales -otra cosa es que fuesen buenas o razonables- para el lado de las blancas: avanzar los ocho peones a la siguiente fila, avanzar los ocho peones dos filas y salir con los dos caballos en sus dos movimientos posibles. El siguiente nivel del árbol de juego estaría formado por las posibles contestaciones del jugador de negras a cada uno de los movimientos iniciales del jugador de blancas, por lo que a este nivel tendríamos otros veinte movimientos posibles para cada uno de los veinte movimientos iniciales. Y así sucesivamente. Como puede suponerse, el desarrollo completo del árbol de juego para el juego del ajedrez es inviable tanto en la época de Shannon como en la actualidad. Si consideramos que para un tablero cualquiera pueden realizarse una media de 32 movimientos1 y que una partida puede suponer también de media unos 40 movimientos por cada bando, podemos intuir que el número de nodos hoja en el último nivel de este árbol de juego medio sería de 3280, que es aproximadamente igual a 10120. Si la cifra no nos ha convencido a simple vista, podemos añadir que un siglo son 1016 microsegundos, por lo que si fuésemos capaces de generar una alternativa cada microsegundo, serían necesarios unos cuantos siglos para generar el árbol de juego completo. Desde el punto de vista de la ocupación en espacio de almacenamiento y de los mecanismos de acceso a la información se podrían hacer comentarios similares. Dada esta imposibilidad de generar el árbol de juego completo, Shannon enuncia dos posibles estrategias que se pueden seguir a la hora de reducir el proceso de búsqueda en el árbol de juego. La primera de ellas, a la que él mismo se refería como estrategia de tipo A, se basa en considerar el árbol de juego hasta una cierta profundidad para posteriormente determinar

1 Ya hemos visto que inicialmente partimos con veinte movimientos, para finales y el resto de la apertura normalmente son menos también, pero en el juego medio el número de movimientos puede ser considerablemente elevado. En torno al ajedrecista de Torres Quevedo 329

heurísticamente cuánto de bueno es un tablero con relación a un jugador, concretamente, para el jugador que se está intentando determinar su mejor jugada. De esta forma, estamos introduciendo dos de los componentes básicos de un motor de búsqueda heurística genérico como son el expansor de los nodos, lo que se denomina como generador de movimientos en juegos, y la propia heurística o función de evaluación. El generador de movimientos es un módulo muy importante y es el que se atribuye la mayor parte del consumo computacional en todo el proceso. Es el encargado de generar las siguientes posibilidades de tableros a partir de un tablero dado por la simple aplicación de las reglas del juego. Por así decirlo, es un módulo en el que reside el movimiento acerca de los movimientos legales de las piezas. En ocasiones, como es el caso del ajedrez, movimientos inicialmente legales según el reglamento pueden no serlo cuando se tiene en cuenta la disposición del tablero, por ejemplo, cuando el movimiento de cualquier pieza deja al rey en situación de jaque. Este tipo de movimientos, por sencillez y ortogonalidad en la creación del generador, suelen dejarse pasar en una primera fase para ser posteriormente filtrados y eliminados, por lo que en ocasiones se habla de generadores de movimientos pseudo-legales a falta de las comprobaciones finales en cuanto a su legalidad. El otro módulo básico es el de la función de calidad y es donde, podríamos decir, reside la esencia de la ``inteligencia''. Podemos entender este bloque como una caja negra en la que se introduce un tablero y un bando y devuelve una puntuación de ese tablero para ese bando. Habitualmente, se asignan valores positivos para un bando, por ejemplo blancas, y valores negativos para el otro, por ejemplo negras. De esta forma, valores positivos grandes indican que ese tablero es claramente ventajoso para el bando de las blancas, valores negativos grandes que lo es para el de las negras y valores cercanos al cero que se está en una situación de tablas o con mínimas ventajas para uno u otro jugador. La función de calidad es probablemente el elemento más complejo de todos los que intervienen por lo que a menudo suele estar compuesta por diferentes submódulos que analizan la situación del tablero desde diferentes puntos de vista. La primera división que puede hacerse es entre funciones de calidad material y funciones de calidad posicionales. Las primeras simplemente establecen una puntuación del tablero en función del material o piezas que hay en ese momento sobre el tablero. Habitualmente se asigna una puntuación a cada pieza según su importancia en el juego. El baremo más comúnmente utilizado es el de asignar unos valores proporcionales o equivalentes a 900 puntos para la dama, 500 para cada torre, 350 para cada alfil, 325 para cada caballo y 100 para cada peón.2 La función de calidad material sumaría los valores de cada uno los bandos, con signo, y el valor

2 Normalmente no se asigna una puntuación a los reyes porque deben estar presentes siempre en el tablero y si no están seria un mal síntoma para el jugador que ha perdido su rey. Por tanto, se puede asignar cualquier valor al rey. 330 J. de Lope Asiaín

devuelto sería un indicio de cómo está la situación en el tablero para cada jugador. Evidentemente, esto da una idea muy pobre del tipo de juego que puede desarrollar por lo que siempre se le complementa con funciones auxiliares que añaden puntos por la posición que ocupen las piezas sobre el tablero o por el estado en sí del tablero. El concepto de movilidad es también utilizado frecuentemente, es decir, se atribuye una mejor puntuación cuando un jugador puede realizar más movimientos, cuando sus piezas no están clavadas cubriendo a su rey o cerradas por otras piezas. Así mismo, también es normal añadir puntos por situaciones o posiciones concretas de las piezas, por ejemplo, si los peones están avanzados, es decir, están en las filas cercanas al bando opuesto donde, como es sabido, pueden promocionar a cualquier otra pieza de calidad, si los caballos están desarrollados, etc. o por la propia posición que se tiene en el tablero, por ejemplo, si se presenta una buena estructura de peones, fundamental tanto para la defensa como el ataque, si se tiene control del centro del tablero, si se está cercano al rey contrario o al del mismo color, lo que se conoce como tropismo de rey y que puede ser generalizable a otras piezas importantes como la dama, etc. En general, todas estas funciones auxiliares contribuyen mínimamente cada una de ellas a la puntuación total del tablero y, habitualmente, cada uno de estos conceptos añaden como mucho el equivalente del valor otorgado a un peón, que según el baremo citado anteriormente es de unos 100 puntos. Normalmente, el mate se analiza por separado e incluso el valor asignado a un mate se hace dependiente de las jugadas que quedan hasta que el mate se haga efectivo, de forma que, como veremos, los mates en menos jugadas tienen preferencia frente a los que implican más movimientos. Cuando se detecta una posición de mate, se suele aplicar un valor muy superior al posible si existiesen sobre el tablero todas las piezas de un jugador frente a ninguna del jugador contrario -para el baremo que estamos utilizando como ejemplo, este valor es superior a 4.050- por lo que puede detectarse tal situación y hacer que el movimiento elegido sea el que lleva al mate y, por consiguiente, ganar la partida. Volviendo a temas menos concretos y particulares del ajedrez, la estrategia de tipo A es lo que posteriormente se ha venido en denominar teorema minimax y es el motor básico del que parten los módulos para la selección de movimientos en el 95% de los juegos inteligentes actuales. El minimax es el encargado de ir generando los siguientes niveles dentro del árbol de juego a partir del tablero en el que queremos efectuar el movimiento ayudado por el generador de movimientos. Irá generando niveles en el árbol alternativamente según el turno de juego hasta una profundidad máxima fijada a priori y será en los tableros generados a esa profundidad máxima cuando aplique la función de calidad a cada uno de ellos de forma que podamos determinar qué rama es la que ha conducido a una situación más ventajosa. Estos valores evaluados en los nodos hoja son propagados dinámicamente hacia la raíz del árbol, motivo por el que en ocasiones se manejan conceptos como evaluación dinámica de los nodos interiores y evaluación estática de los En torno al ajedrecista de Torres Quevedo 331

nodos hoja. La propagación de los valores se realiza desde el punto de vista del jugador que mueve en ese nivel y, como siempre, de forma alternada para blancas y para negras. Simplemente, como un ejemplo ya que podría realizarse también al revés, podríamos asignar al jugador de blancas los valores positivos de la función de evaluación y al de negras los valores negativos. Así, en cada uno de sus turnos reflejados en el árbol, el jugador de blancas seleccionará como mejor movimiento de los disponibles el que tenga un mayor valor, es decir, intentará maximizar los valores devueltos por la función de evaluación. Por su parte, el jugador de negras intentará obtener el mejor valor de los negativos, en otras palabras pretende minimizar la evaluación. De esta alternancia entre turnos de maximización de un jugador y de minimización del otro es de donde proviene el nombre del clásico algoritmo minimax. Una vez propagados todos los niveles interiores del árbol, sólo queda decidir cuál es la mejor jugada. Según este proceso, al nodo raíz se le habrá otorgado una puntuación minimax correspondiente a los niveles que han sido desarrollados, pero lo que interesa en ese caso es elegir el movimiento que nos conduce al mejor movimiento de los estudiados. Para ello se selecciona como mejor movimiento el que conduce al tablero con mejor puntuación generados a partir del nodo raíz. Anteriormente comentamos que si se produce un mate durante la evaluación, se suele asignar una puntuación superior a la aportada por la función de evaluación normal, la que no tiene en cuenta los mates, y que suele hacerse proporcional a la profundidad en la que se produce el mate en el árbol de juego. En este momento se entenderá por qué se realiza esto y cómo es capaz de elegirse la rama que conduce al mate más rápido. Realmente, el minimax es un algoritmo clásico y que suele utilizarse sólo como ejemplo académico, pero nunca en programas reales o de competición ya que es computacionalmente muy costoso. En su lugar se suele utilizar una variante como es el alfabeta, o más formalmente, minimax con poda alfabeta, en la que pueden eliminarse o no considerarse ramas completas del árbol de juego sin peligro de que perdamos la mejor jugada. Además de esta optimización del algoritmo también suelen utilizarse otras como son la profundización iterativa que permite ir descendiendo por niveles en el árbol de forma controlada con relación al tiempo disponible para realizar el movimiento, las extensiones de búsqueda en las que se amplía el nivel de profundidad máximo hasta una situación en la que no hay un intercambio de piezas constante en el tablero, etc. También se introducen mejoras y optimizaciones particulares para cada juego, en el caso del ajedrez y otros juegos de tablero, se utilizan las tablas de transposición que aprovechan la simetría del tablero para generar y comprobar las jugadas de una manera menos costosa, las tablas de refutación que almacenan los resultados obtenidos para posiciones a nivel de movimiento o de partida como si se tratasen de memorias intermedias o caches y otras muchas. En definitiva, se han ideado muchas mejoras del algoritmo base pero el espíritu inicial de “pensar” o analizar los movimientos de los dos bandos de forma alternativa se mantiene. La segunda manera de abordar el problema de la decisión de la mejor jugada aportada por Shannon se conoce bajo el sobrenombre de estrategia de 332 J. de Lope Asiaín

tipo B. En este caso, en lugar de limitar la profundidad en el proceso de búsqueda, lo que se realiza es una eliminación de alternativas a analizar en cada tablero. Es importante entender que en las estrategias de tipo A se tienen en cuenta todas y cada una de las posibilidades y que si se comete algún fallo achacable al propio algoritmo, éste es debido a una corte demasiado prematuro en el nivel de búsqueda. Estamos hablando de lo que se conoce como efecto horizonte y del que luego nos ocuparemos con algo más de profundidad. En cambio, en las estrategias de tipo B, se descartan directamente ramas del árbol, de forma que la mejor jugada en un momento posterior puede quedar suprimida en una de estas podas. Fundamentalmente, este problema es el que ha hecho que no se utilice más esta línea de abordar la elección del mejor movimiento, aunque como parece evidente, es realmente la forma de elegir los movimientos que tiene un jugador humano: se analiza el tablero en su conjunto y se presta más atención a aquellas zonas en las que parece más probable que haya un intercambio de piezas, una posibilidad de sacar algún provecho material o posicional y se cubren también las posibles zonas de ataque del enemigo, en las zonas tranquilas o en las que las posiciones están claras no se presta una especial atención. Cuando se preguntaba a Emanuel Lasker, campeón mundial de ajedrez de finales del XIX y primeros del XX, por cuántas posiciones tenía en cuenta cuando analizaba un movimiento, solía responder, quizá de una forma un tanto exagerada, “una sola, la mejor”. Con motivo de la celebración del VII Campeonato Mundial de Ajedrez entre Computadoras y con la ayuda de grandes maestros de ajedrez como Pablo Sansegundo, uno de los mejores jugadores españoles en la actualidad, y otros grandes aficionados y espléndidos jugadores provenientes de la rama de la informática como Ernesto Guisado y Daniel García, tuvimos la ocasión de formular unas posibles bases para la construcción de generadores de movimientos para estrategias de tipo B. Básicamente, los expertos en ajedrez determinaron un conjunto mínimo de cuestiones a tener en cuenta en el estudio de cada tablero, cuestiones todas ellas íntimamente relacionadas con conceptos básicos de ajedrez que son los enseñados a los alumnos en las escuelas de este tipo de juego. A modo de ejemplo, estos conceptos pueden ser que el control del centro del tablero, de los escaques centrales, es fundamental en ciertos momentos de la partida. Concretamente, durante la parte final de la apertura y el medio juego y que todas las piezas deben intervenir en este control del centro. También es importante tener en cuenta que las piezas no son completamente independientes y que es ventajoso en general que ciertas piezas estén colocadas en zonas concretas sobre el tablero; en particular, que los alfiles controlen las diagonales principales, o que estén colocadas unas con respecto de otras de cierta manera, por ejemplo, que las torres estén dobladas, es decir, que se encuentren físicamente en la misma fila o columna de forma que cada una esté protegida por la otra. Entonces, a partir de estos conceptos básicos y generales en la teoría del ajedrez, pueden determinarse generadores de movimiento útiles de forma que no se tienen en cuenta todas las posibilidades desde cada tablero. Obviamente, corremos el riesgo de perder buenas jugadas y de hecho, dependiendo de los En torno al ajedrecista de Torres Quevedo 333

filtros que se lleguen a aplicar, se pueden llegar hasta a eliminar las mejores jugadas en cada tablero. Lo interesante en este caso es no perderlas en cada selección -siempre podremos con posterioridad retomar una línea que no había parecido interesante seguir en un instante de la partida- y, sobre todo, que podemos reducir enormemente el factor de ramificación del árbol de juego lo que nos permitirá explorar a mucha más profundidad el árbol en el mismo tiempo, lo que redundará en una mayor anticipación en las jugadas. Otro importante personaje histórico al que se le deben innumerables contribuciones en el ámbito de la inteligencia artificial y que siempre se le relaciona con los inicios de la criptografía que jugó un papel fundamental en el nacimiento del ajedrez por computadora es Alan Turing. Se le atribuye la creación del primer programa de ajedrez en torno al año 1952. Este programa no estaba realmente implementado en ningún ordenador,3 consistía en un algoritmo en papel que era seguido a mano, simulado, para determinar los movimientos que debían realizarse en cada momento. Solamente jugó una partida que podríamos considerar oficial y la perdió, concretamente contra Alick Glennie. No obstante, introdujo muchos de los conceptos que ahora se utilizan y que algunos ya han sido comentados.

Concretamente, introdujo el concepto de posición muerta (del inglés, dead position) en el sentido de posición estable. En este caso, para explicar qué es una posición estable es mejor definir su negado, es decir, las posiciones no estables son las que se producen cuando existen intercambios de piezas constantes en un momento dado de la partida, que llevan a situaciones tales

3 Para encontrar el primer programa implementado en ordenador deberían pasar aún unos pocos años. Si bien el propio Shannon en 1950 ya había realizado un programa para un ordenador Ferranti que resolvía problemas de jaque en dos movimientos, incluido el de rey-torre contra rey de Torres y Quevedo, y Stanislav Ulam programó en 1956 un ordenador Maniac I cuya “utilidad” principal era proyectar bombas atómicas en Los Álamos, utilizando un tablero reducido de seis por seis, fue un año más tarde, durante 1957, cuando Alex Bernstein escribió el primer programa de ajedrez completo para un ordenador IBM 704. 334 J. de Lope Asiaín

como perder una pieza de calidad menor para ganar la dama del contrario o incluso los conocidos sacrificios de dama en los que el jugador de un bando pierde su dama para dar mate al rey adversario. Si durante ese intercambio se produce una evaluación, por ejemplo, cuando se ha perdido la dama durante el sacrificio, estaríamos dando un resultado no completo de la jugada que se está desarrollando y que no se correspondería con la realidad. Cualquier jugador humano, por poco iniciado que sea, sería capaz de darse cuenta de tales movimientos y observar la ventaja que puede producirse, el problema es sin duda hacer que el ordenador perciba esa ventaja. Por eso, el programa de Turing sólo hacía evaluaciones de las jugadas en posiciones muertas utilizando un importante sesgo material: sólo tenía en cuenta los valores atribuidos a cada pieza y en el caso en el que la evaluación material de varias jugadas fuese igual, aplicaba evaluaciones suplementarias como las de movilidad, de estructura de peones, de defensas, etc. Años más tarde Hans Berliner, campeón mundial de ajedrez por correspondencia, prosigue el estudio iniciado por Turing sobre las posiciones muertas y amplía el concepto llegando a lo que se conoce como posiciones quiescentes, posiciones no estáticas en las que hay intercambio, con el ya mencionado efecto horizonte. El efecto horizonte se produce cuando dado un corte prematuro en la evaluación de la jugada, no se vea con la suficiente profundidad o antelación qué puede ocurrir. El símil, y de ahí el término, con el horizonte real es simple de observar: no podemos conocer qué hay más allá de la línea del horizonte hasta que no avancemos un poco más. El ejemplo clásico y que forma parte de las pruebas básicas que sirven para determinar el nivel de “inteligencia” que alcanza un jugador artificial es el que hemos citado sobre el sacrificio de dama: un corte prematuro en la profundidad podría llevar a que no se viese que con ese movimiento llegamos a un mate seguro. Otro ejemplo que habitualmente se cita es el de las promociones de los peones. En un tablero con sólo dos o tres peones en la fila de salida por bando en columnas diferentes y separadas unas de las otras -por ejemplo, agrupados por color en cada lateral del tablero- serían necesarios de doce a catorce niveles en el árbol de juego para que el jugador eligiese la mejor jugada de avanzar un peón por la verdadera razón que subyace: intentar promocionar el peón. A partir de este momento, nos encontramos aproximadamente en la década de los sesenta, y quizá por el aumento en potencia de cálculo de los ordenadores de la época determinada por la llegada del transistor y la aparición de la poda alfabeta sobre el árbol de juego generado por el minimax, se dejaron de lado técnicas más puras de inteligencia artificial y la forma humana de jugar al ajedrez en favor de lo que se conoce como fuerza bruta. La fuerza bruta no es más que utilizar exhaustivamente la potencia de cálculo del propio sistema para analizar el mayor número posible de alternativas y de ellas elegir la mejor. En otras palabras, la estrategia cedía terreno frente a la tecnología del momento. El primer programa que utilizó estas técnicas de fuerza bruta fue el Chess 4.0, elaborado por David Slate y Larry Atkin, y del que pueden En torno al ajedrecista de Torres Quevedo 335

consultarse los fuentes en uno de los libros clásicos del ajedrez por computadora publicado por los autores. El Chess 4.0, del que posteriormente se desarrollaron diferentes versiones, es un programa de culto para todos los aficionados al ajedrez por computadora y ha servido de referente durante mucho tiempo a grupos de investigación de todo el mundo para poner a prueba sus propias creaciones. En una de sus últimas versiones, a finales de los setenta, fue el primer programa en alcanzar una puntuación, un ELO de 2.000 puntos, comparable la de un jugador humano a nivel de experto.4 Una de estas versiones posteriores, concretamente la Chess 4.5, fue ganadora de un torneo de ajedrez para humanos celebrado en 1977 en Minnesota, la primera vez que un ordenador gana un torneo de este tipo.

Otro hito importante conseguido por una máquina que jugaba al ajedrez fue el debido a Belle, el primer ordenador de propósito específico para ajedrez, en los inicios de los años ochenta. Belle fue construido por Ken Thompson en los Laboratorios Bell, quien también contribuyó en la creación de algunas de las partes del sistema operativo Unís original. Belle fue el primer ordenador en alcanzar un ELO de maestro -aproximadamente unos 2.200 puntos- y contaba con hardware específico para la generación de movimientos y una tabla de aperturas para las primeras fases del juego y otra para finales, de forma que cuando reconocía que estaba llegando a un final, cambiaba de estrategia y en lugar de utilizar búsqueda de alternativas, se centraba en determinar qué línea debía seguir en la base de datos de finales. En la parte del medio juego, utilizando búsqueda en el árbol de juego, llegaba a alcanzar una profundidad

4 Simplemente como referencia, el afamado y brillante jugador de ajedrez Garry Kasparov posee la mayor puntuación ELO del mundo que sobrepasa ligeramente los 2.800 puntos. Un jugador aficionado que sepa las reglas de movimiento y cuatro conceptos básicos sobre ajedrez tendría un ELO equivalente a 900. Los puntos ELO se calculan a partir de los resultados de las partidas con otros jugadores y aplicando una gran cantidad de reglas que favorecen a que los nuevos jugadores con menos puntuación puedan progresar en su carrera y que los más aventajados les sea costoso aumentarla, por así decirlo, se ganan puntos jugando y ganando a mejores jugadores, no a los de nivel similar. Las menciones de \emph{gran maestro} o \emph{maestro internacional} se obtienen ganando una serie de partidas o torneos a lo largo de un periodo de tiempo frente a jugadores de mayor nivel. 336 J. de Lope Asiaín

de unos ocho o nueve niveles de profundidad en el árbol y calculaba en torno a 180.000 posiciones por segundo, una verdadera hazaña para la época. Antes de la llegada de Deep Thought, predecesor del famoso Deep Blue, también existieron una serie de programas que por lo menos requieren de una breve mención por sus características o aportaciones. Estamos hablando, por ejemplo, de MacHack VI, un programa elaborado en el MIT en 1966 por J. Greenblatt, que es el primer jugador no humano que participa en un torneo de ajedrez. Jugó cinco partidas, perdiendo cuatro de ellas y llegando a tablas en la quinta, no fue un buen comienzo, pero, el año siguiente fue capaz de ganar por primera vez una partida frente a un humano en un campeonato. es otro programa del que se suele guardar un gran recuerdo. Fue el primer gran programa de ajedrez soviético y que en 1974 ganó el Campeonato Mundial de Ajedrez entre Computadoras. En aquel torneo, que corría sobre un ordenador inglés, barrió a sus competidores con un aplastante 4–0. Ostrich es quizás de esos programas que no sean demasiado conocidos por aparecer en las primeras posiciones de las clasificaciones en campeonatos, pero, sin embargo, es muy conocido y referenciado porque era el primer programa que rendía la partida, en otras palabras, era capaz de darse cuenta de que estaba perdiendo la partida y no seguir intentando llegar al final como un vulgar autómata. Por tanto, Ostrich, del inglés avestruz, haciendo honor al nombre que sus creadores pensaron para él, en las situaciones en las que no veía clara la continuidad de la partida, enterraba la cabeza en la tierra y abandonaba. Y quizá los últimos grandes jugadores antes de que irrumpiese en escena Deep Blue sean Cray Blitz y Fritz. Cray Blitz fue capaz de ganar en 1981 el campeonato estatal de Mississippi con un resultado de 5–0. En este caso el nombre le venía por ejecutarse en algunas de sus versiones en un superordenador Cray -del que en alguna configuración se decía que era el sillón más caro del mundo porque el ordenador en sí, de apariencia y constitución redonda para que los buses recorrieran mejor su interior y los componentes estuviesen más cercanos, estaba rodeado de un asiento- y Blitz porque es con el vocablo que se conoce a las partidas rápidas de ajedrez en el mundo anglosajón. Por su parte, Fritz, del que pueden verse las últimas versiones en los estantes de los departamentos de juegos de los grandes almacenes y sirve en la preparación de ajedrecistas profesionales, fue capaz en 1994 de ganar a varios ajedrecistas con categoría de maestro internacional en un torneo realizado en Munich. Entre sus contrincantes se encontraba el famoso Anatoli Karpov, que tantas finales del torneo mundial ha disputado contra Kasparov. Pocos años antes de que Deep Thought, Pensamiento Profundo como la prensa de habla hispana le suele mencionar, ganase el Campeonato Mundial entre Computadoras del año 1989, Feng-Hsiung Hsu, Murray Campbell y otros desarrollaron en la Universidad de Carnegie-Mellon la máquina denominada ChipSet que se trataba de una versión previa. Era un hardware específico para el ajedrez con el que se podían obtener resultados incomparables con las otras máquinas del momento. Con esta configuración inicial y todavía sin ajustar, se alcanzaba de forma simple la cifra de las 500.000 posiciones por segundo, más del doble de lo que se consiguió con Belle pocos años antes. Deep Thought, En torno al ajedrecista de Torres Quevedo 337

que utilizaba también el tiempo del contrario para planificar su jugada y no sólo el que a él le pertenecía, y de ahí lo de pensamiento profundo, disputó una gran variedad de partidas de exhibición y torneos, ganando la mayor parte de ellas, como la que entabló contra el gran maestro Robert Byrne, y perdiendo otras, como la del campeón del mundo del momento, Gari Kasparov.

Posteriormente, IBM se interesa por el proyecto, adquiere los derechos y el equipo de trabajo, incluidos Hsu y Campbell, y se empieza a desarrollar Deep Blue,5 la siguiente versión. Deep Blue cambia en su concepción del hardware y pasa a ser un ordenador masivamente paralelo con más de 30 nodos con el que se pueden alcanzar en sus comienzos entre los 2 y 3 millones de posiciones por segundo, las últimas versiones llegan sin dificultad hasta los 200 millones de posiciones por segundo. Se estima que para alcanzar una profundidad de en el árbol de búsqueda de 14 niveles, lo que sería el equivalente a un nivel de campeón mundial, sería necesario llegar a la cifra de 1.000 millones de posiciones por segundo. En la historia reciente de esta máquina, pierde el torneo que disputa contra Kasparov en 1996 por 2–4. Casi un año más tarde, el 11 de mayo de 1997, Deep Blue derrota a Kasparov por 3,5–2,5 en un torneo que se citaba como el Match del que se hicieron eco la mayor parte de los medios de comunicación del mundo, del que se podían seguir sus partidas en tiempo real a través de la red con comentarios de grandes maestros y del que se dijo que hacía peligrar la hegemonía de la inteligencia y de la raza humana sobre el planeta. Si bien es un logro que una máquina gane en campeonato a un campeón del mundo, mucho tienen de publicidad y de comercial estas aseveraciones. Hay que recordar que el semanario Newsweek describió el torneo como “el último baluarte para la humanidad” y a Kasparov como “la esperanza del género humano”. Al propio Kasparov antes del encuentro se le podían leer

5 No queda reflejado claramente en ningún sitio, pero el cambio de nombre se debe probablemente más bien a una estrategia comercial y no tanto a la profundidad del azul como suele leerse en algunos medios. Hay que recordar que IBM ha recibido siempre el sobrenombre de “El Gigante Azul”. 338 J. de Lope Asiaín

cosas como “yo no pierdo nunca, nunca he perdido en mi vida, seré capaz de crear una estrategia que será la más dolorosa y venenosa para la máquina” y tras la derrota “pido perdón, no he encontrado la fuerza para luchar... sentía el destino de la humanidad tras mis espaldas”.

Hay que recordar que esa versión de Deep Blue estaba especialmente concebida para jugar contra Kasparov. Contaba con una base de datos compuesta por miles de partidas entre grandes maestros y conocía perfectamente el juego que era capaz de desarrollar Kasparov, tanto el propio Deep Blue como los grandes maestros que formaban parte del equipo como es el caso de Joel Benjamin e incluso el español Miguel Illescas, uno de los mejores ajedrecistas españoles de todos los tiempos, al que se consultó para cierto tipo de jugadas. Que un ordenador gane una partida a un jugador humano es una cosa, que gane un campeonato mixto en el que participan hombres y máquinas, es otra. Que gane al campeón mundial humano también es otra. Pero la pregunta es ¿cuándo ganará un ordenador el campeonato mundial? Pues en este caso lo mejor es citar las predicciones que hicieron los entendidos para no dejarse llevar por el ánimo de los últimos éxitos.

Monty Newborn, ajedrecista y científico al que se debe el primer libro íntegro sobre ajedrez por computadora, indicó que ese momento llegaría en 1992. John McCarthy, uno de los padres de la inteligencia artificial como disciplina y al que debemos entre otras muchas cosas el lenguaje LISP que ha sido el lenguaje de la inteligencia artificial desde su creación en torno a 1954, apunta por una fecha similar, 1993. Hans Berliner y Feng-Hsiung Hsu, que ya han sido citados anteriormente, apuestan por el mismo año, el de 1994. Incluso En torno al ajedrecista de Torres Quevedo 339

el gran Claude Shannon falló en sus predicciones al apuntar como 1999 el año en el que un ordenador se proclamaría vencedor del campeonato mundial. Quedan dos predicciones por comprobar, de entre otras muchas que no se citaran, y que con el transcurso de los años tendremos la solución: Gari Kasparov apuesta por 2010 y Ken Thompson por 2018. El tiempo dará o quitará la razón de lo que no son más que apuestas, aunque algunos como el filósofo Hubert Dreyfus, feroz adversario de la inteligencia artificial en general, ya había anunciado en la década de los sesenta que una máquina nunca podría jugar bien al ajedrez.

BIBLIOGRAFÍA COMPLEMENTARIA

Campbell, M., Nowatzyk, A., Feng-Hsiung, H., Anantharaman, T. (1997): “A Grandmaster Chess Machine”, Scientific American, April. Frey, P. W. (ed.) (1983): Chess Skill in Man and Machine. New York: Springer-Verlag. Levy, D. (ed.) (1988): Computer Games I, New York: Springer-Verlag. Marsland, A. y Schaeffer, J. (eds.) (1990): Computer, Chess and Cognition, New York: Springer-Verlag. Newborn, M. (1975): . New York: Academic Press. Newell, A, Shaw, J. C., Simon, H. A. (1958): “Chess-playing Programs and the Problem of Complexity”, En E. Feigenbaum, J. Feldman (eds.) (1995): Computers and Thought. New York: McGraw Hill. Shannon, C. E. (1950): “Programming a Computer for Playing Chess”, Philosophical Magazine, vol. 41, pp. 256–275. Simon, H. A. y Scheffer, J. (1992): “The Game of Chess”, En R. J. Aumann y S. Hart (eds.): Handbook of Game Theory with Economic Applications, vol. 1, pp. 1–17. The Netherlands: Elsevier.