Благодаря теореме min-cut о максимальном потоке мы знаем, что мы можем использовать любой алгоритм для вычисления максимального потока в сетевом графе для вычисления -min-cut. Следовательно, сложность вычисления минимального -среза не больше, чем сложность вычисления максимального -потока.
Может ли быть меньше? Может ли быть алгоритм для вычисления минимального -среза, который быстрее любого алгоритма максимального потока?
Я пытался найти сокращение, чтобы свести проблему ) -max-flow к проблеме -min-cut, но я не смог ее найти. Моей первой мыслью было использование алгоритма «разделяй и властвуй»: сначала найдите минимальный разрез, который разделяет график на две части; Теперь рекурсивно найдите максимальный поток для левой части и максимальный поток для правой части и объедините их вместе со всеми ребрами, пересекающими разрез. Это действительно будет работать для создания максимального потока, но его время выполнения в худшем случае может быть в раз больше времени выполнения алгоритма min-cut. Есть ли лучшее сокращение?
Я понимаю, что теорема о минимальном сечении максимального потока показывает, что сложность вычисления значения максимального потока такая же, как сложность вычисления емкости минимального сечения, но я не об этом. Я спрашиваю о проблеме нахождения максимального потока и нахождения минимального среза (явно).
Это очень тесно связано с вычислением максимального потока из минимального сокращения , за исключением: (1) я хочу разрешить сокращения Кука (сокращения Тьюринга), а не только сокращения Карпа (многократные сокращения) и (2) возможно, учитывая мы можем найти некоторый граф такой, что минимальный срез облегчает вычисление максимального потока , что является чем-то, что выходит за рамки этого другого вопроса.
Ответы:
Вот возможный подход:
Предположим, что вы знаете срез S, а затем нахождение потока от до t является проблемой сетевого потока с минимальными затратами при нулевой стоимости, поскольку вы точно знаете отток в каждой вершине в V ∖ S и приток в t . Предположим, что f обозначает поток S - t, а A - матрицу узловой дуги (т. Е. Строка i , col j имеет 1, если i является хвостом j , -1, если ее голова, в противном случае ноль), и пусть b будет таким, что A f = b, если fS t V∖S t f S−t A i j i j b Af=b f удовлетворяет спрос / предложение и сохранение потока. Тогда с помощью исключения Гаусса мы можем найти допустимое решение в операции.|V|3
Чтобы найти срез из потока, нам нужно построить остаточный граф, который принимает максимум время, а затем потенциально пройти | V | Вершины.|E| |V|
Таким образом, для полных графиков и минимального среза, являющегося только источником или только стоком, сокращение занимает одинаковое время в обоих направлениях в худшем случае. Тем не менее, я думаю, что нахождение возможного решения может быть сделано быстрее, чем | V | 3 с учетом специальной структуры. Я не уверен, как доказать это, хотя.Af=b |V|3
источник