Link GitHub: leanrios97/snake-RL: Este proyecto fue creado para presentar como trabajo final de la materia sistemas expertos.

Este proyecto implementa un agente de IA que juega al clásico juego de la Serpiente utilizando un algoritmo de deep Q-learning. La IA aprende a jugar el juego de manera autónoma mejorando su rendimiento a través de prueba y error, utilizando técnicas de aprendizaje por refuerzo.

Descripción del Agente

El archivo agent.py contiene la lógica principal del agente de IA. El agente está construido usando una red Q profunda (DQN), donde almacena los estados del juego, realiza acciones y entrena su red neuronal en función de las recompensas. El agente interactúa con el entorno del juego de la Serpiente y ajusta su estrategia con el tiempo modificando su política.

Componentes Clave:

Interacción con el Juego

El archivo game.py maneja el entorno del juego utilizando Pygame. Define el bucle del juego, el movimiento de la serpiente y la detección de colisiones. El juego se actualiza continuamente a medida que el agente toma decisiones para mover la serpiente, recoger comida y evitar colisiones.

Red Neuronal y Entrenador

El archivo model.py define la arquitectura de la red neuronal (Linear_QNet) y la lógica de entrenamiento (QTrainer). El entrenador calcula los valores Q utilizando el error cuadrático medio (MSE) como función de pérdida y el optimizador Adam para actualizar los pesos.

Funciones Auxiliares

El archivo helper.py proporciona utilidades para graficar el rendimiento del agente a lo largo del tiempo, mostrando las puntuaciones del juego y el promedio móvil.

Ejecución del Proyecto

Para ejecutar la IA del Juego de la Serpiente, simplemente ejecuta el archivo agent.py. El juego comenzará y el agente de IA empezará a entrenarse y mejorar su rendimiento.

python agent.py