Estructura de la entrega
Entregamos notebook Jupyter ejecutable más memoria. Arranca con el planteamiento del problema y la formalización del espacio de estados. Sigue la implementación en Python: búsqueda heurística A* con heurística admisible, minimax con poda alfa-beta para el agente adversario y búsqueda local cuando toca optimizar. Cierra con las métricas de rendimiento (nodos expandidos, tiempo, coste de la solución) y la discusión del comportamiento del agente.