Файл: Ху, Т. Целочисленное программирование и потоки в сетях.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 15.10.2024

Просмотров: 203

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

176

 

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

ПОТОКИ

 

 

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

разделяющий

узлы

N t

и N a

и

ие пересекающийся с (X,

X)

и с (Z, Z ) 1).

 

 

 

'Пусть

для определенности N i £ Y ,

N a £ Y .

Тогда

узлы

'Nb

и Nj

принадлежат Y. (Если один из

узлов Nj,

N b принадлежит

У, а

другой — У,

то разрезы (У,

У) и (X, X) пересекаются;

оба

узла

Nj,

N b принадлежать

У не

могут,

поскольку N a и N.b

соседние

вершины

дерева,

причем N t лежит

в той

же части

дерева, что и N a,

а разрез (У, У)

отделяет Nt и N a-)

 

 

Так как (У,

У) — минимальный разрез,

разделяющий Ni и N a,

то fia = c(Y,

У).

Далее, поскольку

(У, У) — разрез,

разделяющий

Ni и N j,

то

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

с (У, У )> /„ =

с(Х , X).

 

 

 

(15)

Так как

(Z, Z) разрез,

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

Nt,

то из

(15)

следует

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c ( Z , Z ) ^ f ia = c ( Y , Y ) > c ( X , X ) .

 

 

(16)

Таким образом,

и в случае 1, и в случае 2

 

 

 

 

 

 

 

 

 

c(Z,

Z )> c(X ,

X).

 

 

 

 

(17)

Заметим,

что (X, X) —разрез, разделяющий N a и N b, поэтому

 

 

 

 

 

c ( X , X ) > f ab =

c { Z , Z ) .

 

 

 

(18)

Из (17) и (18) следует, что c(Z, Z) =

c(X, X) = fab. Поэтому соот­

ношение (5) из § 9.2 для величины максимального потока в сети между двумя несоседними полюсами дерева примет вид

/ij> m in (/ia, fab, .. , , f dJ) = min (via,

vab, ■■■,vdj),

(19)

тде Aia, A ab, - - - , A d j — последовательность

дуг, связывающая

узлы Nt и Nj в дереве.

 

 

С другой стороны, пропускная способность каждой дуги в пра­

вой части (19) является (по построению дерева) пропускной спо­

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

N t от Nj в исходной

сети N,

и,

следовательно,

 

 

 

 

ftj£^min(via,

vah, .. . , vdj).

(2 0 )

Из

(19)

и (20) следует утверждение теоремы.и

 

 

!) Пусть (У), У) —некоторый минимальный разрез, не пересекающийся

с ( X , X ) ,

а (У2, У2) — минимальный разрез, не пересекающийся

с ( Z , Z ) .

Тогда (У,

У) = (У1 П Уг. Уi П Уг) — минимальный разрез, не

пересекаю­

щийся с (X, X) и с ( Z , Z ) .


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

177

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

между узлами N и N 3, N k и N s.

 

 

Сначала выбираем два произвольных узла, скажем

и N 3,

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

между ними. Получаем

мини-

 

13

 

Р и с, 9.10,

Р и с .

9.11.

мальный разрез (Nit N 2, N 6 \ N 3, N t , N 5)

величины

13.

Симво­

лически это изображено на рис. 9.11.

 

 

 

Затем находим максимальный поток между N 3 и N t

в сети,

изображенной на рис. 9.12. Эта сеть получена с помощью сжатия узлов N u N z, N q (рис. 9.10) в один узел. В результате получаем

минимальный разрез (Nu N 2, N e, N 3, N 5 | iV4) величины 14, изо­ браженный на рис. 9.13. Заметим, что вершина {3, 5} соединена с вершиной {1 , 2 , 6 }, потому что они лежат по одну сторону в ми­

нимальном разрезе, разделяющем N 3 и iV4.

Затем находим максимальный поток между N 3 и N 5 в сети, изображенной на рис. 9.12. В результате получаем минимальный разрез (Nl, N z, N e, N 5, TV4 | N 3) величины 15, изображенный сим­

