Hay más tablas en el ajedrez

07/03/2009 – Una de las expresiones que más llaman la atención a quienes no son especialmente aficionados al ajedrez es que se llame tablas al empate. Pues bien, desde el desarrollo de la informática aplicada al noble juego, hay más tablas que esas. Nos referimos a las tablas de finales, tablebases o tablas de Nalimov. Claro que antes se compilaron las de Thompson. Para saber un poco más sobre ellas y su fundamento, les ofrecemos este artículo de Manuel López Michelone, que repasa la historia y los fundamentos de intentar resolver el problema del ajedrez desde el final, mediante el análisis retrospectivo. No son de madera, pero cuando vemos la rapidez y precisión con la que funcionan nos dejan de piedra...

ChessBase 14 Download ChessBase 14  Download

Programa de gestión de bases de datos de ajedrez que es referencia mundial. Todos usan ChessBase, desde el campeón del mundo al aficionado. Inicie su historia de éxito personal con ChessBase.

Más información...

¿Cómo es que funcionan las tablas de Nalimov?

Reproducción del artículo con el amable permiso de su autor Manuel López Michelone

El ajedrez por computadora es uno de los terrenos más antiguos de la inteligencia artificial, habiendo empezado en los años 1940. Claude Shannon propuso los criterios formales para hacer que un programa jugara al ajedrez en un artículo ya clásico al respecto. Fue hasta 1951 cuando Alan Turing diseñó un programa primitivo que jugaba al ajedrez, que asignaba valores para material y movilidad, el programa “jugaba” al ajedrez basándose en los cálculos manuales de Turing porque de hecho, no había código de computadora, era una simulación en papel.


Alan Turing

De todo lo anterior ya han pasado unos cincuenta años y el desarrollo de programas de ajedrez ha manifestado un continuo avance. Gracias al software de esta naturaleza los ajedrecistas hemos visto cómo algunas grandes combinaciones han sido refutadas por los ingenios de silicio que no tienen empacho en mostrarnos nuestros errores. La computadora no sabe de sentimientos, de miedo, de psicología del rival, de nada de eso. Por ello siempre juega con una constancia inalterable y todas sus jugadas se basan en la valoración que les da el código previamente programado.

También hemos notado las debilidades inherentes de estos programas, particularmente en lo que se refiere a los finales de partida. Es tan difícil el ajedrez que en muchas ocasiones hallar el triunfo (o el empate) en una posición con pocas piezas parece mucho más complejo que cuando se tienen más figuras en el tablero. Por ejemplo, los finales de torres y peones, muchos de ellos son extremadamente difíciles y ya algún gran maestro habría dicho aquella famosa frase de “nadie en el mundo juega bien los finales de torres”, aunque no sé a quién se le atribuye dicha afirmación.

Ante esta situación, en 1965, Richard Bellman propuso la creación de una base de datos para resolver finales de ajedrez y damas utilizando ajedrez retrospectivo. Esto significa que en lugar de analizar hacia adelante a partir de la posición actual, la base de datos analizaría hacia atrás desde posiciones donde un jugador da jaque mate. Así, una computadora de ajedrez no necesitaría analizar nunca más posiciones finales durante la partida porque estarían resueltas de antemano. No volvería a haber errores porque las bases de datos de tablas siempre jugarían el mejor movimiento posible. Ingeniosa idea, sin duda.

En 1970, Thomas Ströhlein publicó una tesis doctoral con análisis de las siguientes clases de finales: RDR, RTR, RPR, RDRT y RTRC. Ken Thompson, de Laboratorios Bell y creador de la primera computadora a la que se le otorgara el título de maestro nacional en los Estados Unidos, ayudó a extender las bases de datos para cubrir todos los finales de cuatro y cinco piezas. Las contribuciones más recientes en este campo se deben a:

