Overview
Una aplicación web que optimiza rutas de recolección de residuos para una flota de camiones: calcula automáticamente qué camión visita qué puntos y en qué orden, respetando restricciones duras de capacidad, jornada laboral y viajes múltiples por camión. Corre sobre un servidor de ruteo y de mapas propios, sin depender de proveedores externos, con una arquitectura multi-proyecto donde cada organización opera su propio espacio aislado de puntos, flota y resultados. Es el mismo tipo de problema que resuelven UPS, Amazon o las apps de delivery para sus flotas todos los días, aplicado acá a la recolección de residuos.
El problema
Encontrar la mejor ruta de recolección implica mucho más que el camino más corto entre puntos. Cada camión tiene capacidad limitada, sale desde un plantel fijo, y puede hacer varios viajes de descarga en el día, todo dentro de una jornada laboral. Es una variante del VRP (capacitada, con múltiples viajes por vehículo y límite de jornada), y calcularla con precisión matemática es prácticamente imposible a esta escala: es un problema NP-difícil. El reto real fue construir una heurística confiable que respete las restricciones que sí importan en la operación, y que avise con claridad cuando el trabajo del día no cabe en la flota disponible, en vez de fallar en silencio o entregar una ruta que nadie puede ejecutar.
Datos
Puntos de recolección
Tabular → espacial
Dirección o coordenadas y peso, cargados por el operador
Red vial de OpenStreetMap
Espacial
Base del motor de ruteo propio, para distancias reales de carretera
Límites administrativos INEC
Espacial
Mapa de calor por cantón/distrito
Método
Retos técnicos
El camión que gastaba tiempo sin moverse
La primera versión del modelo tenía un defecto sutil en cómo calculaba el tiempo de los camiones sin puntos asignados, lo que volvía imposibles casos que en la realidad sí cabían. Un caso real de 22 puntos con 7 camiones no encontraba solución hasta corregirlo. Hoy existe una prueba de regresión que falla exactamente si el error vuelve a aparecer.
Cuando la flota no alcanza
Con pocos camiones disponibles, la primera versión ignoraba el límite de jornada y apilaba todo en el camión más barato en distancia, dejando otras unidades sin usar. La solución fue un segundo modo de cálculo que reparte el exceso entre toda la flota. En un caso real, la jornada máxima pasó de concentrarse en un solo camión a repartirse de forma pareja entre todos los disponibles, atendiendo la misma cantidad de paradas.
Sin depender de terceros
El ruteo corre en un servidor OSRM propio, con datos de OpenStreetMap de Costa Rica, sin depender del servicio público compartido ni de sus límites de peticiones. El mapa de fondo usa la misma base de datos que el motor de ruteo, así que lo que el mapa dibuja y lo que el sistema calcula son exactamente las mismas calles.
Todo corre en un VPS propio con Docker, HTTPS automático vía Caddy y respaldos programados de la base de datos.
Tecnologías
Próximos pasos
Días de recolección configurables por punto (hoy es por camión y por proyecto completo), una página de ayuda con manual descargable, y un portal de proyectos hermanos (tren, energía) sobre el mismo dominio.