20131210прохоренков
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 614 views

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

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

Statistics

Views

Total Views
614
Views on SlideShare
381
Embed Views
233

Actions

Likes
0
Downloads
1
Comments
0

3 Embeds 233

http://tech.yandex.ru 196
https://tech.yandex.ru 35
http://admin-ru.tech.yandex-team.ru 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

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