
книги из ГПНТБ / Ху, Т. Целочисленное программирование и потоки в сетях
.pdf11.3. СИ Н ТЕЗ КО М М У Н И КА Ц И О Н Н Ы Х С ЕТЕЙ |
263 |
в нижнюю строку табл.'Ш . Получаем табл. П2. Применяя к ней итерацию симплекс-методаполучим табл. ПЗ (за исключением нижней строки).
Теперь улучшающим столбцом является столбец под перемен
ной ц2, т. |
е. [О, |
1, |
0, |
0, 0]. Чтобы найти 0тах и связывающее нера |
|
венство, |
повторим |
вспомогательную |
часть, решая задачу (1 2 ) |
||
с у 0 = [5, 4, 3, |
4, |
2] и у4 = [0, 1, 0, 0, |
0]. Здесь учитываются оба |
периода, и связывающее неравенство, которое оказывается выте кающим из требований в 1 -м периоде, имеет вид
V2 — —8 + |
Уг + Уз + Уь |
0> |
® вшах = 1■ |
^ 0 корректируется и записывается |
|
Полученное неравенство |
в нижнюю строку табл. ПЗ. Применяя итерацию прямого сим- ллекс-метода, получим новую сеть [5, 3, 3, 4, 2]. Она представлена в табл. П4.
|
|
Таблица П4 |
|
|
|
|
Таблица П5 |
|
|
||||
|
|
|
|
|
1 |
|
|
|
1 |
|
|
|
|
1 |
|
— И ! |
— » 2 — Vi — “ 4 |
— и 5 |
1 |
|
— “1 — V i — V i — v 3 - - “ 5 |
||||||
— % - 8 8 — 4 |
5 |
2 |
- 4 |
1 |
— Z - 8 8 - 4 |
3 |
4 |
2 |
1 |
||||
У1 |
5 |
1 |
0 |
0 |
0 |
0 |
У1 |
5 |
1 |
0 |
0 |
0 |
0 |
У2 |
3 |
0 |
- 1 |
1 |
1 |
— 1 |
У2 |
3 |
0 |
- 1 / 2 |
1/2 |
- 1 / 2 |
— 1 |
Уз |
3, |
0 |
0 |
- 1 |
- 1 |
0 |
Уз |
3 |
0 |
- 1 / 2 |
- 1 / 2 |
1/2 |
0 |
У1 |
4 |
0 |
0 |
0 |
1 |
0 |
Уь |
4 |
0 |
1 /2 |
- 1 / 2 |
— 1/2 |
0 |
Уь |
2 |
0 |
0 |
0 |
0 |
1 |
Уь |
2 |
0 |
0 |
0 |
0 1 |
|
^3 |
0 |
0 |
— 1 |
1 |
2 * |
0 |
v k |
0 |
1 * |
1/2 |
- 1 / 2 |
1/2 |
1 |
Затем переходим к вспомогательной части, где получается неравенство
v3 = —9 + Уг + Уз + Уь ^ 0)
которое после корректировки записывается в нижнюю строку таблицы П4.
После |
итерации |
симплекс-метода |
табл. П4 превращается |
|
в табл. П5. |
Вспомогательная часть формирует неравенство vk — |
|||
= —10 + |
yi |
+ Уз + |
Уь ^ 0, которое после корректировки запи |
|
сывается в нижнюю строку табл. П5. |
|
|||
Применяя итерацию симплекс-метода к табл. П5, получим |
||||
табл. П6 . Вспомогательная часть дает |
неравенство п5 = —7 + |
|||
+ У1 + Уг ^ |
0, которое после корректировки записывается в ниж |
нюю строку табл. П6 . При переходе от табл. П5 к табл. П6 пере
менная —иь изменяется на и5 (так как переменные мг не ограни чены по знаку).
264 |
ГЛ . |
И . М Н О ГО П РО ДУ КТО ВЫ Е п о т о к и |
После |
итерации |
симплекс-метода табл. П6 превращается |
в табл. П7, в которой нет улучшающего столбца. Следовательно, найдена оптимальная сеть.
Таблица П6
1 —У4 —V2 — Vt — и3 +U5\
— Z - 8 8 |
4 1 |
2 |
4 |
- 5 |
|||
У\ |
5 - 1 |
1/2 |
|
1/2 |
- 1 /2 |
1 |
|
Уз |
3 |
0 |
- 1 /2 |
|
1/2 |
- 1 /2 |
1 |
Уз |
3 |
0 |
- 1 /2 |
- 1 |
/2 |
1/2 |
0 |
Уь |
4 |
0 |
1/2 - 1 |
/2 |
- 1 /2 |
0 |
|
Уз |
2 |
0 |
0 |
|
0 |
0 - 1 |
|
Г5 |
1 - 1 |
0 |
|
1 |
—1 |
2 * |
|
|
Таблица П7 |
|
|
||||
|
1 |
—ч --V2 —V I —из —”5 |
||||||
z |
- 8 5 ,5 - 3 |
/2 |
1 |
9/2 |
3/2 |
5/2 ' |
||
Уl |
9/2 |
- 1 |
/2 |
1/2 |
|
0 |
0 - 1 /2 |
|
V2 |
5/2 |
1/2--1/2 |
|
0 |
0 - 1 /2 |
|||
Уз |
3 |
|
0--1/2 - 1 |
/2 |
1/2 |
0 |
||
VI |
4 |
|
0 |
1/2 -1 |
/2 - 1 /2 |
0 |
||
Уъ |
5/2 |
- 1 /2 |
0 |
1/2 |
1/2 |
1/2 |
||
|
0 |
|
0 |
0 |
|
0 |
0 |
—1 |
ГЛАВА 12
ПОТОКИ В НЕПРЕРЫВНОЙ СРЕДЕ
Содержание этой главы является результатом совместной работы д-ра Р. Е. Гомори и автора; изложение осуществлено автором. Все результаты получены впервые, поэтому они изла гаются здесь в предварительной форме. Положительные отзывы на эту работу (если они будут) следует адресовать как д-ру Гомори, так и автору, но ответственность за все ошибки и опечатки должна быть целиком возложена на автора.
Читателям, интересующимся функциональным анализом, реко мендуется предварительно ознакомиться с § 12.3, а затем читать
§ 1 2 . 1 и § 1 2 .2 .
12.1.Локально минимальные разрезы
Вэтой главе будет введено несколько новых понятий, ранее не встречавшихся в литературе. Они имеют важное значение для аппроксимации непрерывной среды конечной сетью, что составит содержание § 12.3.
Вэтой главе будем рассматривать только неориентированные сети. Две дуги будем называть соседними дугами, если они имеют
общий узел. Два разреза (X , X) и (У , У) будем называть сосед ними разрезами, если а) каждая дуга разреза (X , X) либо при надлежит разрезу (Y , Y), либо является соседней с некоторой дугой из (Y , У); б) такое же отношение выполняется для каждой
дуги разреза (У, У).
Рассмотрим сеть, изображенную на рис. 12.1, где разрезы
обозначены пунктирными линиями: |
|
(X, X) = {Л14, А 12, As2, |
-4s3}, |
(У, Y) — {AU, А23, Л83}, |
|
( Z , J ) = \ A U, Л35}, |
|
(W, W) = {A2S, As3, Азь}. |
|
Будем использовать символ — для |
обозначения соседства |
двух дуг. |
|
'266 |
ГЛ . 12. ПО ТО КИ |
В Н Е П Р Е Р Ы В Н О Й СРЕД Е |
|
Разрезы |
(X, X) и (У , Y) |
являются соседними, так как |
|
1 ) Ан и As3 принадлежат обоим разрезам; |
|
||
2) А 12~ А 2г и As2~ A 23, |
где А 12 и■As2 принадлежат (X , |
X), |
|
А 2з принадлежит (Y , У). |
|
|
|
Разрезы (У, У) и (ТУ, ТУ) |
не являются соседними, так как |
||
дуга А и из |
(У, У) не является соседней ни с одной из дуг |
раз |
реза (ТУ, ТУ).
Аналогично можно убедиться, что разрезы (У, У) и (Z, Z) являются соседними, а разрезы (X, X) и (Z, Z) таковыми не яв-
Р и с. 12.1.
ляются. Не являются соседними также и разрезы (X, X) и (ТУ, ТУ),
(Z, Z) и (ТУ, ТУ).
В дальнейшем нас будут интересовать разрезы, разделяющие N s и N t; такие разрезы, как (ТУ, ТУ), рассматриваться не будут. Под термином «разрез» будем подразумевать разрез, разделяю щий N s и N t.
Будем называть разрез локально минимальным, если его про пускная способность меньше или равна пропускной способности всех соседних разрезов.
Например, пусть все дуги сети, изображенной на_рис. 12.1, имеют одинаковые пропускные способности. Тогда (Z, Z) является локально минимальным разрезом. Разрез, состоящий из одной дуги Ai&, также является локально минимальным.
Минимальный разрез, определенный в гл. 8 , является, конечно,
локально минимальным разрезом, но обратное неверно. Например, ясно, что А 7з — минимальный разрез, разделяющий N s и N t,
а разрез (Z, Z) — локально минимальный разрез, но не минималь ный. Следовательно, по нашей терминологии минимальный разрез
12.2. СЕТИ С П РО П У С КН Ы М И СПОСОБНОСТЯМ И У ЗЛ О В |
267 |
является в некотором смысле абсолютно минимальным разрезом. Чтобы разрез был минимальным, необходимо, но не достаточно, чтобы он был локально минимальным.
Рассмотрим все разрезы, разделяющие узлы N s и N t. Отно шение соседства между разрезами аналогично понятию расстояния между точками плоскости. Для заданной точки а можно указать те точки, который находятся на расстоянии е от точки а, эти точки назовем е-соседними для а. Аналогично, для заданного разреза можно указать те разрезы, которые являются для него соседними.
Как известно, для того чтобы функция / (х) достигала абсо лютного минимума в точке а, необходимо, чтобы / (х) — / (а) ^ О для | х — а | ■< е. Аналогично, для того чтобы разрез был минимальным, необходимо, чтобы он был локально мини мальным.
В функциональном анализе имеется понятие локального мини мума. Чтобы найти абсолютный минимум функции, надо сравнить все локальные минимумы. В теории сетевых потоков ищутся минимальные разрезы, отделяющие источник от стока. Метод расстановки пометок для нахождения максимального потока (а следовательно, и минимального разреза) позволяет находить абсолютный минимум, не используя понятия локального мини мума. В последующих параграфах этот факт будет изучаться более подробно.
12.2.Сети с пропускными способностями узлов
Вгл. 8 каждой дуге была поставлена в соответствие пропуск
ная способность; это число указывало максимальную величину потока, который можно пропустить по этой дуге. В узлах никаких ограничений на поток не накладывалось, за исключением условий сохранения. Теперь будем считать, что узлы имеют пропускные
способности, а дуги их не имеют. Эта модель нам понадобится в § 12.3. '
Рассмотрим сеть, состоящую из узлов N t и дуг A tj, связываю щих N i и N j. Каждому узлу N t поставлена в соответствие его пропускная способность w\ — действительное число, указываю щее максимальную величину потока, который можно пропустить через этот узел. Пусть хц — поток по дуге А ц из узла N t в узел N j. В силу условия сохранения потока в каждом узле величина
потока, проходящего через узел N }, равна 2 хц\ обозначим ее Xj. i
Тогда задача о максимальном потоке в сети с ограничениями на пропускные способности узлов формулируется следующим образом:
268 |
Г Л . 12. П О ТО КИ В Н Е П Р Е Р Ы В Н О Й СРЕД Е |
максимизировать v
при условиях
—и, если j — s,
.0 , если ; Ф s, t, |
(1 ) |
v, если 7 = t.
X ij>0, 0^.Xj^.Wj для всех i, /,
2 X i j =X j .
г
Назовем разрезом, разделяющим N s и N t в сети с пропускными способностями узлов, множество узлов, удаление которых превра щает исходную сеть в несвязную сеть, состоящую из двух или более частей, где узлы N s и N t попадают в разные части; при этом никакое собственное подмножество рассматриваемого множества узлов не должно обладать указанным свойством.
Два узла назовем соседними, если в сети имеется дуга, их соединяющая. Хотя в общем случае удаление такого разреза может разбить сеть более, чем на две части, все же разрез будет
обозначаться (X , X). Здесь X обозначает множество узлов в той части сети, которая содержит N s. Нетрудно видеть, что разрез
(X, X) состоит из всех узлов множества X, являющихся сосед ними с узлами из X. Разрез, обладающий минимальной суммой пропускных способностей узлов, называется минимальным раз резом.
В сети с пропускными способностями узлов справедлива тео рема о максимальном потоке и минимальном разрезе, аналогичная соответствующей теореме из гл. 8 . Действительно, сеть с про
пускными способностями узлов простым приемом может быть превращена в сеть с пропускными способностями дуг (Форд и Фалкерсон [67]). Но, поскольку при этом резко возрастает число дуг х), будем рассматривать непосредственно сеть с про пускными способностями узлов.
Т е о р е м а о м а к с и м а л ь н о м п о т о к е и м и н и м а л ь н о м р а з р е з е
(в сети с пропускными способностями узлов). Максимальная
г) Каждый узел N t разбивается на две части, «левую» и «правую», и добав
ляется ориентированная дуга, ведущая из левой части iV) в его правую часть. Все ориентированные дуги в исходной сети, входившие в узел 7Уг, в новой сети заменяются на дуги, входящие в его левую часть; все ориентированные
дуги в исходной сети, выходившие из узла iV), |
в новой сети заменяются |
|||
на дуги, выходящие из его правой части. |
Каждая |
неориентированная дуга |
||
Aij заменяется на две ориентированных, |
одна |
из |
которых |
ведет из левой |
части iVj в правую часть N j , а другая — из левой части N j |
в правую часть |
|||
7V). Таким образом, если в исходной сети |
было п узлов и |
т неориентиро |
||
ванных дуг, то в новой сети добавляется |
п + |
т дуг.— Прим, перев. |
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 раза.— Прим, перев.