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

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

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

ДОПОЛНЕНИЕ

163

4. Задана сеть, содержащая ориентированные и неориентиро­ ванные дуги; величина максимального потока из N s в N t равна v. Изменится ли величина максимального потока, если заменить

каждую неориентированную дугу пропускной способности Ъ па­ рой ориентированных дуг с противоположными направлениями (причем каждая из них имеет ту же пропускную способность 6)?

Почему?

5. Задана сеть, в которой величина максимального потока из N s в N t равна v. Какова будет величина максимального пото­ ка, если в сеть добавить неориентированную дугу пропускной способности Ь? Что изменится, если дугу с пропускной способ­ ностью Ъ, наоборот, удалить из исходной сети?

Дополнение

1. При получении максимального потока с помощью метода расстановки пометок все пометки стираются после нахождения некоторого пути, увеличивающего поток. В модификации этого метода, предложенной Скоинсом [177] и Джонсоном [119], каждый узел получает 3 пометки. После нахождения некоторого пути, увеличивающего поток, стирается только одна ветвь некоторого дерева, содержащего найденный путь, увеличивающий поток. В работе Джонсона проводится также обсуждение свойств базис­ ных решений в сетевых терминах.

2.В работах Минти [151—154] подробно обсуждаются резуль­ таты, связанные с использованием потоковых задач в электриче­ ских цепях.

3.Всякая сеть может быть описана матрицей инциденций узлов по отношению к дугам. Таким образом, можно определить, что такое разрез для матрицы инциденций узлы — дуги. Рассмотрим теперь произвольную матрицу действительных чисел. Можно ли для нее определить, что такое разрез? Обобщение сетевых понятий на более абстрактные и общие системы проведено в работах Фалкер-

сона [69], Эдмондса и Фалкерсона [57].

11*

ГЛАВА 9

МНОГОПОЛЮСНЫЕ МАКСИМАЛЬНЫЕ ПОТОКИ

9Л. Постановки задач

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

межуточные.

Будем изучать только неориентированные сети,

т. е. такие,

в которых Ъ — Ъц для всех i, ]. Именно для таких

сетей найдены простые и красивые решения. (В работе [95] усло­ вие Ъц = Ьц заменено более слабым.)

Будут проанализированы следующие вопросы.

1. Условие реализуемости. Обозначим ч е р е з в е л и ч и н у макси­ мального потока между узлами N t и N j . (i, j = 1 , 2 , . . ., щ i Ф j).

Какая связь существует между этими величинами /^? Каковы необходимые и достаточные условия того, что множество п^п ^

чисел является множеством величин максимальных потоков / i7между всеми парами узлов в некоторой сети?

2. Анализ сети. Задана сеть с ограниченными пропускными способностями дуг. Каковы величины f tj максимальных потоков между всеми парами узлов в заданной сети? Естественно, чтобы ответить на этот вопрос, достаточно решить задачу о потоке для всех пар узлов, но, оказывается, можно обойтись более про­ стыми средствами.

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

9 .2 , УСЛОВИЕ РЕАЛИЗУЕМОСТИ

165

9.2.Условие реализуемости (Гомори и Ху [89])

Взаданной неориентированной сети с пропускными способно­

стями дуг btj

= bji величины максимальных потоков f tj, очевидно,

являются симметричными, т. е.

= fj t. (Для удобства положим

/ ;г = оо для всех

i.) Справедлива

следующая

теорема:

 

Т ео рем а

9.1

(теорем а о р еа ли зуем о сти ).

Для

того

чтобы

множество неотрицательных чисел fa = fSi (г,

/ =

1 , 2,

. . ., п )

являлось множеством величин максимальных потоков в некоторой сети, необходимо и достаточно, чтобы

/ife^m in (fij, fjh) (для любых г,

j, k).

(1 )

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

 

 

Необходимость. В качестве источника

возьмем узел

N t,

