Эвристики для поиска кратчайших путей — различия между версиями
Строка 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 году.
Проблема поиска кратчайшего пути
Дано:
- ориентированный граф
- отправная точка - вершина , пункт назначения - вершина
Цель: найти кратчайший путь
Мы будем рассматривать сеть автомобильных дорог:
- - множество перекрёстков
- - множество дорог
- - среднее время, которое занимает проезд по дороге
Алгоритм Дейкстры
основная статья: Алгоритм Дейкстры
- на каждом шаге выбирает из множества непросмотренных вершин вершину с наименьшим расстоянием до старта и релаксирует рёбра, исходящие из неё
- завершает свою работу, когда цель достигнута (или просмотрены все вершины)
Скорость работы алгоритма Дейкстры сильно зависит от скорости операций с приоритетной очередью.
Для фибоначчиевых куч время работы алгоритма составляет
, для двоичных куч:Поскольку мы рассматриваем сеть автомобильных дорог, то