Алгоритм Тарьяна поиска компонент двусвязности: различия между версиями
Перейти к навигации
Перейти к поиску
| [непроверенная версия] | [непроверенная версия] |
Daryin (обсуждение | вклад) |
Daryin (обсуждение | вклад) |
||
| Строка 30: | Строка 30: | ||
* C++: [http://www.boost.org/libs/graph/doc/ Boost Graph Library] (функция <code>[http://www.boost.org/libs/graph/doc/biconnected_components.html biconnected_components]</code>). | * C++: [http://www.boost.org/libs/graph/doc/ Boost Graph Library] (функция <code>[http://www.boost.org/libs/graph/doc/biconnected_components.html biconnected_components]</code>). | ||
* Python: [https://networkx.github.io NetworkX] (функция <code>[http://networkx.github.io/documentation/networkx-1.9.1/reference/generated/networkx.algorithms.components.biconnected.biconnected_components.html biconnected_components]</code>). | * Python: [https://networkx.github.io NetworkX] (функция <code>[http://networkx.github.io/documentation/networkx-1.9.1/reference/generated/networkx.algorithms.components.biconnected.biconnected_components.html biconnected_components]</code>). | ||
* Java: [http://jgrapht.org JGraphT] (класс <code>[http://jgrapht.org/javadoc/org/jgrapht/alg/BiconnectivityInspector.html BiconnectivityInspector]</code>). | |||
== Литература == | == Литература == | ||
<references /> | <references /> | ||
Версия от 19:37, 11 июня 2015
Свойства и структура алгоритмов
Общее описание алгоритма
Алгоритм Тарьяна[1] находит компоненты двусвязности и шарниры неориентированного графа в процессе поиска в глубину за время [math]\displaystyle{ O(m) }[/math].
Математическое описание
Вычислительное ядро алгоритма
Макроструктура алгоритма
Описание схемы реализации последовательного алгоритма
Последовательная сложность алгоритма
Последовательная сложность алгоритма Тарьяна составляет [math]\displaystyle{ O(m) }[/math], так как в процессе поиска в ширину выполняется ограниченное количество операций для каждой вершины и каждого ребра.
Информационный граф
Описание ресурса параллелизма алгоритма
Возможности параллелизации алгоритма Тарьяна сильно ограничены, поскольку он основан на поиске в глубину. Параллельный алгоритмом Тарьяна-Вишкина[2] основан на тех же свойствах графа и может использовать любое остовное дерево.
Описание входных и выходных данных
Свойства алгоритма
Программная реализация алгоритмов
Особенности реализации последовательного алгоритма
Описание локальности данных и вычислений
Возможные способы и особенности реализации параллельного алгоритма
Масштабируемость алгоритма и его реализации
Динамические характеристики и эффективность реализации алгоритма
Выводы для классов архитектур
Существующие реализации алгоритма
- C++: Boost Graph Library (функция
biconnected_components). - Python: NetworkX (функция
biconnected_components). - Java: JGraphT (класс
BiconnectivityInspector).