Деревья Гомори-Ху: различия между версиями
Irina (обсуждение | вклад) |
KVN (обсуждение | вклад) |
||
(не показано 7 промежуточных версий 1 участника) | |||
Строка 27: | Строка 27: | ||
Все предыдущие алгоритмы построения деревьев Гомори-Ху в неориентированных графах использовали подпрограммы нахождения максимального потока. Гомори и Ху показали, как вычислить динамическое дерево T при помощи n – 1 операций вычисления максимального потока и операций сжатия графа. Гусфилд [8] предложил алгоритм, не использующий операций сжатия графа; все n – 1 операций вычисления максимального потока выполняются на исходном графе. Голдберг и Цюцюликлис [6] выполнили экспериментальное исследование алгоритмов, предложенных Гомори и Ху, а также Гусфилдом, для решения задачи поддержания динамического дерева, и описали эффективные реализации этих алгоритмов. Бенцур [1] привел примеры, демонстрирующие, что динамические деревья с отрезанием не существуют для ориентированных графов. | Все предыдущие алгоритмы построения деревьев Гомори-Ху в неориентированных графах использовали подпрограммы нахождения максимального потока. Гомори и Ху показали, как вычислить динамическое дерево T при помощи n – 1 операций вычисления максимального потока и операций сжатия графа. Гусфилд [8] предложил алгоритм, не использующий операций сжатия графа; все n – 1 операций вычисления максимального потока выполняются на исходном графе. Голдберг и Цюцюликлис [6] выполнили экспериментальное исследование алгоритмов, предложенных Гомори и Ху, а также Гусфилдом, для решения задачи поддержания динамического дерева, и описали эффективные реализации этих алгоритмов. Бенцур [1] привел примеры, демонстрирующие, что динамические деревья с отрезанием не существуют для ориентированных графов. | ||
Любой подход к построению дерева Гомори-Ху, основанный на нахождении максимального потока, будет | Любой подход к построению дерева Гомори-Ху, основанный на нахождении максимального потока, будет выполняться за время, в (n – 1) раз большее времени единичного вычисления максимального потока. До сих пор все более быстрые алгоритмы построения деревьев Гомори-Ху были побочными продуктами более быстрых алгоритмов нахождения максимального потока. Самый быстрый на данный момент алгоритм нахождения максимального потока с временем <math>\tilde{O} (m + n \lambda (s, t))</math> (полилогарифмические сомножители n в <math>\tilde{O}</math>-нотации игнорируются), авторами которого были Каргер и Левайн [10], дает наилучшее ожидаемое время выполнения для алгоритма построения дерева Гомори-Ху на простых невзвешенных графах с n вершинами, равное <math>\tilde{O} (n^3) \; </math>. Балгат и коллеги [2] улучшили эту временную сложность до <math>\tilde{O} (mn) \; </math>. Заметим, что оба вышеупомянутых алгоритма являются рандомизированными алгоритмами Лас-Вегаса. Самый быстрый детерминированный алгоритм для задачи построения дерева Гомори-Ху является побочным продуктом алгоритма нахождения максимального потока Голдберга-Рао [5] и имеет время выполнения <math>\tilde{O} (nm^{1/2} min(m, n^{3/2}))</math>. | ||
== Основные результаты == | == Основные результаты == | ||
Строка 38: | Строка 38: | ||
Вместо подпрограмм нахождения максимального потока они использовали алгоритм связности по Штейнеру. Связность по Штейнеру множества вершин S (называемого [[множество Штейнера|множеством Штейнера]]) в неориентированном графе представляет собой минимальный размер разреза, разделяющего S на две части; такой разрез называется минимальным разрезом Штейнера. Обобщая алгоритм упаковки дерева, предложенный Габовым [4], для целей нахождения реберной связности графа, Коул и Харинаран [3] предложили алгоритм нахождения связности k по Штейнеру для множества вершин в неориентированных или ориентированных невзвешенных Эйлеровых графах за время <math>\tilde{O} (mk^2) \; </math>. ( | Вместо подпрограмм нахождения максимального потока они использовали алгоритм связности по Штейнеру. Связность по Штейнеру множества вершин S (называемого [[множество Штейнера|множеством Штейнера]]) в неориентированном графе представляет собой минимальный размер разреза, разделяющего S на две части; такой разрез называется минимальным разрезом Штейнера. Обобщая алгоритм упаковки дерева, предложенный Габовым в [4], для целей нахождения реберной связности графа, Коул и Харинаран [3] предложили алгоритм нахождения связности k по Штейнеру для множества вершин в неориентированных или ориентированных невзвешенных Эйлеровых графах за время <math>\tilde{O} (mk^2) \; </math>. (На неориентированных графах алгоритм работает несколько быстрее – за время <math>\tilde{O}(m + nk^3) \; </math>.) Балгат и коллеги улучшили этот результат, предложив следующую теорему. | ||
Строка 44: | Строка 44: | ||
Харихаран и коллеги [9] использовали алгоритм из [3] для разработки алгоритма с ожидаемым временем | Харихаран и коллеги [9] использовали алгоритм из [3] для разработки алгоритма с ожидаемым временем выполнения <math>\tilde{O}(m + nk^3) \; </math> для вычисления частичного дерева Гомори-Ху для представления значений <math>\lambda (s, t) \;</math> для всех пар вершин s и t, удовлетворяющих условию <math>\lambda (s, t) \le k \;</math>. Замена алгоритма из [3] новым алгоритмом вычисления связности по Штейнеру позволяет получить частичное дерево Гомори-Ху за ожидаемое время <math>\tilde{O}(m + nk^2) \; </math>. Балгат и коллеги показали, что при помощи более детального анализа этот результат можно улучшить, предложив следующую теорему. | ||
Теорема 3. Частичное дерево Гомори-Ху для невзвешенного неориентированного графа для представления всех значений <math>\lambda (s, t) \;</math>, не превышающих k, может быть построено за ожидаемое время <math>\tilde{O} (mk)</math>. | '''Теорема 3. Частичное дерево Гомори-Ху для невзвешенного неориентированного графа для представления всех значений <math>\lambda (s, t) \;</math>, не превышающих k, может быть построено за ожидаемое время <math>\tilde{O} (mk)</math>.''' | ||
Строка 57: | Строка 57: | ||
== Открытые вопросы == | == Открытые вопросы == | ||
Задача дерандомизации алгоритма, предложенного Балгатом и коллегами [2], с целью создания детерминированного алгоритма построения дерева Гомори-Ху на невзвешенных неориентированных графах с временем | Задача дерандомизации алгоритма, предложенного Балгатом и коллегами [2], с целью создания детерминированного алгоритма построения дерева Гомори-Ху на невзвешенных неориентированных графах с временем выполнения <math>\tilde{O} (mn) \; </math> остается открытой. Еще одна нерешенная задача – расширение результатов работы [2] на взвешенные графы. | ||
== Экспериментальные результаты == | == Экспериментальные результаты == | ||
Голдберг и Цюцюликлис [6] выполнили широкомасштабное экспериментальное исследование алгоритмов, предложенных Гомори и Ху, а также Гусфилдом, для решения задачи поддержания динамического дерева. Они | Голдберг и Цюцюликлис [6] выполнили широкомасштабное экспериментальное исследование алгоритмов, предложенных Гомори и Ху, а также Гусфилдом, для решения задачи поддержания динамического дерева. Они продемонстрировали варианты эффективной реализации этих алгоритмов, а также предложили и оценили эвристики для ускорения их выполнения. Согласно их наблюдениям, алгоритм Гусфилда во многих ситуациях работает быстрее, зато алгоритм Гомори и Ху более надежен. Более детальное описание результатов экспериментов можно найти в [6]. | ||
Для алгоритма, предложенного Балгатом и коллегами [2], экспериментальных результатов пока не получено. [2]. | Для алгоритма, предложенного Балгатом и коллегами [2], экспериментальных результатов пока не получено. [2]. | ||
== См. также == | == См. также == | ||
Строка 87: | Строка 86: | ||
10. Karger, D., Levine, M.: Random Sampling in Residual Graphs. In: Proc. of the 34th Annual ACM Symposium on Theory of Computing 2002, pp. 63-66 | 10. Karger, D., Levine, M.: Random Sampling in Residual Graphs. In: Proc. of the 34th Annual ACM Symposium on Theory of Computing 2002, pp. 63-66 | ||
[[Категория: Совместное определение связанных терминов]] |
Текущая версия от 10:38, 7 декабря 2024
Ключевые слова и синонимы
Динамические деревья (с отрезанием)
Постановка задачи
Пусть G = (V, E) – неориентированный граф, в котором |V| = n и |E| = m. Реберная связность двух вершин [math]\displaystyle{ s, t \in V \; }[/math] , обозначаемая как [math]\displaystyle{ \lambda (s, t) \; }[/math] , равняется размеру наименьшего разреза, который разделяет s и t; такой разрез называется минимальным s-t-разрезом. Очевидно, что значения [math]\displaystyle{ \lambda (s, t) \; }[/math] для всех пар вершин s и t можно представить в таблице размера [math]\displaystyle{ O(n^2) \; }[/math]. Однако из соображений эффективности лучше выбрать более сжатое представление всех значений [math]\displaystyle{ \lambda (s, t) \; }[/math]. Деревья Гомори-Ху, также известные как динамические деревья, представляют собой такое сжатое представление линейного (то есть O(n)) объема и с константным (то есть O(1)) временем просмотра. Они имеют еще одно преимущество: помимо представления всех значений [math]\displaystyle{ \lambda (s, t) \; }[/math], они также содержат структурную информацию, на основании которой для любой пары вершин s и t легко может быть получен минимальный s-t-разрез.
Неориентированный граф (слева) и соответствующее дерево Гомори-Ху (справа):
Формально дерево Гомори-Ху T = (V, F) для неориентированного графа G = (V, E) представляет собой взвешенное неориентированное дерево, определенное на вершинах графа, для которого выполняются следующие свойства:
• Для любой пары вершин [math]\displaystyle{ s, t \in V \; }[/math] , [math]\displaystyle{ \lambda (s, t) \; }[/math] равно минимальному весу ребра уникального пути, соединяющего s и t в T. Обозначим это ребро как e(s, t). Если на пути из s к t в T имеется несколько ребер с минимальным весом, любое из этих ребер обозначается как e(s, t).
• Для любой пары вершин s и t биразбиение вершин на компоненты, получаемые в результате удаления e(s, t) (при наличии нескольких кандидатов на e(s, t) это свойство выполняется для каждого из этих ребер) из T соответствует минимальному s-t-разрезу исходного графа G.
Для более полного понимания определения рассмотрим следующий пример: на иллюстрации представлены неориентированный граф и соответствующее дерево Гомори-Ху. Возьмем пару вершин, например, вершины 3 и 5. Очевидно, что ребро (6, 5) с весом 3 является ребром минимального веса на пути между вершинами 3 и 5 в дереве Гомори-Ху. Легко заметить, что в исходном графе [math]\displaystyle{ \lambda (s, t) = 3 \; }[/math]. Удаление этого ребра дает в результате биразбиение вершин ({1, 2, 3, 6}, {4, 5}), являющееся разрезом исходного графа размера 3.
Неочевидно, что подобные деревья Гомори-Ху существуют для всех неориентированных графов. Однако в своей классической работе 1961 года Гомори и Ху показали [7], что такие деревья не просто существуют для всех неориентированных графов, но и могут быть вычислены с использованием n – 1 операций вычисления минимальных s-t-разрезов (которые эквивалентны вычислениям максимального потока, согласно знаменитой теореме Менгера). Фактически граф может иметь несколько деревьев Гомори-Ху.
Все предыдущие алгоритмы построения деревьев Гомори-Ху в неориентированных графах использовали подпрограммы нахождения максимального потока. Гомори и Ху показали, как вычислить динамическое дерево T при помощи n – 1 операций вычисления максимального потока и операций сжатия графа. Гусфилд [8] предложил алгоритм, не использующий операций сжатия графа; все n – 1 операций вычисления максимального потока выполняются на исходном графе. Голдберг и Цюцюликлис [6] выполнили экспериментальное исследование алгоритмов, предложенных Гомори и Ху, а также Гусфилдом, для решения задачи поддержания динамического дерева, и описали эффективные реализации этих алгоритмов. Бенцур [1] привел примеры, демонстрирующие, что динамические деревья с отрезанием не существуют для ориентированных графов.
Любой подход к построению дерева Гомори-Ху, основанный на нахождении максимального потока, будет выполняться за время, в (n – 1) раз большее времени единичного вычисления максимального потока. До сих пор все более быстрые алгоритмы построения деревьев Гомори-Ху были побочными продуктами более быстрых алгоритмов нахождения максимального потока. Самый быстрый на данный момент алгоритм нахождения максимального потока с временем [math]\displaystyle{ \tilde{O} (m + n \lambda (s, t)) }[/math] (полилогарифмические сомножители n в [math]\displaystyle{ \tilde{O} }[/math]-нотации игнорируются), авторами которого были Каргер и Левайн [10], дает наилучшее ожидаемое время выполнения для алгоритма построения дерева Гомори-Ху на простых невзвешенных графах с n вершинами, равное [math]\displaystyle{ \tilde{O} (n^3) \; }[/math]. Балгат и коллеги [2] улучшили эту временную сложность до [math]\displaystyle{ \tilde{O} (mn) \; }[/math]. Заметим, что оба вышеупомянутых алгоритма являются рандомизированными алгоритмами Лас-Вегаса. Самый быстрый детерминированный алгоритм для задачи построения дерева Гомори-Ху является побочным продуктом алгоритма нахождения максимального потока Голдберга-Рао [5] и имеет время выполнения [math]\displaystyle{ \tilde{O} (nm^{1/2} min(m, n^{3/2})) }[/math].
Основные результаты
Балгат и коллеги [2] рассматривали задачу создания эффективного алгоритма построения дерева Гомори-Ху на невзвешенных неориентированных графах. Центральное место в их работе занимает теорема 1.
Теорема 1. Пусть G = (V, E) – простой невзвешенный граф, имеющий m ребер и n вершин. Тогда дерево Гомори=Ху для графа G можно построить за ожидаемое время [math]\displaystyle{ \tilde{O} (mn) }[/math]
Скорость их алгоритма всегда на коэффициент [math]\displaystyle{ \tilde{\Omega} (n^{2/9}) \; }[/math] (полилогарифмические сомножители n в [math]\displaystyle{ \tilde{\Omega} }[/math]-нотации игнорируются) выше, чем у предыдущей самой быстрой версии алгоритма.
Вместо подпрограмм нахождения максимального потока они использовали алгоритм связности по Штейнеру. Связность по Штейнеру множества вершин S (называемого множеством Штейнера) в неориентированном графе представляет собой минимальный размер разреза, разделяющего S на две части; такой разрез называется минимальным разрезом Штейнера. Обобщая алгоритм упаковки дерева, предложенный Габовым в [4], для целей нахождения реберной связности графа, Коул и Харинаран [3] предложили алгоритм нахождения связности k по Штейнеру для множества вершин в неориентированных или ориентированных невзвешенных Эйлеровых графах за время [math]\displaystyle{ \tilde{O} (mk^2) \; }[/math]. (На неориентированных графах алгоритм работает несколько быстрее – за время [math]\displaystyle{ \tilde{O}(m + nk^3) \; }[/math].) Балгат и коллеги улучшили этот результат, предложив следующую теорему.
Теорема 2. В неориентированном или ориентированном невзвешенном Эйлеровом графе связность k по Штейнеру для множества вершин может быть определена за время [math]\displaystyle{ \tilde{O} (mk) \; }[/math].
Харихаран и коллеги [9] использовали алгоритм из [3] для разработки алгоритма с ожидаемым временем выполнения [math]\displaystyle{ \tilde{O}(m + nk^3) \; }[/math] для вычисления частичного дерева Гомори-Ху для представления значений [math]\displaystyle{ \lambda (s, t) \; }[/math] для всех пар вершин s и t, удовлетворяющих условию [math]\displaystyle{ \lambda (s, t) \le k \; }[/math]. Замена алгоритма из [3] новым алгоритмом вычисления связности по Штейнеру позволяет получить частичное дерево Гомори-Ху за ожидаемое время [math]\displaystyle{ \tilde{O}(m + nk^2) \; }[/math]. Балгат и коллеги показали, что при помощи более детального анализа этот результат можно улучшить, предложив следующую теорему.
Теорема 3. Частичное дерево Гомори-Ху для невзвешенного неориентированного графа для представления всех значений [math]\displaystyle{ \lambda (s, t) \; }[/math], не превышающих k, может быть построено за ожидаемое время [math]\displaystyle{ \tilde{O} (mk) }[/math].
Поскольку [math]\displaystyle{ \lambda (s, t) \lt n \; }[/math] для всех пар вершин s и t в невзвешенном простом графе, из объявления k равным n в теореме 3 следует справедливость теоремы 1.
Применение
Деревья Гомори-Ху имеют широкое применение в обработке многотерминальных сетевых потоков и в качестве одной из важных структур данных в литературе о связности графов.
Открытые вопросы
Задача дерандомизации алгоритма, предложенного Балгатом и коллегами [2], с целью создания детерминированного алгоритма построения дерева Гомори-Ху на невзвешенных неориентированных графах с временем выполнения [math]\displaystyle{ \tilde{O} (mn) \; }[/math] остается открытой. Еще одна нерешенная задача – расширение результатов работы [2] на взвешенные графы.
Экспериментальные результаты
Голдберг и Цюцюликлис [6] выполнили широкомасштабное экспериментальное исследование алгоритмов, предложенных Гомори и Ху, а также Гусфилдом, для решения задачи поддержания динамического дерева. Они продемонстрировали варианты эффективной реализации этих алгоритмов, а также предложили и оценили эвристики для ускорения их выполнения. Согласно их наблюдениям, алгоритм Гусфилда во многих ситуациях работает быстрее, зато алгоритм Гомори и Ху более надежен. Более детальное описание результатов экспериментов можно найти в [6]. Для алгоритма, предложенного Балгатом и коллегами [2], экспериментальных результатов пока не получено. [2].
См. также
Литература
1. Benczur, A.A.: Counterexamples for Directed and Node Capacitated Cut-Trees. SIAM J. Comput. 24(3), 505-510 (1995)
2. Bhalgat, A., Hariharan, R., Kavitha, T., Panigrahi, D.: An 6(mn) Gomory-Hu tree construction algorithm for unweighted graphs. In: Proc. of the 39th Annual ACM Symposium on Theory of Computing, San Diego 2007
3. Cole, R., Hariharan, R.: A Fast Algorithm for Computing Steiner Edge Connectivity. In: Proc. of the 35th Annual ACM Symposium on Theory of Computing, San Diego 2003, pp. 167-176
4. Gabow, H.N.: A matroid approach to finding edge connectivity and packing arborescences. J. Comput. Syst. Sci. 50, 259-273 (1995)
5. Goldberg, A.V., Rao, S.: Beyond the Flow Decomposition Barrier. J. ACM 45(5), 783-797 (1998)
6. Goldberg, A.V., Tsioutsiouliklis, K.: Cut Tree Algorithms: An Experimental Study. J. Algorithms 38(1), 51-83 (2001)
7. Gomory, R.E., Hu, T.C.: Multi-terminal network flows. J. Soc. In-dust.Appl.Math. 9(4), 551-570(1961)
8. Gusfield, D.: Very Simple Methods for All Pairs Network Flow Analysis. SIAM J. Comput. 19(1), 143-155(1990)
9. Hariharan, R., Kavitha, T., Panigrahi, D.: Efficient Algorithms for Computing All Low s-t Edge Connectivities and Related Problems. In: Proc. of the 18th Annual ACM-SIAM Symposium on Discrete Algorithms, 2007, pp. 127-136
10. Karger, D., Levine, M.: Random Sampling in Residual Graphs. In: Proc. of the 34th Annual ACM Symposium on Theory of Computing 2002, pp. 63-66