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

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

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

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

Добавлен: 15.10.2024

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

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

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

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).


10.4. П О ТО КИ М И Н И М А ЛЬН О Й с т о и м о с т и

213

При этом подразумевается, что величина v не превышает величи­ ны максимального потока из N s в N t, иначе задача не имеет реше­

ния.

Заметим, что если бы не было ограничений на пропускные спо­ собности дуг, то достаточно было бы найти самую экономную цепь из N s в N t и пропустить по ней весь поток. В книге [67] рассматри­ валось несколько алгоритмов нахождения потока минимальной стоимости, использующих прямо-двойственный подход линейно­ го программирования.

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

Первый алгоритм, предложенный Басакером и Гоуэном [22],

имеет следующий

вид.

Ш аг

0.

Положить все дуговые потоки и величину потока

равными нулю.

 

Ш аг

1.

Определить модифицированные дуговые стоимость

c *j , зависящие

от

величины уже найденного потока, следующим

образом:

 

 

 

Ш а г 2. Найти кратчайшую цепь (т. е. цепь минимальной стоимости) из N s в N t, используя дуговые стоимости с*-, найден­ ные на шаге 1. Затем пропускать по этой цепи поток до тех пор, пока она не перестанет быть кратчайшей цепью. Получить вели­ чину нового потока, прибавив к величине старого величину пото­ ка, текущего по рассматриваемой цепи. Если величина нового потока равна V, то конец. В противном случае перейти к шагу 1.

Этот алгоритм обладает следующим интересным свойством: каждый раз на шаге 2 получается поток из источника в сток,

обладающий минимальной стоимостью. Таким образом, последо­

вательно

получаются

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

р =

1 , 2 ,

. . ., v. По этой причине рассмотренный алгоритм мож­

но

классифицировать

как двойственный.

Второй алгоритм, предложенный Клейном [130], формулирует­ ся следующим образом.

Ш а г 1. Найти любой допустимый поток величины v из источ­ ника N s в сток N t. Это может быть сделано подбором или с по­ мощью решения задачи о максимальном потоке (в которой надо проводить вычисления до тех пор, пока величина потока не станет равной v).