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

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

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

ГЛАВА 11

МНОГОПРОДУКТОВЫЕ п о т о к и

11.1.Двухпродуктовые потоки (Ху [106])

Вгл. 8 рассматривалась задача нахождения максимального'

потока из источника N s в сток N t при наличии ограничений вида ХИ ^ Ьц на пропускные способности дуг. Если в сети имеется несколько источников и несколько стоков и поток может идти из любого источника в любой сток, то задачу можно свести к зада­ че с одним источником и одним стоком. Это осуществляется добав­ лением одного нового источника и одного нового стока.

Если ввести ограничение, что поток должен идти из некоторых выделенных источников в некоторые выделенные стоки, то полу­

чится задача о многопродуктовом потоке. Пусть

имеются источ­

ники N s и стоки

N s>

(s =

1,

2,

. . .,

q, s' =

1', 2', . . ., q')t

и s-й поток должен идти

из источника N s в сток N S'. Пусть хц’

это s-й поток по дуге A tj *), /

(s, s') — величина s-ro потока из -/V»

в N S’. Одна из задач, возникающих при анализе многопродукто­

вых потоков, имеет следующий вид:

 

 

максимизировать

 

 

 

 

 

 

 

 

2

/(*,

О

 

 

 

 

 

s=1

 

 

 

 

 

при ограничениях

 

 

 

 

 

 

 

 

 

( —/(в.*')»

если У=*.

 

2

хЬ =

<

° ’

 

если

7 ^

 

г

 

1 / (в. s').

 

если

] = *’

 

я

 

 

(для

всех

i, j).

 

2

 

 

 

S =

1

 

 

 

 

 

 

В задачах об однопродуктовом потоке одна неориентированная дуга всегда может быть заменена на две ориентированные дуги с противоположными ориентациями. При этом потоки, идущие

х) Поток x\j считается положительным, если он идет по дуге A tj от узла N { к узлу Nj, если же он идет от узла N j к узлу N t , то считается отри­

цательным; = — X s-,:Прим, перев.

31

224 Г Л . 11. М Н О ГО П РО ДУ К ТО В Ы Е п о т о к и

в противоположных направлениях, можно взаимно уничтожить. Иначе обстоит дело с многопродуктовыми потоками. Два разно­ продуктовых потока', идущих по одной дуге в противоположных

направлениях,

не уничтожают, друг друга. В

этом заключается

•одна из

основных трудностей многопродуктовых задач.

 

 

Другая задача, связанная с многопродуктовыми потоками,—

это так

называемая задача о допустимости.

Она заключается

в

следующем.

Заданы

неотрицательные целые числа

г (s, s')

(s

= 1,

. . ., q,

s' = 1',

. . ., q'). Требуется

выяснить,

сущест­

вуют ли допустимые потоки x\j, т. е. удовлетворяющие ограни­ чениям

f(s, s')> r (s, s'),

 

f(s,

s'),

если j = s,

О,

 

если / =£s, s',

{f(s,s'),

если j =

s',

2 \ x t j \ ^ b i3

(для всех i,

j)

8—1

 

 

 

(т. e. требуется выяснить, совместны ли эти ограничения).

Как уже говорилось раньше, однопродуктовую задачу о пото­ ке всегда можно представить как задачу линейного программиро­ вания с целевой функцией z = сх и ограничениями вида Ах = Ъ. Матрица А обладает свойством абсолютной унимодулярности, и следовательно, базисное оптимальное решение всегда целочис­ ленно. Это, вообще говоря, уже неверно в задачах о многопро­ дуктовом потоке. Большинство многопродуктовых задач не может быть решено методом расстановки пометок или его ва­ риациями.

Рассмотрим один специальный класс многопродуктовых задач— задачи о двухпродуктовом потоке в неориентированной сети. Для них справедлива теорема, аналогичная теореме о максимальном потоке и минимальном разрезе. Кроме того, они обладают свой­

ством,

аналогичным свойству абсолютной унимодулярности.

(В [173]

показано, что результаты этого параграфа выполняются

и в случае псевдосимметричной сети х).)

Поскольку и доказательство теоремы, и описание алгоритма достаточно громоздко, мы сначала обсудим интуитивную идею, лежащую в их основе.

х) Псевдосимметричной называют сеть, для каждого узла N t которой

2 Ьи четна (см. [173]).— Прим, перев.

11.1. Д В У Х П Р О Д У К Т О В Ы Е п о т о к и

225

Пусть имеются потоки двух продуктов в сети. Будем максими­ зировать поток первого продукта, как это делается в обычной однопродуктовой задаче. После того, как в процессе максимиза­ ции получится требуемая величина г (1 , 1 ') потока 1 -го продукта, будем увеличивать поток 2 -го продукта от нуля до требуемой величины г (2 , 2 '), стараясь сохранять неизменной величину

потока 1-го продукта. Это делается путем создания в сети цикла для потока 1-го продукта. Добавление такого цикла либо увеличит дуговые потоки 1 -го продукта, либо уменьшит их, в зависимости

от направления дуговых потоков, уже имеющихся в сети. Алго­ ритм, представленный ниже, находит такой цикл для потока 1 -го

продукта, что при добавлении этого цикла в сети найдутся пути, увеличивающие поток 2 -го продукта.

Обычно разрез обозначался символом (X, X), а пропускная

способность разреза — символом с (X, X). По причинам, которые станут ясными в дальнейшем, будем теперь использовать символ

(s, t)

для обозначения

минимального

разреза,

разделяющего N s

и N t,

и символ с (s, t)

— для обозначения пропускной способности

минимального

разреза.

 

 

 

Разрез (s,

t) разделяет одну пару

узлов.

Теперь определим

соответствующие понятия, когда разделяется много пар узлов. Приведенным множеством, разделяющим т пар узлов, называет­

ся множество

дуг,

удаление

которых отделяет узел N t от узла

N и (г = 1,2,

. . .,

т) и при

этом никакое его собственное под­

множество не

обладает этим свойством. (Заметим, что узел N (

может оказаться в той же самой компоненте связности, что и N у,

если j =/= i.)

Дальше в этом параграфе приведенное множество,

разделяющее

пары вершин, будем называть также «разделяющим

множеством».

 

способностью разделяющего множества называется

Пропускной

сумма пропускных способностей дуг, входящих в него. Разделяю­

щее множество,

пропускная

способность которого минимальна,

называется минимальным множеством.

Минимальное разделяю­

щее множество, отделяющее узлы N t от узлов Ni- (i =

1 , 2 , . . . k),

будем обозначать (1 , 2 , . . ., k; 1 ', 2 ',

.

. ., к'), а

пропускную

способность минимального разделяющего

множества — символом

с (1 , 2 , . . ., к; 1 ', 2 ', . . ., к’).

 

 

 

Лемма 11.1. Удаление приведенного множества, разделяюще'го

кпар узлов, разбивает сеть не более чем на к + 1 компонент связ­

ности.

Д оказательство. Каждая дуга связывает два узла. Поэтому если удалять одну за другой дуги приведенного разделяющего множества, то число компонент связности каждый раз либо не меняется, либо увеличивается на единицу. Каждый раз, когда

15 т. ху

226

ГЛ. 11. МНОГОПРОДУКТОВЫЕ п о т о к и

число компонент связности увеличивается на единицу, по край­ ней мере одна новая пара узлов оказывается разделенной. (В про­ тивном случае множество удаляемых дуг не было бы приве­ денным.) Поэтому, когда число компонент связности станет равным к + 1 , все пары узлов заведомо должны оказаться раз­

деленными. |

Обозначим через i j новый узел, полученный в результате склеивания узлов N t и N , в один узел (т. е. Ьц делаем произ­ вольно большой величиной). Справедлива

Л емма 11.2. с (1, 2; l',2') = min [с (1 -2 ; 1 '-2 '), с (1 -2 '; 1'—2)].

Д оказательство.

Согласно лемме

11.1,

удаление минималь­

ного разделяющего

множества (1 ,

2 ; 1 ',

2 ') разобьет сеть не

(а)

(б)

Рис. 1 1 .1 .

более чем на 3 компоненты связности. На рис. 11.1 эти компонен­ ты изображены в виде прямоугольников, а линии между прямо­ угольниками обозначают множество дуг, связывающих эти ком­ поненты.

Если сеть имеет вид, представленный на рис. 11.1 (а), то с(1, 2; 1', 2') = с (1—2; 1'—2'). Если же сеть имеет вид, пред­ ставленный на рис. 1 1 . 1 (б), то с (1 , 2 ; 1 ', 2 ') = с (1 2 '; 1 '—2 ).

Остальные случаи расположения узлов 1, 1', 2, 2' в компонентах связности рассматриваются аналогично. Следовательно,

с (1 , 2 ; Г , 2 ') = min (с (1 2 , 1 ' - 2 '), с (1 - 2 ', 1 ' - 2 )).и

Лемма 11.2 позволяет найти с (1, 2; 1', 2') посредством реше­ ния двух обычных задач о максимальном потоке. Согласно ей для нахождения минимального множества, разделяющего две пары узлов, достаточно рассмотреть только два разбиения мно-

11.1. Д В У Х П Р О Д У К Т О В Ы Е

п о т о к и

227

жества узлов, указанные в лемме 11.2. Именно

это свойство

упрощает задачу о двухпродуктовом

потоке в

неориентиро­

ванной сети. В общем случае не известен простой способ на­

хождения

минимального

множества,

разделяющего

т (т >

2 )

пар узлов.

 

 

 

 

 

 

 

 

Рассмотрим

еще

одно

свойство разделяющих

множеств.

 

Л емма

11.3.

с (1,

. . .,

/; 1', . . .,

у") + с (/ +

1,

. . . , / +

к \

Г + 1 ', •

 

 

 

 

 

 

 

 

Д оказательство. Два разделяющих множества, стоящих в ле­ вой части неравенства, вместе образуют множество, разделяющее 7 + к пар узлов. Сумма их пропускных способностей не может

быть меньше выражения, стоящего в правой части неравенства, так как это выражение есть пропускная способность минималь­ ного разделяющего множества. В частности, с (1, 1') + с (2, 2') ^

> е ( 1,2; 1', 2').ш

Сформулируем основную теорему о двухпродуктовых пото­ ках.

Теорема 11.1 (теорема о максимальном двухпродуктовом пото­ ке и минимальном разрезе [106]). Два потока / (1, 1 ') и f {2,2')

являются допустимыми тогда и только тогда, когда выполнены одновременно условия

/ ( 1 ,

1 ' ) <

с ( 1 , 1 '),

( 1 )

/ ( 2 ,

2 ' ) <

с ( 2 , 2 '),

( 2)

/(1,1') + / ( 2 , 2 ' ) < с ( 1 , 2; 1', 2').

( 3 )

Максимальная величина суммы этих двух потоков равна минималь­ ной пропускной способности всех приведенных множеств, разделяю­ щих рассматриваемые пары узлов, т. е.

max [/ (1 , 1 ') + / (2 , 2 ')] = с (1 , 2 ; 1 ', 2 ') =

= min (1 - 2; 1 '-2 '), с (1 -2 '; 1'—2)]. (4)

Д оказательство. Необходимость выполнения условий (1) — (4) очевидна. Доказательство достаточности проведем, построив кон­ структивный алгоритм нахождения допустимых потоков.

Для любого множества дуговых потоков в сети определим рекурсивно следующие множества узлов:

1.

Если

N i £ X i и x \ j + 1x \ j \ <

Ьц, то -/Vjf-XV

2.

ЛГ2 6 Х2. Если

N i £ X 2 и | x \ j | + х\, <

bi}, то Nj 6 Х 2.

15*

228

 

ГЛ . 11. М Н О ГО П РО ДУ К ТО В Ы Е

п о т о к и

3.

N 2£ X 2b.

Если N i 6 Х 2Ь и x\j + x2i j <

bij,

то N } £ X 2b*).

4.

N 2£ X 2f.

Если Ni £ X 2f и x1ji + x t j < b ij,

то N j ^ X y 1).

Дуговые потоки одного и того же продукта, протекающие по некоторой дуге в противоположных направлениях, можно анну­ лировать, что не изменит величины этого потока. Поэтому можно

вычислить остаточную пропускную способность дуги

Ац

для

потока 1-го продукта

следующим

образом. Пусть

x\j^> 0,

т. е.

по дуге Aij идет поток

1-го продукта в направлении

от Ni

к Nj.

Если мы еще хотим послать поток 1-го продукта из Ni

в Nj, то

остаточная

пропускная

способность

дуги

Ац

равна

b'ij = b-tj

\x\j\ х ц1. Если

мы хотим послать поток

1-го продукта из Nj

в Ni,

то

остаточная

пропускная

способность

дуги Ац

равна

Ьц — bij

| Хц | -f - Xij.

 

продукта

мы

имеем

Ъ'ц= Ьц

Аналогично для потока 2-го

— | x \j\ —x\j

или

b'ji =

bij — | x\j |

; - x\j

зависимости

от

того,

в каком направлении мы хотим пропускать этот поток).

 

 

Если

N i'6^i ,

т0 существует

цепь

из

N {

в АД-,

в которой

каждая дуга обладает положительной остаточной пропускной способностью: b'ij bij — | x\j \ ± xjj > 0. Следовательно, можно дополнительно пропустить по этой цепи поток 1-го продукта,

величины

min b'ij

(минимум берется по

всем дугам

этой цепи).

Аналогично, если N 2' ^ X 2,

можно пропустить

по

некоторой

цепи поток 2-го

продукта,

величины

min bij,

где

Ъ'ц = Ъц

— | x\j | ±

xij > 0.

 

 

1') + / (2, 2')

была мак­

Таким

образом, чтобы величина /(1,

симальна,

необходимо (но не достаточно), чтобы N y £

Xi и Лг2- 6

Х 2.

 

 

 

 

всех дуг этой

Рассмотрим некоторую цепь из N 2 в N y . Для

цепи установим положительное направление следующим образом. Если после удаления дуги A из цепи узел N t будет связан с уз­ лом N 2 посредством дуг этой цепи и узел Nj будет связан с узлом N y посредством дуг этой цепи, то положительным направлением дуги Aij считается направление от N t к Nj. Заметим, что поло­ жительное направление дуги устанавливается относительно неко­ торой цепи из N 2 в N y . Будем говорить, что дуговой поток xi} имеет прямое направление, если он идет от N t к Nj, и обратное, если он идет от Nj к N t. Заметим теперь, что если N,r 6 Х 2Ь, то существует цепь из N 2 в Лг2', в которой каждая дуга A i} имеет

остаточную

пропускную

способность btj + x)i

х\j >

0, и поло­

жительное

направление

соответственно — от

к Nj.

Эта цепь

называется

обратным путем из N 2 в N y.

цепь из N z в N y ,

Аналогично, если N 2’6:X2f, то существует

для каждой дуги A которой b,j -f х\} xij >

0, и положительное

1) Индексы соответствуют первым буквам английских слов backward (обратный) и forward (прямой).— Прим, перев.

11.1. Д В У Х П Р О Д У К Т О В Ы Е

п о т о к и

229

направление каждой дуги —направление

от Ni к N j.

Эта цепь

называется прямым путем из N 2 в N 2>. Прямой и обратный пути могут быть найдены с помощью метода расстановки пометок. Для простоты мы иногда будем называть эти два пути двойным путем

из N 2 в N 2>.

 

 

обратного

пути

определяется как

Пропускная способность

min (bij 4 - x)i х\j),

где

положительное

направление

дуги

Ац

направление от А*

к N j

(минимум

берется

по

всем

дугам

этого

пути). Аналогично,

пропускная

способность

прямого

пути

равна

т т ( Ь ^ + жЬ’ —x\j).

двойной

путь

из

N 2 в N 2> существует,

если

Очевидно, что

имеются обратный и прямой пути. Заметим, что обратный и пря­ мой пути идут из узла N 2 в узел N 2>, и слова «из N 2 в А 2->>будем иногда опускать.

Имеет место следующая лемма.

 

 

 

 

 

 

 

Лемма 11.4. Разрез (Х2Ь, Х 2Ь), в котором

N 2‘6 Х 2ь,

сущест­

вует тогда и только тогда, когда

нет обратного

пути из N2

в N 2>.

 

 

 

 

 

 

 

 

 

 

Д оказательство.

Необходимость.

Пусть

существует

разрез

{Х2ь, Х 2Ь), в котором N 2’ £ X 2b. Пусть Aij —любая

дуга,

связы­

вающая Х2ъ и Х 2Ь,

такая,

что N i £ X 2b и N j £ X 2b.

По определе­

нию множества Х 2Ъ,

должно выполняться: хц 4- хц — Ьц (иначе бы

узел N j £ X 2b). Каждая цепь из N 2 в N 2> должна

содержать по

крайней мере

одну

дугу из (Х2Ь,

Х 2Ь), причем,

как

мы выяс­

нили, для любой дуги из

(Х 2Ь, Х 2Ь) Ьцx\j хц =

0.

Отсюда

следует, что не существует

обратного пути из N2 в N 2>.

 

 

Достаточность.

Предположим теперь, что не существует

обратного пути из N 2 в N 2>. Построим тогда

множество

Х 2Ъ

рекурсивно по приведенным выше правилам, начиная с узла N 2.

На всех дугах Ац,

для которых iV; £ Х 2Ь и N j £ X 2b,

выполняется

равенство x\j +

x\j — Ъц. Множество

всех таких дуг

образует

раз­

рез (Х2Ь, Х 2Ь),

такой, что N 2 - 6 Х 2Ь.

я

 

 

 

 

 

 

Проанализируем

теперь,

как расположены

узлы iV4

и

N i*.

В зависимости от того, есть в разрезе (Х2Ь,

Х 2Ъ) дуга Ац с х\, Ф О

или нет, возможны два случая.

 

 

 

 

_

В первом случае по некоторой дуге

Ац

разреза

(Х 2Ъ,

А2Ь)

поток х\}фО.

Тогда

невозможно, чтобы

N i б Х 2ь и

N i - £ X 2b.

Действительно, в этом случае найдется по

крайней

мере

одна

цепь из Ni в N i ’, которая содержит

некоторую_дугу Aht из

{Х2Ь, Х 2Ь) с

дуговым

потоком xih> 0 ,

где

6 Xи N k £ X 2b.

230

ГЛ. 11.

МНОГОПРОДУКТОВЫЕ п о т о к и

 

Но это противоречит

тому факту, что Ъы — x\i —х\г= Ъы 4- х)и

хм = 0 (поскольку по условию

задачи должно быть

Аналогично

невозможно, чтобы

узлы N t и Ад-

оба находились

в Х 2Ь или

оба находились в Х 2Ь. Действительно,

тогда должна

существовать цепь из Ni в N i-, содержащая две дуги из (Х2Ь, Х 2Ь), одна из которых имеет x}h р> 0 .

Следовательно, если для некоторой дуги Ац разреза (Х2Ь, ХгЬ)

поток x\j Ф 0,

то N l £ X 2b, N i’£ Х 2Ъ.

 

 

 

 

Во втором случае для каждой

дуги разреза (Х2Ь,

Х 2Ь)

поток

xlj = 0,

т. е.

по каждой

дуге разреза (Х2Ь, Х 2Ь) идет

поток

х\$

= bij.

Тогда

нет никаких

ограничений на

расположение

узлов

Ni и N i’. (Естественно,

что

оба

эти узла

должны

лежать либо

в Х 2Ь,

либо в Х2Ь.)И

 

 

 

 

 

 

 

Лемма 11.5.

Разрез

(X2f, X 2f),

где N2>^X2f, существует тог­

да и только

тогда, когда нет прямого пути из N z

в N 2'.

 

Д оказательство этой леммы совершенно аналогично доказатель­

ству леммы 11.4, поэтому оно опускается, щ

 

 

 

Аналогично

вышеизложенному

доказывается, что

если в раз­

резе (X2f, X 2f)

по некоторой

дуге

Ац поток x\j ф. 0,

то N t £ X 2f

и N i>£ X 2f.

 

 

 

 

что следующие два события А

Из лемм 11.4 и 11.5 вытекает,

и В взаимно исключают друг друга.

 

 

 

 

A. Существует либо разрез (Х2Ъ, Х2Ь), такой,

что N2>^X2b,

либо разрез (X2f, X2f),

такой, что N 2’£ Х2/.

 

 

 

 

B.

Существует двойной путь из N2 в Й 2>.

 

 

 

Введем следующие обозначения!

x) = miax\j, где минимум берется по всем ненулевым дуговым потокам x\j > 0 прямого направления на дугах прямого пути;

хь = min x\j, где минимум берется по всем ненулевым дуговым потокам x\j > 0 обратного направления на дугах обратного пути;

bf = min (Ьц + x\j —xfj),

где А ц — дуги

прямого пути

с поло­

жительным направлением от Nt к Nр,

 

 

Ъь = min (Ьц -|- x\j x\j),

где А ц — дуги

обратного пути

с поло­

жительным направлением от Ni к N р,

 

 

xbf = min (х),

х\)\

 

 

 

bbf = min (bb,

bf).

 

 

 

11.1. Д В У Х П РО Д У К Т О В Ы Е п о т о к и

231

Теперь рассмотрим алгоритм, с помощью которого можно определить, допустимы ли потоки / ( 1 , 1 ') и / ( 2 , 2 ') и, если они

допустимы, построить их. (Этот же алгоритм может быть исполь­

зован для построения max

[/ (1 , 1 ') + / (2 , 2 ')].)

Пусть

r (l , 1')

и г (2,

2') — требуемые значения потоков

/ (1, 1') и /

(2, 2').

Чтобы обеспечить конечность алгоритма, будем

предполагать, что г (1, 1'), г (2, 2') и — четные числа. (В одно­ продуктовой задаче о максимальном потоке предполагается, что btj — целые числа.) В вычислительном отношении это не является ограничением, потому что рациональные дуговые пропускные способности можно свести к четным целым числам.

Алгоритм построения двухпродуктовых потоков, называемый

методом циклического потока, заключается в следующем ([106]).

Ш а г 0. Найти / (1, 1'), равный г (1, 1') (если это возможно), исходя из заданных bij. Это обычная задача нахождения однопро­ дуктового потока. Для ее решения можно воспользоваться мето­ дом расстановки пометок Форда и Фалкерсона [65].

Если окажется, что max / (1, 1') < г (1, 1'), то заданные огра­ ничения на поток являются несовместными. В противном случае перейти к шагу 1. (Если требуется найти max [/ (1, 1') + / (2, 2')],

то на шаге 0 найти m a x / ( l , 1 ')

= с ( 1 ,

1 ').)

Ш а г

1. Найти максимальный поток /

(2, 2'), исходя из про­

пускных

способностей b\j = Ъц

| x\j | ±

x\j. Это тоже обычная

задача о максимальном потоке (т. е. требуется определить, при­

надлежит ли узел N 2' к Х 2 или нет). Если при этом получается / ( 2 , 2 ') ^ г (2 , 2 '), то алгоритм построения допустимых потоков

закончен. Если же / (2, 2') < г (2, 2'), перейти к шагу 2.

Ш а г 2. Найти двойной путь из JV2 в N 2>. Если его не суще­ ствует, то заданные ограничения на поток являются несовмест­ ными. (Если решается задача максимизации потоков, то получен max [/(1, 1') + / (2, 2')].) Если же двойной путь существует, то положить h — min (x\f, 0,5bbt) *). (Если существует несколько прямых и обратных путей, то можно выбрать из них любую пару путей.)

Двойной путь можно рассматривать как цикл. Поэтому можно отправить поток 1 -го продукта величины h от N 2 к N 2' по обрат­

ному пути, а затем дальше от N 2>к N 2 по прямому пути. Очевидно, что эта операция не изменит величины / (1 , 1 '), и в каждом узле N t

J)

Алгоритм и все утверждения этого параграфа остаются справедли­

выми,

если положить h = 0,5bbf, а величины xj, х\,

не вводить в рас­

смотрение (см. [15*])»— Прим. перева

 

232

ГЛ.

11.

МНОГОПРОДУКТОВЫЕ п о т о к и

 

будет

выполняться

условие

^ хц =

0. Но для некоторых

дуг

может оказаться, что

| xjj | +

з

Ъц. (Совершенно ясно,

что

| хц | >

дуговые потоки одного продукта, идущие в разных направлениях, взаимно уничтожатся.) Перейти к шагу 3.

Ш а г 3. Увеличить / (2, 2') на 2h. Для этого надо направить поток 2 -го продукта по прямому и по обратному пути, т. е. h еди­

ниц потока по каждому из путей. После этого величина / (2, 2')

увеличится

на 2h. Далее мы

покажем,

что при

этом | xjj | +

+ I ХЬ I ^

bij на каждой дуге.

Перейти

к шагу

1.

Шаги 1, 2, 3 повторяются, и в конце концов либо совокупность заданных ограничений окажется недопустимой, либо будет пост­ роен поток, удовлетворяющий заданным ограничениям.

Рассмотрим сеть, изображенную на рис. 11.2. На рис. 11.3— 11.6 линии из длинных черточек со стрелками указывают направление потока 1 -го продукта, из коротких черточек со стрелками — на­

правление потока 2-го продукта. Сплошные линии изображают дуги, на которых нет дуговых потоков. Возле каждой дуги указы­ вается 3 числа: первое число — Ъц, второе — хц, третье — xfj. Если имеется только одно или два числа, это означает, что осталь­ ные числа — нули. На рис. 11.2 числа рядом с дугами означают их пропускные способности Ьгу. Мы хотим найти m a x / ( 1 , 1 ' )

и max [ / ( 1 , 1 ') + / ( 2 , 2 ')].

Ш а г

0.

Находим

 

максимальный

поток

m a x / ( 1 , 1 ' ) =

= с (1, 1') =

6 .

Этот поток изображен

на рис.

11.3.

Ш аг

1.

Находим /(2,

2'), исходя из остаточных пропускных

способностей Ъц-—Ъц\ x

\j

\ ± x \j . Для этого находим цепь, состоя­

щую из дуг А23, А 38, A s2

'-

Величина потока 2-го продукта равна 2.

Это изображено

на рис.

11.4.

 

 

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