а в качестве стока — узел N h. Тогда по теореме о максимальном потоке и минимальном разрезе

Ы = С(Х,

X),

(2)

где N i £ X , Nk 6 X. Узел Nj принадлежит либо X,

либо X. Если

N j £ X , то (X, X) будет разрезом,

разделяющим Nj

и N k, и, сле­

довательно,

 

 

fjk<c(X, Х) = /№ .

(3)

Если же N j £ X , то (X, X) будет разрезом, разделяющим N t viNj, поэтому

f i j < c { X , X) =

f ih.

(4)

Итак, должно выполняться хотя бы одно из условий (3) — (4),

и , следовательно, f ik ^ min (/i;-, fjh).

Необходимость доказана.

Прежде чем доказывать достаточность, сделаем несколько

замечаний.

следует,

что

Из соотношения (1) по индукции

/ ln> m in (/12, h з, • • •, fn-i, п),

(5)

где N u N г, ■• ., N n — любой набор узлов рассматриваемой сети. Возьмем любые три узла в сети и рассмотрим величины макси­ мальных потоков fij, fjk, f ik между ними. (Напомним, что f tj = = fji.) Оказывается, что среди этих трех чисел по крайней мере два должны быть равны. Действительно, если бы все три числа были различны, то, поместив меньшее из них в левую часть нера­ венства (1), мы получили бы противоречие. Более того, если одно

166 ГЛ. 9. МНОГОПОЛЮСНЫЕ МАКСИМАЛЬНЫЕ ПОТОКИ

из этих трех чисел не равно двум другим, то оно долйшо быть боль­

ше, иначе снова получим противоречие с (1). Если начертить ”^ге ^

неориентированных дуг

между всеми узлами сети, длины кото­

рых пропорциональны

величинам максимальных потоков f tj,

то каждый треугольник

будет иметь по две равные стороны,

а третья сторона будет больше или равна другим. Таким образом, неравенство (1 ) является своего рода «неравенством треугольни­

ка», которое налагает на величины

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

сильные ограничения.

 

Из соотношения (5) следует, что среди

^ величин f tj — fл

(в сети с п узлами) существует не более п — 1 различных. Докажем

это следующим образом. Рассмотрим полный граф с п^п ^ дуга­

ми, длины которых пропорциональны соответствующим величи­ нам максимальных потоков. Выберем среди этих дуг те, которые образуют максимальное связывающее дерево. Оказывается, что каждая из величин f i} должна быть равна длине одной из п 1

дуг этого дерева. Предположим, что f ln — одна из величин f tj, которая не равна ни одной из длин дуг дерева. Существует един­ ственный путь из N { в N n, состоящий из дуг рассматриваемого максимального связывающего дерева. Из (5) следует, что величи­ на fin должна быть больше или равна минимальной из длин / ;;- дуг, входящих в этот путь. Если бы величина / 1п была строго больше, то мы могли бы заменить минимальную из дуг, входящих в путь, дугой длины / 1п. При этом получилось бы другое связы­ вающее .дерево с общим весом, большим, чем у максимального связывающего дерева, что невозможно.

Достаточность. Построим сеть, в которой заданный набор чисел ntj, удовлетворяющих условию (1 ), будет множеством вели­

чин максимальных потоков между всеми парами узлов этой сети.

Для этого числа ntj, j > i, удовлетворяющие условию (1), будем считать длинами дуг некоторого полного графа. Найдем в этом графе максимальное связывающее дерево. Затем рассмотрим сеть, имеющую ту же структуру, что и построенное дерево, у которой пропускные способности дуг btj равны заданным числам п^. Покажем, что в этой сети поток между N t и N j, такой, что / i7- = = пи, будет максимальным. Действительно, для любой пары уз­ лов этой сети выполняется соотношение

/ij = min ipu, bi2l . . . , bqj) = min (пц, nl2, . . . , nqJ),

где bH, bi2, . . ., bqj — пропускные способности

