Showing posts with label cálculo y análisis de posiciones. Show all posts
Showing posts with label cálculo y análisis de posiciones. Show all posts

Thursday, October 18, 2012

¿Por qué es tan dificil el ajedrez?


Siempre pensé que el ajedrez es un juego difícil porque la valoración del tablero, quién tiene la ventaja, quién puede ganar, qué tipo de ventaja nos hace aspirar a la victoria, depende de muchos factores, empezando por el conocimiento previo de muchísimas posiciones. Por ejemplo, si en algún momento valoramos una posición y calculamos que podemos simplificar cambiando piezas y llegando a un final con chances ganadoras, es claro que la decisión la tomaremos si conocemos el tipo de final al que llegaremos y la técnica que hay que aplicar para hacerse del triunfo. Si no sabemos esto, pues resulta muy dudoso entonces embarcarse en una situación que nos llevará a una posición que nos deja tantas o más dudas que la posición que tenemos en ese momento en el tablero.

 Hoy me he dado cuenta que, aparte de estos problemas, inherentes al ajedrez mismo, hay un factor de percepción del ajedrecista que hace que las cosas sean más difíciles. Por ejemplo, en la siguiente posición (ver el diagrama 1), estamos atacando con un peón a dos piezas. Nos comeremos una de ellas, sin lugar a dudas (a cambio del peón).

Diagrama 1
Juegan las blancas


Ocurre pues que el ajedrecista ve que el peón ataca a dos piezas. La percepción visual indica que el peón ataca al alfil o al caballo. Así, el jugador de ajedrez le da un claro valor a este ataque. Ahora veamos el diagrama 2:

Diagrama 2
Juegan las blancas

En este caso, el peón de e5 ataca las dos casillas (las mismas que atacaba en la posición 1), pero aquí no existen las piezas, por lo que de nuevo, la percepción visual del ajedrecista es diferente. No parece ser lo mismo atacar dos piezas que atacar dos casillas, ¿verdad?

Y todo reside en la percepción visual del tablero. Veamos el diagrama 3:

Diagrama 3
Juegan las blancas

En esta posición las blancas juegan 1. Axf4 y ganan una pieza, porque el alfil negro de e5 está sobrecargado defendiendo ambos caballos. (1 ... Axf4 2. Txd4, ganando). Una vez más la percepción visual es clara. Vemos que nuestras piezas atacan a las piezas enemigas. No estamos pues viendo el ataque a las casillas f4 y d4 (del diagrama 3), sino el ataque a los caballos (por un lado con el alfil y por el otro con la torre, que se descubre al hacer la captura en f4). 

Quiero hacer énfasis en que hay una diferencia cualitativa entre atacar piezas y casillas, y esta diferencia en la percepción del tablero es la que hace que el ajedrez sea muy difícil, o más difícil de lo que debería serlo. Consideremos la siguiente posición:

Janssen, Ruud - Sokolov, Ivan
Leeuwarden ch- NED 2002 (6)
Juegan las negras 
Diagrama 4

¿Qué debiesen jugar las negras? Aquí una sola jugada gana y desde luego, Sokolov la vio: 1. ... Td2!! ganando de inmediato. ¿Cómo es que es posible esta jugada? ¿No está acaso la casilla d2 defendida por la torre blanca de d1? La respuesta es que sí, sí que lo está. El problema es que la torre blanca en d1 está sobrecargada. Suena increíble pensar que el tema de la sobrecarga no se limita a ejemplos como el del diagrama 3. Estrictamente hablando y en esencia, la torre de d1 está defendiendo la casilla d2 y la casilla f1. Por ende, tiene que "servir a dos amos" al mismo tiempo y falla finalmente con uno. Después de 2. Txd2 Af3+ 3. Axf3 Df1#. Cabe decir que el alfil blanco en e2 defiende f1 y f3. De nuevo, tenemos otra pieza sobrecargada.Y vuelvo a hacer énfasis en que tanto la torre como el alfil blanco están sobrecargadas porque defienden dos casillas al mismo tiempo, que pareciera diferente a defender dos piezas (como en el diagrama 3).

El punto es pues que la percepción visual al defender o atacar es diferente si se trata de piezas o de casillas, y esto es precisamente lo que muestra la combinación de Sokolov, la cual es posible por el tema de sobrecarga de casillas defendidas. Nunca antes he visto que en la literatura ajedrecística se hable de sobrecarga de casillas

