Эвристики для поиска кратчайших путей — различия между версиями
| Строка 11: | Строка 11: | ||
Мы будем рассматривать сеть автомобильных дорог: | Мы будем рассматривать сеть автомобильных дорог: | ||
| − | * <tex>V</tex> - множество | + | * <tex>V</tex> - множество перекрёстков |
* <tex>E</tex> - множество дорог | * <tex>E</tex> - множество дорог | ||
* <tex>l(u,v)</tex> - среднее время, которое занимает проезд по дороге | * <tex>l(u,v)</tex> - среднее время, которое занимает проезд по дороге | ||
| + | |||
| + | ==Алгоритм Дейкстры== | ||
| + | основная статья: [[Алгоритм Дейкстры]] | ||
| + | * на каждом шаге выбирает из множества непросмотренных вершин вершину с наименьшим расстоянием до старта и релаксирует рёбра, исходящие из неё | ||
| + | * завершает свою работу, когда цель достигнута (или просмотрены все вершины) | ||
| + | |||
| + | Скорость работы алгоритма Дейкстры сильно зависит от скорости операций с приоритетной очередью. | ||
| + | |||
| + | Для фибоначчиевых куч время работы алгоритма составляет <tex>O(V\log{V}+E)</tex>, для двоичных куч: <tex>O(E\log{V})</tex> | ||
| + | |||
| + | Поскольку мы рассматриваем сеть автомобильных дорог, то <tex>m = O(n)</tex> | ||
Версия 17:50, 1 декабря 2013
Данная статья - перевод выступления Renato F. Werneck в Microsoft Data Structures and Algorithms School в 2010 году.
Проблема поиска кратчайшего пути
Дано:
- ориентированный граф
- отправная точка - вершина , пункт назначения - вершина
Цель: найти кратчайший путь
Мы будем рассматривать сеть автомобильных дорог:
- - множество перекрёстков
- - множество дорог
- - среднее время, которое занимает проезд по дороге
Алгоритм Дейкстры
основная статья: Алгоритм Дейкстры
- на каждом шаге выбирает из множества непросмотренных вершин вершину с наименьшим расстоянием до старта и релаксирует рёбра, исходящие из неё
- завершает свою работу, когда цель достигнута (или просмотрены все вершины)
Скорость работы алгоритма Дейкстры сильно зависит от скорости операций с приоритетной очередью.
Для фибоначчиевых куч время работы алгоритма составляет , для двоичных куч:
Поскольку мы рассматриваем сеть автомобильных дорог, то