Jump to content

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

Граф и два его разреза. Пунктирная линия красного цвета представляет собой разрез с тремя пересекающимися краями. Зеленая пунктирная линия представляет собой минимальный разрез этого графа, пересекающий только два ребра.

В информатике и графов теории алгоритм Каргера представляет собой рандомизированный алгоритм вычисления минимального разреза связного графа . Он был изобретен Дэвидом Каргером и впервые опубликован в 1993 году. [ 1 ]

Идея алгоритма основана на концепции стягивания ребра. в неориентированном графе . Неформально говоря, сжатие ребра объединяет узлы. и в один, уменьшая общее количество узлов графа на один. Все остальные ребра, соединяющие либо или «снова прикрепляются» к объединенному узлу, фактически создавая мультиграф . Базовый алгоритм Каргера итеративно сжимает случайно выбранные ребра до тех пор, пока не останется только два узла; эти узлы представляют собой разрез исходного графа. Повторив этот базовый алгоритм достаточное количество раз, можно с высокой вероятностью найти минимальный разрез .

Глобальная проблема минимального разреза

[ редактировать ]

разрез в неориентированном графе является разбиением вершин на два непустых непересекающихся множества . Срез разреза состоит из кромок между двумя частями. Размер вес или ( ) разреза в невзвешенном графе — это мощность набора разрезов, т. е. количество ребер между двумя частями.

Есть способы выбора для каждой вершины, принадлежит ли она или чтобы , но два из этих вариантов делают или пусты и не дают повода для сокращений. Среди оставшихся вариантов поменяться ролями и не меняет разрез, поэтому каждый разрез засчитывается дважды; следовательно, существуют отчетливые разрезы. Задача минимального разреза состоит в том, чтобы найти среди этих разрезов разрез наименьшего размера.

Для взвешенных графов с положительными весами ребер вес разреза — это сумма весов ребер между вершинами в каждой части

что согласуется с невзвешенным определением .

Разрез иногда называют «глобальным разрезом», чтобы отличить его от «глобального разреза». - Cut» для данной пары вершин, что имеет дополнительное требование, что и . Каждый глобальный разрез — это - вырезать для некоторых . Таким образом, задача минимального разреза может быть решена за полиномиальное время путем перебора всех вариантов выбора. и решаем полученный минимум - Задача сокращения с использованием теоремы о максимальном потоке и минимальном сокращении и алгоритма с полиномиальным временем для максимального потока , такого как алгоритм push-relabel , хотя этот подход не является оптимальным. Лучшие детерминированные алгоритмы для глобальной задачи минимального разреза включают алгоритм Штера – Вагнера , время работы которого составляет . [ 2 ]

Алгоритм сокращения

[ редактировать ]

Фундаментальная операция алгоритма Каргера — это форма сжатия ребер . Результат сужения края это новый узел . Каждый край или для до концов сжатого ребра заменяется ребром на новый узел. Наконец, суженные узлы и при этом все их инцидентные ребра удалены. В частности, полученный граф не содержит петель. Результат сужения края обозначается .

Отмеченное ребро сжимается в один узел.

Алгоритм сжатия неоднократно сжимает случайные ребра в графе, пока не останется только два узла, после чего останется только один разрез.

Ключевая идея алгоритма заключается в том, что края с неминимальными вырезами гораздо чаще, чем ребра с минимальными вырезами, выбираются случайным образом и теряются из-за сжатия, поскольку количество ребер с минимальными вырезами обычно значительно превосходит число кромок с неминимальными вырезами. Следовательно, вполне вероятно, что края минимального разреза выдержат все сокращения кромок, и алгоритм правильно определит край минимального разреза.

Успешный запуск алгоритма Каргера на графе с 10 вершинами. Минимальный крой имеет размер 3.
   procedure contract():
   while 
       choose  uniformly at random
       
   return the only cut in 

