Лекции Олейник PDF / Р_3_10
.pdf
§ 3.10. Задача о максимальном потоке в сети
Сеть. Поток в сети. Величина потока. Максимальный поток. Дополняющая цепь. Разрез в сети. Минимальный разрез. Алгоритм Форда - Фалкерсона.
Базовые понятия и утверждения
В этом параграфе будут рассматриваться сети G V ,U , ,
имеющие единственную вершину s с нулевой полустепенью захода и единственную вершину t с нулевой полустепенью исхода. Вершину s
будем называть источником, а вершину t - стоком, вес u дуги u -
пропускной способностью дуги u .
Для удобства изложения введем следующие обозначения. Через v обозначим множество дуг, для которых вершина v является началом, а через v обозначим множество дуг, для которых вершина
v является концом. |
|
|
|
|
Определение. Потоком в сети G V ,U , |
называется функция |
|||
f :U 0, , удовлетворяющая условиям: |
|
|
||
1) u U f u u ; |
|
|
||
2) f v f v |
для всех вершин v , |
v s , |
v t , где |
|
f v f u и f v f u . |
|
|
||
u v |
|
u v |
|
|
Значение |
f v можно интерпретировать как поток, втекающий |
|||
в вершину v , |
а значение |
f v - как поток, вытекающий из вершины |
||
v . Тогда второе условие можно переформулировать так: поток, втекающий в любую вершину, за исключением источника и стока, должен быть равен потоку, вытекающему из этой вершины.
Условие 1) называется условием ограничения по пропускной способности, а условие 2) - условием сохранения потока в вершинах.
191
|
a |
7,3 |
d |
4,2 |
|
|
|
Пр и м ер |
1 . |
На |
рис. 3.83 дан |
|||
|
|
|
|
|
|
пример сети и потока |
f |
|
в ней. |
|||||
|
6,6 |
3,3 |
8,1 |
t |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
||||
s |
7,1 |
5,5 |
|
12,7 |
|
|
|
Около каждой |
дуги u указаны |
|||||
|
b |
q |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
2,1 |
|
|
|
через |
запятую |
|
ее |
|
пропускная |
||||
|
5,2 |
6,1 |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
(u) |
|
|
|
|
||
|
c |
|
|
|
|
|
способность |
и текущий по ней |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 3.83. |
|
|
|
|
поток |
f u . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Определение. |
Положим |
|
f |
f s . |
Число |
|
f |
называется |
|||||
величиной потока. |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Определение. |
Поток |
f |
* |
называется максимальным, если для |
|||||||||
любого потока f справедливо неравенство 
f 


