Файл: Ху, Т. Целочисленное программирование и потоки в сетях.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± и 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- Тогда в результате суммирования всех построенных подсетей