Алгоритм Каргера

В информатике и графов теории алгоритм Каргера представляет собой рандомизированный алгоритм вычисления минимального разреза связного графа . Он был изобретен Дэвидом Каргером и впервые опубликован в 1993 году. [ 1 ]
Идея алгоритма основана на концепции стягивания ребра. в неориентированном графе . Неформально говоря, сжатие ребра объединяет узлы. и в один, уменьшая общее количество узлов графа на один. Все остальные ребра, соединяющие либо или «снова прикрепляются» к объединенному узлу, фактически создавая мультиграф . Базовый алгоритм Каргера итеративно сжимает случайно выбранные ребра до тех пор, пока не останется только два узла; эти узлы представляют собой разрез исходного графа. Повторив этот базовый алгоритм достаточное количество раз, можно с высокой вероятностью найти минимальный разрез .
Глобальная проблема минимального разреза
[ редактировать ]разрез в неориентированном графе является разбиением вершин на два непустых непересекающихся множества . Срез разреза состоит из кромок между двумя частями. Размер вес или ( ) разреза в невзвешенном графе — это мощность набора разрезов, т. е. количество ребер между двумя частями.
Есть способы выбора для каждой вершины, принадлежит ли она или чтобы , но два из этих вариантов делают или пусты и не дают повода для сокращений. Среди оставшихся вариантов поменяться ролями и не меняет разрез, поэтому каждый разрез засчитывается дважды; следовательно, существуют отчетливые разрезы. Задача минимального разреза состоит в том, чтобы найти среди этих разрезов разрез наименьшего размера.
Для взвешенных графов с положительными весами ребер вес разреза — это сумма весов ребер между вершинами в каждой части
что согласуется с невзвешенным определением .
Разрез иногда называют «глобальным разрезом», чтобы отличить его от «глобального разреза». - Cut» для данной пары вершин, что имеет дополнительное требование, что и . Каждый глобальный разрез — это - вырезать для некоторых . Таким образом, задача минимального разреза может быть решена за полиномиальное время путем перебора всех вариантов выбора. и решаем полученный минимум - Задача сокращения с использованием теоремы о максимальном потоке и минимальном сокращении и алгоритма с полиномиальным временем для максимального потока , такого как алгоритм push-relabel , хотя этот подход не является оптимальным. Лучшие детерминированные алгоритмы для глобальной задачи минимального разреза включают алгоритм Штера – Вагнера , время работы которого составляет . [ 2 ]
Алгоритм сокращения
[ редактировать ]Фундаментальная операция алгоритма Каргера — это форма сжатия ребер . Результат сужения края это новый узел . Каждый край или для до концов сжатого ребра заменяется ребром на новый узел. Наконец, суженные узлы и при этом все их инцидентные ребра удалены. В частности, полученный граф не содержит петель. Результат сужения края обозначается .
Алгоритм сжатия неоднократно сжимает случайные ребра в графе, пока не останется только два узла, после чего останется только один разрез.
Ключевая идея алгоритма заключается в том, что края с неминимальными вырезами гораздо чаще, чем ребра с минимальными вырезами, выбираются случайным образом и теряются из-за сжатия, поскольку количество ребер с минимальными вырезами обычно значительно превосходит число кромок с неминимальными вырезами. Следовательно, вполне вероятно, что края минимального разреза выдержат все сокращения кромок, и алгоритм правильно определит край минимального разреза.

procedure contract(): while choose uniformly at random return the only cut in
Когда граф представлен с использованием списков смежности или матрицы смежности , операция сжатия одного ребра может быть реализована с линейным числом обновлений структуры данных, общее время выполнения равно . В качестве альтернативы процедуру можно рассматривать как выполнение алгоритма Краскала для построения минимального остовного дерева в графе, ребра которого имеют веса. по случайной перестановке . Удаление самого тяжелого ребра этого дерева приводит к образованию двух компонентов, описывающих разрез. Таким образом, процедура сокращения может быть реализована как алгоритм Краскала во времени. .

