Файл: Ху, Т. Целочисленное программирование и потоки в сетях.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 раза.— Прим, перев.