¿Por qué los motores de ajedrez a veces pierden buenos movimientos (o tardan una eternidad en detectar)?

17

No es la primera vez que encuentro un movimiento muy superior al que hizo el motor de ajedrez, incluso les lleva un tiempo comprender estos movimientos después de hacerlos.

Por ejemplo, el movimiento 15 ... Bf2en el juego a continuación:

NN - NN, 0-1
1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. OO Ng4 5. h3 h5 6. hxg4 hxg4 7. Bxc6 gxf3 8. Qxf3 Qh4 9. Qh3 Qxh3 10. gxh3 dxc6 11. Re1 Bxh3 12. f3 Bc5 + 13. Kh2 Bf1 + 14. Kg3 Rh3 + 15. Kg4 Bf2 16. Rxf1 Rg3 + 17. Kf5 Rxf3 + 18. Kg4 Rg3 + 19. Kf5 f6 20. d3 Kf7 0-1

El movimiento pasa desapercibido para el motor por un tiempo, no es hasta que me muevo que comienza a ver el resto del iceberg.

Sin embargo, sé que todo depende de cuánto tiempo les dediques para analizar, pero es inaceptable que a veces los humanos logren encontrar estos movimientos en menos tiempo que las computadoras.

  • ¿Por qué los motores de ajedrez no pueden detectar buenos movimientos en algunas posiciones? (Una vez leí algo sobre un 'efecto horizonte', ¿tal vez esto está relacionado?)
  • ¿Hay otros ejemplos notables? (por ejemplo, este famoso rompecabezas , las computadoras tardan un tiempo en resolverse)

Estas preguntas contienen información útil para explicar parcialmente algunos factores que podrían estar causando esta anomalía: ¿Qué algoritmos y heurísticas son populares en el ajedrez informático? , Al jugar contra un oponente de la computadora, ¿qué situaciones debo crear para tener una mejor oportunidad de ganar? , Evaluaciones informáticas: ¿qué tan confiables son?

