Versión Python de backgammon
Los juegos de máquinas son una rama importante en el campo de la inteligencia artificial. La mayoría de sus objetos de investigación se basan en la complejidad de los juegos de mesa. Casi todos los problemas de los juegos de mesa que se han resuelto se pueden atribuir al desarrollo. de los juegos de máquinas en el último medio siglo. La ventaja de la resolución de problemas informáticos es que no es fácil analizar los problemas y enumerar todas las situaciones razonables con la ayuda de los ordenadores modernos, pero la complejidad de los problemas del juego determina que no se puede depender demasiado de la potencia informática de la máquina; La complejidad del espacio de estados o la complejidad del árbol de juegos de muchos ajedrez que se van a resolver o resolver es demasiado grande, por lo que debemos agregar restricciones y utilizar algoritmos razonables para la optimización.
El problema del backgammon es un problema clásico en el campo de la inteligencia artificial. En el mundo actual, AlphaGo ha dominado el juego de Go, pero pocas personas están interesadas en el campo del backgammon. Basado en el conocimiento aprendido en el aula, combinado con literatura y blogs, este artículo implementa una plataforma de juego de backgammon con inteligencia artificial para batallas inteligentes basada en dos lenguajes de desarrollo.
El trabajo realizado en este artículo es el siguiente:
(1) Implementación de la interfaz de backgammon
(2) Juicio inteligente del movimiento del tablero de ajedrez; /p>
(3) Mejora del método de escaneo del tablero de ajedrez;
(4) Mejora del método de evaluación de la tabla de puntuación del sistema
(5) Implementar valoración basada en el; tabla de puntuación y descubre la mejor manera de jugar al ajedrez.
El mayor problema de la inteligencia artificial en el backgammon es cómo realizar un juego de ajedrez inteligente, es decir, cómo el algoritmo interpreta el tablero actual cuando una persona juega al ajedrez, y lo analiza e interpreta para obtener el mejor movimiento para la computadora. En segundo lugar, hay otro problema: cómo juzgar el resultado. Esto puede considerarse como un subproblema del juicio de la situación del tablero anterior, o puede considerarse como un problema separado. Sin embargo, este problema es generalmente relativamente simple, por lo que. No lo presentaré en detalle.
La construcción general del conocimiento del backgammon consta de las siguientes partes:
(1) Representación de la situación del tablero
(2) Juicio del resultado del juego
(3) Base de conocimientos tipo ajedrez
(4) Proceso de juego inteligente
Para la pregunta (1), se utiliza representación de matriz. Hay tres estados de intersecciones en el tablero de ajedrez: 0 representa el vacío (no se colocan piezas de ajedrez), -1 representa piedras negras y 1 representa piedras blancas. La idea básica de la representación de matriz es utilizar el valor de índice de matriz correspondiente. a la intersección para representar la posición física. Uso El valor del elemento correspondiente al punto de intersección representa el estado (vacío, negro, blanco). Supongamos V = {0, 1, -1}, el estado del i-ésimo punto de intersección del tablero de ajedrez es Si∈V, y cualquier juego de ajedrez puede representarse mediante un sistema binario n × n.
Para la pregunta (2), cuando se utiliza la notación matricial, para saber si dos elementos Si y Sj son lineales, se debe juzgar por el patrón numérico entre i y j. En este sentido, la representación de matriz es una representación primitiva e ineficiente, pero su penalización en el rendimiento es aceptable para el algoritmo de hoja de puntuación. Para juzgar si un lado ha ganado, simplemente juzgue todo el tablero de ajedrez para ver si la línea de extensión más larga del punto de ubicación actual en las direcciones vertical, horizontal, hacia adelante y hacia atrás se extiende a cuatro posiciones, y vea si se puede conectar en una línea recta. línea del mismo color. La operación específica se puede ver así: comenzando desde el punto de aterrizaje, extienda en dos direcciones. Si se encuentra el mismo color, el contador se incrementará en uno. Si no es del mismo color (en blanco o de diferente color). dejará de extenderse en esa dirección y el contador registrará la cuenta regresiva del número de piezas consecutivas del mismo color en ambos extremos en esta dirección. Cuando se hayan explorado las cuatro direcciones, si una de las cuatro fichas llega a 5, sabrás que tienes cinco piezas consecutivas y el juego habrá terminado.
Pregunta (3) La base de conocimientos sobre formas de ajedrez se compone principalmente de varias formas de tablero de ajedrez establecidas, de la siguiente manera:
Vive cuatro: hay dos cinco consecutivos (es decir, hay dos). Los puntos pueden formar un cinco) y el punto blanco en la imagen es un cinco continuo. Cuando aparece un cuatro vivo, toda la situación ya no puede impedir la aparición de un cinco, y el jugador con un cuatro vivo debe ganar.
¿Hay cinco movimientos, como se muestra en los tres? Imágenes a continuación, todas las cuales son ráfagas de cuatro movimientos.
Los puntos blancos en la imagen son las cinco en punto. En comparación con los cuatro vivos, la amenaza de los cuatro terrestres es mucho menor, porque en este momento, mientras la defensa se mantenga al día con los únicos cinco puntos consecutivos, los cuatro terrestres no pueden formar cinco puntos consecutivos.
? Live three: Live three se puede formar, como se muestra en la siguiente figura, que representa los dos tipos más básicos de live three. Los puntos blancos en la imagen son cuatro puntos vivos. Live Three es el tipo de ataque más común, porque después de Live Three, si el oponente no se ocupa de él, el siguiente paso puede convertir Live Three en Live Four, y Live Four no se puede defender. Por lo tanto, debes tener mucho cuidado al enfrentarte al vivo tres. A falta de mejores medios de ataque, hay que defenderlo para evitar que forme los aterradores Living Four.
? Dormir tres: La siguiente imagen muestra los tres que solo pueden formar un cuatro, que representa las seis formas más básicas de dormir tres. Los puntos blancos en la imagen representan cuatro puntos. Los tres dormidos son mucho menos peligrosos que los tres vivos, porque incluso si no los defiendes, solo pueden formar un cuatro en el siguiente paso, y un cuatro simple se defiende fácilmente.
?Live two: Los tres tipos básicos de live two se muestran en la siguiente figura. Los puntos blancos en la imagen son tres puntos vivos.
? Dormir dos: Dos piezas que pueden formar dormir tres. Estas cuatro imágenes ilustran el modo de sueño II más básico. Los estudiantes cuidadosos y reflexivos utilizarán la Figura 2-13 en la introducción a Sueño 3 para encontrar una variación de los patrones de Sueño 2 de cada uno de los siguientes cuatro patrones básicos de Sueño 2. El punto blanco en la imagen es el punto del sueño tres.
Para los modos anteriores, consideramos principalmente la defensa y la composición de los modos de ataque principales: vivir cuatro, correr cuatro, vivir tres y dormir tres. El principio del modelo general es: dar prioridad a los números y considerar si vivir o dormir si los números son iguales. El diseño del algoritmo del acta favorece en general la defensa.
Para la pregunta (4), el algoritmo para evaluar y analizar la situación actual sigue estrictamente el siguiente proceso:
Cuando el lado humano hace un movimiento, el algoritmo comienza, escanea todo mundo, y obtiene el movimiento del lado humano y el juego de ajedrez por computadora. Después del escaneo global, la situación actual se clasifica y calcula. Cada posición de lugar vacío en cada conjunto se puntúa según el número de piezas consecutivas del mismo color en las cuatro direcciones que rodean el lugar. Sobre la base de estas puntuaciones finales, se deriva un valor máximo. Después de encontrar los dos valores máximos tanto del lado humano como de la computadora, se hace una comparación si el lado humano está mejor (obtiene una puntuación más alta), luego el algoritmo establece el siguiente paso en el punto con la puntuación más alta del lado humano; lado e intenta En el siguiente paso, la puntuación del lado humano se reduce al mínimo, si la puntuación del lado de la computadora es alta, entonces el ajedrez se juega directamente en el punto con la puntuación más alta;
Este diseño de curso, uno ****, diseñó dos versiones, una versión Java, un tablero de ajedrez 19X19, equipado con mensajes simples, GUI basada en AWT y la herramienta de desarrollo es IntelliJ IDEA 2018.1 p>
Otra versión está diseñada en Python con el mismo algoritmo central, pero está limitada a archivos fuente de imágenes. Es un tablero de ajedrez de 15X15, basado en pygame para implementar una interfaz gráfica de usuario. La herramienta de desarrollo es: JetBrains PyCharm 2018.2.4 x64
Debido al reciente momento apretado, en el diseño del curso "Inteligencia Artificial", Elegí un problema de backgammon más sencillo. En el diseño de este curso, mi capacidad de codificación, capacidad de depuración, capacidad de explicación e implementación de algoritmos, capacidad de optimización de funciones y otros aspectos han logrado grandes avances. En este proceso de diseño, existen los siguientes problemas, que se describen brevemente a continuación:
(1) La capacidad de juzgar la situación del tablero de ajedrez es insuficiente, porque es solo un simple juicio de la situación actual del tablero de ajedrez. , que es diferente de un simple juicio sobre la situación actual del tablero de ajedrez. Las reglas y los jugadores de backgammon menos talentosos son básicamente los mismos. Si el oponente es muy cuidadoso y domina varias estrategias de diseño, entonces básicamente este algoritmo se convertirá en un hábito, lo que facilitará el objetivo y el plan de objetivo siempre será efectivo.
(2) Determinar; la forma del juego de ajedrez El algoritmo de puntuación del límite temporal es el mismo que el del área central, que no puede identificar eficazmente el límite de antemano y reduce el peso de los puntos vacíos del límite
(3; ) Es necesario mejorar la interfaz gráfica de usuario y también se puede mejorar con la ayuda de un nuevo algoritmo.
Es necesario mejorar la interfaz gráfica de usuario y se pueden agregar las funciones de modo PK, selección de color y selección de tamaño del tablero.
En el futuro, puedes intentar utilizar el algoritmo del árbol del juego e intentar comparar; con el algoritmo actual. El algoritmo de la tabla de puntuación sacrifica una mayor precisión para alcanzar rápidamente el punto óptimo, mientras que el árbol del juego puede buscar de manera más integral las ventajas hombre-máquina al hacer predicciones globales de las piezas de ajedrez por adelantado.
Además, los conocimientos aprendidos en el aula, como BFS, DFS, algoritmo A*, algoritmo de árbol de decisión, etc., se pueden aplicar a la toma de decisiones inteligente en backgammon.