Уровень алгоритма

Определение вершинной связности графа: различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
[непроверенная версия][досмотренная версия]
Общее описание алгоритма
 
Нет описания правки
 
(не показаны 3 промежуточные версии этого же участника)
Строка 1: Строка 1:
== Свойства и структура алгоритмов ==
{{level-a}}
 
== Свойства и структура алгоритма ==


=== Общее описание алгоритма ===
=== Общее описание алгоритма ===
Строка 5: Строка 7:
'''Алгоритм Хенцингер-Рао-Габова'''<ref>Henzinger, Monika R, Satish Rao, and Harold N Gabow. “Computing Vertex Connectivity: New Bounds From Old Techniques.” Journal of Algorithms 34, no. 2 (February 2000): 222–50. doi:10.1006/jagm.1999.1055.</ref> предназначен для определения [[Связность в графах|вершинной связности]] графа. Время работы для ориентированного графа <math>O(\min \{ k^3 + n, kn \} m)</math>, где <math>k</math> – вершинная связность. Для неориентированного графа множитель <math>m</math> может быть заменён на <math>kn</math>. В основе алгоритма лежат идеи из более ранних работ<ref>Even, Shimon, and R Endre Tarjan. “Network Flow and Testing Graph Connectivity.” SIAM Journal on Computing 4, no. 4 (1975): 507–18. doi:10.1137/0204043.</ref><ref>Even, Shimon. “An Algorithm for Determining Whether the Connectivity of a Graph Is at Least K.” SIAM Journal on Computing 4, no. 3 (1975): 393–96.</ref><ref>Galil, Zvi. “Finding the Vertex Connectivity of Graphs.” SIAM Journal on Computing 9, no. 1 (February 1980): 197–99. doi:10.1137/0209016.</ref><ref>Hao, J X, and J B Orlin. “A Faster Algorithm for Finding the Minimum Cut in a Directed Graph.” Journal of Algorithms 17, no. 3 (November 1994): 424–46. doi:10.1006/jagm.1994.1043.</ref>: задача о поиске вершинной связности графа может быть сведена к последовательности задач [[Поиск максимального потока в нагруженном графе|на максимальный поток в нагруженном графе]].
'''Алгоритм Хенцингер-Рао-Габова'''<ref>Henzinger, Monika R, Satish Rao, and Harold N Gabow. “Computing Vertex Connectivity: New Bounds From Old Techniques.” Journal of Algorithms 34, no. 2 (February 2000): 222–50. doi:10.1006/jagm.1999.1055.</ref> предназначен для определения [[Связность в графах|вершинной связности]] графа. Время работы для ориентированного графа <math>O(\min \{ k^3 + n, kn \} m)</math>, где <math>k</math> – вершинная связность. Для неориентированного графа множитель <math>m</math> может быть заменён на <math>kn</math>. В основе алгоритма лежат идеи из более ранних работ<ref>Even, Shimon, and R Endre Tarjan. “Network Flow and Testing Graph Connectivity.” SIAM Journal on Computing 4, no. 4 (1975): 507–18. doi:10.1137/0204043.</ref><ref>Even, Shimon. “An Algorithm for Determining Whether the Connectivity of a Graph Is at Least K.” SIAM Journal on Computing 4, no. 3 (1975): 393–96.</ref><ref>Galil, Zvi. “Finding the Vertex Connectivity of Graphs.” SIAM Journal on Computing 9, no. 1 (February 1980): 197–99. doi:10.1137/0209016.</ref><ref>Hao, J X, and J B Orlin. “A Faster Algorithm for Finding the Minimum Cut in a Directed Graph.” Journal of Algorithms 17, no. 3 (November 1994): 424–46. doi:10.1006/jagm.1994.1043.</ref>: задача о поиске вершинной связности графа может быть сведена к последовательности задач [[Поиск максимального потока в нагруженном графе|на максимальный поток в нагруженном графе]].


