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

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

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

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 Х в ,

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

208 ГЛ.

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

жество,

отрезающее A U Х А U В U Х в (J С. Этот процесс про­

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

Сеть,

соответствующая

табл.

10.5,

разложена на 4 перекры­

вающиеся сети:

А = А [ ] Х а ,

В =

Х а \] В \j Х в ,

С = Х в [)С {] Х с и

D = X C[]D.

 

 

Таблица 10.5

 

 

 

 

 

 

 

 

 

 

 

 

 

А

 

Ха

в

 

 

Хв

 

С

 

Х с

и

А

 

ч\

\

Da b

 

 

Daxb

Чйс

 

ПАХС

Pad

ХА

 

Vzr>c-

 

 

 

 

 

DXa b

 

лс

ПхА о

 

ч\

ха аа

 

 

 

 

 

 

 

 

\

ч; n\ ч

 

 

 

 

 

 

 

 

 

В

^ВА

\v Dbxa X

 

 

 

 

 

Е де

 

Явхс

Dgв

П ХВ А

 

Dxb xa ;; - Р

^ \\д \\х;

 

Щ ^А вХс''

DxBg

С

DqA

 

°схА

Dcb

 

vN\'' ,\ЧХ

 

 

 

Deo

 

 

 

 

 

 

 

 

Х с

Вхс А

 

 

Пхс в

V/7NX\ \ '

 

b A JXcXci

 

 

 

 

'\ -Uy

X \

 

:

 

 

 

 

 

 

\ \ / с хЛА.wWnXVx-

 

D

DgA

 

ППХА

D ub

 

 

Похв

D gc

ЩШк.

 

 

 

 

 

 

 

 

 

 

 

 

 

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

когда исходная

сеть разложена

на

т

перекрывающихся сетей:

А, В, .. ., G, Н.

 

 

 

 

 

 

 

 

 

 

 

Ш аг

1. Выполнить

тернарные

операции

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

в т — 1

сетях А,

В, . . . ,

G,

причем

полученные

для

некоторой

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

нении

тернарных

операций

в

сети В — Х А U В (J Х в матрица

расстояний

Dxaxb

должна

быть

заменена матрицей

Dxaxb (A).

Заметим, что мы можем пользоваться теоремой 10.1, рассмат­

ривая по очереди каждое из множеств A, A U Х А U Х в , . . .

в ка­

честве

А,

фигурирующего

в

формулировке теоремы

10.1.

При

этом в качестве множества

В

из

теоремы 10.1

возьмем соответ­

ственно

множества В U Х в U

. . .

\J В, С\] Х с [) . . .

\JH,

. . . .

Тогда

одна за другой будут получаться следующие матрицы условно кратчайших расстояний: D j^ A ), D^B(A U В), . . . , [I В U •

. .. UG) .

Шаг 2. Выполнить тернарные операции в т сетях в следу­ ющей последовательности: Н, G, . . . , В, А, причем полученные

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

209

для некоторой сети кратчайшие расстояния использовать для вычислений в следующей сети. То есть, например, матрица рас­ стояний Dx„x„(N —Я) должна быть заменена матрицей (X).

По теореме 10.1 будут получены следующие матрицы расстояний:

D*S S (N),

. . . . Я §5 (Я), Dl-A {N).

Ш а г

3. С помощью операции (4) композиции матриц найти

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

одновременно

ни в одном

из множеств

А,

В, . . .,

Я . Будем

использовать

обозначение

А © Х А © В

для

операции

компози­

ции матриц,

где N t ^A, N j d X A, N ^ 6 В. Должны быть выпол­

нены операции А ® Х А ф

В и В ф Х А © А, но для

простоты

будем записывать только

одну из них.

 

 

 

Операции композиции матриц должны выполняться в следую­ щем порядке:

А ® Х а ® В и Х в ,

AU Х А U В ® Х в @С U Хс,

А[ ] Х а \ ] В \} Х в \}С ® x c ® d и X D,

A U Х А U • • • U F ® X f ®G U X q,

А { ] Х а {] . . . и С ф Х е ф Я .

При этих вычислениях матрица DAxB(N), полученная при выпол­

нении

операции

П ф Х Аф Б и ^ в > используется в последующих

вычислениях и т. д.

 

 

Оценим число арифметических действий в этом декомпозицион­

ном

алгоритме

для

случая,

когда |,4| = | Я | = . . . = | Я | = t,

а | Х А | = | Хв | =

. .. =

| HG| = б.

Подсчитаем число операций сло­

жения (таково же и число операций сравнения). На шаге 1 число сложений равно (t © 8 )3 ф ( т — 2)(£© 28)3. На шаге 2 —

2 (*+ S)3 + ( m - 2 )(* + 26)3. .

На шаге 3 —