Notas: La trampa se conoce como la caña de pescar , soy consciente de que perdí un compañero en 3 (y un compañero en 7) :(, el límite de tiempo por movimiento fue de días (ajedrez por correspondencia) pero me llevó entre 5 y 10 minutos para terminar de calcular todo.

ajax333221
fuente
1
Muy interesante. Stockfish en mi PC de fuerza promedio no encontró 15... Bf2nada después de 5 minutos.
Tony Ennis
... y me llevó más de 7 minutos encontrar un compañero similar en 7 en el siguiente movimiento.
Tony Ennis
20 d3 es un error. prueba 20 d4.
dcaswell
1
¿Por qué utiliza el lenguaje "inaceptable" para que un humano encuentre un movimiento en menos tiempo que una computadora? ¿Puedes desempacar tus pensamientos sobre esto?
Xonatron
Se perdió muchos movimientos mejores. ¿Por qué elegir ese específicamente?
yobamamama

Respuestas:

33

¿Por qué los motores de ajedrez no pueden detectar buenos movimientos en algunas posiciones?

La razón se llama técnicas de poda hacia adelante (ver http://chessprogramming.wikispaces.com/Pruning ) con ProbCut en primera línea.

El movimiento 15 ... Bf2 se poda en profundidades poco profundas porque incluye el sacrificio 16.Txf1 sin recuperar algo concreto con evidencia inmediatamente después. El matenet también es difícil de ver, porque incluye algunos movimientos 'silenciosos' adicionales como, por ejemplo, 17 ... Ke7, y sí también motores, no solo los humanos tienen dificultades para ver movimientos silenciosos distantes, ya que a menudo se podan.

En este caso concreto, ni siquiera se puede decir que los motores no pueden detectar buenos movimientos, porque también la continuación 15 ... Rh3h1 es un movimiento muy bueno y conduce a una posición absolutamente ganada.

Por último, pero no menos importante, debe recordar que la fuerza de un motor siempre se mide en términos de fuerza elo y no en la capacidad de encontrar el camino más corto absoluto para ganar. No importa si un motor gana en 8 movimientos o en 25 movimientos. Buscar demasiado para la victoria más corta, significaría una pérdida de tiempo, porque la mayoría del tiempo no existe un movimiento tan secreto en absoluto. Y la pérdida de tiempo dañaría los motores Clasificación ELO.

usuario1411977
fuente
1
Buena respuesta, bienvenido al sitio!
Andrew
+1 por mencionar la compensación entre poda y búsqueda completa. No me sorprende en lo más mínimo que una combinación de 13+ PLY no se encuentre rápidamente. El motor tiene "mejores cosas que hacer" que calcular todas las posibilidades a esa profundidad.
Daniel B
2
Buena respuesta en general. +1 para "Por último, pero no menos importante, debes recordar, que la fuerza de un motor siempre se mide en términos de fuerza elo y no en la capacidad de encontrar el camino más corto absoluto para ganar"
fermenta el
Excelente respuesta
Xonatron
12

Estoy intentando esto con Houdini 1.5 (la versión gratuita). Al principio 15 ... Bf2 no ​​aparece en los 5 movimientos principales, luego cuando alcanza la profundidad 15, lo hace, como # 1. Toma alrededor de 19 segundos en mi computadora de cuatro años, no tanto tiempo.

Por lo tanto, no deja de detectarlo, sino que solo lo considera el mejor movimiento una vez que se alcanza la profundidad 15. Aparentemente, siempre y cuando solo parezca 14 capas de profundidad, otros movimientos son mejores (como también ganar 15 ... f5 +).

Aparentemente 15 ... Bf2 es un compañero en 8, que es 15 capas (8 movimientos por negro, 7 por blanco). Pero al principio solo lo considera +10 más o menos, luego +20, luego se aparean en 10, luego se aparean en 8.

El compañero en la línea 8 es:

NN - NN
1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. OO Ng4 5. h3 h5 6. hxg4 hxg4 7. Bxc6 gxf3 8. Qxf3 Qh4 9. Qh3 Qxh3 10. gxh3 dxc6 11. Re1 Bxh3 12. f3 Bc5 + 13. Kh2 Bf1 + 14. Kg3 Rh3 + 15. Kg4 Bf2 16. Rxf1 Rh4 + 17. Kg5 Ke7 18. Rh1 Rxh1 19. Nc3 Rah8 20. Cd5 + cxd5 21. d3 R8h5 + 22. Kg4 R1h4 #.

Claramente, cuando Houdini 1.5 piensa 15 capas de profundidad, no considera todas las líneas posibles que tienen 15 capas de profundidad, o vería el mate en 8 en el momento en que terminó su búsqueda de 15 capas de profundidad.

Creo que es debido a la poda , deja de mirar algunas líneas cuando cree que no son lo suficientemente prometedoras. De esa manera, puede pasar más tiempo en las líneas prometedoras, y el programador cree que los profesionales superan a los contras. Pero no tengo una respuesta en este momento sobre lo que decide podar aquí (probablemente tome millones de decisiones de poda por separado en profundidad 15).

Puede que tenga que ver con los movimientos silenciosos ... Ke7, y ... Rah8, dos capturas sin control en una línea donde el negro es una pieza hacia abajo. Es probable que en algún lugar decida que no es útil seguir buscando en esta línea. Solo más tarde, cuando continúa la línea y encuentra al compañero al final, aparecen otras líneas que prolongan el juego (con 18.Th1 Rxh1 y así sucesivamente).

De todos modos, se sabe que no funciona tan bien dejar que una computadora piense por unos segundos solo si desea llegar al fondo de algo, unos minutos es mejor.

RemcoGerlich
fuente
Mi conjetura de por qué se poda, es porque 16. Txf1 no parece "heurísticamente" que el gran rey de las blancas está a la intemperie, pero no hay jaque mate inmediato y el negro es un caballero por un peón en material. No es hasta que se realiza un análisis más profundo (como usted dijo) que el valor de este "sacrificio" se vuelve claro.
Joe K
Tenga en cuenta que "15 capas" significa que se observaron algunos movimientos hasta la profundidad 15, no todos los movimientos . Eso llevaría waay más de 4 segundos, incluso en un super-ordenador.
BlueRaja - Danny Pflughoeft
2

Después de leer todas las respuestas y otras fuentes, ahora entiendo que no 'fallan' o eligen perderse estos movimientos, los humanos los programaron de tal manera que siguen un patrón específico en (dónde / cómo / cuándo + a) buscar y, lo que es más importante, cuándo detener la búsqueda y buscar líneas más prometedoras para ahorrar recursos.

Pero con el tiempo suficiente, una computadora encontrará todas las combinaciones posibles en una profundidad determinada.

TL; DR

  • P1: nunca pierden movimientos, simplemente no los han encontrado todavía
  • P2: toman tiempo porque están programados para ahorrar recursos y priorizarán algunas líneas sobre otras (por ejemplo, las que no tienen movimientos pasivos o no recuperan material en los próximos movimientos).
ajax333221
fuente
-1

Creo que a todos les falta un compañero mucho más rápido. Al verificar la posición con Houdini 3, las negras realmente tienen mate en 3 en el movimiento 13. En lugar de Bf1 +, las negras deberían haber jugado Bf2, y continúan con 14. d3 bf1 + 15. Bh6 Rxh6 #. Entonces, en una respuesta inusual a su pregunta, tal vez ciertos motores no vieron su movimiento de inmediato, pero, en el caso de Houdini 3, encontró un compañero mucho más rápido.

Cachondo
fuente
55
Si lees toda la pregunta, verás que él conoce al compañero en 3. Todos los motores razonablemente nuevos encontrarán al compañero en 3 inmediatamente, y no es parte de lo que se pregunta aquí.
Halvard