Sistema de optimización de transporte público basado en datos reales de demanda ciudadana
El transporte público en los municipios pequeños y medianos enfrenta un desafío crítico: las rutas se diseñan con frecuencia basándose en estimaciones históricas que no reflejan la demanda real actual de los ciudadanos. Esto genera servicios subutilizados en algunas zonas y saturados en otras, con el consiguiente desperdicio de recursos públicos y la frustración de los usuarios.
Conecta es una plataforma experimental de código abierto que aborda este problema mediante un enfoque data-driven: recoger las intenciones reales de viaje de los ciudadanos, cruzarlas con datos GTFS oficiales del CRTM (Consorcio Regional de Transportes de Madrid), y aplicar algoritmos de optimización para proponer rutas que maximicen la cobertura y eficiencia del servicio.
🔧 Arquitectura y Tecnología
El sistema está construido con una arquitectura moderna:
Backend – Motor de Optimización TNDP
El núcleo del sistema implementa un algoritmo Hub-and-Spoke para el Transit Network Design Problem (TNDP). Este algoritmo, ejecutado de forma asíncrona, opera en tres fases:
- Clustering geoespacial: Agrupación de demandas mediante
ST_ClusterDBSCANde PostGIS para identificar zonas de origen densas. - Enrutamiento óptimo: Cálculo de rutas entre hubs de origen y destino utilizando grafos de OpenStreetMap procesados con
osmnxynetworkx. - Scoring y frecuencia: Evaluación de cada propuesta mediante métricas de cobertura, traslape con rutas existentes (GTFS), y estimación de frecuencia óptima.
Frontend – Visualización Interactiva
La interfaz de administración permite visualizar sobre mapas interactivos (Leaflet) tanto la demanda agregada (heatmap con origen, destino y líneas de conexión) como las rutas GTFS existentes y las propuestas generadas por el algoritmo. Los operadores pueden ajustar parámetros, lanzar nuevas generaciones de rutas, y exportar los resultados.
📊 Funcionalidades Principales
📍Captura de Demanda: Los ciudadanos registran sus intenciones de viaje (origen, destino, franja horaria) a través de un formulario validado por email.
🔄 Importación GTFS: Carga automática de datos oficiales del CRTM (líneas urbanas e interurbanas) para análisis de oferta existente.
⚡Generación de Rutas: Algoritmo TNDP que propuesta nuevas rutas optimizadas para maximizar cobertura y minimizar redundancia.
📈 Analytics: Dashboard con métricas de demanda vs. oferta, distribución geográfica, y evolución temporal.
🎯 Caso de Uso: Cobeña – Madrid
El proyecto se ha desarrollado y validado utilizando datos reales del municipio de Cobeña (Comunidad de Madrid), analizando las conexiones con hubs clave como Plaza de Castilla, Torrejón de Ardoz, Hospital Infanta Sofía, y el aeropuerto de Barajas.
La plataforma permite identificar visualmente las «zonas blancas» donde existe demanda ciudadana pero escasa cobertura de transporte público, facilitando decisiones de planificación basadas en evidencia.
🔐 Seguridad y Producción
La versión de producción incluye medidas de seguridad robustas: autenticación JWT para el panel de administración, protección contra downgrades de base de datos, sistema de backups automatizados, y rate limiting en endpoints públicos. Los datos de ciudadanos se almacenan de forma segura con tokens de sesión temporales.
🚀 Explora el Proyecto
¿Eres responsable de planificación de transporte, investigador en movilidad urbana, o simplemente te interesa la aplicación de la IA en problemas reales de ciudad?
📋 Estado del Proyecto
Conecta está actualmente en fase de desarrollo activo. Las funcionalidades principales están implementadas y probadas:
- ✅ Sistema de intenciones de viaje para ciudadanos
- ✅ Importación y visualización de datos GTFS CRTM
- ✅ Algoritmo TNDP Hub-and-Spoke con clustering geoespacial
- ✅ Panel de administración con mapas interactivos
- ✅ Exportación/importación de snapshots de datos
- ✅ Tests automatizados (67+ tests)
- 🔄 Despliegue en producción (en progreso)
¿Crees que el futuro del transporte público pasa por la optimización algorítmica y la participación ciudadana? ¿O seguiremos diseñando rutas basándonos en intuiciones? ¡Déjame tu opinión en los comentarios! 👇

