|
Grado en Ingeniería Informática |
TRABAJOS FIN DE GRADO curso: 2024-25
Resolución del Juego de puntos y cajas utilizando técnicas de inteligencia artificial |
Tecnologías Específicas
Computación
Descripcion y Objetivos
Introducción
El juego de Puntos y Cajas (también conocido como "Dots and Boxes") es un juego de lápiz y papel que se juega en un tablero de puntos. Dos jugadores se turnan para dibujar líneas que conecten dos puntos adyacentes (horizontal o verticalmente), y cuando un jugador completa un cuadrado, lo reclama, gana un punto y además tiene un turno extra para jugar. El objetivo es maximizar el número de cuadrados obtenidos. Aunque las reglas son simples, el juego presenta una profundidad estratégica considerable, especialmente en tableros de mayor tamaño, lo que lo convierte en un excelente caso de estudio para algoritmos de inteligencia artificial y teoría de juegos.
Este proyecto se centrará en el desarrollo de agentes inteligentes capaces de jugar Puntos y Cajas de manera óptima, utilizando agentes basados en reglas, algoritmos de búsqueda con adversario, heurísticas avanzadas y posiblemente técnicas de aprendizaje automático y/o por refuerzo. Además, se desarrollará una interfaz completamente jugable y que permita almacenar datos para posibles procesos de aprendizaje automático.
Objetivos
- Entender la dinámica del juego “puntos y cajas” y su espacio de estados, determinando los principales retos para el agente de inteligencia artificial.
- Estudiar posibles estrategias básicas y plasmarlas en conjuntos de reglas para crear agentes iniciales.
- Desarrollar un agente basado en técnicas de búsqueda que sea capaz de jugar de manera eficiente utilizando algoritmos como Minimax y Monte Carlo Tree Search.
- Explorar, si es posible, algoritmos de aprendizaje por refuerzo, como Q-Learning para enseñar al agente a jugar de manera eficiente aprendiendo de sus acciones.
- Evaluar el rendimiento de los distintos enfoques mediante simulaciones, comparando la eficiencia y efectividad de cada técnica.
- Implementar una interfaz visual que permita observar el comportamiento del agente y su toma de decisiones en tiempo real.
- Desarrollar una aplicación sencilla para simular partidas automáticas del juego de puntos y cajas. Debe permitir el almacenamiento de partidas para su posterior explotación.
- Escritura de la memoria del TFG para documentar el trabajo realizado y los resultados obtenidos.
Metodología y Competencias
Metodología
- Análisis del Juego “puntos y cajas”.
- Diseño del agente basado en reglas a partir de conocimiento heurístico.
- Diseño del Agente Basado en Búsqueda: Implementar agentes utilizando técnicas clásicas de búsqueda:
- Diseño de una función de evaluación para configuraciones de tablero.
- Minimax con poda alfa-beta.
- Monte Carlo Tree Search (MCTS).
- Desarrollo de un Agente de Aprendizaje por Refuerzo:
- Q-Learning o actor crítico: Implementar un agente que aprenda a maximizar las recompensas a largo plazo a través de la interacción con el juego.
- Entrenamiento y Evaluación:
- Entrenar los agentes en múltiples partidas del juego, evaluando su rendimiento.
- Realizar un análisis comparativo entre los distintos agentes, teniendo en cuenta la dimensión del tablero.
- Implementación de la Interfaz: Desarrollar una interfaz visual para monitorizar las partidas del agente, mostrando las decisiones en tiempo real y la evolución del tablero.
- Aplicación Final: Desplegar una aplicación que permita a los usuarios ver partidas entre los agentes implementados o jugar contra ellos.
- Documentación: Redactar la memoria del TFG, explicando el proceso seguido, los algoritmos implementados y los resultados obtenidos en la experimentación.
Competencias
Las competencias que se trabajarán en este proyecto son:
- [CM1] Capacidad para tener un conocimiento profundo de los principios fundamentales y modelos de la computación y saberlos aplicar para interpretar, seleccionar, valorar, modelar, y crear nuevos conceptos, teorías, usos y desarrollos tecnológicos relacionados con la informática.
- [CM3] Capacidad para evaluar la complejidad computacional de un problema, conocer estrategias algorítmicas que puedan conducir a su resolución y recomendar, desarrollar e implementar aquella que garantice el mejor rendimiento de acuerdo con los requisitos establecidos.
- [CM4] Capacidad para conocer los fundamentos, paradigmas y técnicas propias de los sistemas inteligentes y analizar, diseñar y construir sistemas, servicios y aplicaciones informáticas que utilicen dichas técnicas en cualquier ámbito de aplicación.
- [CM7] Capacidad para conocer y desarrollar técnicas de aprendizaje computacional y diseñar e implementar aplicaciones y sistemas que las utilicen, incluyendo las dedicadas a extracción automática de información y conocimiento a partir de grandes volúmenes de datos.
Medios a utilizar
- Lenguajes de programación como Python y librerías especializadas en inteligencia artificial, como NumPy, Scikit-learn, TensorFlow o PyTorch.
- Herramientas de visualización como Tkinter o PyQt para desarrollar la interfaz de usuario.
- Computadoras personales o entornos de computación en la nube para entrenar los modelos de aprendizaje por refuerzo.
Bibliografía
- Libros y manuales de inteligencia artificial y aprendizaje por refuerzo, como "Reinforcement Learning: An Introduction" de Sutton y Barto.
- Documentación y artículos sobre algoritmos de búsqueda, como Minimax y MCTS, y su aplicación en problemas de toma de decisiones.
- Recursos en línea y artículos científicos recientes sobre aplicaciones de redes neuronales en el juego “dots and boxes” y en problemas de decisión secuencial.
Tutores GAMEZ MARTIN, JOSE ANTONIO ALEDO SÁNCHEZ, JUAN ÁNGEL | Alumno GARCÍA GÓMEZ, ALEJANDRO
|
| |