Когда граф представлен с использованием списков смежности или матрицы смежности , операция сжатия одного ребра может быть реализована с линейным числом обновлений структуры данных, общее время выполнения равно . В качестве альтернативы процедуру можно рассматривать как выполнение алгоритма Краскала для построения минимального остовного дерева в графе, ребра которого имеют веса. по случайной перестановке . Удаление самого тяжелого ребра этого дерева приводит к образованию двух компонентов, описывающих разрез. Таким образом, процедура сокращения может быть реализована как алгоритм Краскала во времени. .

Случайный выбор ребер в алгоритме Каргера соответствует выполнению алгоритма Краскала на графе со случайными рангами ребер до тех пор, пока не останется только два компонента.

Наиболее известные реализации используют время и пространство или время и пространство соответственно. [ 1 ]

Вероятность успеха алгоритма сокращения

[ редактировать ]

На графике с вершин алгоритм сжатия возвращает минимальный разрез с полиномиально малой вероятностью . Напомним, что каждый граф имеет сокращений (судя по обсуждению в предыдущем разделе), среди которых не более могут быть минимальные разрезы. Следовательно, вероятность успеха этого алгоритма намного выше, чем вероятность случайного выбора разреза, которая не превышает .

Например, график цикла на вершин имеет ровно минимальные разрезы, полученные при каждом выборе двух ребер. Процедура сжатия находит каждый из них с равной вероятностью.

Чтобы дополнительно установить нижнюю границу вероятности успеха, пусть обозначают края определенного минимального разреза размера . Алгоритм сокращения возвращает если ни одно из случайных ребер, удаленных алгоритмом, не принадлежит разрезу . В частности, первое сжатие края позволяет избежать , что происходит с вероятностью . Минимальная степень по крайней мере (в противном случае вершина минимальной степени приведет к меньшему разрезу, где один из двух разделов содержит только вершину минимальной степени), поэтому . Таким образом, вероятность того, что алгоритм сжатия выберет ребро из является

Вероятность что алгоритм сжатия на -граф вершин избегает удовлетворяет повторяемости , с , который можно расширить как

Повторение алгоритма сокращения

[ редактировать ]
10 повторений процедуры сокращения. При 5-м повторении будет найден минимальный разрез размера 3.

Повторяя алгоритм сокращения раз с независимым случайным выбором и возвращением наименьшего разреза, вероятность не найти минимальный разрез равна

Общее время работы за повторения для графика с вершины и края это .

Алгоритм Каргера – Штейна

[ редактировать ]

Расширение алгоритма Каргера, предложенное Дэвидом Каргером и Клиффордом Стайном , обеспечивает улучшение на порядок. [ 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 ]

Граница улучшения

[ редактировать ]

Чтобы определить минимальный разрез, нужно коснуться каждого ребра графа хотя бы один раз, что составляет время в плотном графике . Алгоритм минимального сокращения Каргера – Штейна требует времени работы , что очень близко к этому.

  1. ^ Jump up to: а б Каргер, Дэвид (1993). «Глобальные минимальные сокращения в RNC и другие разветвления простого алгоритма Mincut» . Учеб. 4-й ежегодный симпозиум ACM-SIAM по дискретным алгоритмам .
  2. ^ Стоер, М.; Вагнер, Ф. (1997). «Простой алгоритм минимального сокращения» . Журнал АКМ . 44 (4): 585. дои : 10.1145/263867.263872 . S2CID   15220291 .
  3. ^ Jump up to: а б с Каргер, Дэвид Р .; Штейн, Клиффорд (1996). «Новый подход к проблеме минимального разреза» (PDF) . Журнал АКМ . 43 (4): 601. дои : 10.1145/234533.234534 . S2CID   5385337 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 90bec5dd46109b422611dbaf777c91a0__1708057020
URL1:https://arc.ask3.ru/arc/aa/90/a0/90bec5dd46109b422611dbaf777c91a0.html
Заголовок, (Title) документа по адресу, URL1:
Karger's algorithm - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)