• Eugene Nalimov por el que las base de datos de tablas de finales reciben su nombre.
• Eiko Bleicher, que ha adaptado el concepto de base de datos de tablas a un programa llamado "Freezer".
• Guy Haworth, un académico de la Universidad de Reading, que ha publicado intensivamente en el ICGA Journal.
• Marc Bourzutschky y Yakov Konoval, que han colaborado para analizar los finales con siete piezas en el tablero.


Eugene Nalimov

El análisis de todos los finales de hasta seis piezas (incluyendo los dos reyes) se completó en 2006. (Sin embargo, las bases de datos de tablas con cinco piezas contra un sólo rey no se han generado porque el resultado es casi siempre obvio) Las bases de datos para todas las posiciones de hasta siete piezas se sigue elaborando y se estima que se termine para el año 2015. Cuando las bases de datos de siete piezas estén completas, componer una miniatura tradicional será obsoleto.

Un ejemplo sencillo puede ser ilustrativo. Imaginemos el final de Rey y Dama contra Rey. En este caso una tabla de finales para este particular final seria escribir un software que hallara todas las posibles posiciones de esas tres piezas. Obviamente hay restricciones, por ejemplo, los reyes no pueden estar en casillas contiguas. Así como el rey enemigo no debe estar en casilla contigua con la dama tampoco. Si los cálculos no me fallan, hay menos de 262144 posiciones (64 al cubo), pues en este cálculo no he quitado las restricciones mencionadas. Digamos pues que tenemos entonces todas las posibles posiciones de este final elemental. Ahora clasificamos las posiciones que son mate y las colocamos en una jerarquía aparte. A partir de ahí, nos vamos moviendo hacia atrás, retrocediendo y así podremos saber qué jugadas, o mejor dicho, secuencias de posiciones, nos llevan a las posiciones de jaque mate. Un documento del propio Ken Thompson explica este procedimiento.


Ken Thompson

De esta manera se han generado las tablas hasta de seis piezas. Esto es equivalente a jugar ajedrez simplemente buscando en una gigantesca base de datos (un terabyte, algo así como 1000 gigabytes de datos), la posición que nos interesa y así saber qué posición es la que sigue que debemos jugar. Esto, a decir de Ken Thompson es “Jugar al ajedrez con Dios”. Aunque todo esto parece ser sencillo es muy laborioso y se necesita evaluar cada posición para saber cómo seguir de una posición a la siguiente (si es que se busca el triunfo o bien se intenta encontrar un empate en una posición difícil).

Una simpática anécdota que involucra estas tablas de finales me tocó vivirla en el 2003, en el Torneo de Linares. Estábamos viendo en la sala de prensa el difícil final de Rey, Dama y peón contra Rey y Dama, en donde Garry Kasparov estaba luchando por el empate. Peter Leko buscaba denodadamente en triunfo y ambos consumían los últimos minutos antes de llegar a las siete horas de juego. Aquí si mal no recuerdo llegó Leontxo García a decir: “¡Que jugadores más malos! ¿No ven que es mate en 92 jugadas?”. Las tablas de Nalimov mostraban el triunfo en un horizonte de jugadas imposible para los seres humanos. La partida mencionada terminó en tablas.

Otro interesante caso fue la partida que Kasparov jugó contra el mundo en 1999 a través de Internet. Se llegó al final que se muestra en el diagrama y en ese momento no se sabía si las negras estaban perdidas o acaso podían rescatar medio punto. La posición del diagrama muestra el momento después de 55.Dxb4 cuando la partida se redujo a una posición de seis piezas. Un análisis hecho con la tabla de finales ahora demuestra que la partida está totalmente perdida para el negro en 82 movimientos. Sin embargo, no se conocía en ese momento y la partida continuó durante siete movimientos más para el blanco antes de que el Equipo del Mundo decidiera rendirse.

