4. Информация в дорожном графе
4/28
Пётр Прохоренков
Современная автомобильная маршрутизация
5. Запрещенные маневры в редакторе
5/28
Пётр Прохоренков
Современная автомобильная маршрутизация
6. Запрещенные маневры
Запрещенный разворот
Эта последовательность
участков дорог не может
входить ни в один из
допустимых путей.
6/28
Пётр Прохоренков
Современная автомобильная маршрутизация
7. Запрещенные маневры
Запрещенный разворот
Эта последовательность
участков дорог не может
входить ни в один из
допустимых путей.
Еще участки дорог в
последовательности
Что получится?
6/28
Пётр Прохоренков
Современная автомобильная маршрутизация
8. Запрещенные маневры
Запрещенный разворот
Эта последовательность
участков дорог не может
входить ни в один из
допустимых путей.
Еще участки дорог в
последовательности
Развернуться все равно
можно!
6/28
Пётр Прохоренков
Современная автомобильная маршрутизация
9. Геоданные в БД
Соединения дорог
Координаты
Участки дорог
Координаты ломаной
Скорость движения
Допустимые виды транспорта
Название
Запрещенные маневры
Список участков дорог
7/28
Пётр Прохоренков
Современная автомобильная маршрутизация
10. Информация в дорожном графе
8/28
Пётр Прохоренков
Современная автомобильная маршрутизация
11. Граф
A
Вершины
V = {A, B, C , D, E }
B
C
D
Ребра
E ={(B, A), (B, C ), (B, E ),
(A, D), (C , D), (C , E )}
E
9/28
Пётр Прохоренков
Современная автомобильная маршрутизация
12. Путь в графе
A
Путь
P=
B
C
D
(B, (B, E ),
E , (E , C ),
C , (C , D), D)
E
10/28
Пётр Прохоренков
Современная автомобильная маршрутизация
22. Сложность алгоритма Дейкстры
Существует две возможных реализации алгоритма, их
сложности по времени
O(|V |2 )
O(|E |×log (|V |)).
Дорожные графы обладают свойством разреженности:
|E |= O(|V |). Поэтому на них применяют вторую реализацию с
итоговой сложностью O(|V |×log (|V |))
14/28
Пётр Прохоренков
Современная автомобильная маршрутизация
23. время
Время работы алгоритма Дейкстры
24
20
16
12
O(|V | × log(|V |))
8
4
Желаемое время ответа
Москва (100 тыс.)
Россия (1 млн.)
|V |
15/28
Пётр Прохоренков
Современная автомобильная маршрутизация
24. Рабочая область алгоритма Дейкстры
S
T
S
Количество обойденных
вершин можно сократить
вдвое, если запустить
алгоритм Дейкстры
одновременно из начальной
и из конечной точки.
T
16/28
Пётр Прохоренков
Современная автомобильная маршрутизация
25. время
Время работы алгоритма Дейкстры
12
10
8
6
O(|V | × log(|V |))
4
2
Желаемое время ответа
Москва (100 тыс.)
Россия (1 млн.)
|V |
17/28
Пётр Прохоренков
Современная автомобильная маршрутизация
26. Рабочая область алгоритма A∗
S(x, y)
T (x, y)
Можно еще дальше
сократить количество
просмотренных вершин,
если исползовать
дополнительную
информацию.
18/28
Пётр Прохоренков
Современная автомобильная маршрутизация
27. время
Время работы алгоритма A∗
0.24
0.2
0.16
0.12
Желаемое время ответа
O(|V | × log(|V |))
0.08
0.04
Москва (100 тыс.)
Россия (1 млн.)
|V |
19/28
Пётр Прохоренков
Современная автомобильная маршрутизация
30. Contraction Hierarchies
Попробуем удалить
некоторую вершину v из
графа. При этом
необходимо сделать так,
чтобы в оставшейся части
графа сохранились
кратчайшие пути.
1
v
3
2
22/28
Пётр Прохоренков
Современная автомобильная маршрутизация
31. Contraction Hierarchies
Удаление вершины может
повлиять только на
кратчайшие пути, которые
проходят через нее.
1
v
3
2
23/28
Пётр Прохоренков
Современная автомобильная маршрутизация
32. Contraction Hierarchies
“Испорченные” кратчайшие
пути можно исправить,
добавив специальные ребра.
1
v
4
Процесс можно повторять,
пока не останется только
одна вершина. Каждой
вершине мы поставим в
соответствие число – ее
номер в порядке удаления.
3
2
24/28
Пётр Прохоренков
Современная автомобильная маршрутизация
34. Привязка к дорожному графу
Высоты, опущенные из
положения пользователя на
ребра дорожного графа.
26/28
Пётр Прохоренков
Современная автомобильная маршрутизация
35. То, что осталось за кадром
Другие критерии оптимальности
Пробки
Штрафы за повороты
Альтернативные маршруты
27/28
Пётр Прохоренков
Современная автомобильная маршрутизация