Тема 14. Задача о максимальном потоке в сети.
Сеть.
В этом параграфе будут рассматриваться сети 𝐺 = (𝑉,𝑈, 𝜌), имеющие единственную вершину 𝑠 с нулевой полустепенью захода и единственную вершину 𝑡 с нулевой полустепенью исхода. Вершину 𝑠 будем называть источником, а вершину 𝑡 - стоком, вес 𝜌(𝑢) дуги 𝑢 - пропускной способностью дуги 𝑢.
Для удобства изложения введем следующие обозначения. Через 𝑣 + обозначим множество дуг, для которых вершина 𝑣 является началом, а через 𝑣 − обозначим множество дуг, для которых вершина 𝑣 является концом.
Поток в сети.
Опр. Потоком в сети 𝐺 = (𝑉, 𝑈, 𝜌) называется функция 𝑓: 𝑈 → 0, ∞), удовлетворяющая условиям:
1) ∀𝑢 ∈ 𝑈 𝑓(𝑢) ≤ 𝜌(𝑢);
2)
𝑓(𝑣
−) = 𝑓(𝑣
+) для всех вершин 𝑣,
𝑣
≠ 𝑠,
𝑣
≠ 𝑡,
где 𝑓(𝑣
−) =
и 𝑓(𝑣
+) =
.
Значение 𝑓(𝑣 −) можно интерпретировать как поток, втекающий в вершину 𝑣, а значение 𝑓(𝑣 +) - как поток, вытекающий из вершины 𝑣. Тогда второе условие можно переформулировать так: поток, втекающий в любую вершину, за исключением источника и стока, должен быть равен потоку, вытекающему из этой вершины.
Условие 1) называется условием ограничения по пропускной способности, а условие 2) - условием сохранения потока в вершинах.
Величина потока. Максимальный поток.
Опр. Положим ‖𝑓‖ = 𝑓(𝑠 +). Число ‖𝑓‖ называется величиной потока.
Опр. Поток 𝑓 ∗ называется максимальным, если для любого потока 𝑓 справедливо неравенство ‖𝑓‖ ≤ ‖𝑓 ∗‖. Задача о максимальном потоке формулируется следующим образом: в заданной сети 𝐺 найти поток максимальной величины.
Дополняющая цепь.
При решении задачи об отыскании максимального потока в сети приходится рассматривать неориентированные простые цепи, т.е. такие последовательности попарно различных вершин и дуг 𝑣0𝑢1𝑣1 . . . 𝑣k-1𝑢k𝑣k, в которой любые два соседних элемента инцидентны. Поскольку цепи других видов нас при этом интересовать не будут, то далее в этом параграфе неориентированные простые цепи будем называть просто цепями.
Если в цепи 𝑣0𝑢1𝑣1 . . . 𝑣k-1𝑢k𝑣k дуга 𝑢i выходит из вершины 𝑣i-1 и заходит в вершину 𝑣i, то она называется прямой дугой цепи. Если же дуга 𝑢i выходит из вершины 𝑣i и заходит в вершину 𝑣i-1, то она называется обратной дугой цепи.
Опр. Цепь 𝑃 из 𝑣 в 𝑤 называется дополняющей для 𝑓, если ℎ(𝑃) > 0.
Разрез в сети.
Опр. Разрезом (𝑉s, 𝑉t) в сети 𝐺 называется пара множеств 𝑉s и 𝑉t, удовлетворяющих условиям:
1) 𝑠 ∈ 𝑉s, 𝑡 ∈ 𝑉t;
2) 𝑉s ∪ 𝑉t = 𝑉;
3) 𝑉s ∩ 𝑉t = ∅.
Через 𝑉s → 𝑉t обозначим множество всех дуг, начала которых лежат в 𝑉s, а концы - в 𝑉t, а через 𝑉t → 𝑉s - множество всех дуг, начала которых лежат в 𝑉t, а концы - в 𝑉s.
Опр.
Положим 𝜌(𝑉s
→ 𝑉t)
= =
.
Число 𝜌(𝑉s
→ 𝑉t)
называется пропускной
способностью разреза
(𝑉s,
𝑉t).
Минимальный разрез.
Опр. Разрез (𝑉s∗, 𝑉t∗) называется минимальным, если для любого разреза (𝑉s, 𝑉t) справедливо неравенство 𝜌(𝑉s∗→ 𝑉t∗) ≤ 𝜌(𝑉s → 𝑉t).
Во второй части параграфа будет доказано, что величина максимального потока в произвольной сети равна пропускной способности минимального разрез.
Если для сети найден максимальный поток, то минимальный разрез можно найти следующим образом: включить в множество 𝑉s вершину 𝑠 и все вершины 𝑣 ∈ 𝑉, для каждой и существует цепь 𝑃 из 𝑠 в 𝑣 с остаточной пропускной способностью ℎ(𝑃) > 0; положить 𝑉t = 𝑉\𝑉s. Полученный таким образом разрез (𝑉s, 𝑉t) будет минимальным.
Алгоритм Форда – Фалкерсона.
Обоснование алгоритма (Леммы 1,2,3 и теорема Форда-Фалкерсона).
