Вычислить максимальный поток из минимального разреза

16

Мы знаем, что вычисление максимального потока соотв. минимальный срез сети с емкостями эквивалентен; ср теорема о максимальном потоке .

У нас есть (более или менее эффективные) алгоритмы для вычисления максимальных потоков, и вычисление минимального сокращения при максимальном потоке также не является ни сложным, ни дорогим.

Но как насчет обратного? Учитывая минимальное сокращение, как мы можем определить максимальный поток? Без решения Max-Flow с нуля, конечно, и желательно быстрее, чем это тоже.

Некоторые мысли:

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

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

  • Знание значения максимальной скорости потока ускоряет решение Max-Flow LP, возможно, из-за дополнительных условий расслабления?

Рафаэль
источник
Смежный вопрос: знаем ли мы алгоритмы для вычисления минимальных сокращений (которые не используют алгоритмы максимального потока)?
Рафаэль
3
Мы определенно понимаем, что рандомизированный алгоритм Каргера очень популярен, и для этого вам не нужны знания о максимальных потоках.
Юхо
2
Если вам не нужны рандомизированные алгоритмы, алгоритм Стоера-Вагнера очень прост, также без методов потока.
Юхо
2
Хорошая вещь! Здесь есть еще одна проблема. Зная мин-разрез передает только биты информации (самое большее), так как каждый срез изоморфна подгруппе V . Тем не менее, максимальный поток может потребоваться намного больше, чем | V | биты информации для представления (особенно, если возможности большие). Итак, теоретически, вы не можете надеяться на алгоритм, который смотрит только на разрез и выплевывает поток; нужно также посмотреть на график и сделать некоторые дополнительные вычисления. (Я понимаю, что это не слишком большой барьер.)|В|В|В|
DW

Ответы:

6

В худшем случае само минимальное сокращение не передает много информации о максимальном потоке. Рассмотрим граф в котором минимум s , t- cut имеет значение w . Если я расширяю G , добавляя новую вершину s и ребро ( s , s ) с весом w , минимальный s , t- разрез в новом графе состоит только из ребра ( s , s )граммзнак равно(В,Е)s,Tвесграммs'(s',s)весs',T(s',s)но это не дает никакой информации о том, как получить единиц потока от s до t .весsT

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

Том ван дер Занден
источник
Но этот логарифмический фактор будет зависеть от размера интервала значений потенциального потока, следовательно, несопоставим с существующими верхними границами решения максимального потока, которые зависят только от размера графика. Тем не менее, даже логарифмическое ускорение будет представлять интерес. Я не уверен, что знание значения максимального потока совсем не помогает.
Рафаэль
-2

Конечно, существуют алгоритмы, которые позволяют вычислить минимальное сокращение перед вычислением максимального потока. Два таких алгоритма - это алгоритмы push-relbel и псевдопоток, которые тесно связаны между собой. Последнее более эффективно. Оба этих алгоритма используют специальные свойства остаточного графа, которые они итеративно улучшают, чтобы получить максимальный поток из минимального разреза. Для подробностей я настоятельно рекомендую прочитать код и документы.

Чтобы детализировать случай принудительной пересылки, когда алгоритм не может больше выдвигать поток в приемник, он гарантированно рассчитал минимальное сокращение. Эта часть алгоритма называется фазой 1 из-за отсутствия лучшего названия. Фаза 2 является более эффективной стадией, где она преобразует минимальное сокращение в максимальный поток путем итеративной отмены циклов в остаточном графе, используя поиск на одной глубине и выталкивая избыток обратно к источнику. Я полагаю, что фаза 2 может оказаться бессимптомно более эффективной, чем фаза 1.

ldog
источник
4
Пожалуйста, перечитайте вопрос; это не тот, который вы ответили.
Рафаэль
Пример PR, который я привел, предполагает, что вы вычислили другую информацию по ходу дела, пока вы вычисляли минимальный разрез. В исходном вопросе не было указано, разрешено ли вам сохранять другую информацию вместе с минимальным вырезом, чтобы упростить последующий расчет максимального потока. Справедливо ли сформулировать ваш первоначальный вопрос как «Учитывая минимальное сокращение и никакой другой информации , как мы можем определить максимальный поток?».
ldog
2
Я сказал: «учитывая A, вычислите B». Единственное разумное предположение состоит в том, что вам дают только А, иначе говорить о вычислительных проблемах было бы очень нечетким делом.
Рафаэль
Позволю себе не согласиться. С практической точки зрения, вы бы никогда не вычислили минимальное сокращение без вычисления дополнительной информации (например, в алгоритме PR). С теоретической точки зрения было бы неплохо рассматривать вещи изолированно, как вы говорите. Контекст является ключевым здесь.
ldog