По заданному графу и исходной вершине в графе найдите кратчайшие пути от источника ко всем вершинам данного графа.
Алгоритм Дейкстры очень похож на алгоритм Прима для минимального остовного дерева . Как и MST Prim, мы генерируем SPT (дерево кратчайшего пути) с заданным источником в качестве root. Мы поддерживаем два набора, один набор содержит вершины, включенные в дерево кратчайшего пути, другой набор включает вершины, еще не включенные в дерево кратчайшего пути. На каждом шаге алгоритма мы находим вершину, которая находится в другом наборе (набор еще не включен) и имеет минимальное расстояние от источника.
Ниже приведены подробные шаги, используемые в алгоритме Дейкстры для нахождения кратчайшего пути от одной исходной вершины ко всем остальным вершинам данного графа.
Алгоритм
1) Создайте набор sptSet (набор дерева кратчайших путей), который отслеживает вершины, включенные в дерево кратчайших путей, т. Е. Минимальное расстояние от источника которого рассчитывается и завершается. Изначально этот набор пуст.
2) Назначьте значение расстояния для всех вершин входного графа. Инициализируйте все значения расстояния как БЕСКОНЕЧНЫЙ. Назначьте значение расстояния как 0 для исходной вершины, чтобы она выбиралась первой.
3) Хотя sptSet не включает в себя все вершины
…. a) Выберите вершину u, которой нет в sptSet и которая имеет минимальное значение расстояния.
…. б) Включите u в sptSet .
…. c) Обновить значение расстояния всех смежных вершин u. Чтобы обновить значения расстояния, выполните итерацию по всем смежным вершинам. Если для каждой смежной вершины v сумма значений расстояния u (от источника) и веса ребра uv меньше значения расстояния v, то обновите значение расстояния v.
|
Выход:
Vertex Distance from Source 0 0 1 4 2 12 3 19 4 21 5 11 6 9 7 8 8 14
Пожалуйста, обратитесь к полной статье об алгоритме кратчайшего пути Дейкстры | Жадный Алго-7 для более подробной информации!
Рекомендуемые посты:
- C / C ++ Программа для алгоритма кратчайшего пути Дейкстры | Жадный Алго-7
- Программа Python для алгоритма кратчайшего пути Дейкстры | Жадный Алго-7
- Java-программа для алгоритма кратчайшего пути Дейкстры | Жадный Алго-7
- Алгоритм кратчайшего пути Дейкстры | Жадный Алго-7
- Алгоритм кратчайшего пути Дейкстры с использованием набора в STL
- Алгоритм кратчайшего пути Дейкстры, использующий приоритетную очередь STL
- Алгоритм кратчайшего пути Дейкстры в Java с использованием PriorityQueue
- Печать путей в алгоритме кратчайшего пути Дейкстры
- Кратчайший путь от источника к месту назначения, так что веса ребер вдоль пути альтернативно увеличиваются или уменьшаются
- Java-программа для алгоритма Дейкстры с печатью путей
- Некоторые интересные вопросы кратчайшего пути | Комплект 1
- Алгоритм Дейкстры для представления списка смежности | Жадный Алго-8
- Кратчайший путь Дейкстры с минимальными ребрами
- Кратчайший путь из нескольких источников в невзвешенном графике
- C # Программа для выбора задачи деятельности | Жадный Алго-1
0.00 (0%) 0 votes