epelpad

Ajedrez, matemática y computadoras

Ajedrez, matemática y computadoras


El ajedrez es un juego netamente matemático. Dentro de la teoría de juegos, el ajedrez es un ejemplo clásico de lo que se conoce como “juegos de reflexión pura e información perfecta” (Otros juegos muy populares que encuadran en esta categoría son el Ta-te-ti y las Damas).


Resolución del ajedrez

¿Qué significa “resolver” el ajedrez?
Significa que podamos establecer una ponderación de cada una de las posibles jugadas que se presenten en una partida cualquiera; lo que nos llevaría a saber de antemano cuál sería el resultado de una contienda (gana el blanco, tablas, gana el negro) si ambos rivales efectuaran los mejores movimientos.
Lógicamente esta tarea no es nada fácil, puesto que se estima que el árbol de variantes de una partida promedio de 40 jugadas debería contener 10^200 (diez elevado a la doscientos) movimientos. Dicho número se conoce como “número de Shannon”.
Por lo pronto no tenemos el hardware necesario para completar una tarea tan abismal, cosa que hace que el ajedrez no pierda su encanto, pues si estuviera resuelto pasaría a ser una disciplina memorística.
Los otros 2 juegos que mencioné antes ya están resueltos. Te invito a que intentes resolver el ta-te-ti, es muy sencillo. Si ambos jugadores hacen las mejores jugadas el resultado será empate.


TA-TE-TI, uno de los juegos más sencillos de resolver
Ajedrez, matemática y computadoras



El juego de Damas ha sido resuelto en 2007 y el veredicto fue que si ambos contendientes hacen las mejores jugadas, el empate es ineludible.


LAS DAMAS, juego resuelto en 1997 con un programa llamado "Chinook"
Ajedrez


Tarde o temprano el ajedrez se resolverá. ¿Cuál piensan que será el resultado de una partida perfecta?



¿Cómo elige las jugadas un programa de ajedrez?

Al comienzo de una partida los programas se sirven de su libro de aperturas que es una gran base de datos que les proporciona las mejores jugadas sin tener que “pensar” hasta más o menos la jugada 25 ó 30 aproximadamente (puede haber líneas forzadas de 40 jugadas de teoría también).
Al final de una partida, cuando quedan pocas piezas sobre el tablero, un programa apaga su cerebro y comienza a leer las bases de datos de finales, cuyos análisis son implacables y hacen que juegue a la perfección, ya sea en defensa o en ataque.

Lo interesante viene cuando el programa tiene que “pensar”, cuando tiene que elegir una jugada en una determinada posición por sus propios medios, sin ayuda de libros de aperturas ni bases de datos de finales. Aquí es donde se pone en juego la verdadera fuerza de un programa ajedrecístico.

En primera instancia, el programa hace una lista de todas las jugadas legales que tiene a su disposición. Luego, va construyendo un árbol de variantes con cada una de dichas jugadas y todas las posibles contestaciones del rival (esto es algo muy tedioso para un ser humano, pero es fácil para una computadora). En general, el árbol de variantes se hace muy extenso y el proceso se hace cada vez más lento.
Establecido un burdo árbol inicial de variantes, se procede a la ponderación de las mismas mediante parámetros que los programadores han establecido de antemano, como por ejemplo:
Búsqueda de mate, ganancia de material, configuraciones de peones, actividad de piezas, defensa del rey, etcétera.
La combinación de estos parámetros le da al programa una valoración matemática de una determinada posición, bajo un nivel de profundidad de cálculo determinado.
La evaluación de una determinada posición es dinámica, va variando de acuerdo al tiempo de análisis que nuestro programa invierta en ella. Cuanto más tiempo analice, más acertada será la valoración y más fuertes serán las jugadas que sugiera.

