Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Ху, Т. Целочисленное программирование и потоки в сетях

.pdf
Скачиваний:
86
Добавлен:
22.10.2023
Размер:
16.99 Mб
Скачать

11.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 раза.— Прим, перев.

Соседние файлы в папке книги из ГПНТБ