Алгоритм Шилоаха-Вишкина поиска компонент связности: различия между версиями
Перейти к навигации
Перейти к поиску
[непроверенная версия] | [досмотренная версия] |
ASA (обсуждение | вклад) |
ASA (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 34: | Строка 34: | ||
== Программная реализация алгоритма == | == Программная реализация алгоритма == | ||
=== Особенности реализации последовательного алгоритма === | === Особенности реализации последовательного алгоритма === | ||
− | |||
− | |||
− | |||
− | |||
=== Возможные способы и особенности параллельной реализации алгоритма === | === Возможные способы и особенности параллельной реализации алгоритма === | ||
− | === | + | === Результаты прогонов === |
− | |||
− | |||
− | |||
=== Выводы для классов архитектур === | === Выводы для классов архитектур === | ||
− | |||
− | |||
== Литература == | == Литература == | ||
<references /> | <references /> | ||
[[Категория:Начатые статьи]] | [[Категория:Начатые статьи]] | ||
+ | |||
+ | [[en:Shiloach-Vishkin algorithm for finding the connected components]] |
Текущая версия на 14:49, 6 июля 2022
Алгоритм Шилоаха-Вишкина | |
Последовательный алгоритм | |
Последовательная сложность | [math]O((m + n) \ln n)[/math] |
Объём входных данных | [math]O(m)[/math] |
Объём выходных данных | [math]n[/math] |
Параллельный алгоритм | |
Высота ярусно-параллельной формы | [math]O(\ln n)[/math] |
Ширина ярусно-параллельной формы | [math]n + 2m[/math] |
Содержание
- 1 Свойства и структура алгоритма
- 1.1 Общее описание алгоритма
- 1.2 Математическое описание алгоритма
- 1.3 Вычислительное ядро алгоритма
- 1.4 Макроструктура алгоритма
- 1.5 Схема реализации последовательного алгоритма
- 1.6 Последовательная сложность алгоритма
- 1.7 Информационный граф
- 1.8 Ресурс параллелизма алгоритма
- 1.9 Входные и выходные данные алгоритма
- 1.10 Свойства алгоритма
- 2 Программная реализация алгоритма
- 3 Литература
1 Свойства и структура алгоритма
1.1 Общее описание алгоритма
Алгоритм Шилоаха-Вишкина[1] (англ. Shiloach-Vishking Algorithm) предназначен для поиска компонент связности неориентированного графа. Используется структура данных, аналогичная системе непресекающихся множеств. В модели CRCW PRAM алгоритм приписывает каждой вершине идентификатор компоненты связности за время [math]O(\ln n)[/math] на [math]n + 2m[/math] процессорах.
1.2 Математическое описание алгоритма
1.3 Вычислительное ядро алгоритма
1.4 Макроструктура алгоритма
1.5 Схема реализации последовательного алгоритма
Алгоритм изначально параллельный и при последовательной реализации фактически превращается в систему непресекающихся множеств.
1.6 Последовательная сложность алгоритма
Последовательная сложность алгоритма Шилоаха-Вишкина [math]O((m + n) \ln n)[/math].
1.7 Информационный граф
1.8 Ресурс параллелизма алгоритма
Время работы алгоритма составляет [math]O(\ln n)[/math] на [math]n + 2m[/math] процессорах в модели CRCW PRAM.
1.9 Входные и выходные данные алгоритма
1.10 Свойства алгоритма
2 Программная реализация алгоритма
2.1 Особенности реализации последовательного алгоритма
2.2 Возможные способы и особенности параллельной реализации алгоритма
2.3 Результаты прогонов
2.4 Выводы для классов архитектур
3 Литература
- ↑ Shiloach, Yossi, and Uzi Vishkin. “An [math]O(\log n)[/math] Parallel Connectivity Algorithm.” Journal of Algorithms 3, no. 1 (March 1982): 57–67. doi:10.1016/0196-6774(82)90008-6.