Proyecto desarrollado para experimentar y comparar algoritmos de búsqueda y optimización en un entorno adversarial. El juego simula la interacción entre un ratón que busca llegar con el queso a la meta, mientras un gato intenta atraparlo.
Los resultados del proyecto pueden visualizarse en el documento resultados.ipynb.
- Modelar el mapa como un grafo
- Implementar agentes autónomos con distintos algoritmos:
- Búsqueda A* (heurística Manhattan)
- Minimax con poda Alfa-Beta
- Estrategias estocásticas Random
- Analizar el desempeño de cada estrategia.
- Visualizar la simulación en una interfaz gráfica interactiva.
GATO_RATÓN/ │ ├── assets/ # Imágenes de las piezas │ ├── gato.png │ ├── queso.png │ └── ratón.png │ ├── docs/ # Documentación del problema │ ├── resultados/ # csv de registros de resultados │ ├── resultados_detalle.csv │ ├── resultados_pairings_resumen.csv │ ├── resultados_partidas_detalle.csv │ └── resultados_partidas_resumen.csv │ ├── scr/ # Código fuente del proyecto │ ├── alg/ # Algoritmos de movimiento │ │ ├── alg_astar.py │ │ ├── alg_minimax.py │ │ ├── alg_random.py │ │ ├── alg_estudio.py │ │ └── alg_entrenamiento.py │ │ │ ├── config_small.py # Mapa pequeño (11 nodos) │ ├── config_big.py # Mapa grande (25 nodos) │ ├── modelado_juego.py # Motor gráfico base │ ├── simul_visual.py # Simulación automática con visualización (Pygame) │ ├── experimentos.py # Simulación sin interfaz para análisis estadístico │ └── test_astar.py # Prueba básica del algoritmo A* │ ├── main.py # Script para ejecutar una partida visual (puede ser manual/automática) ├── requirements.txt # Dependencias del proyecto ├── resultados.ipynb # Registro de resultados finales del Proyecto └── README.md # Este archivo
1️⃣ Crear entorno virtual (opcional pero recomendado)
python -m venv .venv2️⃣ Activar entorno
# Windows (PowerShell)
.venv\Scripts\Activate.ps1
# Linux / MacOS
source .venv/bin/activate3️⃣ Instalar dependencias
pip install -r requirements.txtpython -m scr.simul_visual💡 Podés cambiar los algoritmos dentro del archivo:
MODO_GATO = "minimax" # opciones: astar | minimax | random
MODO_RATON = "astar" # opciones: astar | minimax | randomTambién es posible usar:
from scr.config_big import ...para el tablero grande 🗺️
python -m scr.experimentosEste modo imprime en consola el desempeño de los algoritmos.
python -m scr.test_astar| Algoritmo | Agente | Descripción |
|---|---|---|
| A* | Gato / Ratón | Persigue objetivos en el grafo minimizando distancia |
| Minimax + Alfa-Beta | Gato / Ratón | Estrategia adversarial basada en juegos con dos agentes |
| Movimiento Random | Gato / Ratón | Exploración estocástica para evitar ciclos o atascos |
| Entrenamiento heurístico | Ratón | Ajuste por grid-search de pesos de heurística |
| BFS auxiliar | Ambos | Para calcular distancias reales en análisis |
Alexia Aurrecochea, Mercedes Barrutia, Sofía Craigdallie y Paula Blasco. Estudiantes de Ingeniería en Inteligencia Artificial y Ciencia de Datos Universidad Católica del Uruguay En el marco del curso de Algoritmos Avanzados de Búsqueda y Optimización. Supervisión: [📝 Ing.Michel Pedrera e Ing.Pío Dos Santos]