Por todo lo anterior, se me ocurrió que habría una manera más ilustrativa de comprender todo este asunto. Para ello tomé un juego más sencillo, el de tres en línea también llamado gato o tic-tac-toe. Este uno de los pasatiempos más interesantes para programar por computadora. Por un lado, es lo suficientemente sencillo para que no requiera de demasiados recursos. Por otra parte, es relativamente complejo y por ende, tampoco resulta un ejercicio trivial. Soluciones del juego del gato y programas que lo juegan correctamente hay muchos. En mis cursos de Prolog (programación lógica, inteligencia artificial), es una tarea que dejo de rigor a los alumnos.

De hecho, el matemático Martin Gardner alguna vez contó que cuando era estudiante de secundaria estaba en una clase de matemáticas intentando hallar alguna fórmula para resolver el gato. Su maestro lo vio (de acuerdo a su criterio, jugando al gato el solo), y le reprendió. Le dijo que mejor estudiara matemáticas y dejara esos jueguitos tontos para su tiempo libre.

Pues bien, en la Universidad Iberoamericana, este semestre estoy dando un curso de Reconocimiento de Patrones. Aunque la parte teórica nunca me ha terminado de gustar (en mi opinión hay demasiadas matemáticas y creo que el enfoque debería ser más práctico, aunque comprendo perfectamente que de esta manera se le da el formalismo y rigor necesarios), pero en la parte práctica, de experimentación, hay N temas que pueden abordarse.

De esta manera, dejé como tarea escribir un juego de gato pero que lo resolviera usando solamente patrones. La idea era generar los patrones necesarios para siempre ganar (empezando la computadora y tirando ésta siempre en el centro), y a cada jugada del adversario, el sistema debería buscar el patrón correspondiente, aplicarlo y generar la jugada correcta. ¡Algo así como generar las tablas de Nalimov para el tres en línea! Evidentemente se necesita un análisis hacia atrás, empezando por las posiciones finales del tres en línea y quitando movimientos de los jugadores.

Uno de mis estudiantes, Daniel González, hizo su programa en Java y utilizó dos trucos: primero generó 42 patrones (incluyendo el del tablero vacío) y de ahí tuvo que ubicar posibles respuestas que se salieran de los patrones utilizando giros del juego del gato (90, 180, 270 grados). De esta manera, como el juego tiene simetría, pudo eliminar información redundante y logró un bonito programa que resuelve (simplemente buscando el patrón correcto), cada jugada que debe hacer la computadora para ganar o al menos, nunca perder. Y hago énfasis en esto: el programa no tiene un algoritmo para resolver el juego del gato o jugar bien. Simplemente es un sistema de búsquedas de patrones y las acciones a realizar cuando el patrón se encuentra. Cabe señalar que están todos los patrones posibles.

Es interesante que con solamente 42 patrones el juego de tres en línea pueda resolverse a la perfección (considerando la restricción de que la computadora empieza y siempre tira en el centro, para así hacer menos difícil la tarea asignada).

Quien quiera jugar contra el software de Daniel mándeme un mensaje a mi correo [morsa(arroba)la-morsa.com] y se lo envío. Se necesita una versión de Java que sea 6.0 o superior.

Fritz & amigos
DVD Endgame Turbo 3
Más información
 
Se trata de 9 DVDs con las bases de datos de finales o tablebases de Nalimov. Con ayuda de ellas, todos los finales de cinco piezas y 12 finales con 6 piezas (incluyendo el sofisticado y orientado a la practica T, P, P - T) se juegan con perfección absoluta. Del mismo modo, Fritz maneja los finales con más de seis piezas mucho mejor, puesto que el programa puede acceder ya a los conocimientos sobre el final durante los análisis. En definitiva, una obra que no debe faltarles  a los jugadores postales, los teóricos de los finales y los amigos de los duelos entre módulos.

Discussion and Feedback Join the public discussion or submit your feedback to the editors


Comentar

Normas sobre los comentarios

 
 

¿Aún no eres usuario? Registro