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

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

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

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

Добавлен: 15.10.2024

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

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

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

10.3. ДЕКОМПОЗИЦИОННЫЙ АЛГОРИТМ

203

при всех дальнейших вычислениях останется (i, j) = j и (/, к) = к. Таким образом, выражение (2) правильно указывает, что в крат­ чайшей цепи за узлом N t идет узел Nj, а за узлом Nj — узел iVft. Теперь заменим исходную кратчайшую цепь из N p в N q другой, которая имеет ту же длину, что и исходная, но меньшее число узлов, т. е. введем новую базисную дугу A ik длины dl} + сД. Продолжая рассуждения рекуррентно, получим требуемое утверж­ дение.

Рассмотрим еще одну задачу [109]. Пусть имеется сеть с про­ пускными способностями дуг Ъц. Назовем пропускной способ­ ностью пути из узла Np в узел N q величину наименьшей из про­ пускных способностей дуг этого пути. Путь из N p в N q будем назы­ вать путем с максимальной пропускной способностью, если его пропускная способность не меньше, чем пропускная способность любого другого пути из N p в N q. Тернарная операция, аналогич­ ная введенной в этом параграфе операции (1 ), может быть исполь­

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

bih: = max [biA, min (bi}, bJk)]

(3)

для всех i, к Ф ], vi проводится последовательно для j

— 1,2, . . .

. . ., п.

Вместе с вычислением матрицы bih вычисляется справочная матрица размера т X п, аналогичная справочной матрице, рас­ смотренной выше. Элемент (г, к) этой матрицы полагается сначала равным к, а затем

(г, Д если bik < min ц, bJk),

(г, к), если bih> min (Ьц, bJh).

10.3. Декомпозиционный алгоритм (Ху |1 И ], [113J)

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

Рассмотрим некоторое подмножество узлов в сети и обозначим его буквой А. Пусть X — некоторое другое подмножество узлов. Назовем множество X множеством, отрезающим А, если оно обладает следующим свойством: при удалении из сети множества X вместе со всеми инцидентными дугами сеть распадается на две несвязные компоненты, одна из которых содержит все узлы мно­ жества А и только эти узлы. Множество X, отрезающее А, назы­ вается минимальным отрезающим множеством, если никакое


204 г л . 10. К РА ТЧА Й Ш И Е Ц Е П И И ПОТОКИ М И Н И М А ЛЬН О Й с т о и м о с т и

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

Сначала рассмотрим декомпозиционный алгоритм в его простей­ шей форме, а именно покажем, как разложить сеть на две части. Предположим, что наша сеть N разбита на три множества узлов:

N = A U X U В,

где X — минимальное

множество,

отрезаю­

щее А. Обозначим через | А | мощность множества А.

Присвоим

узлам из множества А индексы 1 , 2 , . . . ,

| А |, а узлам из X

индексы | Л | + 1,

\ А | + 2, | Л | + | X

|. Тогда соответствую­

щая матрица расстояний будет иметь вид, представленный в таб­

лице 10.4, причем Daa =

[djj],

где N t 6 A,

Nj 6 A, DAB = [йгД

где N t £ A, Nj £ В и т. д. В

начале вычислений все

элементы

Dab и D Ва равны бесконечности.

 

расстояний

 

где

Мы ввели обозначение Da$ для матрицы

[dtj],

N i £ a и Nj 6 Р- Иногда удобно использовать символ dap

для

обо­

значения одного из элементов матрицы Daр.

 

 

 

 

Таблица

10.4

 

 

 

D a a

d a x

D a b

 

 

 

d x a

Dxx

d x b

 

 

 

D b a

DBx

D B b

 

 

 

Введем новое понятие — условно кратчайшая цепь. Цепь назы­ вается условно кратчайшей, если она является кратчайшей при условии, что все узлы этой цепи принадлежат некоторому задан­

ному

подмножеству узлов сети. Кратчайшее

расстояние между

Nt и

Nj обозначим d*) (при этом кратчайшая

цепь из Ni в Nj

может содержать любые дуги сети). Длину условно кратчайшей цепи из Ni в Nj обозначим d*j (у), где у — то подмножество, которо­ му должны принадлежать узлы этой цепи. Матрицу условно

кратчайших расстояний

[d*j(y)],

где

N t £ a, Nj £ р,

обозначим

Пар (у),

а

ее

элементы —d£p(y).

Так

как

вся

сеть

обозначена

буквой N,

то d*j{N)—d*j. Если

