Система выбора маршрута через различные точки в современных автомобильных навигаторах работает на основе алгоритма Дейкстры. thecode.media Он позволяет не перебирать все варианты, а находить самый короткий путь только между соседними графами — и так, шаг за шагом, продвигаться к конечной точке. thecode.media
При выборе маршрута навигатор учитывает и другие параметры: thecode.media
- Комфорт. thecode.media Если нужно построить не самый быстрый, а самый комфортный маршрут, то навигатору отдают предпочтение автомагистралям и дорогам с несколькими полосами. thecode.media Чтобы выбирать именно такие дороги, им присваивают коэффициент 0,8 — это виртуально сократит время на дорогу по ним на 20%. thecode.media Просёлочным и грунтовым дорогам дают коэффициент 1,3, чтобы они казались алгоритму более долгими, и он старался их избегать. thecode.media
- Сложность маршрута и реальное время. thecode.media Маршрут из одной точки в другую почти никогда не бывает прямым — на нём всегда есть повороты, развороты и съезды, которые отнимают время. thecode.media Чтобы навигатор это учитывал, в графы добавляют время прохождения поворота — либо коэффициентом, либо отдельным параметром. thecode.media
- Пробки. thecode.media habr.com Если есть интернет, то навигатор получает данные о состоянии дорог и добавляет разные коэффициенты в зависимости от загруженности. thecode.media Если интернета нет, то алгоритм использует усреднённую модель пробок на этом участке. thecode.media Эта модель скачивается заранее и постоянно обновляется в фоновом режиме. thecode.media
Также для ускорения расчёта маршрута алгоритм использует уже заранее просчитанные варианты маршрутов и подставляет их. thecode.media Он находит только ключевые точки пути, а маршрут между ними уже просчитан до этого. thecode.media