Файл: Ху, Т. Целочисленное программирование и потоки в сетях.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 15.10.2024
Просмотров: 237
Скачиваний: 0
12.2. СЕТИ С ПРОПУСКНЫМИ СПОСОБНОСТЯМИ УЗЛОВ |
269 |
||
величина потока из источника N s в сток N t равна |
пропускной |
||
способности минимального разреза, |
разделяющего N s |
и |
N t. |
Д оказательство. Предположим, |
что все пропускные |
способ |
ности wt узлов целочисленны, и пусть F st — произвольный поток, не обязательно максимальный. Если величина этого потока равна пропускной способности некоторого разреза, то теорема доказана (ясно, что величина любого потока из N s в N t не превышает пропускной способности разреза, разделяющего N s и N t). В про тивном случае найдем цепь, с помощью которой можно увеличить поток. Для этого определим подмножество узлов X, такое, что поток может быть послан в любой узел, принадлежащий X.
Обозначим wtj = min (wt, Wj).
Используя текущий поток F st, определим рекуррентно множе
ство X по следующим правилам. |
|
|||
0. |
N S£ X . |
хц<С.Юц и xj<.Wj, |
то N j^ X . |
|
1. |
Если N t £ X , |
|||
2. |
Если N i £ X |
и х ц > 0 , |
то N j £ X . |
xhj> 0, то N k £X. |
3. |
Если Ni £ X, |
х и < . ю ц , |
xj = wj, |
При таком определении X возможны 2 случая.
Случай 1. Узел N t попадает в множество X. Покажем, что поток может быть тогда увеличен. Так как N s £ X, то должна существовать цепь из N s в N (, для дуг которой выполняются усло вия правил 1—3. Очевидно, что если выполняются условия пра вил 1—2, то поток вдоль такой цепи может быть увеличен. Если же
выполняются условия правила |
3, то |
положим |
е = min |
— |
||
— х ц , x hj ) , а затем добавим е к потоку |
x tj |
и |
вычтем г |
из x k j . |
||
Это эквивалентно увеличению |
потока |
в |
узел |
N h, причем поток |
через узел N j остается равным пропускной способности Wj. Так как величины Wj целочисленны, то и е будет целым числом. А так как максимальный поток ограничен сверху, то поток из N s в N t может возрастать на е конечное число раз, и, следовательно, случай 1 может встретиться только конечное число раз.
Случай 2. Узел N t попадает в X. Покажем, что построенный поток равен пропускной способности некоторого разреза. Назовем соседние с X узлы у-узлами, или узлами из у. Утверждается сле дующее.
1°. |
Не существует дугового потока из у-узла в узел, принадле |
|
2°. |
жащий X. |
|
Все у-узлы насыщены (т. е. х}- = |
Wj). |
|
3°. |
Не существует дугового потока |
из X — у в у. |
4°. |
Не существует дугового потока из одного у-узла в другой |
|
|
у-узел. |
|
270 |
ГЛ. 12. ПОТОКИ В НЕПРЕРЫ ВНОЙ СРЕДЕ |
|
Докажем эти утверждения |
(см. рис. 12.2). |
|
1°. |
Не существует дугового |
потока x}i > 0, такого, что N t £ X, |
N j £ у, так как в противном случае узел N j попадал бы в X по пра вилу 2 .
2°. |
Пусть узел N t принадлежит X, а у-узел N j является сосед |
||||||||||
ним с ним. Из доказанного выше |
предложения 1° следует, что |
||||||||||
ХИ ^ |
0- Если бы Xu < |
wtj, то |
по |
правилу |
1 |
N j £ X. |
Поэтому |
||||
Хц = |
wi} = |
min (wt, |
wj). |
Если |
wtj |
= Wj, |
то |
= |
xiS = |
Wj. |
Значит, |
Xj — Wj, t . |
e. узел |
N j |
насыщен. |
Если |
wtj |
wt, |
t o |
xtj = wt. |
Следовательно, xt = wt, т. e. узел N t насыщен. Очевидно, что насыщенный узел N t не может попасть в X по правилу 1. Далее, насыщенный узел N г не может попасть в X по правилу 2. Действи тельно, тогда существовал бы дуговой поток xip, где Np £ X.
Но тогда сумма Хц + х1р превышала бы wt, что невозможно. |
|
Итак, насыщенный |
узел N t может попасть в X только по пра |
вилу 3. Тогда должен существовать дуговой поток xiqB некоторый |
|
насыщенный узел N g. Так как xi} = wt, то этим насыщенным узлом |
|
может быть только |
N j. |
Таким образом, все у-узлы являются насыщенными.
3° —4°. |
Пусть |
Nj —произвольный у-узел. |
Предположим, что |
существует |
узел |
£ X с xhj > 0. Так как |
Nj £ у, то найдется |
соседний с ним узел Nii £X. Поскольку N h$X, а узел Nj насы
щенный, |
то |
(в |
силу правила |
3) х^ j — Wj^; |
отсюда, |
учитывая |
|
Xhj > 0, получаем |
Следовательно, Ni |
— насыщенный узел. |
|||||
Но узел |
Ni |
по |
правилам |
1 и 2 |
(см. доказательство п. |
2) не мог |
|
12.2. Се т и с п р о п у с к н ы м и с п о с о б н о с т я м и |
у з л о в |
271 |
||
попасть в X. Значит он попал в X |
по правилу 3 |
через систему |
|||
узлов |
где N ^ X |
и отличен от |
(так как |
он |
|
ранее N t |
попал в X). Повторяя те же самые рассуждения |
для |
|||
узла Ni , |
убеждаемся, что он |
попал в сеть через |
систему узлов |
||
Ni |
где Ni3 попал |
в X |
ранее N iz, и |
т. д. Получаем |
последовательность узлов Ni , Ni2, .. ., Nik, .. ., каждый из кото
рых попал в множество X через следующий, и все они раз личны. Бесконечность этой последовательности противоречит конечности исходной сети. Поэтому предположение о существо
вании узла N hd X с xhj^> 0 неверно, и утверждения 3° —4° до казаны.
Таким образом, величина потока из N s в Ni равна 2 хц =
— 2 wj• Так как у-узлы—это все соседние узлы для узлов из X,
то множество у является разрезом. м
Можно разработать метод расстановки пометок, аналогичный методу, приведенному в гл. 8 и основанный на рассмотренных
трех рекуррентных правилах. Однако правило 3 требует, чтобы просматривались не только все узлы N h, соседние с каждым узлом, но также и все соседние для каждого узла N k. Это резко увели чивает объем вычислений. Рассмотрим процедуру расстановки пометок, которая основана только на правилах 1 и 2 .
Все узлы разбиваются на пять типов:
1. Помеченные узлы (П-узлы). Узел N t называется помечен ным, если по рекуррентным правилам 1 или 2 он попадает в мно
жество X.
2. Помеченные и просмотренные узлы (ПП-узлы). Узел N t называется помеченным и просмотренным, если он является
П-узлом и просмотрены все . узлы, с ним соседние.
3.Отброшенные узлы'(О-узлы). Узел Nj называется отбро шенным, если он насыщен, т. е. xj — Wj.
4.Отброшенные и просмотренные узлы (ОП-узлы). Узел называется отброшенным и просмотренным, если он является
О-узлом, все соседние с ним О-узлы N h просмотрены и при этом
не оказалось ни одного дугового потока xhj > |
0 . |
5. Непомеченные узлы (Н-узлы). Узел N } |
называется непо |
меченным, если он не принадлежит ни к одному из четырех пере численных выше типов.
Процедура расстановки пометок осуществляется следующим образом.
272 ГЛ. 12. ПОТОКИ В НЕПРЕРЫ ВНОЙ СРЕДЕ
Сначала помечают узлы, которые можно включить в X только по правилам 1 или 2. После этого производятся действия, анало гичные тем, которые осуществлялись на шаге 1 в § 8.2. При этом помеченные узлы получают пометку П, а отброшенные узлы получают пометку О. Если сток оказался помеченным (в этом случае говорят, что произошел прорыв), то поток увеличивают {как на шаге 2 в § 8 .2 ), затем стирают все пометки и вновь пере ходят к шагу 1 .
Если сток оказался непомеченным (произошел непрорыв), то просматриваются по очереди один за другим все О-узлы. Если
для |
фиксированного 0-узла N j не |
существует |
дугового |
потока |
|
x hj > |
0 , где N k является О-узлом, |
то узел N j |
является |
отбро |
|
шенным и просмотренным; он получает |
пометку ОП. Если же |
||||
такой О-узел N k найдется, то О-узел Nj |
становится помеченным |
и получает пометку П. После этого просматривают все соседние
сN h 0-узлы и Н-узлы, ищутся среди них новые П-узлы и О-узлы. Если все узлы имеют пометки ОП, ПП или Н, то процедура рас
становки пометок прекращается.' Если при этом N t £ X, то мак симальный поток построен.
В описанной процедуре расстановки пометок некоторый узел N j сначала может быть помечен как О-узел (если = wj), затем он может, стать ОП-узлом (если не существует О-узла N h, такого,
что xkj > |
0). Предположим, |
что xjh > 0 для |
всех О-узлов N h. |
||||
В дальнейшем О-узел |
N h может |
стать П-узлом и, кроме |
того, |
||||
рассматриваемый |
узел |
Nj |
также |
может стать П-узлом, |
если |
||
xih > 0. |
Таким |
образом, |
самая |
длинная |
последовательность |
пометок, приписываемых некоторому узлу Nj, может быть сле дующей: Н — О — ОП -> П -> ПП. Следовательно, при осущ е ствлении описанной итерации расстановки пометок каждый узел просматривается вместе со своими соседями самое большее дважды *).
12.3. Потоки в непрерывной среде
Рассмотрим известную задачу вариационного исчисления. Имеется прямоугольная область со сторонами A, S, В, Т (рис. 12.3). В этой области определена ограниченная непрерывная весовая функция w (х, у) > 0. Надо найти кривую, соединяющую стороны А и В, такую, чтобы интеграл по этой кривой
j w (х, у) dc
был бы минимальным.
1) Преимущества этого алгоритма не очевидны, так как при «раздвое нии» узлов и дуг (см. примечание на стр. 268) число дуг становится равным п + 2 т , но каждая дуга просматривается только один раз, а здесь может оказаться, что каждую дугу понадобится просмотреть 4 раза.— Прим, перев.