=== Математическое описание ===
=== Математическое описание алгоритма ===
=== Вычислительное ядро алгоритма ===
=== Вычислительное ядро алгоритма ===
=== Макроструктура алгоритма ===
=== Макроструктура алгоритма ===
=== Описание схемы реализации последовательного алгоритма ===
=== Схема реализации последовательного алгоритма ===
=== Последовательная сложность алгоритма ===
=== Последовательная сложность алгоритма ===


Строка 14: Строка 16:


=== Информационный граф ===
=== Информационный граф ===
=== Описание ресурса параллелизма алгоритма ===
=== Ресурс параллелизма алгоритма ===
=== Описание входных и выходных данных ===
=== Входные и выходные данные алгоритма ===
=== Свойства алгоритма===
=== Свойства алгоритма ===
== Программная реализация алгоритмов ==
 
== Программная реализация алгоритма ==
=== Особенности реализации последовательного алгоритма ===
=== Особенности реализации последовательного алгоритма ===
=== Описание локальности данных и вычислений ===
=== Возможные способы и особенности параллельной реализации алгоритма ===
=== Возможные способы и особенности реализации параллельного алгоритма ===
=== Результаты прогонов ===
=== Масштабируемость алгоритма и его реализации ===
=== Динамические характеристики и эффективность реализации алгоритма ===
=== Выводы для классов архитектур ===
=== Выводы для классов архитектур ===
=== Существующие реализации алгоритма ===
 
== Литература ==
== Литература ==


<references />
<references />
[[Категория:Начатые статьи]]
[[en:Vertex connectivity of a graph]]

Текущая версия от 14:54, 6 июля 2022


Свойства и структура алгоритма

Общее описание алгоритма

Алгоритм Хенцингер-Рао-Габова[1] предназначен для определения вершинной связности графа. Время работы для ориентированного графа [math]\displaystyle{ O(\min \{ k^3 + n, kn \} m) }[/math], где [math]\displaystyle{ k }[/math] – вершинная связность. Для неориентированного графа множитель [math]\displaystyle{ m }[/math] может быть заменён на [math]\displaystyle{ kn }[/math]. В основе алгоритма лежат идеи из более ранних работ[2][3][4][5]: задача о поиске вершинной связности графа может быть сведена к последовательности задач на максимальный поток в нагруженном графе.

Математическое описание алгоритма

Вычислительное ядро алгоритма

Макроструктура алгоритма

Схема реализации последовательного алгоритма

Последовательная сложность алгоритма

Последовательная сложность алгоритма Хенцигер-Рао-Габова для ориентированного графа [math]\displaystyle{ O(\min \{ k^3 + n, kn \} m) }[/math], где [math]\displaystyle{ k }[/math] – вершинная связность. Для неориентированного графа множитель [math]\displaystyle{ m }[/math] может быть заменён на [math]\displaystyle{ kn }[/math].

Информационный граф

Ресурс параллелизма алгоритма

Входные и выходные данные алгоритма

Свойства алгоритма

Программная реализация алгоритма

Особенности реализации последовательного алгоритма

Возможные способы и особенности параллельной реализации алгоритма

Результаты прогонов

Выводы для классов архитектур

Литература

  1. ↑ Henzinger, Monika R, Satish Rao, and Harold N Gabow. “Computing Vertex Connectivity: New Bounds From Old Techniques.” Journal of Algorithms 34, no. 2 (February 2000): 222–50. doi:10.1006/jagm.1999.1055.
  2. ↑ Even, Shimon, and R Endre Tarjan. “Network Flow and Testing Graph Connectivity.” SIAM Journal on Computing 4, no. 4 (1975): 507–18. doi:10.1137/0204043.
  3. ↑ Even, Shimon. “An Algorithm for Determining Whether the Connectivity of a Graph Is at Least K.” SIAM Journal on Computing 4, no. 3 (1975): 393–96.
  4. ↑ Galil, Zvi. “Finding the Vertex Connectivity of Graphs.” SIAM Journal on Computing 9, no. 1 (February 1980): 197–99. doi:10.1137/0209016.
  5. ↑ Hao, J X, and J B Orlin. “A Faster Algorithm for Finding the Minimum Cut in a Directed Graph.” Journal of Algorithms 17, no. 3 (November 1994): 424–46. doi:10.1006/jagm.1994.1043.