дуг, образую­

щих в дереве единственный путь из N t в N j. Но,

как было заме­

чено выше, для чисел пц, удовлетворяющих условию (1 ) (а следо-

9 .3 . АНАЛИЗ СЕТИ

167

--------------------------------------------------------\-----------------------------------------

 

вательно, и условию (5)), справедливо

пц = min (пи, п12, . . nqj).

Таким образом, f i} = п ц .ш

Заметим, что при доказательстве достаточности мы показали, что если некоторое множество чисел является множеством вели­ чин максимальных потоков (или, как говорят, реализуемо в ка­ честве множества максимальных потоков), то оно реализуемо деревом.

9.3. Анализ сети (Гомори и Ху [89])

Обратимся теперь к задаче анализа потоковой сети. Имеется неориентированная сеть с ограниченными пропускными способ­ ностями дуг bij. Требуется найти величины максимальных потоков

между р узлами

сети, где 2 ^ р ^ п. Покажем, что для этого

не нужно р (р~ ^

раз вычислять максимальный поток между каж­

дой парой узлов, а достаточно решить лишь р 1 задач о макси­

мальном потоке, причем каждый раз задача решается в более простой сети, чем исходная.

Рассмотрим сначала процесс, называемый сжатием нескольких узлов в один узел. Основная идея состоит в том, что несколько узлов сети принимаются за один (рис. 9.1). Другими словами, можно считать, что дуги между всеми «сжимаемыми» узлами полу­ чают бесконечную пропускную способность. При этом дуги, свя­ зывающие некоторый узел N t (не принадлежащий к числу сжи­ маемых) со всеми сжимаемыми узлами, заменяются одной дугой с пропускной способностью, равной сумме пропускных способ­ ностей заменяемых связывающих дуг.

168

ГЛ. 9. МНОГОПОЛЮСНЫЕ МАКСИМАЛЬНЫЕ ПОТОКИ

Например, если сжать узлы N 3, N e и N 8 в один узел (рис.. 9.1), то получится сеть, изображенная на рис. 9.2. В сети на рис. 9.1

величина максимального потока

/ 27 = с (У , У) =

4. Здесь Y

=

= {2}, У = {1,3, 4, 5, 6 , 7,

8 },

минимальный

разрез (У,

Y)

состоит из дуг А 21 , А 2з, А 2в-

Увеличение пропускных способностей

дуг, не принадлежащих этому минимальному разрезу (У, У),

не повлияет на величину с (У, У) и может лишь увеличить про­ пускную способность других разрезов, разделяющих N 2 и Х 7. Таким образом, при сжатии узлов N 3, N e, N 8 разрез (У, У)

останется минимальным разрезом, разделяющим N 2 и N 7. Следо­ вательно, при вычислении максимального потока / 27 можно,

например, сжать узлы N 3, N 6, N a в один и производить вычисле­ ния в сети, изображенной на рис. 9.2.

Чтобы использовать эту идею более полно, изучим некоторые свойства минимальных разрезов в сети. Будем говорить, что два

разреза (X, X) и (У, У) пересекаются, если каждое из четырех множеств узлов X П Z f) У, X [\ Y , X [\ Y непусто.

Лемма 9.1. Пусть (X, X) минимальный разрез, разделяющий узел N i £ X и некоторый узел из X , и пусть N t, N k ^X . Тогданайдется минимальный разрез (Z, Z), разделяюгций Ni и Nu, который не пересекается с разрезом (X, X).

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

Пусть (У, У) — минимальный разрез,

разде­

ляющий

N t и

N k,

и допустим,

что он пересекается с

разре­

зом (X,

X).

 

 

 

 

Определим следующие множества:

 

 

 

 

х пУ =(?,

ХП Y=s,

 

 

 

 

ХП Y = p ,

ХП Y = R

 

(как показано

на рис. 9.3).

 

 

 

 

 

 

 

 

 

9 .3. АНАЛИЗ СЕТИ

 

 

 

 

169

 

Есть две возможности:

N i £ Q или N i £ S .

 

 

 

 

 

I.

 

Пусть

N t £Q,

N t £ P ,

N h£ R.

Так как (X, X) является

минимальным разрезом, разделяющим Nt и некоторый другой

узел

из X , то,

сравнив

 

его

 

 

 

 

 

 

 

 

с разрезом (Q, Р (J Л U S ),

по­

 

 

 

 

 

 

 

 

лучим

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c(Q,P) + c(S, P) + c(Q, R) +

 

 

 

 

 

 

 

 

 

 

+

с(5,

Л )<с(<?,

Р) +

 

 

 

 

 

 

 

 

 

 

 

 

+

с (@> R ) Jr c (Q>

S) .

 

 

 

 

 

 

 

 

 

 

 

 

Так как

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c(S, Л)>О,

 

 

 

 

 

 

 

 

 

 

 

 

то

из (1 ) следует, что

 

 

 

 

 

 

 

 

 

 

 

 

 

c(S,

R ) ^ c ( Q ,

S).

 

 

 

 

 

 

 

 

 

 

 

 

Поскольку

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

О < с ( Р ,

S),

 

 

 

 

 

 

 

Р и с.

9.3.

 

 

то, сложив (3) и (4) и при­

 

 

 

 

 

 

 

с (Q, Л)],

получим

 

бавив

к

обеим

частям

(Р , R)

 

с (Р, R)

+ с (IQ, R)

с (S, Л ) <

с (Р, R) + с (£, Л) +

С (<?, 5)

+

 

 

 

 

 

 

 

.

 

+ с ( Р , 5 ) .

 

 

 

 

(5)

 

Левая часть неравенства (5) представляет собой пропускную

способность разреза

U Q U S, Л), который разделяет узлы

N t

и N k и не пересекается

с

(X,

X).

Правая часть неравенства

(5)

есть

величина

пропускной

способности минимального разреза

(Y,

Y), разделяющего N t и

N h. Таким

образом,

U Q U <S\ Л)

является

искомым

минимальным

разрезом (Z, Z).

 

 

 

 

II.

В случае когда узел N г £

Л, можно аналогично показать,

что

(Р, Q U Л (J S)

является

искомым

минимальным

разрезом,

разделяющим N t

и

N h

и

не

пересекающимся

с

(X,

X).

 

 

Итак,

если

(X,

X) — минимальный

разрез, то при подсчете

величины максимального потока между двумя узлами из X мож­

но

сжать

в один узел все

узлы множества Х .и

 

 

 

 

Л емма 9.2. Пусть (X ,

X )

произвольный минимальный разрез,

отделяющий заданный узел

N t £ X

от

какого-либо другого узла

сети. Пусть N г

произвольный узел из X . Тогда найдется мини­

мальный разрез

(Z, Z), разделяющий узлы N t и N г, который

не

пересекается с разрезом (X, X).

170

ГЛ. 9. МНОГОПОЛЮСНЫЕ МАКСИМАЛЬНЫЕ ПОТОКИ

Д оказательство. Пусть (У, У) — минимальный разрез, разде­ ляющий узлы N t и N ь который пересекается с (X , X). Пусть, как и в предыдущей лемме,

 

хпи = е,

xn^-s,

 

 

 

 

 

 

 

х п у =

р ,

х п п = /?,

 

 

 

 

 

 

где

£ R, a

(рис. 9.4).

 

 

 

 

 

 

 

 

Так как (X , X) является минимальным разрезом, то, как и при

доказательстве’ леммы

9.1,

можно

получить

неравенство

(5).

 

Y

 

 

В левой его части стоит вели­

 

 

 

чина пропускной способности

 

 

 

 

разреза Ц Q (J S, R),

разде­

 

 

 

 

ляющего N t и N t. В

правой

 

 

 

 

части (5) стоит величина про­

 

 

 

 

пускной

способности

мини­

 

 

 

 

мального

 

разреза

 

(Y , Y).

 

 

 

 

Таким образом, у Q (J S, R)

 

 

 

 

является

искомым

разрезом

 

 

 

 

(Z , z ) . v

 

 

 

 

 

 

 

 

 

 

 

Из леммы следует, что

 

 

 

 

если (X, X) является мини­

 

 

 

 

мальным разрезом, отделяю­

 

 

 

 

щим N ;

£ X

от некоторого

 

 

 

 

другого узла сети, и тре­

 

 

 

 

буется найти величину мак­

 

 

 

 

симального

 

потока

fu,

где

 

 

 

 

N i — произвольный

узел

из

X,

то множество X

может

быть

«сжато»

в

один

узел.

 

Лемма 9.3. Пусть (X , X) — ^минимальный разрез, разделяю­ щий заданные узлы N а и N ь, N г — произвольный узел из X, N j

произвольный узел из X. Тогда существует минимальный разрез (Z, Z), разделяющий узлы N ; и N j, который не пересекается с раз­ резом (X, X).

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

Предположим,

что

(У, У) —минимальный

разрез,

разделяющий

N t и

N j

и

пересекающийся с разрезом

<Х, X).

Тогда f u = c(Y, У).

 

 

 

 

Пусть (рис. 9.5)

 

 

 

 

 

 

Х П У =

<?,

Х П ^ =

£ , -

 

х п у = л

х п у = я .

 

 

 

 

 

 

 

 

 

9.3. АНАЛИЗ СЕТИ

 

 

 

 

 

171

Не

теряя общности,

можно считать, что N t £Q,

N j £ R . В зависи­

мости от того, где лежат

N a и N b, возможны три случая (осталь­

ные случаи симметричны).

 

 

 

 

 

 

 

 

 

I. Пусть

N a£Q,

N t £Q,

 

 

 

f

Y

 

 

 

 

N b£ R,

 

N j £ R .

Тогда

из

 

р

 

A '

 

 

 

 

(1) — (5)

 

 

следует,

что

 

 

 

 

Q

 

 

 

U <? 0

$ 1

Щ является иско­

 

 

 

 

 

 

 

 

 

мым минимальным разрезом.

 

 

 

 

 

 

©

 

 

II.

Пусть

N a6S,

Ni 6 Q,

 

 

 

 

 

 

 

 

Nb £ P ,

N j £ R .

 

Так

как раз­

x<

 

 

 

 

 

 

 

рез

(X,

X) —минимальный

 

 

 

 

 

}