известно,

что

кратчайшая цепь

лежит в множестве у,

то

 

 

 

 

 

 

 

 

 

 

 

d^(y) = d^(N).

 

 

(1)

Введем обозначение

А = А ЦХ ,

В — В\]Х. Будем считать, что

исходная сеть образована из двух сетей,

перекрывающих друг

друга.

Первая

из этих

сетей, называемая

Я-сетью,

состоит из


10.3. ДЕКОМПОЗИЦИОННЫЙ

АЛГОРИТМ

205

узлов Ni, принадлежащих А, и дуг Aij,

где N t, N j £ A .

Вторая

сеть, называемая 5-сетыо, состоит из узлов АД, принадлежащих 5, и дуг A kl, где АД, N ^ B .

Сначала выполним тернарные операции в А-сети. В результате получим условно кратчайшие цепи между всеми парами узлов

A-сети. В частности, получатся условно кратчайшие расстояния между всеми парами узлов из X. После этого выполним тернар­ ные операции в 5-сети, причем в качестве расстояний между узла­ ми из X возьмем условно кратчайшие расстояния, найденные ранее при вычислениях в A-сети. Затем выполним тернарные

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

Теорема 10.1. Пусть

N = А \ ) Х \ } В , причем удаление мно-

зкества X делает сеть несвязной. Пусть найдены условно кратчай­

шие расстояния Dxx (А ).

Тогда кратчайшие расстояния между

любыми двумя узлами В-сети могут быть получены, если тернар­

ные операции выполнять только в В-сети. (Заметим,

что А =

= N - В . )

 

 

 

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

кратчайшая

цепь лежит

целиком

в множестве В, то d%B (N)

= d%B (В), т.

е. достаточно выполнить

тернарные

операции

только

в

 

А

л

а

5-сети.

 

 

 

 

 

 

 

 

 

Рассмотрим

теперь

случай,

 

 

 

 

когда

кратчайшая

цепь

 

имеет

 

 

 

 

несколько участков, лежащих в

 

 

 

 

множестве А. Символически этот

 

 

 

 

случай

изображен на

рис.

1 0 .6 .

 

 

 

 

Рассмотрим

кратчайшую

цепь

 

 

 

 

из N p

в N q,

скажем

из АД в N e.

 

 

 

 

Так как эта цепь начинается и

 

 

 

 

кончается

в 5 ,

а X является мно­

 

 

 

 

жеством, отрезающим 5 , то любой

 

 

 

 

участок рассматриваемой цепи,

ле­

 

 

 

 

жащий

в

А,

должен

начинаться

 

 

 

 

и кончаться

в множестве

X.

На

участка:

из АД в N 3 и из Ni

рис.

1 0 .6

изображены два

таких

в АД.

Если известны величины d*3 (А)

= d*3 (N — 5) и d*3 (А) =

= d*&(N — 5),

то можно

считать,

что именно в 5-сети имеется

две

дуги:

А 23

длины d*3 (N — B)

и

А 45

длины

d*5 (N В).

Тогда

кратчайшая

цепь

из

Ni

в

N e состоит

из следующих

частей: цепи

из N t в

N 2, дуги А 23, цепи из N 3 в АД, дуга А 45,

цепи из N 5 в N q, причем все эти части лежат целиком в 5-сети


206 гл. 10. КРАТЧАЙШИЕ ЦЕПИ И ПОТОКИ МИНИМАЛЬНОЙ СТОИМОСТИ

Таким образом, при нахождении кратчайшей цепи достаточно рассматривать только 5-сеть. Заметим, что проведенные рассуж­

дения не зависят от числа участков цепи, лежащих в А.

Ясно, что теорема остается справедливой, если в ее формули­ ровке поменять местами А ж В. щ

Введем теперь одну специальную операцию над матрицами, которая будет использоваться в декомпозиционном алгоритме.

Заметим, что, для того чтобы попасть из некоторого узла N t 6 А в некоторый узел N k 6 В, необходимо пройти по крайней мере через один узел Nj 6 X. Если перебрать все цепи, проходя­

щие через каждый из узлов Nj £ X, и выбрать среди них кратчай­ шую, то в результате, естественно, будет найдено кратчайшее расстояние d*k. Таким образом, при фиксированных i и к наде выполнить следующую операцию:

4 = т ш ( ^ + 4 ),

/ = 1 , . . . , р ,

Ni £ A,

N k £B,

(2 )

s

 

 

 

 

 

 

где р —мощность

