Эвристики для поиска кратчайших путей
Версия от 17:50, 1 декабря 2013; 188.227.78.144 (обсуждение)
Данная статья - перевод выступления Renato F. Werneck в Microsoft Data Structures and Algorithms School в 2010 году.
Проблема поиска кратчайшего пути
Дано:
- ориентированный граф
- отправная точка - вершина , пункт назначения - вершина
Цель: найти кратчайший путь
Мы будем рассматривать сеть автомобильных дорог:
- - множество перекрёстков
- - множество дорог
- - среднее время, которое занимает проезд по дороге
Алгоритм Дейкстры
основная статья: Алгоритм Дейкстры
- на каждом шаге выбирает из множества непросмотренных вершин вершину с наименьшим расстоянием до старта и релаксирует рёбра, исходящие из неё
- завершает свою работу, когда цель достигнута (или просмотрены все вершины)
Скорость работы алгоритма Дейкстры сильно зависит от скорости операций с приоритетной очередью.
Для фибоначчиевых куч время работы алгоритма составляет
, для двоичных куч:Поскольку мы рассматриваем сеть автомобильных дорог, то