Теорема о максимальном расходе и минимальном разрезе - Max-flow min-cut theorem
В Информатика и теория оптимизации, то теорема о максимальном потоке и минимальном разрезе заявляет, что в проточная сеть, максимальное количество потока, проходящего из источник к раковина равна общему весу ребер в минимальный разрез, то есть наименьший общий вес краев, при удалении которых источник отсоединяется от раковины.
В теорема о максимальном потоке и минимальном отсечении это частный случай теорема двойственности за линейные программы и может использоваться для получения Теорема Менгера и Теорема Кенига – Эгервари.[1]
Определения и заявление
Теорема связывает две величины: максимальный поток через сеть и минимальную пропускную способность отрезка сети, то есть минимальная пропускная способность достигается за счет потока.
Чтобы сформулировать теорему, сначала необходимо определить каждую из этих величин.
Позволять N = (V, E) быть ориентированный граф, куда V обозначает множество вершин, а E это множество ребер. Позволять s ∈ V и т ∈ V быть источником и приемником N, соответственно.
В емкость ребра - это отображение обозначается cУФ или же c(ты, v) куда ты,v ∈ V. Он представляет собой максимальный поток, который может пройти через край.
Потоки
А поток это отображение обозначается или же , при соблюдении следующих двух ограничений:
- Ограничение емкости: Для каждого края ,
- Сохранение потоков: Для каждой вершины Помимо и (т.е. источник и раковинасоответственно) имеет место равенство
Поток можно представить себе как физический поток жидкости через сеть, следуя направлению каждого края. Тогда ограничение пропускной способности говорит, что объем, протекающий через каждое ребро в единицу времени, меньше или равен максимальной пропускной способности ребра, а ограничение сохранения говорит, что количество, которое течет в каждую вершину, равно количеству, вытекающему из каждой вершины, кроме исходной и стоковой вершин.
В ценить потока определяется
где как указано выше это исходный узел и это приемный узел. В аналогии с флюидом он представляет количество флюида, поступающего в сеть в исходном узле. Из-за аксиомы сохранения для потоков это то же самое, что и количество потока, покидающего сеть в принимающем узле.
Задача максимального потока требует наибольшего потока в данной сети.
Задача максимального расхода. Максимизировать , то есть направить как можно больше потока из к .
Порезы
Другая половина теоремы о максимальном потоке и минимальном разрезе относится к другому аспекту сети: набору разрезов. An s-t вырезать C = (S, Т) это раздел V такой, что s ∈ S и т ∈ Т. То есть, s-т разрез - это разделение вершин сети на две части, с источником в одной части и стоком в другой. В набор для резки разреза C - это набор ребер, которые соединяют исходную часть выреза с входной частью:
Таким образом, если все ребра в разрезе C удаляются, то положительный поток невозможен, потому что в результирующем графе нет пути от источника к приемнику.
В емкость из s-t вырезать - общий вес его ребер,
куда если и , иначе.
Обычно на графике много разрезов, но разрезы с меньшим весом часто бывает труднее найти.
- Проблема с минимальным разрезом s-t. Свести к минимуму c(S, Т), то есть определить S и Т так что емкость S-T разрез минимально.
Основная теорема
Основная теорема связывает максимальный поток через сеть с минимальным разрезом сети.
- Теорема о максимальном потоке и минимальном разрезе. Максимальное значение потока s-t равно минимальной пропускной способности по всем отрезкам s-t.
Постановка линейной программы
Задачу о максимальном потоке и задачу о минимальном разрезе можно сформулировать как две прямодвойственные линейные программы.[2]
Максимальный расход (Primal) | Мин-вырез (двойной) | |
---|---|---|
переменные | [переменная для каждого края] | [переменная для каждого края] [переменная для нетерминального узла] |
цель | максимизировать [максимальный общий поток из источника] | свести к минимуму [мин. общая вместимость кромок в резе] |
ограничения | при условии [ограничение на ребро и ограничение на нетерминальный узел] | при условии [ограничение на край] |
знаковые ограничения |
LP с максимальным расходом прост. Двойной ЛП получается с использованием алгоритма, описанного в двойная линейная программа. Получившийся LP требует пояснений. Интерпретация переменных в LP min-cut:
Цель минимизации суммирует пропускную способность по всем ребрам, которые содержатся в разрезе.
Ограничения гарантируют, что переменные действительно соответствуют законному сокращению:[3]
- Ограничения (эквивалентно ) гарантируют, что для нетерминальных узлов u, v, если ты в S и v в Т, то ребро (ты,v) засчитывается в разрезе ().
- Ограничения (эквивалентно ) гарантируют, что если v в Т, то край (s, v) учитывается в разрезе (поскольку s по определению в S).
- Ограничения (эквивалентно ) гарантируют, что если ты в S, то край (u, t) учитывается в разрезе (поскольку т по определению в Т).
Обратите внимание, что, поскольку это проблема минимизации, мы не должны гарантировать, что ребро нет в разрезе - мы только должны гарантировать, что каждое ребро, которое должно быть в разрезе, суммируется в целевой функции.
Равенство в теорема о максимальном потоке и минимальном отсечении следует из сильная теорема двойственности в линейном программировании, который утверждает, что если основная программа имеет оптимальное решение, Икс*, то дуальная программа тоже имеет оптимальное решение, у*, так что оптимальные значения, сформированные двумя решениями, равны.
Пример
На рисунке справа изображена сеть со значением расхода 7. Цифровая аннотация на каждой стрелке в виде Икс/у, указывает поток (Икс) и емкость (у). Всего семь потоков, исходящих из источника (4 + 3 = 7), равно как и потоков в сток (3 + 4 = 7).
Вершины, отмеченные белым цветом, и вершины, отмеченные серым цветом, образуют подмножества S и Т s-t разреза, множество разрезов которого содержит пунктирные края. Поскольку пропускная способность отрезка s-t равна 7, что равняется значению потока, теорема о максимальном потоке и минимальном отрезке указывает, что значение потока и пропускная способность отрезка s-t являются оптимальными в этой сети.
Обратите внимание, что поток через каждую из пунктирных кромок работает на полную мощность: это «узкое место» системы. Напротив, в правой части сети есть свободные мощности. В частности, поток от узла один к узлу два не обязательно должен быть равен 1. Если бы не было потока между узлами один и два, то входы в приемник изменились бы на 4/4 и 3/5; общий поток все равно будет семь (4 + 3 = 7). С другой стороны, если поток от узла один к узлу два удвоится до 2, то входы в приемник изменится на 2/4 и 5/5; общий поток снова останется на уровне семи (2 + 5 = 7).
Заявление
Теорема Седербаума о максимальном потоке
Задачу максимального потока можно сформулировать как максимизацию электрического тока через сеть, состоящую из нелинейных резистивных элементов.[4] В этой постановке предел тока яв между входными клеммами электрической сети в качестве входного напряжения Vв подходы , равняется весу набора с минимальным весом.
Обобщенная теорема о максимальном потоке и минимальном разрезе
Помимо пропускной способности ребра, рассмотрим пропускную способность каждой вершины, т. Е. Отображение обозначается c(v), так что поток ж должен удовлетворять не только ограничению пропускной способности и сохранению потоков, но и ограничению пропускной способности вершин
Другими словами, количество поток проход через вершину не может превышать ее вместимости. Определить s-t вырезать быть набором вершин и ребер таких, что для любого пути из s к т, путь содержит член разреза. В этом случае мощность разреза это сумма емкости каждого ребра и вершины в нем.
В этом новом определении Обобщенная теорема о максимальном потоке и минимальном разрезе утверждает, что максимальное значение потока s-t равно минимальной пропускной способности отрезка s-t в новом смысле.
Теорема Менгера
В задаче о неориентированных рёберно-непересекающихся путях задан неориентированный граф грамм = (V, E) и две вершины s и т, и мы должны найти максимальное количество непересекающихся ребер s-t путей в грамм.
В Теорема Менгера утверждает, что максимальное количество непересекающихся ребер s-t путей в неориентированном графе равно минимальному количеству ребер в s-t разрезе.
Проблема выбора проекта
В задаче выбора проекта есть п проекты и м машины. Каждый проект пя приносит доход р(пя) и каждая машина qj расходы c(qj) покупать. Для каждого проекта требуется несколько машин, и каждая машина может использоваться несколькими проектами. Проблема состоит в том, чтобы определить, какие проекты и машины следует выбрать и купить соответственно, чтобы получить максимальную прибыль.
Позволять п быть набором проектов нет выбран и Q быть набором купленных машин, то проблема может быть сформулирована как,
Поскольку первый член не зависит от выбора п и Q, эту задачу максимизации можно сформулировать как задачу минимизации, т. е.
Вышеупомянутая задача минимизации затем может быть сформулирована как задача минимального сокращения путем построения сети, в которой источник подключен к проектам с мощностью р(пя), а мойка подключается машинами емкостью c(qj). Край (пя, qj) с бесконечный мощность добавляется, если проект пя требуется машина qj. Набор s-t cut-set представляет проекты и машины в п и Q соответственно. По теореме о максимальном потоке и минимальном разрезе можно решить проблему как проблема максимального расхода.
Рисунок справа дает сетевую формулировку следующей задачи выбора проекта:
Проект р(пя) | Машина c(qj) | ||
---|---|---|---|
1 | 100 | 200 | Для проекта 1 требуются машины 1 и 2. |
2 | 200 | 100 | Для проекта 2 требуется машина 2. |
3 | 150 | 50 | Для проекта 3 требуется машина 3. |
Минимальная мощность разреза s-t составляет 250, а сумма дохода по каждому проекту составляет 450; поэтому максимальная прибыль грамм 450 - 250 = 200, выбрав проекты п2 и п3.
Идея здесь состоит в том, чтобы «направить» прибыль проекта по «трубам» машины. Если мы не можем заполнить трубу, отдача станка будет меньше, чем ее стоимость, и алгоритм минимальной резки сочтет более дешевым сократить край прибыли проекта, а не предел затрат станка.
Проблема сегментации изображения
В проблеме сегментации изображений есть п пикселей. Каждый пиксель я может быть присвоено значение переднего плана жя или фоновое значение бя. Существует штраф в размере пij если пиксели я, j смежные и имеют разные назначения. Проблема состоит в том, чтобы назначить пиксели переднему или заднему плану так, чтобы сумма их значений за вычетом штрафов была максимальной.
Позволять п быть набором пикселей, назначенных переднему плану и Q - набор точек, отнесенных к фону, то задача может быть сформулирована как,
Вместо этого эту задачу максимизации можно сформулировать как задачу минимизации, т. Е.
Вышеупомянутая задача минимизации может быть сформулирована как задача минимального среза путем построения сети, в которой источник (оранжевый узел) подключен ко всем пикселям с емкостью жя, а сток (пурпурный узел) соединен всеми пикселями с емкостью бя. Два ребра (я, j) и (j, я) с пij емкость добавляется между двумя соседними пикселями. Затем набор s-t cut-set представляет пиксели, назначенные на передний план в п и пиксели, назначенные фону в Q.
История
Отчет об открытии теоремы дал Форд и Фулкерсон в 1962 г .:[5]
«Определение максимального установившегося потока из одной точки в другую в сети с учетом ограничений пропускной способности дуг ... было поставлено авторам весной 1955 года Т. Э. Харрисом, который вместе с генералом Ф. С. Россом (в отставке). сформулировал упрощенную модель железнодорожного потока и определил эту конкретную проблему как центральную, предложенную моделью. Вскоре после этого был получен основной результат, теорема 5.1, которую мы называем теоремой о максимальном потоке и минимальном разрезе, было предположено и установлено.[6] С тех пор появился ряд доказательств ".[7][8][9]
Доказательство
Позволять грамм = (V, E) сеть (ориентированный граф) с s и т быть источником и приемником грамм соответственно.
Рассмотрим поток ж вычислено для грамм к Алгоритм Форда – Фулкерсона. В остаточном графе (граммж ) получено для грамм (после окончательного назначения потока Алгоритм Форда – Фулкерсона ), определим два подмножества вершин следующим образом:
- А: множество вершин, достижимых из s в граммж
- Аc: множество оставшихся вершин, т.е. В - А
Требовать. ценить(ж ) = c(А, Аc), где емкость из s-t вырезать определяется
- .
Теперь мы знаем, для любого подмножества вершин, А. Следовательно, для ценить(ж ) = c(А, Аc) нам нужно:
- Все исходящие края из разреза должно быть полностью насыщенный.
- Все входящие края в разрезе должно быть нулевой поток.
Чтобы доказать это утверждение, рассмотрим два случая:
- В грамм, существует исходящий край такой, что он не насыщен, т.е. ж (Икс, у) < cху. Это означает, что существует передний край из Икс к у в граммж, следовательно, существует путь из s к у в граммж, что противоречит. Следовательно, любое исходящее ребро (Икс, у) полностью насыщен.
- В грамм, существует входящий край такой, что он несет некоторый ненулевой поток, т.е. ж (у, Икс) > 0. Это означает, что существует задний край из Икс к у в граммж, следовательно, существует путь из s к у в граммж, что снова противоречит. Следовательно, любое входящее ребро (у, Икс) должен иметь нулевой расход.
Оба приведенных выше утверждения доказывают, что мощность отсечения, полученная описанным выше способом, равна потоку, полученному в сети. Также поток был получен Алгоритм Форда-Фулкерсона, так что это максимальный расход сети.
Кроме того, поскольку любой поток в сети всегда меньше или равен пропускной способности каждого разреза, возможного в сети, вышеописанный разрез также является min-cut который получает максимальный расход.
Следствием этого доказательства является то, что максимальный поток через любое множество ребер в разрезе графа равен минимальной пропускной способности всех предыдущих разрезов.
Смотрите также
- Гипотеза GNRS
- Линейное программирование
- Максимальный расход
- Минимальный разрез
- Поточная сеть
- Алгоритм Эдмондса – Карпа
- Алгоритм Форда – Фулкерсона
- Приближенная теорема о максимальном расходе и минимальном сокращении
- Теорема Менгера
Рекомендации
- ^ Dantzig, G.B .; Фулкерсон, Д. (9 сентября 1964 г.). "О теореме о максимальном потоке и минимальном разрезе сетей" (PDF). Корпорация РЭНД: 13. Получено 10 января 2018.
- ^ Тревизан, Лука. «Лекция 15 из CS261: Оптимизация» (PDF).
- ^ Келлер, Оргад. «Представление LP min-cut max-flow».
- ^ Седербаум, И. (август 1962 г.). «Об оптимальной работе сетей связи». Журнал Института Франклина. 274: 130–141.
- ^ Л. Р. Форд-младший & Д. Р. Фулкерсон (1962) Потоки в сетях, Страница 1, Princeton University Press МИСТЕР0159700
- ^ Л. Р. Форд-младший и Д. Р. Фулкерсон (1956) "Максимальный поток через сеть", Канадский математический журнал 8: 399-404}}
- ^ П. Элиас, А. Файнштейн и К. Э. Шеннон (1956) «Заметка о максимальном потоке через сеть», IRE. Труды по теории информации, 2 (4): 117–119.
- ^ Джордж Данциг и Д. Р. Фулкерсон (1956) "О теореме сетей о максимальном потоке и минимальном разрезе", в Линейные неравенства, Анна. Математика. Исследования, нет. 38, Принстон, Нью-Джерси
- ^ Л. Р. Форд и Д. Р. Фулкерсон (1957) "Простой алгоритм для поиска максимальных сетевых потоков и приложение к проблеме Хичкока", Канадский математический журнал 9: 210–18
- Юджин Лоулер (2001). «4.5. Комбинаторные следствия теоремы о максимальном потоке и минимальном сечении, 4.6. Интерпретация линейным программированием теоремы о максимальном потоке и минимальном сечении». Комбинаторная оптимизация: сети и матроиды. Дувр. С. 117–120. ISBN 0-486-41453-1.
- Христос Х. Пападимитриу, Кеннет Стейглиц (1998). «6.1 Теорема о максимальном потоке и минимальном разрезе». Комбинаторная оптимизация: алгоритмы и сложность. Дувр. С. 120–128. ISBN 0-486-40258-4.
- Виджай В. Вазирани (2004). «12. Введение в LP-двойственность». Алгоритмы аппроксимации. Springer. С. 93–100. ISBN 3-540-65367-8.