El problema del horizonte en el ajedrez

El problema del horizonte es un problema muy conocido en inteligencia artificial, si bien cuando nos lo mencionan pensamos en el en el sentido cosmológico en el sentido computacional y ajedrecista nos referimos a que tanto podemos revisar.

Ya sabemos que es imposible revisar todas las posibles combinaciones a profundidad máxima y que un motor de ajedrez funciona en base a heuristicas ahora la pregunta es ¿Qué tanto revisan estas heuristicas?

Por dar un ejemplo mas facil de entender hay algunos mates en donde se ofrece un sacrificio de reina, y si el oponente lo toma es jaque mate unas cuantas jugadas después.

Supongamos que las blancas ofrecen un sacrificio de reina y que si el negro lo toma es mate en 4 jugadas. ¿Que pasa si pensamos los siguientes 3 movimientos solamente? ¿Y que tal si revisáramos los siguientes 4?

Como humanos si es que vimos que nos ofrecen la reina probablemente si estamos jugando contra un jugador experimentado pensaremos que nos esta colocando una trampa o que cometió un error muy grave. Y probablemente revisaríamos mas a detalle queramos o no.

Para una computadora que solo revisa 3 movimientos adelante según su función de evaluación tendría que en las próximas 3 jugadas tendría una ventaja de una reina y la tomaría. Sin tener idea que una jugada mas y es jaque mate.

Un ejemplo relacionado(sin el sacrificio) seria el mate del pastor, ya que después de 3 jugadas todo parece normal y en la 4 es jaque mate.

Pero si la computadora revisara 4 jugadas adelante descubriría que ganar la dama es solo temporal y que 4 jugadas después estaría destinada a perder el juego.

Este es un ejemplo muy sencillo del problema del horizonte pero esto ocurre todo el tiempo, En si se reduce a ¿Qué tantas jugadas de profundidad revisar? Claramente las que conducen a jaque mate de nuestro rey se descartan inmediatamente, pero ¿Y si perder una reina nos da la victoria 10 jugadas después? ¿Y si dar un peón de ventaja temporalmente nos lleva a recuperar 2 peones 15 jugadas después? Claro que valdría la pena revisarlo.

Viéndolo desde el otro lado, ¿Cuando vale la pena dejar de revisar?

Supongamos que tenemos la siguiente posicion y que nos toca mover: 

¿Cuantas jugadas de peones valdría la pena analizar? Cualquiera que haya jugado mas de 10 o 15 juegos sabría que la respuesta es 0 ya que cualquier jugada que no sea mover la reina nos lleva a perderla sin ganar nada a cambio.

Las heuristicas en el ajedrez funcionan asignando distintos horizontes de búsqueda dependiendo al conjunto de reglas del motor de ajedrez, entonces el problema del horizonte se vuelve un poco mas complejo, ya que no tenemos un horizonte si no muchos.

Por supuesto que esto es preferible, ya que si no solo seria una fuerza bruta recortada a profundidad X donde X seria el numero máximo de jugadas a buscar.

Comments

comments