¿Puede un motor de ajedrez decirte por qué un movimiento es malo o bueno?

8

¿Puede algún motor de ajedrez decirte por qué un movimiento es malo o bueno? Por ejemplo, digamos que un motor de ajedrez dice que el puntaje contra mi oponente es actualmente +2 a mi favor. Luego hago un movimiento y mi puntaje cae para decir 1.4. ¿Puede algún motor decirme qué hice mal, de modo que mi puntaje bajó de 2 a 1.4 (suponiendo que no colgué una pieza o un peón, etc.)

Me parece que hacer que los programadores de ajedrez fortalezcan aún más sus programas ahora no tiene sentido y sería mucho más beneficioso para el jugador de ajedrez promedio si pudieran hacer que sus programas nos instruyeran por qué un movimiento es malo (o bueno), suponiendo que actualmente no puedan hacer esto.

Randy Minder
fuente
55
Puede ser más beneficioso tratar de entender por qué un movimiento es bueno o malo.
Tony Ennis

Respuestas:

7

Más o menos (pero no realmente), y en realidad cada vez es más difícil para los motores hacer esto por usted. Para entender por qué, debe comprender cómo va la evaluación. Los motores generalmente pueden realizar evaluaciones instantáneas en una posición determinada, dándole un valor de punto sin procesar. Luego, sea cual sea la posición, juegan hacia adelante, tratando de encontrar la línea hacia adelante que optimice ese puntaje para ambos lados.

Es importante entender que el puntaje '2.0' o '1.4' no es la evaluación / puntaje para la posición actual. En cambio, es la evaluación N se mueve hacia abajo de la línea, con cada lado jugando el mejor movimiento que encontró el motor. Es por eso que el "puntaje de evaluación actual" salta mientras la computadora está pensando. No es que el 'puntaje' para una posición haya cambiado, es solo que encontró una línea diferente en movimiento que terminó en una posición diferente (que tenía un puntaje diferente).

En el pasado, los motores apestaban. No solo por algoritmos subóptimos, sino por hardware muy lento: si crees que el interés compuesto es poderoso, no es nada comparado con la Ley de Moore . Entonces, las computadoras en ese entonces solo estaban mirando algunos movimientos hacia el futuro. Lo que hizo relativamente fácil para un humano seguir la lógica: su puntaje bajó porque está perdiendo a su caballero el próximo turno.

¿Pero ahora? Si su puntaje pasó de '2.0' a '-0.3', es posible porque, debido a algunas tácticas inevitables en los próximos 7 movimientos, tendrá que renunciar al intercambio para evitar perder a su reina o ser jaqueada. . Pero es difícil mostrar el salto de "Aquí está la posición ahora" y "Bueno, evalué 20 mil millones de posiciones en el futuro, y confía en mí cuando digo que sacrificar la torre por su obispo fue lo mejor que podía esperar".

Kevin
fuente
4

@D_M mencionó sobre Chessmaster, pero solo informa características estáticas muy simples como:

  • Tu reina está siendo atacada
  • Pierdes un peón en la línea de la computadora
  • Ganas un intercambio en la línea de la computadora

¿Sabes por qué Chessmaster hizo eso? Eso es porque la implementación fue fácil.

¿Puede algún motor decirme qué hice mal, de modo que mi puntaje bajó de 2 a 1.4 (suponiendo que no colgué una pieza o un peón, etc.)

NO . Chesmaster no puede hacer eso. Ningún software puede hacer eso. No tenemos la tecnología para hacer eso. Las técnicas tradicionales de programación del motor no pueden hacer eso.

Para hacer lo que describe, necesitamos modelos avanzados de matemática / aprendizaje automático. No estoy al tanto de algo así.

SmallChess
fuente
Pero ... mi versión de Chessmaster DID fue más allá del material y le conté al usuario sobre las consideraciones de posición. ¿Quizás tuviste una versión anterior? E incluso si no me crees sobre Chessmaster por alguna razón, claramente es posible hacerlo con la tecnología actual, dado que, de hecho, actualmente tenemos algoritmos que puntúan posiciones basadas en cosas como el espacio y la posición del peón. Los motores serían mucho más débiles si lo único que observaran fuera material.
DM
@D_M No. Soy un desarrollador experimentado de motores, sé de lo que estoy hablando. Es posible, nada es imposible. Hemos enviado sondas al espacio, por supuesto, es posible construir un motor de ajedrez más inteligente. Pero no tenemos ahora.
SmallChess
@D_M ¿Qué consideraciones posicionales mencionas en Chessmaster? Publicar salidas?
SmallChess
Hubo un ejemplo de salida en chess.com/forum/view/general/chessmaster9 si se desplaza hacia abajo hasta casi la parte inferior. "Como resultado de esta línea de juego, tu potencial de ataque aumenta. Además, el desarrollo de tus peones mejora algo". Eso es más o menos la salida que recuerdo. Yo mismo le daría más ejemplos si Windows 10 pudiera ejecutar mi viejo CD Chessmaster 9000 (o si la unidad de CD no estuviera rota en mi computadora anterior)
DM
Encontré otro aquí: chess.com/forum/view/chess-equipment/… "Como resultado de esta línea de juego, ganas un alfil y un peón. Además, la movilidad de tus piezas mejora mucho, y las negras la movilidad se reduce. Además, la formación de peones de las negras se ve algo interrumpida. Finalmente, la presión sobre el Rey de las Negras aumenta un poco, y la presión sobre tu Rey disminuye ligeramente ".
DM
1