волически на рис. 9.14.

12 т. ху

178

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

Теперь каждая вершина в полученном дереве содержит только по одному полюсу. Таким образом, найдены следующие величины максимальных потоков в сети (рис. 9.14) : / l 3 — /14 — / i5 — 13, / 34= /4 5 = 14, /35 = 15. Они равны соответствующим величинам

максимальных потоков в исходной сети (рис. 9.10).

Если бы потребовалось найти величины максимальных потоков между всеми парами узлов, тогда надо было бы просто продол­ жить описанный процесс: выбрать, например, узлы N i и 7V6, и найти максимальный поток между ними в сети, изображенной

Р и с . 9.16.

Р и с . 9.17.

на рис. 9.15. В результате получили бы минимальный разрез (Ni, N z | N e, N 3 , N it N s) величины 17, изображенный на рис. 9.16. После этого надо выбрать узлы и N 3 и найти максимальный поток между ними в сети, представленной на рис. 9.17. В резуль­ тате получим минимальный разрез (N1 | iV2, N e, N 3, N t, N &) вели­ чины 18, изображенный на рис. 9.18. С помощью дерева, изобра­ женного на рис. 9.18, можно легко найти величины максималь­ ных потоков между всеми парами узлов (они выписаны в табл. 9.1).

Сети, представленные на рис. 9.18 и 9.10, имеют одинаковые величины fij максимальных потоков между всеми парами узлов. Такие сети, как уже говорилось раньше, называются потоко-экви­ валентными друг другу. Если в 2-х сетях равны величины макси-


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

179

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

14

18

Р и с . 9.18.

Например, сети на рис. 9.14 и 9.10 являются потоко-эквивалент­ ными по отношению к {./Vi, N 3, N &, ЛД}.

Описанный выше метод анализа сети позволяет строить потоко­ эквивалентную сеть, которая является деревом. Заметим, что

Таблица 9.1

 

®

©

©

©

©

©

®

со

Т8

13

13

13

17

 

 

 

 

 

 

(D

18

00

13

13

13

17

©

13

13

СО

14

15

13

 

13

13

1 4

СО

14

13

 

13

13

15

1 4

СО

13

©

17

17

13

13

13

СО

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

Поэтому это дерево называется деревом разрезов [89]. Дерево разрезов, содержащее п узлов, изображает п 1 минимальных

разрезов исходной сети, которые не пересекаются друг с другом. На рис. 9.19 эти разрезы изображены пунктирными линиями.

1 2 *


180

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

Р и с . 9.19,

9.4. Синтез сети (Гомори и Ху [89])

В предыдущем параграфе было показано, как находить вели­ чины максимальных потоков в заданной сети. Теперь будет изу­

чаться обратная задача: если заданы

^ чисел rtj, ограничи­

вающих снизу величины fu максимальных потоков между узлами,

 

 

Р и с .

9.20.

 

надо узнать,

какой

вид будет

иметь неориентированная

сеть,

у которой f u

^ ri}

и общая пропускная способность дуг

мини­

мальна?

 

 

 

 

Пусть заданы

чисел ri}. Их можно рассматривать как

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

доминирующими требованиями, а построенное дерево — деревом доминирующих требований Т. Например, если заданы числа гг;-, представленные на рис. 9.20(a), то дерево доминирующих требо­ ваний Т изображено на рис. 9.20 (б).

9.4. СИНТЕЗ СЕТИ

181

Сеть, в которой выполняется условие / г;- ^

rtj при всех i, j,

будем называть допустимой. Для того чтобы сеть была допусти­ мой, необходимо и достаточно, чтобы f tj ^ ri7для дуг дерева Т. Необходимость легко следует из того, что множество дуг дерева Т является подмножеством множества всех дуг. Чтобы доказать

достаточность, рассмотрим некоторую

дугу А 1р, не принадлежа­

щую

дереву

Т. Так как Т является

максимальным связываю­

щим деревом,

то

 

 

 

 

 

Пр^ т т ( г и , rJk,

.. ., r0p),