De hecho, estoy seguro que si pusiésemos una pieza X (vamos a decir una "piedra"  en d2 y otra en f1), la combinación de Sokolov sería mucho más fácil de encontrar.

Pero veamos el siguiente ejemplo:

Diagrama 5 (*)
Juegan las blancas

Esta es una posición asombrosa. Las blancas ganan después de 1. Df8+!!. Si las negras responden 1. ... Rxf8 2. Th8#; Si 1. ... Txf8 2. Ce7#. Obsérvese que en este caso, las casillas e7 y f8 están defendidas por la torre de e8 (primera sobrecarga), y el rey negro está defendiendo f8 y h8 al mismo tiempo (segunda sobrecarga). La combinación es posible entonces por estos defectos en la posición negra. Lo que parece sorpresivo es que la casilla f8, que parece estar tan bien defendida simplemente no lo está.

Así pues, muchas combinaciones se basan en estos "temas" de sobrecarga de escaques y como nos acostumbramos a visualizar y valorar de forma diferente el ataque (o defensa) de piezas al ataque (o defensa) de casillas, entonces nos sorprenden estas combinaciones que francamente suenan maravillosas.

En mi opinión, los jugadores -en la medida que suben de nivel ajedrecístico- empiezan a entender que la valoración de piezas y casillas atacadas es parecida y evidentemente, los grandes jugadores comprenden mucho mejor estas sutilezas. Esto, no me queda duda, es parte del entendimiento del ajedrez. Va más allá del saber hacer una feliz combinación. Es comprender más profundamente nuestro juego.Yo a veces creo que lo que a los ojos de los aficionados una jugada es fantástica, para los grandes maestros es en muchos sentidos "rutinario". Es una cuestión de entendimiento del ajedrez,que lleva muchos años dominar.

___
(*) Tomado del ejercicio núm. 32 del estupendo libro Move First, Think Later, de Willy Hendricks,  Ed. New in Chess. Muy recomendable en todos sentidos. Cabe decir que Hendricks usa este ejemplo en términos de patrones de ajedrez, y no con el enfoque que estoy analizando en este texto.

Monday, April 09, 2012

¿Por qué el ajedrez es tan difícil?


En estas últimas semanas he estado reflexionando el por qué el ajedrez es un juego tan difícil y creo haber llegado a una conclusión que quisiera llamarla definitiva. Para ello, debo antes explicar algunos asuntos.

Todos los problemas pueden definirse vía una descripción o representación del conocimiento de un pequeño mundo (llamado micromundo), el cual puede satisfacer o no ciertas metas. Remitámonos al problema de representar el árbol de variantes en una partida de ajedrez. Aquí creamos un árbol que empieza en la jugada inicial (desde la posición dada en un principio) y a partir de ahí se abren hojas para acomodar las jugadas posibles. A su vez se pueden abrir más nodos hacia abajo y depende de qué tan profundo generemos este árbol, podemos llegar a tener un árbol muy frondoso (dependerá, desde luego, de la posición inicial dada).

Dada esta representación, lo que normalmente hacemos es recorrer el árbol de variantes, valorando cada posición y viendo si nos es conveniente o no. Esto es lo que hacen los programas de ajedrez a partir de una función de evaluación, el corazón de todo programa de esta naturaleza. Los ingenios cibernéticos actuales como Rybka, Houdini, Fritz, StockFish, etc., pueden analizar miles de jugadas por segundo. Desafortunadamente esta velocidad no es suficiente porque el crecimiento de jugadas en el árbol de posibilidades de una partida de ajedrez crece de forma exponencial y muy rápido (creo que lo que estoy diciendo es un pleonasmo, pero en fin).

Existen dos métodos clásicos para recorrer el árbol (o espacio de búsqueda): Búsqueda en profundidad (depth first) y Búsqueda a lo ancho (breadth first). El siguiente diagrama puede mostrarnos cómo hacer la búsqueda en profundidad:


