¿Hay algún motor de ajedrez que pueda mostrar si un lado tiene un empate forzado?

10

¿Hay algún motor de ajedrez que tenga un modo de análisis que pueda mostrar si una posición es un empate forzado por cualquiera de las partes?

Es común que los motores generen evaluaciones de 0.0 cuando detectan un empate. Pero una evaluación de 0.0 puede significar muchas cosas. Por ejemplo, suponiendo que se mueva blanco, una evaluación de 0.0 puede significar:

  • El juego es sin duda un empate, independientemente de cómo juegue un jugador (por ejemplo, material insuficiente).
  • Ambos jugadores pueden forzar un empate. Ninguno de los jugadores puede esperar ganar si su oponente juega perfectamente.
  • No importa qué movimiento jueguen las blancas, la computadora está 100% segura de que las negras pueden forzar un empate si así lo desea. Las blancas no pueden esperar ganar si las negras juegan perfectamente. El resultado más probable es un empate, pero una búsqueda más profunda podría mostrar que las negras pueden forzar una victoria.
  • La computadora está 100% segura de que el blanco puede forzar un empate si lo desea. Las negras no pueden esperar ganar si las blancas juegan perfectamente. El resultado más probable es un empate, pero una búsqueda más profunda podría mostrar que las blancas pueden forzar una victoria.
  • La computadora no ha encontrado un empate forzado para ninguno de los lados, pero la evaluación hasta ahora es exactamente nivelada. El resultado más probable es un empate, pero una búsqueda más profunda puede mostrar una ventaja para un lado.

Solo para dar un ejemplo de cuándo esto podría ser útil, si las blancas no necesitan ganar y solo quieren estar lo más seguros posible de obtener un empate, entonces podrían preferir jugar un movimiento con una evaluación +0.0 y un sorteo forzado conocido a pesar de que otro movimiento con una evaluación más alta está disponible.

Otro ejemplo es que si necesita una victoria (es decir, un empate es tan malo como una pérdida), es posible que desee jugar un movimiento con una ligera evaluación negativa para evitar darle a su oponente la oportunidad de forzar un empate. Aunque esto aumenta sus posibilidades de perder, también aumenta sus posibilidades de ganar.

Obviamente, hay posiciones en las que es difícil o imposible estar seguro de si hay un sorteo forzado disponible o no. Pero si el motor anuncia un sorteo forzado, entonces debe ser posible forzar un sorteo. Los falsos negativos son aceptables pero no debe haber falsos positivos.

En resumen, me gustaría saber para una posición específica si uno (o ambos jugadores) tienen un sorteo forzado disponible para ellos. No es necesario calcular la evaluación numérica de la posición, pero si también proporciona esto al mismo tiempo, es una ventaja.

Mark Byers
fuente
¿No es conocer esta parte del punto de las mesas finales de 6 piezas?
Tony Ennis
2
Las bases de la mesa ayudan, porque entonces sabes que un puntaje de 0.0 es un empate forzado con un juego óptimo. Pero me gustaría que el motor me diga si encuentra un sorteo forzado desde cualquier posición de arranque arbitraria, incluso (especialmente) cuando hay más de 6 piezas. Por ejemplo, si las blancas se colocan en una posición en la que pueden forzar la verificación perpetua, me gustaría que el motor me lo diga, incluso si no es necesariamente el mejor movimiento de las blancas según la función de evaluación.
Mark Byers
Tengo curiosidad por saber cuándo podrías aprovechar este tipo de cálculo en la práctica. Esta sería una buena característica. En stockfish utilizo la función de "variación múltiple" del análisis UCI, que clasifica los movimientos en orden de puntuación. Los sorteos forzados aparecen en la lista, obviamente, cuando son controles perpetuos o estancamientos, pero a veces es menos claro, y como usted dice, si profundiza, puede que no sea un empate.
Eve Freeman
1
¿Pero cuán forzado es forzado? Creo que en muchos casos de los llamados sorteos forzados, el oponente todavía puede desviarse, pero a costa de una posición claramente peor. Una posición en la que el blanco pueda forzar un empate o una torre completa no sería un empate forzado, lo que limitaría la utilidad.
RemcoGerlich
Si las blancas pueden forzar un empate en lugar de subir una torre, me gustaría saberlo.
Mark Byers

