Алгоритм Тарьяна поиска компонент сильной связности: различия между версиями
Перейти к навигации
Перейти к поиску
| [досмотренная версия] | [досмотренная версия] |
ASA (обсуждение | вклад) Нет описания правки |
ASA (обсуждение | вклад) Нет описания правки |
||
| Строка 47: | Строка 47: | ||
[[Категория:Начатые статьи]] | [[Категория:Начатые статьи]] | ||
[[en:Tarjan's strongly connected components algorithm]] | |||
Версия от 13:56, 14 марта 2018
Свойства и структура алгоритма
Общее описание алгоритма
Алгоритм Тарьяна[1] находит компоненты сильной связности ориентированного графа в процессе поиска в глубину за время [math]\displaystyle{ O(m) }[/math].
Математическое описание алгоритма
Вычислительное ядро алгоритма
Макроструктура алгоритма
Схема реализации последовательного алгоритма
Последовательная сложность алгоритма
Последовательная сложностью алгоритма Тарьяна – [math]\displaystyle{ O(m) }[/math].
Информационный граф
Ресурс параллелизма алгоритма
Алгоритм основан на поиске в глубину и поэтому возможности его параллелизации сильно ограничены.
Входные и выходные данные алгоритма
Свойства алгоритма
Программная реализация алгоритма
Особенности реализации последовательного алгоритма
Локальность данных и вычислений
Локальность реализации алгоритма
Структура обращений в память и качественная оценка локальности
Количественная оценка локальности
Возможные способы и особенности параллельной реализации алгоритма
Масштабируемость алгоритма и его реализации
Масштабируемость алгоритма
Масштабируемость реализации алгоритма
Динамические характеристики и эффективность реализации алгоритма
Выводы для классов архитектур
Существующие реализации алгоритма
- C++: Boost Graph Library (функция
strong_components). - Java: WebGraph (класс
StronglyConnectedComponents). - Java: JGraphT (класс
StrongConnectivityInspector). - Python: NetworkX (функция
strongly_connected_components). - Python/C++: NetworKit (класс
networkit.properties.StronglyConnectedComponents).
Литература
- ↑ Tarjan, Robert. “Depth-First Search and Linear Graph Algorithms.” SIAM Journal on Computing 1, no. 2 (1972): 146–60.