Consideremos que la meta es hallar que desde una posición dada, se llega al mate. Si empezamos la búsqueda en el nodo 1 (ver figura), buscamos probar la meta. Si no se cumple, entonces nos movemos al nodo 2. Repetimos probar la meta. Si no se cumple, pasamos al siguiente nodo a la izquierda, el cual es el 3. Si probamos la meta y no se cumple, pasamos al nodo 4. Si de nuevo, al probar la meta, fallamos, entonces nos movemos al nodo inmediatamente a la derecha, pues el nodo 4 es un nodo terminal. Así, caemos en en nodo 5. Si de nuevo la meta no se puede probar entonces hacemos backtrack y hemos regresado al nodo 3. Como éste ya vimos que no era solución, regresamos vía este mismo procedimiento al nodo 2 y posteriormente al 1. Entonces hallamos que el siguiente nodo a analizar es el 7. ¿Es una solución? Si no lo es, regresamos al anterior (pues el 7 es otro nodo terminal), y comenzamos a recorrer el nodo 8. Este nodo contiene dos hojas, el 9 y el 12. ¿a cuál debe irse? De acuerdo a lo que sabemos primero revisamos el nodo de la izquierda, es decir, pasamos al 9, de ahí al 10. Si en ninguno de los casos la meta se cumple, hacemos backtrack del nodo 10 y analizamos el nodo 11. Si tampoco resulta este ser solución, hacemos backtrack y subimos hasta el nodo 8, en donde solamente nos resta analizar el nodo 12. Si éste no es solución, entonces no existe una respuesta satisfactoria al problema.

Nótese como hacemos una búsqueda exhaustiva, empezando por el nodo raíz y siempre revisando primero el nodo izquierdo hasta lo más profundo para acto seguido analizar el nodo derecho mas inmediato.

La otra búsqueda, llamada breadth first permite buscar y valorar cada nodo al mismo nivel. Por ejemplo, en la siguiente imagen:


En la búsqueda breadth first, el algoritmo examina todos los nodos a un nivel (llamado en ocasiones ply).

El siguiente diagrama muestra el orden en el que los nodos son examinados. Como puede notarse, todos los nodos en un nivel se analizan consecutivamente buscando satisfacer la meta. Al terminar esto se sigue en el siguiente nivel y así sucesivamente.

Para el caso del ajedrez, si el diagrama del árbol mostrado representara analizar jugadas, ¿qué es lo mejor? ¿buscar en profundidad o a lo ancho?

El caso ideal sería analizar en profundidad pero esto implicaría ir hasta las últimas consecuencias en todas las variantes hasta llegar al mate o a una posición ganadora. Pero esto es una utopía por el crecimiento de variantes en ajedrez que llega a ser inmanejable. No importa qué computadora podamos conseguir. Siempre el ajedrez nos superará en términos de jugadas a analizar.

La otra opción es ser más humanos y ver una jugada adelante en todas las ramas (como en breadth first). Podríamos evaluar hasta ese momento y decir quién tiene la ventaja. Sin emabrgo, sabemos que esto es poco, porque por ejemplo, una jugada en donde el blanco puede capturar la dama enemiga parece una buena idea... a menos que el rival conteste con un mate inmediato en castigo a nuestra glotonería. Por ello hay que ir al siguiente nivel en el árbol. Cada nivel es un ply y en ajedrez esto significa media jugada, un movimiento, ya sea de blancas o negras. Dos plys conforman una jugada completa (de blancas y negras).

Una vez que ya sabemos esto, podemos preguntarnos qué clase de búsquedas hace el ser humano. Desde luego que en la multitud de posibilidades de búsqueda, si tomamos solamente este par de sistemas, veremos que es más probable que el ser humano decida  analizar la siguiente jugada con sus variantes (un ply). En la medida de lo posible buscará analizar más profundamente, pero no llegará en general a analizar más de 6  o 7 plys (3 a 3.5 jugadas en promedio), que de hecho es lo que una de las primeras computadoras dedicadas al ajedrez, la Belle, de Ken Thompson, podía analizar y con lo que logró el título de maestro nacional en los Estados Unidos allá por los años setentas del siglo pasado.

Evidentemente un gran maestro, un jugador de elite, puede analizar si lo requiere, muchos plys. Por ejemplo, hace poco Nakamura y Carlsen se enfrascaron en una compleja partida en donde ambos jugadores vieron en algún momento más allá de 20 plys, asombroso para los seres humanos llegar a esa profundidad. Y aunque la posición lo amerite, muchas veces está fuera del alcance de la imaginación de los jugadores de cierto nivel.

Así pues, el ajedrez es difícil, muy difícil para los seres humanos porque nosotros comúnmente usamos breadth first search en lugar de depth first search, y esto probablemente tenga que ver además con las problemáticas que normalmente se tienen en la vida cotidiana y por ende, en la manera de buscar que usamos los seres humanos, en un afán de esforzarnos lo menos posible para hallar la solución adecuada, sino la óptima. Para decirlo de manera menos técnica: nuestras búsquedas para solucionar los problemas son en general bastante superficiales, quizás demasiado.