2 {t + (2t + 8) -f- . . . + [(m — 2) t -f- (m —3) 8 ]} • 8 (t + 8 ) + + 2 [(m— 1 )f + (m — 2 ) 6 ] 6£ = m( m — l ) i 28 +

+ 2 (m — 1) (m — 2) tb2,-f (m — 2) (m — 3) 83.

Таким образо..., общее число операций сложения равно

(2 т — 1) t3-f- (иг2 + 11m — 15) t2b -f-

+ (2m2 + 18m — 35) tb2 + (m2 + 11m — 23) 83. (5)

Если, не 'используя декомпозиционного алгоритма, выполнить тернарные операции непосредственно на всей сети, то общее

14 т x v

210 ГЛ. 10. КРАТЧАЙШИЕ ЦЕПИ И ПОТОКИ МИНИМАЛЬНОЙ СТОИМОСТИ

число операций сложения будет равно

 

 

 

[mt + 1 ) б]3.

 

 

(6)

При достаточно больших т выражение (5)

близко к т28 (t +

б)2,

а выражение (6) — к т(t + б)3. Таким

образом,

при т

оо

отношение выражений (5) и (6 ) стремится

к

 

После разложения (декомпозиции) исходной сети на сети

А, В, . . Н каждая из них в свою очередь может быть разло­ жена на меньшие сети, и этот процесс декомпозиции может быть продолжен и дальше.

Заметим, что каждое из множеств узлов А, Х А, В, Х в . . .

не обязано быть связным. В качестве множества А можно брать любое подмножество узлов. После выбора А множество Х А опре­ деляется однозначно. В качестве множества В можно взять любое множество, отделяющее A (J Х А\ множество Х в определяется однозначно — это минимальное множество, отделяющее А у Х А U

у х в.

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

211

Описанная выше декомпозиция (разбиение) сети

может быть

названа линейной, так как при этом т пересекающихся подмно­ жеств А, В, . . ., Н расположены как быв линию (рис. 10.7 (а)). Можно рассмотреть декомпозицию сети, в которой подмножества

А,

В, . .

Н

пересекают

друг друга произвольным

образом

(рис. 10.7

(б)). Полученное при этом разбиение сети можно полу­

чить с помощью линейной

декомпозиции. Для этого надо взять,

например,

2 *

= Е,

В*

= A \}F , C * = B \ j C [ } D ,

D*

= G,

E*

= H,

рассмотреть

линейную декомпозицию исходной

сети

Р и с . 10.8.

на сети А*, В*, С*, Е * и затем осуществить линейную декомпози­ цию сети В* на две меньшие — A, F, а. сети Е* на три меньшие —

В, С D.

При произвольной декомпозиции сети число операций

больше,

чем при линейной.

В заключение параграфа обсудим одну идею, которая поясняет

принцип

декомпозиционного алгоритма.

Пусть имеется сеть с п узлами, и надо найти в ней кратчайшие пути между р выделенными узлами, р ^ п. Будем говорить, что некоторая сеть с р узлами эквивалентна по расстоянию исходной сети с п узлами, если кратчайшие расстояния между р (р 1 )

парами выделенных узлов в обеих сетях одинаковы. На рис. 10.8 изображены две сети, которые эквивалентны по расстоянию отно­ сительно выделенных узлов N t, JV2, N s, N t .

Понятие эквивалентности по расстоянию может быть исполь­ зовано для удаления из сети на некотором этапе вычислений тех узлов и дуг, которые не влияют на этом этапе на вычисления крат­ чайших расстояний. На рис. 10.9 приведены некоторые примеры сетей, эквивалентных по расстоянию. В частности, если сеть с 4 узлами, изображенную на рис. 10.9 (с), превратить в изобра­ женную на этом же рисунке сеть, с 3 узлами, то все кратчайшие расстояния между узлами N±, N 2, N 3 могут быть найдены в но­ вой сети.

Используя. простые преобразования сети, изображенные на рис. 10.9, можно удалить из сети п р узлов и построить новую

14*

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

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

 

(а)

G F=|=©

min (с!и с/г )

( б)

декомпозиционный алгоритм. Можно считать, что, когда в дока­ зательстве теоремы 10.1 вычислялась матрица D x x ( A \ j X ) , из сети N было удалено все множество узлов А.

10.4.Потоки минимальной стоимости

Вгл. 8 каждой дуге сети соответствовала пропускная способ­

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

каждой дуге A iS поставлена в соответствие дуговая стоимость

ci},

т. е. стоимость доставки единицы потока из узла N t в .узел

N }

по дуге Aij. Необходимо найти поток'из источника в сток, имею­

щий заданную величину и обладающий минимальной стоимостью.

Формально задача ставится следующим образом: минимизировать

Z = 2 C i j E i ]

 

 

г, 3

 

 

при условиях

 

 

— V ,

j =

S ,

0 ,

/ =4 = s, t,

{v,

j =

t,

0 ^ . х ц ^ Ь ц (при всех i, j).

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