(1 )

где

rtj, rjh,

. . ., rop — длины дуг,

образующих

единственный

путь из Ni в N p в дереве Т. Тогда в любой сети, в которой выпол­ няются доминирующие требования, поток f ip будет удовлетворять следующим условиям:

/ip ^ m in (fa, fjh, • f0p)> m in (гij, rjh, .. . ,r0 p) ^ r ip. (2 )

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

Обозначим через Ъц искомую пропускную способность дуги A tj. Общая пропускная способность всех дуг в неориентированной

сети равна 4- 2 Ьц. Построим нижнюю границу CL для этой вели-

чины в допустимой сети. Рассмотрим произвольный узел N t сети. Пусть ut = max rtj, т. е. максимум берется по всем дугам, инци-

дентным

з

 

этому узлу N t. В любой допустимой сети величины bi}

должны

быть настолько большими, чтобы поток величины

ut

мог выйти из каждого узла N t, т. е. должно быть:

ut.

 

i

 

Тогда нижняя граница Сь общей пропускной способности будет равна

C l = T 2 U i ^ Y

2 ъ а -

i

i, 3

Перейдем к описанию процедуры синтеза сети, предложенной Гомори и Ху [89], которая позволяет построить допустимую сеть с общей пропускной способностью, равной нижней границе Cl - Заметим, что величины иг могут быть получены, если пользовать­ ся только доминирующими требованиями, т. е. и( = max г^, где

максимум берется

по дугам дерева Т, инцидентным узлу N t.

Пусть имеется

некоторое фиксированное дерево Т.

Зададим

на нем длины дуг nj и подсчитаем при этих гц

величину ниж­

ней границы Cl .

Затем зададим на нем новые

длины

дуг г'ц


182

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

и подсчитаем при этих г'ц новую величину нижней границы С£. Пусть теперь дугам этого же дерева Т приписаны длины гу =

гц-\-г'г}\ вычислим при этих г у величину нижней границы С£.

Тогда, вообще говоря, получим C'i^LCL-\-C’L, поскольку maxгу

и maxгу могут не совпадать на

 

S

 

каждом из узлов N t. Но если

з

 

 

т. е. г у

= г

гу (или Гу) являются равномерными требованиями,

для всех дуг из Т, то

а = с ь+с'ь.

 

(3)

 

 

Теперь рассмотрим две сети, одна из которых имеет пропуск­

ные способности дуг Ьц и

величины максимальных

потоков

/у ,

а другая —соответственно

Ъц’ и . Построим третью

сеть с

про­

пускными способностями дуг b'ij =

-f- Ьу. Тогда ясно, что вели­

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

в третьей сети удовлетворяют

условию

 

 

 

( 4)

 

 

 

 

Рассмотрим теперь заданное дерево доминирующих требова­ ний Т. Обозначим через rmin наименьшую из длин гу дуг этого дерева, а величины гу представим в виде rmin + (гу — rmin).

Тогда исходное дерево можно разложить на два дерева, одно из которых обладает равномерными требованиями rmin, а другое — требованиями Гу — rmin. Второе дерево может состоять из двух

или нескольких частей, не связанных

между собой, так как

Гу — rmIn = 0 для некоторых Ну. Или

же можно считать, что

эти части связаны между собой дугами с нулевыми Гу. Заметим,

что дерево с равномерными требованиями гт ;п является связным, в противном случае (3) не выполняется.

Например, дерево Т на рис. 9.20 (б) можно разложить на несколько частей, представленных на рис. 9.21. Затем таким же образом может быть разложена каждая часть, обладающая нерав­ номерными требованиями, и процесс разложения может быть продолжен до тех пор, пока исходное дерево Т не будет представ­ лено в виде «суммы» деревьев с равномерными требованиями. Например, разложение на рис. 9.21 может быть продолжено, при этом получится разложение, представленное на рис. 9.22.

Пусть термин синтезировать дерево означает: «построить сеть, в которой величины максимальных потоков больше или равны требованиям Гу, заданным на этом дереве». После того как дерево

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