Файл: Ху, Т. Целочисленное программирование и потоки в сетях.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) — к т3б (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).