Recientemente, los programas de Computer Go pudieron competir con los humanos utilizando los árboles de búsqueda de Monte-Carlo:
Un programa go de Monte Carlo (MC) juega juegos aleatorios y evalúa fácilmente la posición del terminal (ganador o perdido). Un programa de MC busca movimientos que tengan altas tasas de ganancia, calculadas a partir de jugar al menos unos cientos de juegos aleatorios.
(Esta es una descripción muy simplificada. En la práctica, uno desea explorar ramas interesantes con mayor prioridad, por lo que la aleatoriedad debe controlarse de alguna manera utilizando los resultados recopilados. Para jugar a un nivel razonable, aún deben realizarse varios millones de juegos aleatorios. jugado. Pero, con suerte, es bastante rápido para jugar al azar...)
Siento que se podrían "abordar" muchos más juegos usando este método, y eso podría incluir tal vez la gran mayoría de los juegos de mesa...
Dos preguntas:
¿Se ha aplicado ya el método de Montecarlo a otros juegos? (¿Hay implementaciones concretas disponibles?)
¿Para qué tipo de juegos, entre aquellos que tienen reglas claramente establecidas y no se basan en una comunicación compleja entre los jugadores, se puede esperar que este método falle?
¿Se ha aplicado ya el método de Montecarlo a otros juegos? (¿Hay implementaciones concretas disponibles?
Sí. Este trabajo de posgrado podría ser de su interés. Cubre Backgammon, Bridge, Go, Scrabble y Clobber.
¿Para qué tipo de juegos, entre aquellos que tienen reglas claramente establecidas y no se basan en una comunicación compleja entre los jugadores, se puede esperar que este método falle?
En realidad, los métodos de Monte Carlo no funcionan muy bien con los juegos finales en general. Encontrará que muchas implementaciones de computadora que usan métodos de Monte Carlo emplean diferentes algoritmos cuando juegan el final del juego.
Si bien los métodos de Monte Carlo son una herramienta útil para jugar juegos de mesa, no son una solución perfecta. Los programas Computer Go que usan MCTS aún no pueden vencer a los mejores jugadores en tableros de 19x19 sin desventajas significativas. Los programas de Computer Bridge no son rival para los jugadores expertos. Los métodos de Monte Carlo solo se acercarán al juego perfecto con un tiempo/espacio infinito.
Primero, uno necesita entender las diferencias entre Chess y Go desde el punto de vista de la complejidad del juego. A continuación, uno debe comprender las diferencias entre los dos tipos de algoritmos de IA y por qué uno funciona para Chess y el otro no.
Tanto el ajedrez como el Go son juegos de información perfectos sin elementos estocásticos . Esto significa que siempre puede ver el estado completo del juego, y no hay posibilidad ni suerte involucradas (no hay dados para tirar, no hay sorteos de cartas desafortunados).
La diferencia entre los juegos se puede resumir en el número de movimientos posibles en cada turno (número de decisiones o elecciones) y la duración del juego. Me estoy saltando un análisis más formal de los tamaños de los árboles de búsqueda, los tamaños de los espacios de estado, etc., para proporcionar una comprensión más intuitiva de las diferencias.
Para el ajedrez, el número promedio de movimientos posibles en un punto típico del juego es de unos 30 movimientos diferentes. Un juego típico dura alrededor de 40 movimientos. Para Go, hay alrededor de 250 opciones por movimiento y el juego dura alrededor de 150 movimientos.
Lo que esto significa es que hay mucha, mucha más evaluación de posibles movimientos, mucho más lejos en el futuro con Go que con Ajedrez.
Sin embargo, lo que hace posible que los humanos jueguen es que en Go las piezas son todas iguales, podemos apuntar a patrones en lugar de posiciones.
Una IA de ajedrez tradicional usa algo llamado Función de evaluación que usa atajos (como asignar más puntos a las reinas que a los peones) para evaluar un tablero y decir que el estado del juego es mejor o peor para un jugador que para el otro. Con Go, es muy difícil llegar a una función de evaluación, ya que las piezas son las mismas y el territorio no está grabado hasta casi el final del juego. Esta es la razón por la cual el enfoque tradicional de ajedrez-IA para Go ha fallado, los espacios de decisión y estado más grandes son imposibles de podar, por lo que la búsqueda es ineficaz.
Ahora, demos la vuelta al problema y veamos por qué usar Monte Carlo en el ajedrez podría ser una mala idea. Dado que el juego aleatorio no distingue entre 'movimientos buenos' y 'movimientos malos', la gran mayoría de los juegos aleatorios explorarán árboles de juego obviamente malos. Por ejemplo, sacrificar tu reina sin obtener ninguna ventaja, o hacerla vulnerable y que el oponente no la explote. Se obtiene poca información promediando los resultados de los malos movimientos individuales. Este tipo de IA funcionará, pero requeriría mucho más cálculo que el enfoque evaluativo habitual.
En resumen, mucho más de ganar/perder es evidente al mirar las piezas en Ajedrez que en Go.
Entonces, ¿por qué Monte Carlo funciona para Go (es decir, puede vencer a los humanos)? Funciona porque tanto los humanos como las computadoras son muy malos para jugar Go (en comparación con el juego perfecto teórico). El muestreo de juego aleatorio de Monte Carlo funciona porque no es necesario un mayor nivel de comprensión de los patrones que el que se puede obtener de una manera computacionalmente eficiente.
Entonces, ¿cómo se comparan otros juegos de mesa? Hagámonos estas preguntas:
La mayoría de los juegos de mesa mostrarán características que los acercarán mucho más al ajedrez que Go para las primeras 3 preguntas. Esto es muy sugerente de que una IA de estilo de ajedrez será más fácil, más rápida y más efectiva.
Dado que el #4 es diferente tanto para Chess como para Go, veamos cómo afecta a los dos algoritmos.
Si tuviéramos un factor aleatorio, digamos, sacar una carta de una pila de 60, cada decisión de sacar una carta dividirá el juego en 60 resultados posibles. Dependiendo de lo que dibujen otros jugadores, sus elecciones cambiarán, lo que nuevamente nos coloca en la posición de muestrear muchos estados que son altamente improbables o imposibles (argumentando en contra de Monte Carlo). Mientras tanto, se puede escribir fácilmente una función de evaluación para dar valores a cada carta (combinada con el estado del tablero).
No he visto Monte Carlo aplicado a otras IA de juegos de mesa, y las anteriores son algunas de las razones. Esas son también las razones por las que se espera que falle. Cuando falla, puede fallar espectacularmente porque está haciendo movimientos tontos y obviamente malos porque los resultados 'aleatorios' de las muestras resultaron ser irracionales en las futuras elecciones aleatorias.
Si quieres leer más, te sugiero estos sitios:
Ok, investigué un poco. Citando este artículo :
En los últimos años, surgieron varias técnicas basadas en Monte-Carlo en el campo de los juegos de computadora. Ya se han aplicado con éxito a muchos juegos, incluidos POKER (Billings et al. 2002) y SCRABBLE (Sheppard 2002). Monte-Carlo Tree Search (MCTS), una técnica basada en Monte-Carlo que se estableció por primera vez en 2006, se implementa en los programas GO mejor calificados. Estos programas derrotaron por primera vez a los jugadores profesionales de GO en el tablero de 9 × 9. Sin embargo, la técnica no es específica de GO o de los juegos de mesa clásicos, sino que se puede generalizar fácilmente a los juegos de mesa oa los videojuegos modernos. Además, su implementación es bastante sencilla. En la demostración propuesta, ilustraremos que MCTS se puede aplicar de manera efectiva a
- juegos de mesa clásicos (como GO)
- juegos de mesa modernos (como SETTLERS OF CATAN), y
- videojuegos (como el juego SPRING RTS).
Entonces, parece que ya se aplicó a algunos otros juegos. Y mencionan implementaciones explícitas, pero no proporcionan enlaces a ellas.
alex p
usuario1873
Stéphane Giménez
usuario1873