Аноним

Алгоритм поиска кратчайших путей с единственным источником: различия между версиями

Материал из WEGA
м
(Новая страница: «== Ключевые слова и синонимы == Кратчайший путь; самый быстрый путь == Постановка задачи == …»)
 
Строка 3: Строка 3:


== Постановка задачи ==
== Постановка задачи ==
Задача поиска кратчайших путей с единственным источником (single source shortest path problem, SSSP) выглядит следующим образом. Пусть имеется граф G = (V, E, I) и вершина-источник s 2 V. Требуется найти кратчайший путь из вершины s в каждую вершину v 2 V. Сложность задачи зависит от того, является ли граф ориентированным или нет, а также от предположений о функции длины I. В самом общем случае I: E ! R присваивает ребрам произвольные (положительные и отрицательные) вещественные длины. В этой ситуации можно применить алгоритмы Беллмана-Форда и Эдмондса [1, 4], время выполнения которых составит примерно O(mn)1, где m = |E| и n = |V| – количества ребер и вершин. Если функция I присваивает ребрам только неотрицательные вещественные длины, то можно применить алгоритмы Дейкстры и Петти-Рамачандрана [4, 14] к ориентированным и неориентированным графам, соответственно. Эти алгоритмы имеют узкое место в виде сортировки и в наихудшем случае требуют Q(m + nlog n) времени2.
Задача поиска кратчайших путей с единственным источником (single source shortest path problem, SSSP) выглядит следующим образом. Пусть имеется граф <math>G = (V, E, \ell) \;</math> и вершина-источник <math>s \in V \;</math>. Требуется найти кратчайший путь из вершины s в каждую вершину <math>v \in V \;</math>. Сложность задачи зависит от того, является ли граф ориентированным или нет, а также от предположений о функции длины <math>\ell \;</math>. В самом общем случае <math>\ell: E \to \mathbb{R} \;</math> присваивает ребрам произвольные (положительные и отрицательные) вещественные длины. В этой ситуации можно применить алгоритмы [[Алгоритм Форда|Беллмана-Форда]] и Эдмондса [1, 4], время выполнения которых составит примерно O(mn)1, где m = |E| и n = |V| – количества ребер и вершин. Если функция <math>\ell \;</math> присваивает ребрам только ''неотрицательные'' вещественные длины, то можно применить алгоритмы [[Алгоритм Дейкстры|Дейкстры]] и Петти-Рамачандрана [4, 14] к ориентированным и неориентированным графам, соответственно. Эти алгоритмы имеют узкое место в виде сортировки и в наихудшем случае требуют Q(m + nlog n) времени2.


1 Алгоритм Эдмондса работает на неориентированных графах и предполагает, что в них не имеется простых циклов отрицательной длины.
1 Алгоритм Эдмондса работает на неориентированных графах и предполагает, что в них не имеется простых циклов отрицательной длины.
4446

правок