Inteligencia Artificial · Solid.js + FastAPI · FIB-UPC
Desastres IA
Búsqueda local en un modelo de ayuda en desastres: helicópteros rescatan grupos en centros en un orden optimizado. App web full-stack con un mapa 2D interactivo y un panel de experimentos — compara hill climbing vs simulated annealing con 3 heurísticos y 6 funciones sucesoras.
Búsqueda Local
AIMA · Java + Python📋
Estado
Cola ordenada de grupos por helicóptero
🔀
SWAP
Intercambia dos grupos de posición
📊
Puntuación
H2 = suma del tiempo de todos los helicópteros
🔍
Búsqueda
HC escala · SA explora con saltos aleatorios
🚁
Web App completa
Solid.js + FastAPIEjecuta el contenedor Docker para acceder al solucionador interactivo completo con todas las funcionalidades.
🗺️
Mapa 2D interactivo
Mapa Canvas con rutas de helicópteros, tooltips de grupos y asignaciones por color
📊
Panel de experimentos
Ejecución por lotes con comparaciones boxplot de todas las configuraciones
⚙️
Configuración completa
3 heurísticos, 6 funciones sucesoras, 3 estados iniciales y parámetros SA ajustables
Esquema del problema
Helicópteros salen de bases y sirven a centros en un orden optimizado. Los grupos tienen tamaños y prioridades. Capacidad: 15 personas por viaje, 10 min de descanso entre salidas.
Funciones heurísticas
H1
Mezcla de makespan (tiempo máx de heli) y tiempo total, ponderado para repartir carga
H2usada en la demo
Minimiza la suma de tiempos de finalización de todos los helicópteros
H3
H1 + penalización por grupos prioritarios rescatados tarde (urgencia)
Operadores sucesores
SWAPGENERALREDUCIDOSWAP + GENERALSWAP + REDUCIDOEstocástico
6 funciones sucesoras en Java (DesastresSuccessorFunction1–6). La demo usa SWAP. Pasa el ratón para más detalles.
⚡
Ejecutar demo
HC / SA · 7 grupos · 3 helicópteros · se ejecuta en el navegador
Cómo funciona: Distribución 2D aleatoria (con semilla) con 2 bases y 7 grupos. Colores = helicóptero asignado. HC elige el mejor vecino SWAP hasta estancarse; SA a veces acepta peores movimientos para escapar de mínimos locales.