¿Cómo se ganan las máquinas de ajedrez más poderosas, dado que juegan con casi la misma fuerza y ​​habilidades de procesamiento?

Supongamos que una IA de ajedrez está analizando una posición y decidiendo el mejor movimiento. Hay varios factores a considerar.

  1. Ventaja material. Si el oponente ha dejado una torre sabrosa sin protección, ¿por qué no entrar y atacar con tu reina? Tener más “material” que tu oponente generalmente conduce a una ventaja más fuerte, por lo que la mayoría de las IA tienen en cuenta la ventaja material y tratan de aumentarla cuando pueden. Una IA que prioriza demasiado la ventaja material se verá obligada a realizar sacrificios que debiliten otros factores, como el espaciado.
  2. Controlando el centro. Siempre es mejor tener control del centro que no tener control del centro, considerando todo. La mayoría de los programas de ajedrez, especialmente los más antiguos, pueden no haber tenido los recursos computacionales para decidir que controlar el centro es una ganancia neta, por lo que están programados con reglas que favorecen el control del centro. Reglas de espaciado similares con pequeñas excepciones pueden aplicarse a todas las IA. Si una IA favorece demasiado el control espacial, se tambaleará o se extenderá demasiado.
  3. Existen muchos más factores, como alfileres, tenedores y brochetas. Si una IA los favorece demasiado, siempre buscará pines mediocres sobre el aumento del control espacial. Si la IA los favorece demasiado débilmente, es posible que no pueda utilizar estas tácticas decisivas porque no ha funcionado para establecerlas.

Lo que espero haber demostrado en estos ejemplos es que diferentes IA tendrán una forma diferente de valorar diferentes posiciones, y algunas formas son mejores que otras.

Imaginemos que Stockfish y Bob están decidiendo el mejor movimiento para un puesto.

Stockfish va primero y presenta un peón inocentemente atrapado. Calcula que deshacerse de este peón, que está en una mala posición, es el mejor movimiento disponible. Avanza el peón, esperando romper la estructura del peón de Bob. Calcula que la ventaja material y el peón más avanzado que le da a Bob es menos importante que socavar la estructura de peones de Bob.

Bob mira el peón que le han enviado. Calcula que capturar el peón de hecho derribará su estructura de peón ligeramente, pero el peón no se extenderá demasiado porque puede avanzar otro peón para apoyar este peón. Decide que presionar su ataque en un nuevo frente, obtener una ventaja material y avanzar un peón es más importante que preservar su estructura de peones, que aún se mantendría muy fuerte.

Bob calcula que su movimiento fue el mejor posible y que la situación lo favorece.

Stockfish calcula que su movimiento llevó a Bob a una trampa y que la situación favorece a Stockfish.

20 movimientos después, Bob tiene la oportunidad de paralizar Stockfish con un tenedor de caballero rey-torre.

Ni Bob ni Stockfish podrían haber previsto el tenedor. La única razón por la que Bob obtiene la ventaja ganadora es porque decidió que una posición de material ligeramente más fuerte vencería a una posición espacial ligeramente más fuerte. Tanto Bob como Stockfish pensaron que sus respectivos lados estaban ganando hasta que se jugaron los movimientos previos a la bifurcación.

En resumen, hay una “mejor” respuesta a cada movimiento en el ajedrez. Debido a que las IA no pueden resolver el mejor movimiento real, deben decidir, según su programación, cuál es el mejor movimiento. La IA cuyo criterio para evaluar el mejor movimiento se programa de manera más efectiva ganará.

Así que aquí está la solución de un problema más generalizado y eso sería cómo una máquina vencería a otra cuando ambas tienen exactamente los mismos parámetros, como el algoritmo utilizado, la función heurística, la profundidad de búsqueda, etc.