X

из разрезов,

разделяющих N a

 

 

 

 

 

 

 

 

 

и N b,

а

(S ,

Р у Q U R) — раа-

 

 

 

 

 

 

 

 

 

рез,

разделяющий N a и N b, то

 

 

 

 

 

 

 

 

 

c{Q, P) + c(Q,

R) + c(S, Р) +

 

 

 

 

 

 

 

 

 

+ c(S,

Д ) < с ( 5 ,

<?) +

 

 

 

 

 

 

 

 

 

 

 

+ c{S,

PY+c( S,

R).

 

 

 

 

 

 

 

 

 

 

В силу c (Q,

R) > 0 имеем

 

 

 

 

 

 

 

 

 

c((?, P ) ^ c ( S , Q ) = c(Q,S).(Q)

 

 

 

 

 

 

 

 

 

Поскольку

разрез (P , Q (J S (J R) также разделяет

N a и

N b,

то

 

 

c(X,

X) = e(Q, P) + c(Q,

7?) + c(S, P) +

c(S,

Д ) <

 

 

 

 

 

 

 

 

 

 

<c(<?, P)~{~c(S, P)-\-c(R, P).

 

 

 

 

В силу

c(Q,

i?) > 0

имеем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c(S, R ) ^ c ( R ,

P) = c(P, R).

 

 

 

 

(7)

Так

как c(P, S ) ^ 0,

t o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c(P, R) + 2c(Q, R) +

c(Q, S ) ^ c ( P ,

R) +

 

 

 

 

 

 

 

 

 

 

+ 2c (Q,

R) + c (Q, S) +

2c ( P , S ) .

 

 

 

(8 )

Складывая (6), (7)'и (8 ), получаем

 

 

 

 

 

 

 

И 0 ,

P) +

c(Q,

R) + c(Q, S)] +

[c(P, R) + c(Q,

R) + c(S,

/?)]<

 

 

 

< 2

[s(P,

R) + c(P,

S) + c(Q,

R) +

c (Q, S)]

 

 

(9)

или

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c(Q,

P

U R U S) + c(P

U

Q U 5,

Д ) < 2 с ( У ,

У). .

'

(Ю)

Отсюда следует, что по крайней мере одна из

величин с (Q,

Р

(J

U R U S), с (Р

[J Q U S,

R) не больше,

чем с (У, Y).

в

(10),

 

Поскольку каждый из трех разрезов, фигурирующих

отделяет N t

и N j, а (У,

У) —минимальный

из

них,

то

либо

172

ГЛ.

9.

МНОГОПОЛЮСНЫЕ

МАКСИМАЛЬНЫЕ

ПОТОКИ

(Q,

Р [I R

U

S),

либо U Q U

S, R) является

искомым мини­

мальным разрезом (Z , Z), разделяющим

узлы N t и Nj и не пере­

секающимся с разрезом (X, X).

 

 

(в этом случае лемма

 

III.

Пусть Ха€<?> N t £Q,

N b£ P,

N j 6 R

9.3 является обобщением леммы 9.2). Так как разрез (X, X) —

минимальный из

разрезов,

разделяющих N a

и N b,

a (Q, Р IJ

(J R

U S) — некоторый разрез, разделяющий N a и N b,

то

 

 

с (X, X ) < c ( Q , Р

U R U S)

 

 

или,

в более подробной записи,

 

 

 

 

c(Q,

P) + c(S,

P) + c(Q,

R) + c(S,

Д )<

 

^ c (Qi P ) Jr c (Q^ R ) Jr c (Qi &)•

Поскольку c(S, P ) ^ 0, t o

 

 

c(S, R) ^ c ( Q,

S),

 

(11)

а так как c(P,

S ) ^ 0,

t o

 

 

 

 

 

 

c(P, R)-~c(Q,

R ) < c ( R ,

R) +

c(Q,

R) + e{P, S).

(12)

Складывая (И ) и (12), получаем

 

 

 

 

 

с (P,

R)-\-c (Q,

R)-\-c (S,

R )s7l

 

<

с (P, R) +

c (Q,

R) + с (P, S) + c (Q, S)

(13)

или

 

 

 

 

 

 

 

 

 

c(P

U

Q U

5,

R ) < c ( Y ,

Y).

(14)

Таким образом, (P [J Q U S, R) —искомый минимальный раз­ рез (Z, Z), разделяющий узлы TV; и Nj и не пересекающийся с разрезом (X, X). в

Рассмотрим теперь произвольную сеть N, состоящую из п уз­ лов. Будем искать величины максимальных потоков между задан­ ными р узлами сети N. Эти р узлов, между которыми ищется максимальный поток, будем называть полюсами, а остальные п р узлов будем называть обычными или промежуточными. Пред­ положим, что имеется некоторая другая сеть N ', которая состоит из р узлов, причем величины максимальных потоков между р полюсами сети N равны величинам максимальных потоков меж­ ду р узлами сети N '. (Две сети, имеющие равные величины макси­ мальных потоков между некоторым множеством узлов, назы­ ваются потоко-эквивалентными или просто эквивалентными отно­ сительно этого множества узлов.) Тогда можно найти искомые величины максимальных потоков между р узлами, рассматривая

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