OsmAnd revoluciona la navegación offline con 100x de velocidad

Highway Hierarchy Routing: La nueva arquitectura

OsmAnd acaba de implementar su sistema Highway Hierarchy (HH) Routing, una arquitectura de enrutamiento completamente rediseñada que logra mejoras de velocidad de 100x comparado con el algoritmo A* bidireccional tradicional. Esta solución resuelve el problema fundamental de calcular rutas de 200-300km que anteriormente tomaban hasta 20 segundos explorando más de un millón de segmentos de carretera.

El núcleo del sistema se basa en clusters de área inteligentes. El mapa se divide en pequeñas regiones con "puntos frontera" limitados que actúan como puertas de entrada y salida. Entre estos puntos se pre-calculan atajos (shortcuts) que almacenan tiempo/distancia de viaje, reduciendo drasticamente el espacio de búsqueda para rutas largas.

Arquitectura técnica y beneficios de almacenamiento

Los números hablan por sí solos. El procesamiento del planeta completo resulta en aproximadamente 3 millones de puntos frontera organizados en 541,000 clusters, generando cerca de 91 millones de atajos estimados. Esta estructura añade solo 0.5% al tamaño de los mapas por perfil de enrutamiento.

La selección de puntos frontera utiliza el algoritmo Ford-Fulkerson para identificar cuellos de botella naturales en la red vial. Esto permite que 5 puntos frontera bien ubicados representen eficientemente un área con 5,000 puntos internos y 10,000 aristas viales, logrando una reducción de 30x en aristas a considerar para el path de alto nivel.

Proceso de cálculo de rutas en tres fases

El sistema opera mediante un enfoque de tres pasos optimizado:

Conexión local: Dijkstra conecta el punto de inicio/destino con todos los puntos frontera de su cluster respectivo usando mapas detallados localmente.

Enrutamiento abstracto: Dijkstra opera sobre el grafo base (solo puntos frontera + atajos pre-calculados) para encontrar la secuencia óptima entre clusters.

Refinamiento con A*: Para cada atajo en la secuencia, A* ejecuta sobre el mapa detallado limitado estrictamente al área del cluster correspondiente.

Una ruta de 500km se descompone en ~100 atajos. Si cada cálculo A* explora 100-1000 segmentos detallados, el total es de 10,000-50,000 segmentos versus el millón+ que requería el A* tradicional para la ruta completa.

Comparativa rápida: ¿esto vs la alternativa?

Frente a Contraction Hierarchies (CH), el estándar de la industria, HH-Routing de OsmAnd presenta ventajas decisivas. CH requiere decenas de GB para Europa (200GB+ global), mientras HH mantiene el planeta completo bajo 20GB para todos los perfiles. CH necesita pre-procesamiento del grafo completo globalmente, HH funciona con descargas regionales independientes.

La flexibilidad es donde realmente brilla: CH típicamente maneja un perfil fijo, OsmAnd soporta 10+ parámetros de enrutamiento (1024+ combinaciones) usando la misma estructura HH. Las actualizaciones son otro punto fuerte: HH se adapta a cambios de mapa en tiempo real, mientras CH requiere re-procesamiento costoso de toda la red.

Para desarrolladores que integren navegación offline, esto significa mapas compactos con enrutamiento enterprise-grade sin sacrificar personalización o actualizaciones frecuentes.

Fuente original: OsmAnd

Read more