множества X.

 

имеют размеры

Пусть матрицы расстояний DAx(N) и А г в ( А )

соответственно па х р

и

р х щ Операция

(2) напоминает

опера­

цию умножения

двух

матриц, в которой

символ

« X » заменен

символом «4-»,

а суммирование заменено взятием минимума.

Будем называть операцию (2) композицией матриц.

 

Общее число сложений при выполнении всех операций (2)

равно па х пь х

р; таково же общее число сравнений.

 

Сформулируем теперь декомпозиционный алгоритм для случая

двух перекрывающихся

сетей.

 

 

 

Ш а г 1. Выполнить в сети А все тернарные операции приме­ нительно к матрице

А А А

А а х

_ А х а

Вхх\

В результате выполнения этого шага получим матрицы D*AA(A)r

Вах (А), DxA{A), Dx x (A).

Ш аг 2. Выполнить все тернарные операции применительно к матрице

Вхх {A) DXB

_Авх Авв_

В результате по теореме 10.1 получим Dxx(N),

A b b ( X ) .

D x b ( N ) , D%x(N)t


 

 

10.3. ДЕКОМПОЗИЦИОННЫЙ АЛГОРИТМ

207

Ш а г

3.

Выполнить все тернарные операции применительно

к матрице

 

 

 

 

 

~D*a a (A)

D*aX {A)

 

 

 

D%a {A)

D*x x {N)_-

 

В результате по теореме ЮЛ получим DA±(N), DAX(X), DXA(N),

DXX{N).

 

 

 

 

Ш аг

4.

Используя операцию (4), получить DAB(N) и DBA(N).

Подсчитаем число операций сложения, требующихся для выпол­

нения этого алгоритма. (Операций сравнения столько же.) Для

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

при

вычислении

матрицы размера

п X п требуется п3 операций сложения,

а не п (п 1 ) (п 2 ).

На шаге 1 алгоритма требуется выполнить ( | А | +

| X

|)3

опера­

ций,

на

шаге

2 — ( | В | +

| X

|)3

операций,

на

шаге 3 —

( | А |

+

| X

|)3

операций, на шаге 4

— 2

| А |- | X | - | В |

опера­

ций.

Таким

образом,

общее

число

операций

 

сложения

равно

2

(| А | +

| X |)3 +

(|

В | +

| X |)3

+

2 | А |. | X

|- !

В |.

Общее

число операций сложения, если выполнять тернарные

операции

в

общей

сети

N,

не

используя декомпозиционного алгоритма,

равно (| А |

+

| X

| +

| В |)3.

Положим,

что | А | =

| В |. Тогда

использование

декомпозиционного

алгоритма

позволяет

умень­

шить

общее

число

операций

сложения на величину

5 | А \3

 

+

| А |2' | X

| — 3

| А |-1 X

|2

— 2

| X |3. Таким образом,

деком­

позиционный алгоритм уменьшает объем вычислений при

| А )

>

>

I *

I-

 

 

 

 

 

 

вычислений уменьшается на вели­

 

Если | + |+=|.В |, то объем

чину 3| Л | . | В | . (| Л | +

| В | ) - | Л I3 — 3 | Л |2 . | Х | +

 

4 | Л | . | В | . | Х |

— 3 1А\-\ X !2 — 2 1X |3.

Например,

если

\ В \ =

- ^ п ,

| А \ = - ^

п,

I ^ I =

То п’ то °^ъем вычислений уменьшается на

 

п3

действий.

 

В

том случае,

когда сеть

имеет

большие размеры

и

«слабо»

связна, удобно разлагать сеть на несколько перекрывающихся сетей. Пусть, например, сеть можно разбить на 4 перекрываю­ щиеся подсети. Матрица расстояний для этой сети имеет вид, представленный на табл. 10.5, где незатемненные области состоят из элементов dtj — оо.

Чтобы построить матрицу расстояний такого вида, поступают следующим образом. Некоторое подмножество узлов выбирают в качестве А. Минимальное множество, отрезающее А, выбирают

в качестве

Х А.

В качестве В можно взять некоторое

множество

(не обязательно

минимальное),

отрезающее

А \ ] Х а ,&

в

качестве

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

отрезающее

A [J ХА (J В. (Заме­

тим, что

минимальным

множеством, отрезающим В ,

 

является

^ а 1)Хв.)

В качестве С возьмем некоторое множество,

отрезаю­

щее + (J ХА U В U Х в ,

а в качестве Хс — минимальное мно­