20131210прохоренков

625 views

Published on

Современная автомобильная маршрутизация на Я.Студенте в ВШЭ.
Пётр Прохоренков

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
625
On SlideShare
0
From Embeds
0
Number of Embeds
282
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

20131210прохоренков

  1. 1. Современная автомобильная маршрутизация Пётр Прохоренков Яндекс 10 декабря 2013 1/28 Пётр Прохоренков Современная автомобильная маршрутизация
  2. 2. Поиск маршрута 2/28 Пётр Прохоренков Современная автомобильная маршрутизация
  3. 3. Ведение по маршруту 3/28 Пётр Прохоренков Современная автомобильная маршрутизация
  4. 4. Информация в дорожном графе 4/28 Пётр Прохоренков Современная автомобильная маршрутизация
  5. 5. Запрещенные маневры в редакторе 5/28 Пётр Прохоренков Современная автомобильная маршрутизация
  6. 6. Запрещенные маневры Запрещенный разворот Эта последовательность участков дорог не может входить ни в один из допустимых путей. 6/28 Пётр Прохоренков Современная автомобильная маршрутизация
  7. 7. Запрещенные маневры Запрещенный разворот Эта последовательность участков дорог не может входить ни в один из допустимых путей. Еще участки дорог в последовательности Что получится? 6/28 Пётр Прохоренков Современная автомобильная маршрутизация
  8. 8. Запрещенные маневры Запрещенный разворот Эта последовательность участков дорог не может входить ни в один из допустимых путей. Еще участки дорог в последовательности Развернуться все равно можно! 6/28 Пётр Прохоренков Современная автомобильная маршрутизация
  9. 9. Геоданные в БД Соединения дорог Координаты Участки дорог Координаты ломаной Скорость движения Допустимые виды транспорта Название Запрещенные маневры Список участков дорог 7/28 Пётр Прохоренков Современная автомобильная маршрутизация
  10. 10. Информация в дорожном графе 8/28 Пётр Прохоренков Современная автомобильная маршрутизация
  11. 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. 12. Путь в графе A Путь P= B C D (B, (B, E ), E , (E , C ), C , (C , D), D) E 10/28 Пётр Прохоренков Современная автомобильная маршрутизация
  13. 13. Взвешенный граф A 1 4 3 B 1 C 2 D Веса ребер W:E→R Например: W((B, C )) = 3 Весом пути является сумма весов ребер, составляющих его. 1 E 11/28 Пётр Прохоренков Современная автомобильная маршрутизация
  14. 14. Кратчайший путь A 1 4 3 B 1 C 2 D Определение Кратчайший путь — путь, который среди всех путей между двумя вершинами обладаем наименьшим весом. 1 E 12/28 Пётр Прохоренков Современная автомобильная маршрутизация
  15. 15. Алгоритм Дейкстры A Кратчайшие расстояния 1 4 3 B 1 C 2 D 1 A B C D E B ∞ 0 ∞ ∞ ∞ E 13/28 Пётр Прохоренков Современная автомобильная маршрутизация
  16. 16. Алгоритм Дейкстры A Кратчайшие расстояния 1 4 3 B 1 C 2 D 1 A B C D E B ∞ 0 ∞ ∞ ∞ A 1 0 3 ∞ 1 E 13/28 Пётр Прохоренков Современная автомобильная маршрутизация
  17. 17. Алгоритм Дейкстры A Кратчайшие расстояния 1 4 3 B 1 C 2 D 1 A B C D E B ∞ 0 ∞ ∞ ∞ A 1 0 3 ∞ 1 E 1 0 3 5 1 E 13/28 Пётр Прохоренков Современная автомобильная маршрутизация
  18. 18. Алгоритм Дейкстры A Кратчайшие расстояния 1 4 3 B 1 C 2 D 1 A B C D E B ∞ 0 ∞ ∞ ∞ A 1 0 3 ∞ 1 E 1 0 3 5 1 C 1 0 2 5 1 E 13/28 Пётр Прохоренков Современная автомобильная маршрутизация
  19. 19. Алгоритм Дейкстры A Кратчайшие расстояния 1 4 3 B 1 C 2 D 1 A B C D E B ∞ 0 ∞ ∞ ∞ A 1 0 3 ∞ 1 E 1 0 3 5 1 C 1 0 2 5 1 D 1 0 2 4 1 E 13/28 Пётр Прохоренков Современная автомобильная маршрутизация
  20. 20. Алгоритм Дейкстры A Кратчайшие расстояния 1 4 3 B 1 C 2 D 1 A B C D E B ∞ 0 ∞ ∞ ∞ A 1 0 3 ∞ 1 E 1 0 3 5 1 C 1 0 2 5 1 D 1 0 2 4 1 E 13/28 Пётр Прохоренков Современная автомобильная маршрутизация
  21. 21. Алгоритм Дейкстры A Кратчайшие расстояния 1 4 3 B 1 C 2 D 1 A B C D E B ∞ 0 ∞ ∞ ∞ A 1 0 3 ∞ 1 E 1 0 3 5 1 C 1 0 2 5 1 D 1 0 2 4 1 E 13/28 Пётр Прохоренков Современная автомобильная маршрутизация
  22. 22. Сложность алгоритма Дейкстры Существует две возможных реализации алгоритма, их сложности по времени O(|V |2 ) O(|E |×log (|V |)). Дорожные графы обладают свойством разреженности: |E |= O(|V |). Поэтому на них применяют вторую реализацию с итоговой сложностью O(|V |×log (|V |)) 14/28 Пётр Прохоренков Современная автомобильная маршрутизация
  23. 23. время Время работы алгоритма Дейкстры 24 20 16 12 O(|V | × log(|V |)) 8 4 Желаемое время ответа Москва (100 тыс.) Россия (1 млн.) |V | 15/28 Пётр Прохоренков Современная автомобильная маршрутизация
  24. 24. Рабочая область алгоритма Дейкстры S T S Количество обойденных вершин можно сократить вдвое, если запустить алгоритм Дейкстры одновременно из начальной и из конечной точки. T 16/28 Пётр Прохоренков Современная автомобильная маршрутизация
  25. 25. время Время работы алгоритма Дейкстры 12 10 8 6 O(|V | × log(|V |)) 4 2 Желаемое время ответа Москва (100 тыс.) Россия (1 млн.) |V | 17/28 Пётр Прохоренков Современная автомобильная маршрутизация
  26. 26. Рабочая область алгоритма A∗ S(x, y) T (x, y) Можно еще дальше сократить количество просмотренных вершин, если исползовать дополнительную информацию. 18/28 Пётр Прохоренков Современная автомобильная маршрутизация
  27. 27. время Время работы алгоритма A∗ 0.24 0.2 0.16 0.12 Желаемое время ответа O(|V | × log(|V |)) 0.08 0.04 Москва (100 тыс.) Россия (1 млн.) |V | 19/28 Пётр Прохоренков Современная автомобильная маршрутизация
  28. 28. Customizable Route Planning 20/28 Пётр Прохоренков Современная автомобильная маршрутизация
  29. 29. Customizable Route Planning 21/28 Пётр Прохоренков Современная автомобильная маршрутизация
  30. 30. Contraction Hierarchies Попробуем удалить некоторую вершину v из графа. При этом необходимо сделать так, чтобы в оставшейся части графа сохранились кратчайшие пути. 1 v 3 2 22/28 Пётр Прохоренков Современная автомобильная маршрутизация
  31. 31. Contraction Hierarchies Удаление вершины может повлиять только на кратчайшие пути, которые проходят через нее. 1 v 3 2 23/28 Пётр Прохоренков Современная автомобильная маршрутизация
  32. 32. Contraction Hierarchies “Испорченные” кратчайшие пути можно исправить, добавив специальные ребра. 1 v 4 Процесс можно повторять, пока не останется только одна вершина. Каждой вершине мы поставим в соответствие число – ее номер в порядке удаления. 3 2 24/28 Пётр Прохоренков Современная автомобильная маршрутизация
  33. 33. Contraction Hierarchies v u Понижение детализации 25/28 Пётр Прохоренков Современная автомобильная маршрутизация
  34. 34. Привязка к дорожному графу Высоты, опущенные из положения пользователя на ребра дорожного графа. 26/28 Пётр Прохоренков Современная автомобильная маршрутизация
  35. 35. То, что осталось за кадром Другие критерии оптимальности Пробки Штрафы за повороты Альтернативные маршруты 27/28 Пётр Прохоренков Современная автомобильная маршрутизация
  36. 36. Вопросы? Пётр Прохоренков eeight@yandex-team.ru 28/28 Пётр Прохоренков Современная автомобильная маршрутизация

×