Universidad de Castilla-La Mancha
 
Escuela Superior de Ingeniería Informática

 

  cambiar a curso:   2023-24   2025-26



Grado en Ingeniería Informática


TRABAJOS FIN DE GRADO
curso: 2024-25

Resolución del Juego 2048 Utilizando Técnicas de Inteligencia Artificial


Tecnologías Específicas

Computación
 


Descripcion y Objetivos

El juego 2048, creado por Gabriele Cirulli en 2014, es un rompecabezas sencillo pero desafiante en el que el jugador debe combinar números para llegar al bloque con el valor 2048. Aunque las reglas son simples, alcanzar este objetivo requiere una planificación estratégica y una evaluación constante de las mejores acciones disponibles. Este juego ha sido ampliamente estudiado en el campo de la inteligencia artificial debido a su combinación de acciones con efecto determinista y aleatoriedad en la aparición de nuevas piezas, lo que lo convierte en un entorno interesante para probar y desarrollar algoritmos de toma de decisiones [1][2].

En este trabajo, proponemos desarrollar agentes basados en técnicas de inteligencia artificial para resolver el juego 2048 de manera efectiva. Entre las técnicas a considerar se incluyen algoritmos de búsqueda como Minimax con poda alfa-beta, Monte Carlo Tree Search (MCTS), y algoritmos de refuerzo como Q-Learning o Deep Q-Networks (DQN). El objetivo es diseñar y entrenar un agente que alcance el bloque 2048 de manera consistente, evaluando el rendimiento de diferentes enfoques y estrategias.

 

[1] Rinat Maksutov. “A puzzle for AI: How I taught an AI to play 2048”. Towards Data Science, 2020. https://towardsdatascience.com/a-puzzle-for-ai-eb7a3cb8e599

 

[2] H- Guek. “On Reinforcement Learning for the Game of 2048”

arXiv:2212.11087, 2022. https://arxiv.org/abs/2212.11087

 

 

Objetivos

 

  1. Entender la dinámica del juego 2048 y su espacio de estados, determinando los principales retos para el agente de inteligencia artificial.
  2. 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.
  3. Explorar algoritmos de aprendizaje por refuerzo, como Q-Learning o DQN, para enseñar al agente a jugar de manera eficiente aprendiendo de sus acciones.
  4. Evaluar el rendimiento de los distintos enfoques mediante simulaciones, comparando la eficiencia y efectividad de cada técnica.
  5. Implementar una interfaz visual que permita observar el comportamiento del agente y su toma de decisiones en tiempo real.
  6. Desarrollar una aplicación sencilla para simular partidas automáticas del juego 2048 utilizando el mejor modelo desarrollado.
  7. Escritura de la memoria del TFG para documentar el trabajo realizado y los resultados obtenidos.
 


Metodología y Competencias

Metodología

 

  1. Análisis del Juego 2048: Estudiar la mecánica del juego, el tamaño del tablero (4x4), las reglas de movimiento, la generación de nuevos bloques (número 2 o 4) y las combinaciones posibles. Esto permitirá definir el espacio de estados y las acciones disponibles.
  2. Diseño del Agente Basado en Búsqueda: Implementar agentes utilizando técnicas clásicas de búsqueda:
    • Minimax con poda alfa-beta: Considerar el juego como un árbol de decisiones, donde el jugador trata de maximizar su puntuación y el "entorno" introduce nuevos bloques que afectan al resultado.
    • Monte Carlo Tree Search (MCTS): Evaluar posibles secuencias de movimientos realizando simulaciones aleatorias desde un estado dado, seleccionando el mejor movimiento en función de los resultados simulados.
  3. Desarrollo de un Agente de Aprendizaje por Refuerzo:
    • Q-Learning: Implementar un agente que aprenda a maximizar las recompensas a largo plazo a través de la interacción con el juego.
    • Deep Q-Networks (DQN): opcionalmente y si el tiempo lo permite, se utilizarán redes neuronales para aproximar la función de valor Q, mejorando la capacidad del agente para tomar decisiones en entornos de alta dimensionalidad.
  4. Entrenamiento y Evaluación:
    • Entrenar los agentes en múltiples partidas del juego, evaluando su rendimiento en términos de la frecuencia con la que alcanzan el bloque 2048.
    • Comparar las diferentes técnicas de inteligencia artificial mediante métricas de rendimiento como la puntuación media obtenida, el número de movimientos realizados y la tasa de éxito.
  5. 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.
  6. Aplicación Final: Desplegar una aplicación que permita a los usuarios ver el rendimiento del agente en diferentes partidas del juego 2048, con la posibilidad de ajustar los parámetros del agente (como la profundidad de búsqueda o la tasa de aprendizaje). Puede combinarse con la interfaz implementada en 5.
  7. 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 2048 y en problemas de decisión secuencial.

 

 


Tutores


GAMEZ MARTIN, JOSE ANTONIO
ALEDO SÁNCHEZ, JUAN ÁNGEL
 

Alumno


ROMÁN UTRILLA, IVÁN

 

 

Sindicación  Sindicación  Sindicación  Sindicación

Curso: 2024-25
© Escuela Superior de Ingeniería Informática
Edificio Infante Don Juan Manuel
Avda. de España s/n
02071 Albacete

informatica.ab@uclm.es
aviso legal
generar código QR de la página