Respuestas:

8

La respuesta corta a su pregunta es no , no hay un motor de ajedrez que pueda mostrar de manera confiable si un lado tiene un empate forzado. Por ejemplo, esta posición bloqueada es claramente un atractivo para el ojo humano:

Posición bloqueada, empate sin esperanza

Sin embargo, tenga en cuenta que la evaluación es 0.17 , no 0.00 . Houdini también da 0.05 , muy ligeramente bueno para las blancas. Esto es muy importante. Esto sugiere que la evaluación de 0.00 está reservada por estos programas por una razón específica, y de hecho lo es. Básicamente, incluso en una posición "igual", la computadora nunca dirá que el puntaje es 0.00 , sino que dará una ventaja de un minuto a uno u otro lado.

Así que con ese trasfondo, ¡a los detalles! Primero, si el juego es solo un empate debido a la posición (es decir, punto muerto, material insuficiente, etc.), la mayoría de las GUI mostrarán un mensaje que dice "Juego Dibujado", o algo por el estilo. Eso deja los casos más complicados que mencionó en su pregunta. Para cubrir la mayoría de esos, presentaré otra posición. Esto está tomado de Morphy-NN 1-0, New Orleans Blindfold Simul:

Morphy - NN 1-0, Nueva Orleans con los ojos vendados Simul

Tenga en cuenta que Morphy actualmente tiene mate en 6 a partir de 18.b4+!. Sin embargo, si Morphy de alguna manera se perdió de que se trataba de un compañero, todavía tenía un empate forzado por repetición, que la computadora ve rápidamente. Al aumentar el número de variaciones que muestra la computadora, es posible ver que después de que el blanco juega un movimiento como 18.Qxc3+?, el blanco todavía puede forzar un empate, a pesar de estar abajo de una torre y una pieza. La evaluación de 0.00 nuevamente nos indica que esta es una posición especial en que la computadora puede calcular una verificación perpetua. Si los movimientos 18.Qxc3+? Kxd5se realizan en el tablero, la evaluación será 0.00 , lo que indica que la mejor continuación de las blancas es forzar un empate. De lo contrario, se perderá el juego con la mejor jugada.


Para resumir, ningún motor existente puede decir con certeza exacta que una posición es un empate. Sin embargo, la evaluación de 0.00 es especial, y si eso aparece como el puntaje principal o el puntaje para una variación, eso significa que probablemente se está forzando un empate en esa línea específica. La forma más fácil de verificar se llama juguetonamente "análisis de la barra espaciadora", cuando el usuario golpea la barra espaciadora una y otra vez para obligar a la computadora a realizar el movimiento superior recomendado. Eventualmente llegarás a una posición que es obvia tanto para un humano como para la máquina.


Y finalmente, para abordar su punto sobre el "desprecio"

Otro ejemplo es que si necesita una victoria (es decir, un empate es tan malo como una pérdida), es posible que desee jugar un movimiento con una ligera evaluación negativa para evitar darle a su oponente la oportunidad de forzar un empate. Aunque esto aumenta sus posibilidades de perder, también aumenta sus posibilidades de ganar.

Esto simplemente se conoce como desprecio entre los programadores de ajedrez. La mayoría de los motores le permitirán establecer el nivel de desprecio en la configuración. Un ajuste de desprecio positivo (100 suele ser un nivel razonable para el análisis) le indicará al motor que intente bastante duro (el valor de un peón) para evitar un empate. Un ajuste negativo hará que el motor busque una extracción forzada (es decir, material insuficiente, estancamiento o perpetuo).