El programa de ajedrez que tenga los mejores parámetros será el más fuerte de todos. La cuestión es que es muy difícil crear algoritmos para situaciones desconocidas y esperar que el programa tome la decisión correcta siempre. Es por ello que día a día salen nuevos programas que superan a sus antecesores y van acercándose día a día a la perfección.

De más está decir que un programa comercial de €99,90 (o el mismo pero bajado gratis en Taringa!) es más fuerte que el actual campeón del mundo.

Aún así, tengo el agrado de mostrarles algunos problemas interesantes que en cierta forma “entorpecen” la potencia de cálculo de un programa de ajedrez actual (espero que los futuros programas no se entorpezcan) y que un humano resuelve rápidamente. Esto era lo que quería postear realmente, pero me pareció adecuado hacer una breve introducción para preparar el ambiente para el plato fuerte.



Tres diagramas para el deleite ajedrecístico de humanos y máquinas

PRIMER DIAGRAMA – Juegan negras
matemática

Si usted juega habitualmente al ajedrez con un mínimo nivel táctico, sabrá rápidamente que el negro tiene ventaja decisiva, ya que luego de 1...Txd3 2.Txd3 De1+ 3.Rg2 De4+ 4.Dxe4 Axe4+ 5.Tf3 f5 el blanco perderá su torre de f3 y por consiguiente la partida.
Estuve testeando la susodicha posición con algunos módulos de ajedrez (módulo de ajedrez es la parte del programa que “piensa”) con programas del calibre de Rybka 3 o RobboLito y tardan más que un humano de 2200 de ELO en llegar a la verdad. Al principio opinan que es una posición completamente igualada. Aclaro que estoy usando una PC con 1GB de RAM y un Athlon X2 de 2100 MHz cada core, pues cuanta mejor máquina uno tiene más rápido trabajan los programas (Recuerdo que hace unos 8 años probé la misma posición en mi antigua compu AMD K6-2 500 MHz y 192MB de RAM y el módulo Deep Fritz tardó 1 hora y pico en ver la variante ganadora).


SEGUNDO DIAGRAMA
“ABRAN CANCHA” - Juegan blancas
problemas


Esta curiosa posición es una delicia para enloquecer a nuestras máquinas. Resulta que el hecho de tener dama de ventaja hace que los módulos de ajedrez empiecen a valorar que el blanco está ganadísimo, pero no pueden darse cuenta de cuál es la estrategia a seguir para ganar la partida. De hecho, hay que ingeniárselas para encontrar el método ganador. Recuerdo que cuando salió el Fritz 9, logré bajármelo con el Ares y lo testeé con este problema en un cyber con una PC Celeron de 1700 MHz y 256 MB de RAM y lo resolvió en poco más de 50 minutos (bastante tiempo, mucho más de lo que tardé yo mismo).
Si alguien está interesado en la solución, luego la publico.

TERCER DIAGRAMA
“SENDA BLANCA” - Juegan blancas
rybka


Este problema es una verdadera joya compuesto por A. Troitsky en 1934. A primera vista, parece que las tablas son irremediables, puesto que la amenaza de las negras de jugar Th2+ y capturar el alfil de h1 no se puede evitar a menos que se entregue el alfil de d8. Para un humano es muy fácil ver el “truco” de cómo resolver esta brillante composición, pero para una computadora no lo es tanto.
Los invito a pensar la solución y a disfrutar al máximo con el hermoso elixir mental que nos brinda el ajedrez.

Ojalá que los programadores de Rybka, RobboLito, Fritz y otros lean Taringa! así fabrican mejores y más eficientes algoritmos en un futuro no muy lejano.

¡Espero que les haya gustado!

6 comentarios - Ajedrez, matemática y computadoras

Karmak
caray, debes de estar muy tosco. Calculo minimo para resolber estos problemas??? se te agradece bastante.
perfumederodrigo
buena lectura... a mi me gustaria saber donde abres con la reina en el diagrama 2 ese de abran cancha, sino es para un post podrías mandarme un MP... saludos