Файл: Ху, Т. Целочисленное программирование и потоки в сетях.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 15.10.2024
Просмотров: 195
Скачиваний: 0
150 |
ГЛ. |
8. МАКСИМАЛЬНЫЙ ПОТОК |
|
|
|
||||
их пропускные способности. |
Будем считать; что эта |
сеть есть |
|||||||
N (F0). Предположим, что единица потока направляется по пути |
|||||||||
A si, |
A i3, A 3t\ дуга А 13 оказывается насыщенной, и |
получается |
|||||||
сеть N (F]), изображенная на рис. 8 .8 . Мы считаем, что в этой |
|||||||||
сети |
дуги А 13 не существует, |
а имеется |
дуга А 31 с |
пропускной |
|||||
|
|
способностью, равной 1. Если напра |
|||||||
|
1,1 |
вить единицу потока по |
увеличиваю |
||||||
|
|
щему поток пути A s2, А аз, А 31, |
А ц , |
||||||
|
|
A it, |
то получится сеть |
N |
(F2), |
изо |
|||
3,1 |
1,0 |
3,1 браженная на рис. 8.9. |
В этой |
сети |
|||||
|
|
дуги |
А 31 |
не |
существует, |
а снова |
|||
|
|
появляется |
дуга A i3 с |
пропускной |
|||||
|
|
способностью, равной 1. |
Можно счи |
||||||
|
Р и с . 8.9. |
тать, |
что |
оказалась |
насыщенной |
||||
|
дуга |
A 3i в сети N (F2) |
на рис. 8 .8 . |
||||||
|
|
||||||||
|
|
Таким образом, видно, |
что каждый |
||||||
раз путь, увеличивающий поток, |
меняет ориентацию |
по крайней |
|||||||
мере у одной дуги из |
сети N |
(F). Этот результат сформулируем |
|||||||
в виде леммы. |
|
|
|
|
|
|
|
|
|
Л емма 8.1. Пусть |
N (F0), |
'N (i^ ), |
. . ., N (Fm) — произволь |
ная последовательность сетей. В сети N (Fh) найдется по крайней мере одна дуга, которая не содержится в N (.Fft+1), где Fk+i — поток, полученный из Fk с помощью добавления в сеть N (Fh)
пути, |
увеличивающего |
поток, причем г (/ + 1 ) = min [е (/), |
|
Ъ), j + i |
%}, j+ i |
Ej+i. |
/1- |
Назовем кардинальной длиной пути число дуг в этом пути.
Определим кардинальное расстояние между N s и N t в сети N (Fk)
как длину кратчайшего увеличивающего поток пути, ведущего из N s в N t в сети N (Fh). Если не существует пути, увеличивающего поток из N s в N t, то кардинальное расстояние между N s и N t полагаем равным оо. Будем обозначать кардинальное расстояние между N s и N t через lhst.
Заметим, что следует различать путь из N s в N t, увеличиваю щий поток, и цепь из N s в N t, по которой проходит поток (кото рую будем называть потоковой цепью). Например, на рис. 8 . 8
кратчайшая потоковая цепь N s, N и N 3, N t имеет кардинальную длину 3, в то время как кратчайший путь, увеличивающий поток, здесь такой: N s, N 2, N 3, N t, М4, N t (следовательно, кардинальное расстояние между N s и N t равно 5). На рис. 8.9 кратчайшая пото ковая цепь имеет кардинальную длину 3, а кардинальное рас стояние между N s и N t равно оо.
Определим кардинальное расстояние l\v между двумя узлами N u и N v в сети N (Fh) ■как длину кратчайшего увеличивающего поток пути, ведущего из N u в N v в сети N (Fh). Если такого пути не существует, то полагаем luv = оо.
|
8.2. МЕТОД РАССТАНОВКИ ПОМЕТОК |
151 |
|
Л емма 8.2. |
При к = О, 1 , 2 , . . . |
для любого узла N u спра |
|
ведливы неравенства |
|
|
|
и |
L ^ l ksal |
|
(а) |
|
|
|
|
|
Z u i< 4 +1. |
|
(б) |
Д оказательство. Поскольку (а) и (б) |
доказываются аналогично, |
||
рассмотрим одно из них, например (а). |
|
|
|
Если |
то соотношение (а) очевидно. |
|
|
Пусть Zsu+1 |
конечно и равно h. Обозначим через |
L h+l крат |
чайший путь |
из N s в N u, |
увеличивающий поток в сети N {Fh+1). |
||||||||||||||||||||
Пусть |
N S = N U(), |
N Ui, . . . , N Ufi = N u—последовательность |
узлов |
|||||||||||||||||||
пути Lh+l. Тогда |
Zs„0 = 0. |
Докажем, |
что |
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
4 .+1 < ! |
+ |
4 г, |
г = 0 ,1 , ... , |
|
|
|
|
|
|
(в) |
||||||||
Очевидно, |
если |
дуга |
Л„. „. +1 £ N ( F k+l), |
то |
либо |
Au.u.+i £ N {Fh), |
||||||||||||||||
либо ^ u.+jUj. £ Lk. В первом случае lsui+1^ |
1 + leup поскольку всегда |
|||||||||||||||||||||
можно получить путь из N s |
в N u.+i не длиннее, чем 1 + 1*и., если |
|||||||||||||||||||||
воспользоваться дугой |
Аи.и. |
. Во втором случае |
|
u. = |
1 + |
Z* и. |
||||||||||||||||
|
|
|
|
|
|
|
|
|
I |
1т1 |
|
|
|
|
|
|
|
|
I |
|
I"Ь1* |
|
откуда |
ls> |
и |
= |
— 1 |
+ Is, и. < |
1 |
+ h, и.. |
|
|
|
|
|
|
|
|
|||||||
|
Суммируя |
|
все |
|
неравенства |
(в), |
получим |
|
Zs> |
|
+ |
u0 = |
||||||||||
_у __7ft+i |
• ■ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
-- |
I V -- Vs, и |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Л емма 8.3. |
Пусть |
в |
некоторой |
сети |
N(Fh) |
|
(к = 0, |
1, . . . ) |
|||||||||||||
кратчайший |
путь, |
|
увеличивающий |
поток, содержит |
дугу Aij, |
|||||||||||||||||
а в сети N (Fv), |
р > к , кратчайший путь, увеличивающий поток, |
|||||||||||||||||||||
содержит |
дугу |
А р. |
Тогда |
кардинальное |
расстояние |
Zff |
между |
|||||||||||||||
узлами |
N s и |
Nt |
в |
сети |
N ( F P) |
превышает |
1st |
не меньше чем |
||||||||||||||
на |
2 единицы, |
Z?t^ Z sH -2 . |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
Д оказательство. |
|
Так как |
|
А ц ^ Ь и, то Z^t = |
/м + |
1 + |
In- |
Кроме |
|||||||||||||
того, 1% = |
i . I s i и |
Ip —1 |
Ijt' |
Так как A j t £ L p, |
то |
1st — l“sj -Ь 1 -Ь |
||||||||||||||||
+ |
lit- |
Из |
леммы |
|
8.2 |
следует, |
что |
|
|
и |
Ip^lu- |
Поэтому |
||||||||||
1st |
1% ~"Ь 1 4~ l i t |
= |
(1 + |
h i ) Ч~ 1 “Ь (1 ~h h t ) — |
2 + |
1st- |
ш |
|
|
|
|
|||||||||||
|
Справедлива следующая теорема. |
|
|
|
|
|
|
|
|
|
||||||||||||
|
Т еорема 8.3. Если в методе расстановки пометок при |
поиске |
||||||||||||||||||||
путей |
из N s |
в N t, |
|
увеличивающих поток, |
каждый раз выбирать |
|||||||||||||||||
кратчайший |
путь, а в качестве пометки |
использовать |
е (;') = |
|||||||||||||||||||
= |
min [е (г), |
Ъц — хц + Хр], |
то для |
получения |
максимального |
152 ГЛ. 8. МАКСИМАЛЬНЫЙ ПОТОК
потока в сети достаточно не больше чем п3раз найти путь, увели чивающий поток (где п — число узлов в сети).
Д оказательство. Пока не получен максимальный поток, длина любого пути, увеличивающего поток, не превышает п — 1. Чтобы доказать теорему, достаточно показать, что расстояние между N s и N t должно стать больше, чем п — 1, если п3 раз найти путь, увеличивающий поток.
Из леммы 8.3 следует, что в последовательности сетей N (F0), N (F^, . . ., N (Fh) каждая дуга A tj может изменить свою ориен-
тацию самое большее—^— раз. По лемме 8.1 при переходе от сети
N (Fk) к сети N (Fk+i) каждый путь, увеличивающий поток, изме няет ориентацию не менее чем у одной дуги. Так как всего в сети имеется п (п — 1) дуг, а каждая дуга может менять ориентацию
не более |
раз, то общее число путей *), увеличивающих поток, |
не может быть больше чем \^п (п — 1) • —g-"] + 1 ^ п3.Л
Ясно, что полученная оценка может быть немного улучшена, если учесть, что у дуг вида A si и А и ориентация не изменяется. Однако в настоящее время неизвестно, как эту оценку существенно уменьшить, например, до О (п2)* 2).
8.3. Приложения
/М ногие обобщения задачи о максимальном потоке по существу /сводятся к ней. Известно, что эта задача находит приложения
|
в различных комбинаторных задачах. Основная трудность при |
|||
|
этом заключается в построении такой сети, чтобы нахождение |
|||
. |
максимального потока в ней было эквивалентно решению постав- |
|||
ленной комбинаторной задачи. |
|
|||
\ |
Рассмотрим несколько задач такого типа. Одной из них являет |
|||
|
ся задача о потоке в сети с несколькими источниками и стоками, |
|||
|
когда заданы |
предложения товара в источниках и спрос товара |
||
|
в стоках. Множество всех узлов разбивается на источники S, |
|||
|
*) Для нахождения одного пути, увеличивающего поток, в сети с р |
|||
|
дугами требуется О (р) вычислительных операций. Следовательно, в алго |
|||
|
ритме Эдмондса — Карпа всего требуется О (п3р ) операций для нахождения |
|||
|
максимального |
потока. |
Е. А. [5*] и Карзанова В. |
А. [8*] построены алго |
|
В работах |
Диница |
||
|
ритмы, более экономные |
по числу вычислительных |
операций: в работе [4*} |
|
|
максимальный |
поток находится за О (п2р ) операций, а в работе [8*] — за |
О(п3) операций. — Прим, перев.
2)В работе Н. Заде [19*] приведен пример, когда поиск максимального потока по алгоритму Эдмондса — Карпа требует перебора О (п3) путей, увели чивающих поток.— Прим, перев.
8.3. П Р И Л О Ж Е Н И Я |
153 |
промежуточные узлы R и стоки Т. Каждому узлу N t £ S поставле но в соответствие неотрицательное число a (N г) (предложение в N t), а каждому узлу N } 6 Т — неотрицательное число b (Nj) (спрос
Р(ис. 8.10.
вN j). Возникает вопрос: при каких условиях спрос в стоках мож но удовлетворить предложением в источниках, т. е. когда ограни чения
2 * ь i 2 |
& |
N t e s \ |
|
j |
k |
|
|
i |
2 |
= |
N i t R , |
j |
k |
|
N i t T , |
f - 2 |
xki = b(Nt), |
||
|
k |
|
|
0 ^ Xij b%j
допустимы? - Если потоку разрешается течь из любого источника в-любой
сток, то эта задача легко сводится к задаче с одним источником
иодним стоком добавлением одного дополнительного источника
иодного дополнительного стока. Добавляются новые ориентиро
ванные дуги, ведущие из дополнительного источника во все N t £ S и имеющие пропускные способности а (Л^), а также ориентирован ные дуги с пропускными способностями Ъ(Nг), ведущие из каждо го N t £ Т в дополнительный сток. Получается сеть, изображенная на рис. 8.10. Тогда задача об удовлетворении требуемого спроса заданным предложением сводится к нахождении! максимального потока в расширенной сети. Подробности можно найти в [67].
Если в сети с несколькими источниками и стоками поток дол жен идти из определенных источников в заданные стоки, возникает так называемая задача о многопродуктовых потоках в сети. Она будет рассматриваться в гл. 11.
Получим еще одно обобщение задачи о потоке, если дуговые потоки ограничим снизу не нулями, а заданными положительны ми целыми числами, т. е. для каждой дуги введем ограничение