¿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.
Respuestas:
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:
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:
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 como18.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 movimientos18.Qxc3+? Kxd5
se 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"
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).
fuente
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.
fuente