Наиболее известные реализации используют время и пространство или время и пространство соответственно. [ 1 ]
Вероятность успеха алгоритма сокращения
[ редактировать ]На графике с вершин алгоритм сжатия возвращает минимальный разрез с полиномиально малой вероятностью . Напомним, что каждый граф имеет сокращений (судя по обсуждению в предыдущем разделе), среди которых не более могут быть минимальные разрезы. Следовательно, вероятность успеха этого алгоритма намного выше, чем вероятность случайного выбора разреза, которая не превышает .
Например, график цикла на вершин имеет ровно минимальные разрезы, полученные при каждом выборе двух ребер. Процедура сжатия находит каждый из них с равной вероятностью.
Чтобы дополнительно установить нижнюю границу вероятности успеха, пусть обозначают края определенного минимального разреза размера . Алгоритм сокращения возвращает если ни одно из случайных ребер, удаленных алгоритмом, не принадлежит разрезу . В частности, первое сжатие края позволяет избежать , что происходит с вероятностью . Минимальная степень по крайней мере (в противном случае вершина минимальной степени приведет к меньшему разрезу, где один из двух разделов содержит только вершину минимальной степени), поэтому . Таким образом, вероятность того, что алгоритм сжатия выберет ребро из является
Вероятность что алгоритм сжатия на -граф вершин избегает удовлетворяет повторяемости , с , который можно расширить как
Повторение алгоритма сокращения
[ редактировать ]
Повторяя алгоритм сокращения раз с независимым случайным выбором и возвращением наименьшего разреза, вероятность не найти минимальный разрез равна
Общее время работы за повторения для графика с вершины и края это .
Алгоритм Каргера – Штейна
[ редактировать ]Расширение алгоритма Каргера, предложенное Дэвидом Каргером и Клиффордом Стайном , обеспечивает улучшение на порядок. [ 3 ]
Основная идея состоит в том, чтобы выполнять процедуру сокращения до тех пор, пока график не достигнет вершины.
procedure contract(, ): while choose uniformly at random return
Вероятность что эта процедура сокращения позволяет избежать определенного разреза в -вершинный граф
Это выражение примерно и становится меньше вокруг . В частности, вероятность того, что ребро из сокращается, растет к концу. Это мотивирует идею перехода на более медленный алгоритм после определенного количества шагов сокращения.
procedure fastmincut(): if : return contract(, ) else: contract(, ) contract(, ) return min{fastmincut(), fastmincut()}
Анализ
[ редактировать ]Параметр сокращения выбирается так, чтобы каждый вызов контракта имел вероятность не менее 1/2 успеха (то есть избежать сжатия ребра из определенного набора разрезов). ). Это позволяет моделировать успешную часть рекурсивного дерева как случайное двоичное дерево, созданное критическим процессом Гальтона-Ватсона , и соответствующим образом анализировать. [ 3 ]
Вероятность что это случайное дерево успешных вызовов содержит достаточно длинный путь, чтобы добраться до базы рекурсии и найти задается рекуррентным соотношением
с решением . Время работы fastmincut удовлетворяет
с решением . Для достижения вероятности ошибки , алгоритм можно повторить раз, общее время работы . Это на порядок улучшение по сравнению с оригинальным алгоритмом Каргера. [ 3 ]
Граница улучшения
[ редактировать ]Чтобы определить минимальный разрез, нужно коснуться каждого ребра графа хотя бы один раз, что составляет время в плотном графике . Алгоритм минимального сокращения Каргера – Штейна требует времени работы , что очень близко к этому.
Ссылки
[ редактировать ]- ^ Jump up to: а б Каргер, Дэвид (1993). «Глобальные минимальные сокращения в RNC и другие разветвления простого алгоритма Mincut» . Учеб. 4-й ежегодный симпозиум ACM-SIAM по дискретным алгоритмам .
- ^ Стоер, М.; Вагнер, Ф. (1997). «Простой алгоритм минимального сокращения» . Журнал АКМ . 44 (4): 585. дои : 10.1145/263867.263872 . S2CID 15220291 .
- ^ Jump up to: а б с Каргер, Дэвид Р .; Штейн, Клиффорд (1996). «Новый подход к проблеме минимального разреза» (PDF) . Журнал АКМ . 43 (4): 601. дои : 10.1145/234533.234534 . S2CID 5385337 .