Andrew
fuente
Esta es más o menos la misma idea que en el comentario de Wes Freeman a la pregunta, y tal como lo que él describe requiere un aporte humano: "Los sorteos forzados aparecen en la lista de manera bastante obvia [a veces], pero a veces es menos clara" - su respuesta tiene el "análisis de la barra espaciadora" humano que contribuye Es por eso que sugiero ajustar la función de evaluación en mi respuesta; lo estamos haciendo para que el motor en sí mismo busque dibujos forzados y nos avise cuando estén presentes de manera concluyente. Esa parece ser la única diferencia sustancial entre los enfoques.
ETD
@EdDean, estoy de acuerdo. Los sorteos más difíciles de encontrar son aquellos en los que no se puede ganar un juego final, pero un lado puede presionar por la victoria para siempre. Por separado, cambiar la función de evaluación de los motores sería un enfoque, pero probablemente no sea algo que se pueda hacer en un plazo razonable. Es posible jugar con la configuración de desacato actualmente, pero eso no hace lo mismo que reprogramar un motor como usted sugiere. La configuración editable por humanos es bastante limitada en los motores actuales.
Andrew
Esa configuración de desprecio es ordenada, no lo había notado.
Eve Freeman
2
Por cierto, no creo que 0.00 siempre sea indicativo de un empate forzado, lo que pareces implicar. Lo veo ocasionalmente incluso temprano en las aperturas; supongo que solo significa que, dada la posición y el material actuales, es probable que sea uniforme, y la evaluación es 0.00.
Eve Freeman
3
Interesante. En stockfish definitivamente no lo es. Simplemente analizar la posición de apertura durante unos segundos arrojará un montón de 0.00 puntajes.
Eve Freeman
4

Del mismo modo que los motores pueden, en ciertos puntos, ver a un compañero forzado a varios movimientos de distancia, porque hay suficientes líneas forzadas para que el motor pueda ver todo perfectamente en la profundidad restante hasta el compañero, también hay uniones en los juegos de ajedrez que permitirían un motor para ver un sorteo forzado por la misma razón de poder examinar completamente las posibilidades limitadas en juego.

Además, sería fácil ajustar la función de evaluación de un motor para hacer que busque y prefiera movimientos que conduzcan a tales sorteos forzados: al igual que lograr el mate generalmente se le da un enorme valor que eclipsa todos los demás factores numéricos que el algoritmo de evaluación del motor considera que para guiar el juego del motor hacia el objetivo final, uno podría dar un valor numérico tan enorme para lograr uno de los tipos de sorteos que tengo en mente.

Por ejemplo, evalúa automáticamente cualquier posición en la que el oponente tenga material insuficiente para aparearse como +1000000. Luego, si el motor alguna vez se encuentra con la opción de forzar tanto material del oponente, se lo informará. Además, modifique el algoritmo de evaluación para evaluar cualquier repetición triple como +1000000 en lugar del 0 habitual. Luego, si hay una repetición forzada (como en un escenario de verificación perpetua), el motor lo amará y le informará al respecto . Del mismo modo, dar +1000000 si se puede llegar a la fuerza a un sorteo de base de tabla.

También puede asegurarse de que el motor dará estas valoraciones solo cuando haya una certeza completa de que los sorteos realmente son forzados (porque el árbol entre aquí y allá se ha podido verificar por completo), al igual que con un motor que no anuncia mate a menos que es seguro Por lo tanto, no obtendrá ningún falso positivo, aunque, por supuesto, habrá un montón de falsos negativos, lo que permite de manera sensata / necesariamente en su pregunta.

ETD
fuente
No creo que ningún motor funcione así "fuera de la caja" debido a factores de desprecio y la forma en que se podan. Básicamente, si se encuentra un sorteo, se excluirá cualquier línea que ganó material. Entonces, por ejemplo, controlar al rey sería preferible a capturar una torre libre. Estoy pensando en publicar una respuesta más larga porque no son maneras de usar los motores actuales para hacer esto, pero no quiero revelar demasiados secretos de preparación. ;)
Andrew
Ningún motor funcionará de la manera que describí "fuera de la caja", es cierto, ya que están diseñados para buscar victorias; por la misma razón, tendrías que hacer algunos ajustes para hacer que un motor normal juegue, por ejemplo, ajedrez suicida. Ya nos tenemos modificando la función de evaluación; cualquier factor de desacato puede ser modificado / desactivado junto con lo que sugerí si es necesario, ¿sí? Mi punto principal es que creo que los motores existentes pueden ser rediseñados (de una manera razonablemente sencilla) para funcionar como Mark quiere. Entonces, al menos por el momento, todavía veo esto como una forma de "usar los motores actuales". Sin embargo, mi mente siempre puede cambiar. :)
ETD