Además de otras respuestas, los motores no evalúan posiciones como los humanos, por lo que no pueden proporcionar una buena explicación de por qué piensan que su movimiento es inferior (énfasis en lo que piensan, no necesariamente).

Pero puede seguir el margen utilizando sugerencias de motor y comprender por qué fue inferior. Al menos esto es lo que hago.

¿Podría haber un motor que pueda hacer esto? Supongo que sí, pero desde el punto de vista comercial, probablemente, es necesario un gran esfuerzo inviable.

fermentar
fuente
Si nos fijamos en la función de evaluación de los motores de ajedrez, diría que evalúan las posiciones de la misma manera que los humanos. La diferencia es que las computadoras pueden evaluar muchas posiciones en varias líneas rápidamente, mientras que un humano se basa más en la experiencia / principios generales.
user1583209
1

Creo que el motor de ajedrez puede "decirte", pero de manera indirecta.

Lo que haría es jugar varios movimientos diferentes desde la misma posición. El motor de ajedrez (presumiblemente) le dará una puntuación diferente para cada uno.

Esto te permitirá "clasificar" los distintos movimientos. Quizás surja un patrón. Si no, es posible que desee que un jugador humano (más fuerte) le explique la clasificación del motor de ajedrez.

Tom Au
fuente
1

Sí, he visto programas que intentan explicar por qué un movimiento es bueno o malo en el lenguaje. Chessmaster 9000 haría esto.

Muchos motores le mostrarán la mejor línea para cada movimiento. Así que puede decirte que si juegas g6, espera que el juego vaya f5 gxf5 Nxf5, mientras que si juegas b6 espera que el juego vaya a5 bxa5 Bxa5. A menudo, desde allí se puede ver por qué el movimiento fue bueno o malo. Pero a veces sigue siendo muy sutil.

Hay una herramienta aquí donde se puede introducir una posición y que le dirá exactamente por qué Bacalao evalúa la posición de la forma en que lo hace. Solo funciona para una posición estática (no mira hacia adelante en absoluto), pero sigue siendo interesante.

DM
fuente
¿Cómo uso esa herramienta? Parece un documento htm. ¿Cómo abrirlo e interactuar con él?
Santropedro
Personalmente, lo descargué y luego arrastré y solté el archivo en un navegador.
DM
0

No. Aunque Chessmaster, como lo mencionan todos, puede decirte algunas cosas básicas, como si la siguiente línea resultará en un sacrificio de intercambio o si puedes perder un peón y así.

Pero también puede analizar esto usted mismo bajando las líneas. No hay motores de ajedrez ni veo ninguno en el futuro cercano que pueda explicar por qué el movimiento es bueno / malo a menos que le cueste una diferencia material. Como un motor puede haber jugado un movimiento para mejorar su posición en el futuro, digamos como después de 50 movimientos. No hay forma de que pueda explicarte por qué este movimiento dará como resultado una mejor posición después de 50 movimientos.

Además, los principales motores de ajedrez en el mercado, como Stockfish, etc., ni siquiera se molestan en incluir características tales como el nivel en el que juegan los motores de ajedrez, son completamente diferentes y muy difíciles de analizar, incluso si se nos proporciona una explicación de cada movimiento.

prog_SAHIL
fuente
Chessmaster dijo cosas como "Como resultado de esta línea de juego, tu potencial de ataque aumenta. Además, el desarrollo de tus peones mejora algo" o algo así, y no se limitó a decir si ganarías o no. perder material Al menos mi versión lo hizo.
DM
0

La evaluación del motor ("2" / "1.4") es de hecho muy similar a cómo un humano evaluaría una posición. Básicamente es una suma de varios factores como el material , la seguridad del rey , la actividad de la pieza , etc., evaluados no para la posición actual sino para la posición de unos 20 movimientos más o menos; asumiendo un juego perfecto de ambos lados.

En principio, uno podría tratar de monitorear el cambio en todos esos factores por separado (en lugar de solo su suma como lo hacen los motores). Por ejemplo, si un movimiento lleva a un valor más bajo para "seguridad del rey" más adelante en comparación con el mejor movimiento, uno podría verse tentado a decirle al alumno algo como: Su último movimiento hizo que su rey fuera más vulnerable

Sin embargo, dudo que esto funcione en los juegos reales, porque:

  • De hecho, el movimiento del alumno podría tener otros problemas: por ejemplo, podría descuidar el desarrollo y solo debido a esto, el jugador podría tener que hacer concesiones más adelante con respecto a la protección de su rey (suponiendo la mejor jugada).
  • Muchos factores pueden cambiar al mismo tiempo, algunos subiendo, otros bajando, por ejemplo. Intentar expresar esto en palabras puede ser engorroso, por ejemplo: su último movimiento descuidó la seguridad del rey, pero mejoró la actividad de su pieza y perdió un peón pero ocupó un archivo abierto. ¿Esta información sería útil para un alumno?

Debido a esto, dudo que las computadoras puedan enseñarle el juego posicional o intuitivo (basado en principios) al menos con la tecnología actual. Es mejor usar métodos clásicos como otros humanos, leer / mirar / escuchar juegos anotados, etc.

usuario1583209
fuente