f *
.
Задача о максимальном потоке формулируется следующим образом: в заданной сети G найти поток максимальной величины.
Задача о максимальном потоке имеет особенность, отличающую ее от рассмотренных нами ранее задач дискретной оптимизации. В предшествующих задачах искомый объект существовал очевидным образом и в принципе мог быть найден полным перебором. Например, можно было перебрать все остовы и выбрать среди них минимальный или перебрать все пути между заданными вершинами и выбрать среди них кратчайший. В задаче о максимальном потоке полный перебор принципиально невозможен и существование максимального потока не является очевидным. Однако можно доказать, что в каждой сети существует максимальный поток (доказательство этого утверждения опустим).
При решении задачи об отыскании максимального потока в сети приходится рассматривать неориентированные простые цепи, т.е. такие последовательности попарно различных вершин и дуг
v0u1v1...vk 1uk vk , в которой любые два соседних элемента инцидентны.
Поскольку цепи других видов нас при этом интересовать не будут, то далее в этом параграфе неориентированные простые цепи будем называть просто цепями.
Если в цепи v0u1v1...vk 1uk vk дуга ui выходит из вершины vi 1 и заходит в вершину vi , то она называется прямой дугой цепи. Если же
192
дуга ui выходит из вершины vi и заходит в вершину vi 1 , то она называется обратной дугой цепи.
Пусть |
f - поток в сети |
G и P - цепь из v в w . Для каждой |
|
дуги u цепи |
P будем вычислять остаточную пропускную способность |
||
h(u) при данном потоке f |
по следующему правилу: если дуга |
u |
|
прямая, то |
h(u) (u) f (u) , а если обратная, то h(u) f (u) . |
В |
|
свою очередь остаточную пропускную способность h(P) цепи P при
данном потоке |
f |
будем определять по формуле h P min h u . |
|||||||
|
|
|
|
|
|
|
|
|
u P |
|
Определение. Цепь P из v в w называется дополняющей для f , |
||||||||
если h P 0 . |
|
|
|
|
|
|
|
|
|
|
Пр и м ер 2 . |
В сети, изображенной на рис. 3.83, цепь, включающая |
|||||||
последовательно |
вершины |
s, b, c, q, t , |
является дополняющей для |
||||||
потока, рассмотренного в примере 1. |
|
|
|||||||
|
Одним из алгоритмов, позволяющих построить максимальный |
||||||||
поток, является алгоритм Форда - Фалкерсона. |
|
||||||||
|
Алгоритм Форда - |
Фалкерсона. 0 - й |
ша г . Пускаем по сети |
||||||
нулевой поток |
f0 , т.е. полагаем f0 u 0 |
для всех дуг u U . |
|||||||
|
k - й ша г . |
Пусть к началу шага в сети течет поток fk 1 . Для этого |
|||||||
потока fk 1 ищем дополняющую цепь из s в t . |
|||||||||
|
Если такой цепи нет, то fk 1 - искомый максимальный поток. |
||||||||
|
В противном случае, если для потока |
fk 1 дополняющая цепь из s |
|||||||
в t |
имеется, даем ей имя |
Pk |
и определяем на множестве U функцию |
||||||
fk |
по следующему правилу: |
|
|
|
|||||
|
|
f |
k 1 |
(u) h(P ), если u P , u - прямая дуга, |
|||||
|
|
|
|
|
|
k |
k |
|
|
|
fk (u) fk 1(u) h(Pk ), если u Pk , u - обратная дуга, |
||||||||
|
|
f |
k 1 |
(u), |
если u P . |
|
|
||
|
|
|
|
|
|
k |
|
|
|
|
Построенная |
|
таким |
образом функция |
fk является потоком, и |
||||
величина этого потока определяется равенством 
fk 