Debes saber que en un juego como el ajedrez hay tantos estados posibles de un tablero de ajedrez que es imposible construir un árbol de espacio de estado en tiempo real, pero en juegos como el tic-tac-toe podría hacerse fácilmente . Sobre esta base, podemos dividir los juegos en dos categorías:

  • El árbol de espacio de estado completo podría construirse en tiempo real: entonces la máquina que tenga el primer movimiento siempre ganará o resultará en un empate porque en el primer movimiento en sí mismo sabe a dónde va toda la historia. La segunda máquina casi puede resultar en empate hasta que el juego sea en sí mismo como donde el primer jugador está obligado a perder.
  • El árbol de espacio de estado completo no se pudo construir en tiempo real: cada vez que estamos atascados en casos como este formamos una función heurística, esta función nos dice, “dado un estado, ¿cuál es la probabilidad de ganar”. Casi nunca es exacto. Puedes imaginarlo como si nunca supieras si un coco es bueno desde adentro o no, pero tienes una idea aproximada de que si suena bien cuando se agita, podría ser bueno. Entonces, en este caso, el movimiento elegido por una máquina depende casi totalmente de la función heurística, y dado que la profundidad de búsqueda es la misma para ambas máquinas. Entonces, si la máquina A evalúa el espacio de estado en la profundidad d, entonces la siguiente máquina B evaluará el espacio de estado en la profundidad d + 1 y luego nuevamente la máquina A evaluará el espacio de estado en la profundidad d + 2 (aquí el espacio de estado en d + 1 nunca se evalúa para la máquina UNA). Finalmente, podemos concluir que la máquina que ganará dependerá del rendimiento de la función heurística en dos conjuntos de estados: conjunto de estado evaluado para la máquina A, conjunto de estado evaluado para la máquina B.

También es posible que el programador pueda usar algún número aleatorio para tomar decisiones, por lo que, aunque el algoritmo sería el mismo, los parámetros serían diferentes y definitivamente uno dominaría al otro.

Espero que esto ayude,

Paz 🙂

A pesar de tener capacidades de procesamiento iguales, siempre que el método de programación sea diferente, incluso en lo más mínimo, uno de los dos tendrá una ligera ventaja para el primer juego al que se hace referencia, al menos. Tal vez uno ha sido programado con un juego de maestros pasados ​​extra que el otro no, que podría ser una razón para una victoria … o una pérdida. Después del primer juego, se debe perder cualquier ventaja, pero no todos los algoritmos están programados de la misma manera. Las diferencias en la programación no solo controlan que pueden aprender, sino cuán efectivamente aprenden. Tal vez uno está programado para abandonar estrategias que siempre resultan en una pérdida, mientras mantiene las formas de evitarlas, reduce la cantidad de cálculos que tiene que hacer y le permite calcular más a lo largo de las buenas rutas dentro de los límites de tiempo permitidos. Cualquier diferencia entre la forma en que se programan los dos puede dar ventajas, aunque solo sea temporal.

Gran pregunta Realmente se reduce al equilibrio de enfoques. Deep Blue venció a Kasparov, no por ser ‘más inteligente’ sino por tener una base de datos masiva de ‘mejores movimientos en estado de tabla x’ a su disposición. Los viejos tiempos de cuántos libros tiene un programa de ajedrez es probablemente lo que estás pensando. En estos días, se trata más de un enfoque que genera las diferencias en respuesta a situaciones particulares. Estoy seguro de que si configura una mesa de ajedrez (juego medio a tardío) y deja que los diferentes motores jueguen por sí mismos durante el resto de las variaciones del juego aparecerán. No lo olvide, a menudo hay que elegir entre movimientos equivalentes, por lo que incluso el mismo motor puede jugar el mismo juego de diferentes maneras. Esto se puede demostrar si obtienes un motor de ajedrez para jugar una y otra vez … o el juego siempre será exactamente el mismo o variarán. En última instancia, para responder a su pregunta real (!), Los motores de potencia equivalente se vencerán al azar. Si se iguala, es probable que sea 50:50 a lo que ganará cualquier juego en particular.

No estoy muy familiarizado con la forma en que se diseñan las IA, pero me imagino que habrá algunas diferencias si las diseñan diferentes personas / equipos. Debido a que están reaccionando entre sí y probablemente tendrán más de un movimiento inicial posible, creo que incluso si fueran escritos por la misma gente, como si fuera el mismo programa, estarían reaccionando a diferentes cosas, por lo que no No importa tanto que fueran el mismo programa.

No importa cuán poderosa sea una máquina, no puede ver hasta el final del juego. Trata de crujir y hacer el mejor movimiento en cada turno. Sin embargo, eso no significa necesariamente que ese sea el caso, solo un pequeño movimiento menos que óptimo, ya que resulta que es suficiente para perder un juego contra otro programa informático bien adaptado.