¿Redes neuronales vs algoritmos genéticos en juegos como Tic Tac Toe?

9

Actualmente estoy haciendo un proyecto que consiste en crear una IA para jugar al juego Gomoku (es como un tic tac toe, pero se juega en un tablero de 15 * 15 y requiere 5 seguidos para ganar). Ya he implementado con éxito una IA de tic tac toe perfecta usando Q learning y teniendo estados / acciones del juego almacenados en una tabla, pero para un tablero de 15 * 15 los posibles estados del juego se vuelven demasiado grandes para implementar este proyecto.

Mi pregunta es, ¿debería usar redes neuronales o algoritmos genéticos para este problema? Y más específicamente, ¿cómo debo implementar esto?

Conway
fuente
2
¡Bienvenido a AI! Excelente pregunta en mi humilde opinión.
DukeZhou

Respuestas:

7

Para gomoku, parece un poco exagerado usar redes neuronales o el algoritmo genético, ya que ambos toman un tiempo y, la mayoría de las veces, no van como lo desean. El árbol de juego de Gomoku es bastante grande, pero puedes obtener una IA decente de minimax, poda de árbol de juego y una buena función heurística (que incluye contar medio y completo 2s, 3s, 4s, ... etc.) en lugar del mapeo todo el espacio

Si no está familiarizado con la poda alfa beta y minimax, consulte https://www.cs.cornell.edu/courses/cs312/2002sp/lectures/rec21.htm

Si realmente desea utilizar redes neuronales o algoritmos genéticos, puede hacerlo para la experiencia de aprendizaje. Con respecto a las redes neuronales, una forma de hacerlo es la siguiente:

  • Defina una función heurística que recibe una entrada de estado de placa (secuencia de 0,1,2 para vacío, negro, blanco) y genera un valor de "bondad" del estado de placa. La red neuronal es nuestra función heurística.
  • Suponiendo que los movimientos en estos juegos son óptimos, entrena la diferencia entre el mejor movimiento actual (según tus parámetros actuales) y el movimiento que tus datos dicen que es el mejor. ¡Así es como definimos nuestra función de error! Por lo tanto, está minimizando esta diferencia, de modo que lo que su red neuronal dice que es más fuerte es idealmente lo que sus datos del juego dicen que es más fuerte (la optimización de esta función de error se puede hacer mediante retropropagación o algoritmo genético).
  • Idealmente, en este punto, ahora puede usar su función de evaluación basada en la red neuronal ('fuerte') para sus evaluaciones de movimiento del árbol de juego en lugar de las heurísticas codificadas.

Por supuesto, esta es solo una forma, y ​​primero necesitarías encontrar los datos del juego.

Una nota al margen, la aplicación del algoritmo genético puede ocurrir de varias maneras, como la optimización de parámetros en una red neuronal como se mencionó anteriormente o la búsqueda en el árbol del juego, ¡así que asegúrese de tener claro cómo define la configuración del problema con él! Lo mismo ocurre con formas alternativas de aplicar una red neuronal.

Finalmente, es útil saber que gomuku está resuelto. Consulte /programming/6952607/ai-strategy-for-gomoku-a-variation-of-tic-tac-toe para conocer los pensamientos e ideas de los demás.

sma
fuente
2
Buen punto sobre gomoku como un juego resuelto. Esto facilita la validación de la fuerza de la IA (es decir, resuelve el juego y expresa un juego perfecto, o simplemente se juega de manera más óptima que un oponente, como en el caso de AlphaGo.)
DukeZhou