La dificultad del ajedrez cronometrado

Una de las grandes diferencias en el juego de ajedrez entre los humanos y las máquinas es que las máquinas no sienten pánico ni se estresan.

Por razones que ya hemos explicado antes mientras más tiempo tenga una computadora para «pensar» mejor va jugar, y esto es independiente de si es un segundo, 10 o 100. Sin embargo con los humanos esto es muy distinto, podemos tener tres minutos para hacer una jugada y debido a que no somos una máquina sino estamos entrenados para eso pensaremos distinto debido al límite que si este no existiera…

Veamos un ejemplo:

Supongamos que de repente tenemos que jugar y tenemos 15 segundos para decidir, independientemente de si somos novatos o grandes maestros si tenemos poco tiempo estamos propensos a cometer errores. Sin embargo si tuviéramos todo el tiempo que quisiéramos para pensar la jugada, probablemente no haríamos lo mismo. Esto es similar al problema del horizonte que tienen los algoritmos del ajedrez.

A diferencia de las computadoras, si tuviéramos más tiempo no necesariamente jugaremos mejor, esto debido a la presión del tiempo. Cuando una computadora tiene 15 segundos más para decidir no se pone a contemplar si es buena idea la jugada que hizo por tercera vez o: «demonios, se acabando el tiempo que hago» simplemente es más tiempo para el algoritmo.

Entonces para los humanos el problema no está en la parte lógica del ajedrez, sino en el preámbulo, el contexto, el lado psicológico el juego, para algunas personas añadir la variable del tiempo es demasiado y los convierte de buenos jugadores a pésimos.

Me ha tocado ver partidas de ajedrez cronometrado donde un jugador vence al otro por paliza, en contraste esos mismos jugadores tienen partidas más cortas donde el jugador derrotado suele ganar la mayoría incluso en tiempo menor que el reglamentado en una partida de ajedrez cronometrado.

 

 

En un movimiento las blancas pueden forzar un Zugzwang a las negras, el movimiento no es totalmente trivial sin embargo tampoco es muy complicado para un jugador experto o incluso alguien medianamente experimentado (1.Rh6!! y las negras están obligadas a empeorar su posición). La razón de esto tiene mucho que ver con las heuristicas y el horizonte que le asignemos a cada una.

El Zugzwang anterior causa problemas en Stockfish 6, uno de los motores de ajedrez mas fuertes(si no el mas fuerte) debido a una de sus estrategias llamada «Null move pruning» en pocas palabras lo que hace esto es corta muchas posibilidades del árbol de búsqueda para revisar jugadas mas interesantes, el problema principal con esto es que posiciones como estas fallan en ser detectadas. La explicación de esto es un poco mas complicada, para entenderla primero veamos que es un «Null move» o movida nula.

Una movida nula en los motores de ajedrez es dejar el tablero igual y ver si esto genera un cambio para revisar si esto altera una parte de la función de evaluación o seguir con ella deja las cosas igual. Algo tan sencillo tiene repercusiones importantes en las jugadas analizadas ya que podemos tener muchas movidas nulas, «Null move pruning» se dedica a cortar movidas nulas y al no ser analizadas esto mejora la eficiencia en un 99.99% de los casos conocidos.

Como ya habrán adivinado en el 0.01% restante se encuentran los Zugzwang, aquí esta otra posición donde Stockfish 6 falla en ver el mate:

1.Kg7 Bh2 2.Kg6 Bg1 3.Kf5 Bh2 4.Ke5 Bg1 5.Kd4 Bh2 6.Ke3 Bg1 7.Ke2 Bh2 8.Kf1 Bg1 9.Kxg1 Nh3+ 10.Kf1 Nf2 11.Ke2 Nd3 12.Bxe4# aunque siendo justos yo tampoco lo encontre y tuve que revisar la respuesta

Hay que mencionar que no solo Stockfish tiene este tipo de fallas por ejemplo, si le ponemos esta posición a Komodo 4:

No puede encontrar el mate(cabe notar que esto ya fue arreglado en una versión posterior) errores de este estilo los podemos encontrar en todos los motores de ajedrez excepto en los «Mate Finder»(Programas para encontrar jaque mates) que están hechos precisamente para evitar que se les escape estas jugadas. Pero a gran costo de elo en el resto de las posiciones. Para dar un ultimo ejemplo veamos la siguiente jugada:

Dejando de lado la probabilidad de que nos toque un juego así(0%) la posición es interesante debido a que muchos motores fallan en detectar el zugzwang y la manera de ganar la partida(1. h3 gana, 1. h4 empata) para quien quiera ver el desenlace ponga esta posición en Houdini 15a que ve el mate correctamente, esta posición también es muy interesante debido a que otros motores como Toga II consideran que h4 da la victoria cuando en realidad es un empate. Cada motor tiene sus pequeñas fallas y como es de esperarse en cuanto se descubren se tienden a arreglar. Lo interesante de los zugzwang es que siguen siendo un gran problema para los motores de ajedrez aun después de mucho tiempo que se detecto el problema.