fk 1 
h(Pk ) .
193
Замечание. Возникает существенный вопрос: закончится ли работа алгоритма за конечное число шагов? Оказывается, хотя в подавляющем большинстве случаев алгоритм заканчивает свою работу за конечное число шагов, зацикливание возможно. Гарантировать построение максимального потока можно в том случае, если на каждом шаге производить увеличение потока вдоль кратчайших по числу дуг дополняющих цепей.
Доказательство алгоритма Форда - Фалкерсона приведено во второй части параграфа.
Пр и м ер 3 . Построим максимальный поток для сети, изображенной на рис. 3.84,а.
◄ Ш а г 0 . Для любой дуги u положим f0 u 0 (на рисунке этот поток отмечать не будем, более того, договоримся и далее нулевой
поток на дугах не отмечать), |
|
f0 |
|
|
|
0 . |
|
|||
|
|
|
|
|||||||
Ш а г 1 . P : s a d t |
- дополняющая цепь для потока f |
0 |
||||||||
1 |
6 |
7 |
4 |
|
|
|
|
|
||
|
|
|
|
|
|
|
||||
(стрелки заменяют имена дуг, под каждой стрелкой записана остаточная
пропускная |
|
способность |
h(u) |
соответствующей |
|
дуги |
|
u ), |
||||||||||||||||||||||||||||||||||||||||||||||||||
h P |
min h(u) 4 , |
поток |
f |
|
указан |
на |
|
рис. |
3.84,б, |
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
u P |
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f |
|
|
|
|
|
|
|
|
|
|
f |
0 |
|
|
h P |
4 . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
Ш а г 2 . P2 : |
|
s a b q t |
- дополняющая цепь для потока |
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
3 |
5 |
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f1 , |
|
h P2 2 , поток f2 |
указан на рис. 3.84,в, |
|
|
f2 |
|
|
|
f1 |
|
h P2 6 . |
|
||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
Ш а г 3 . P : |
|
s b q t - дополняющая цепь для потока |
f |
2 |
, |
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
7 |
3 |
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
h P |
3 , поток |
f |
3 |
указан на рис. 3.84,г, |
|
|
f |
3 |
|
|
|
|
|
|
|
|
|
|
f |
2 |
|
|
|
|
h P 9 . |
|
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|||||
|
|
|
|
|
Ш а г 4 . |
P4 : |
|
s c q t |
- дополняющая цепь для потока |
f3 , |
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
6 |
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
h P4 5 , поток |
f4 |
указан на рис. 3.84,д, |
|
f4 |
|
|
|
|
|
|
f3 |
|
|
|
|
h P4 14 . |
|
|
|
|||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
Ш а г |
|
|
5 . P : |
|
s b a d q t |
|
|
- |
|
|
дополняющая цепь |
для |
|||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
|
4 |
2 |
3 |
8 |
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
потока |
|
f |
3 |
, |
h P |
2 , |
поток |
f |
5 |
|
|
указан |
|
|
|
|
|
на |
|
рис. |
3.84,е, |
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
f |
5 |
|
|
|
|
|
|
f |
4 |
|
|
h P |
16 . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
194 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
a |
7 |
d |
|
|
|
|
a |
|
7,4 |
d |
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
4,4 |
|
|
|
6 |
|
3 |
|
8 |
|
t |
6,4 |
|
3 |
|
8 |
|
t |
|
|
|
|
7 |
5 |
|
|
7 |
5 |
|
|
|
|||||||
s |
|
|
12 |
|
s |
|
|
12 |
|
|
|
|||||
|
b |
|
q |
|
|
|
b |
|
q |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||||||
|
2 |
|
|
|
|
|
2 |
|
|
|
|
|
||||
5 |
|
6 |
|
|
|
5 |
|
|
|
6 |
|
|
|
|
|
|
|
c |
|
|
|
|
|
|
|
c |
|
|
|
|
|
|
|
|
|
|
а |
|
|
|
|
|
|
|
б |
|
|
|
|
|
|
a |
7,4 |
d |
|
|
|
|
a |
|
7,4 |
d |
|
|
|
|
|
|
|
|
|
|
4,4 |
|
|
|
|
|
|
4,4 |
|
|
|
|
6,6 |
|
3,2 |
|
8 |
|
t |
6,6 |
|
|
3,2 |
8 |
|
t |
|
|
|
|
7 |
|
5,2 |
|
|
|
7,3 |
|
5,5 |
|
|
|
|
|||
s |
|
|
12,2 |
|
s |
|
|
12,5 |
|
|
|
|||||
|
b |
|
q |
|
|
|
b |
|
q |
|
|
|
||||
|
2 |
|
|
|
|
|
2 |
|
|
|
|
|
||||
5 |
|
6 |
|
|
|
5 |
|
|
|
6 |
|
|
|
|
|
|
|
c |
|
|
|
|
|
|
|
c |
|
|
|
|
|
|
|
|
|
|
в |
|
|
|
|
|
|
|
г |
|
|
|
|
|
|
a |
7,4 |
d |
|
|
|
|
a |
|
7,6 |
d |
|
|
|
|
|
|
|
|
|
|
4,4 |
|
|
|
|
|
|
4,4 |
|
|
|
|
6,6 |
|
3,2 |
|
8 |
|
t |
6,6 |
|
|
3,0 |
8,2 |
|
t |
|
|
|
|
7,3 |
|
5,5 |
|
|
|
|
7,5 |
|
5,5 |
|
|
|
|
||
s |
|
|
|
|
s |
|
|
|
12,12 |
|
|
|
||||
|
b |
|
q |
12,10 |
|
|
b |
|
q |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||||||
|
2 |
|
|
|
|
|
2 |
|
|
|
|
|
||||
5,5 |
6,5 |
|
|
|
5,5 |
|
|
6,5 |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
c |
|
|
|
|
|
|
|
c |
|
|
|
|
|
|
|
|
|
|
д |
|
|
|
|
|
|
|
е |
|
|
|
|
|
|
|
|
|
|
|
Рис. 3.84. |
|
|
|
|
|
|
|
|
|
|
Для потока |
f5 |
нет |
ни |
одной |
дополняющей |
цепи |
из |
s |
в |
t . |
||||||
Следовательно, поток |
f5 является максимальным. ► |
|
|
|
|
|
||||||||||
Определение. |
Разрезом |
Vs ,Vt |
в |
сети |
G |
называется |
пара |
|||||||||
множеств Vs и Vt , удовлетворяющих условиям: |
|
|
|
|
|
|
||||||||||
1) s Vs , t Vt ; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
2) Vs Vt |
V ; |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
3) Vs |
Vt |
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
195 |
Через Vs Vt обозначим множество всех дуг, начала которых лежат в Vs , а концы - в Vt , а через Vt Vs - множество всех дуг, начала которых лежат в Vt , а концы - в Vs .
Определение. |
Положим Vs Vt |
(u) . |
Число |
||||
|
|
|
|
|
u Vs Vt |
|
|
Vs Vt называется пропускной способностью разреза Vs ,Vt . |
|||||||
Определение. |
Разрез |
Vs *,Vt * |
называется минимальным, если |
||||
для |
любого |
разреза |
Vs ,Vt |
справедливо |
неравенство |
||
Vs * Vt * Vs Vt . |
|
|
|
|
|||
Во |
второй части параграфа будет доказано, |
что |
величина |
||||
максимального потока в произвольной сети равна пропускной способности минимального разреза.
Если для сети найден максимальный поток, то минимальный разрез можно найти следующим образом: включить в множество Vs
вершину s |
и все вершины v V , для каждой из которых существует |
|||
цепь P из |
s |
в v |
с остаточной пропускной способностью h P 0 ; |
|
положить |
Vt |
V \ Vs . Полученный таким |
образом разрез Vs ,Vt |
|
будет минимальным. |
|
|||
Пр и м ер |
4 . |
Вернемся к примеру |
3. Используя найденный |
|
максимальный поток, несложно определить, что единственной вершиной, в которую можно добраться по цепи с положительной остаточной пропускной способностью, является вершина b .
Следовательно, пара множеств Vs s, b и Vt |
a, c, d, q, t образует |
|
минимальный разрез. |
|
|
Упр а жн е н ие 3 . 3 7 . |
Найти максимальный поток и минимальный |
|
разрез для сети, изображенной: |
|
|
а) на рис. 3.85; |
б) на рис. 3.86. |
|
|
|
a |
3 |
q |
4 |
|
t |
|
8 |
3 |
2 |
2 |
|
|
|
|
6 |
|
9 |
|
|||
s |
3 |
|
|
7 |
|||
|
4 b |
|
|
|
|||
|
5 |
5 |
|
4 |
|
|
|
|
|
|
|
|
|
r |
|
|
|
c |
|
3 |
|
|
|
a |
|
4 |
q |
|
|
|
|
6 |
4 |
|
|
|
10 |
|
|
6 |
5 |
|
|
|
||
s |
7 |
c |
|
7 |
t |
||
|
|
||||||
|
|
|
|||||
3 |
3 |
4 |
r |
|
|||
|
|
|
|
||||
|
12 |
|
|
|
|
9 |
|
|
|
|
|
|
|
|
|
|
b |
|
5 |
p |
|
|
|
196
Рис. 3.85. |
Рис. 3.86. |
Теоретические обоснования
Перейдем к обоснованию алгоритма Форда - Фалкерсона. Для
произвольных разреза |
Vs ,Vt |
и |
потока |
f |
|
|
|
введем |
две числовые |
|||||||||||||||
характеристики: |
f (u) - величина потока из Vs |
|
|
|||||||||||||||||||||
f Vs Vt |
в Vt , |
|
||||||||||||||||||||||
u Vs Vt |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
f Vt Vs |
f (u) - величина потока из Vt |
в Vs . |
|
|||||||||||||||||||||
u Vt Vs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Пр и м ер 5 . Для потока |
f |
, |
текущего по сети в примере 1, и |
|||||||||||||||||||||
разреза Vs ,Vt , |
где |
|
|
Vs |
s, a, c |
|
и |
|
|
|
|
Vt b, d, q, t , |
имеем |
|||||||||||
f Vs Vt 9 , f Vt Vs 0 . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
Лемма 1. Для |
любого потока |
f |
и |
любого разреза |
Vs ,Vt |
|||||||||||||||||||
справедливо равенство |
|
f |
|
f Vs |
Vt f Vt Vs . |
|
|
|||||||||||||||||
|
|
|
|
|||||||||||||||||||||
Доказательство. Согласно условию сохранения потока в |
||||||||||||||||||||||||
вершинах, для произвольной вершины v Vs |
\ s имеем: |
|
||||||||||||||||||||||
f v f v |
или |
f v f v 0 . |
|
|||||||||||||||||||||
Следовательно, |
|
|
f v f v 0 . |
Сложив это |
||||||||||||||||||||
|
v Vs \ s |
|
|
s |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
равенство почленно с равенством |
f |
|
f |
|
|
|
, получим: |
|
||||||||||||||||
|
f v f v |
|
|
|
f |
|
|
|
, |
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
||||||||||||||||||
|
v Vs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
f |
|
|
|
|
|
f |
|
|
|
|
|
f |
, |
|
|
||||||||
|
|
|
u |
|
|
|
|
u |
|
|
||||||||||||||
v Vs u v |
|
|
|
|
v Vs u v |
|
|
|
|
|
|
|
|
|
|
197 |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f u |
|
|
f u |
|
|
|
|
|
|
|
|
|
|
|
f |
|
|
|
|
|
, |
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
u: u a,b , |
|
u: u a,b |
, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
a Vs |
|
|
b Vs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
f u |
|
|
f u |
|
|
f u |
|
f u |
|
|
|
f |
|
|
|
. |
|||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||
u: u a,b , |
u: u a,b , |
|
u: u a,b , |
|
|
|
|
u: u a,b , |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
a Vs , b Vs |
a Vs , b Vs |
|
a Vs , b Vs |
|
|
|
|
a Vs , b Vs |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
Первое и третье слагаемые последнего равенства взаимно |
||||||||||||||||||||||||||||||||||||||||||||||
уничтожаются, следовательно, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
f u |
|
|
f u |
|
|
|
|
|
f |
|
|
|
, |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
u: u a,b , |
|
u: u a,b , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
a Vs , b Vs |
|
a Vs , b Vs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
f Vs Vt f Vt Vs |
|
|
|
f |
|
|
|
.■ |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||
Следствие 1. |
|
f |
|
|
|
f t . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
Доказательство. |
Пусть |
Vt t , |
|
Vs |
V \ t . |
Тогда |
||||||||||||||||||||||||||||||||||||||||
f Vs Vt f t , |
f Vt Vs |
0 |
и равенство из леммы 1 |
|||||||||||||||||||||||||||||||||||||||||||
запишется следующим образом: |
|
f |
t .■ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
f |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
Следствие 2. |
|
Для любого потока |
f |
и любого разреза |
Vs ,Vt |
|||||||||||||||||||||||||||||||||||||||||
справедливо неравенство 
f 
Vs Vt .
Доказательство. Из условия ограничения по пропускной
способности |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
f (u) |
(u) , т.е. |
f Vs Vt Vs Vt . |
|
|||||||||
|
u Vs Vt |
u Vs Vt |
|
|
|
|
|
|
|
||||||||
|
Тогда с учетом равенства из леммы 1 имеем: |
|
|||||||||||||||
|
f |
|
|
|
f Vs Vt f Vt Vs f Vs Vt Vs Vt . ■ |
||||||||||||
|
|
|
|||||||||||||||
|
Лемма 2. Если для некоторого потока f |
и некоторого разреза |
|||||||||||||||
Vs ,Vt выполняется равенство |
|
|
|
|
f |
|
|
|
Vs |
Vt , то поток |
f |
||||||
|
|
|
|
||||||||||||||
максимален, а разрез |
Vs ,Vt минимален. |
|
|
||||||||||||||
|
Доказательство. Пусть f * - максимальный поток, а Vs *,Vt |
* - |
|||||||||||||||
минимальный разрез. Тогда справедлива следующая цепочка неравенств:
198
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
сл. 2 леммы 1 |
|
|
|
|||
|
|
f |
|
|
|
|
|
|
|
f * |
|
|
|
|
|
|
Vs * Vt * Vs Vt . |
|
|||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
Поскольку крайние члены в этой цепочке неравенств совпадают, то |
|||||||||||||||||||||||||
она превращается в цепочку равенств, а это означает, что поток |
f |
||||||||||||||||||||||||
максимален, а разрез Vs ,Vt минимален. ■ |
|
|
|
||||||||||||||||||||||
Лемма 3. |
|
Пусть f |
- |
поток в сети G и |
P является для |
f |
|||||||||||||||||||
дополняющей цепью из s |
в t . Тогда в сети G существует поток |
f |
|||||||||||||||||||||||
такой, что |
|
|
|
|
|
f |
|
h(P) . |
|
|
|
|
|||||||||||||
f |
|
|
|
|
|
|
|
|
|||||||||||||||||
Доказательство. Определим в сети G функцию f :U R по |
|||||||||||||||||||||||||
формуле |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
f u h(P), |
если u P, |
u - прямая дуга, |
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
если u P, |
u - обратная дуга, |
|
|||||||||||
f (u) f u h(P), |
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
f u , |
если u P. |
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
Докажем, что функция |
f является потоком. |
|
|
||||||||||||||||||||||
Вначале |
покажем, |
|
что |
функция |
f |
принимает только |
|||||||||||||||||||
неотрицательные значения и удовлетворяет условию 1) определения потока.
Пусть u - прямая дуга цепи P . Тогда
0 f (u) f (u) h(P) f (u) h(u) f (u) (u) f (u) (u) .
Пусть u - обратная дуга цепи P . Тогда
f (u) f (u) h(P) f (u) h(u) f (u) f (u) 0 и f (u) f (u) h(P) f (u) (u) .
Таким |
образом, |
для любой дуги |
u цепи |
P |
выполнено |
0 f (u) (u) . Если |
u P , то 0 f (u) f (u) (u) . |
|
|||
Теперь |
убедимся |
в выполнении для |
функции |
f |
условия 2) |
определения потока. Понятно, что это условие следует проверить лишь для вершин v , входящих в цепь P . Пусть u1 - дуга, по которой
пришли в вершину v , а u2 - дуга, по которой ушли из v . Каждая из
199
этих дуг может быть как прямой, так и обратной в цепи |
P . |
||||||||||
Следовательно, возможны четыре различных случая. |
|
|
|||||||||
|
|
|
1. Пусть обе дуги u1 |
и u2 - прямые. В этом случае |
|
||||||
|
|
|
f (u1 ) f (u1 ) h(P) и f (u2 ) f (u2 ) h(P) , |
|
|||||||
так что |
|
|
|
|
|
|
|
|
|||
|
|
|
f (v ) f (v ) h(P) и f (v ) f (v ) h(P) . |
|
|||||||
|
|
|
Но для |
потока |
f |
выполнено условие |
f (v ) f (v ) , |
||||
следовательно, и для потока |
f имеем |
f (v ) f (v ) . |
|
|
|||||||
|
|
|
2. Пусть дуга u1 - прямая и u2 - обратная, |
т.е. обе дуги входят в |
|||||||
вершину v . В этом случае |
|
|
|
|
|
||||||
|
|
|
f (u1 ) f (u1 ) h(P) и f (u2 ) f (u2 ) h(P) , |
|
|||||||
так что |
|
|
|
|
|
|
|
|
|||
|
|
|
f (v ) f (v ) h(P) h(P) f (v ) и f (v ) f (v ) . |
|
|||||||
|
|
|
Так как для потока |
f |
выполнено условие |
f (v ) f (v ) , то и |
|||||
для потока f |
имеем f (v ) f (v ) . |
|
|
|
|
||||||
|
|
|
Аналогично рассматриваются случай 3 (обе дуги u1 и u2 |
- |
|||||||
обратные) и случай 4 (дуга u1 - обратная и u2 - прямая). |
|
||||||||||
|
|
|
Таким образом, мы показали, что функция f |
- поток в цепи P . |
|
||||||
|
|
|
Определим |
теперь |
величину |
потока |
f . |
Напомним, |
что |
||
|
f |
|
f (s ) . |
Из |
вершины |
s дуги |
только |
выходят, поэтому |
та |
||
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
единственная дуга u с началом в вершине s , которая входит в цепь P , является прямой дугой цепи P . Следовательно, для нее выполнено
равенство f (u) f (u) h(P) . На остальных дугах, выходящих из s , поток не менялся, так что имеем:

f 
f (s ) 
f 
h(P) . ■
Объединяет приведенные выше результаты следующая теорема.
Теорема 3.11 (Форда - Фалкерсона). Для потока f в сети G
следующие условия эквивалентны: 1) поток f максимален;
200
