УДК 519.1
ПЕРИОДИЧЕСКИЕ ДИНАМИЧЕСКИЕ ГРАФЫ. ЗАДАЧА О МАКСИМАЛЬНОМ ПОТОКЕ
© 2008 г. M.B. Ky3bMUHoea
The maximum flow problem for periodic dynamic graphs is considered. The construction of additional graph is worked out and algorithms are proposed to find the dynamic flow on both source and additional graphs.
Постановка задачи. Основные понятия
Определение 1. Пусть N - дискретное время. Динамическим графом назовем ориентированный граф 0^,17,/, г , где т\11хЫ —> 1 - функция активности. При этом множество и представляет собой объединение двух непересекающихся подмножеств !'() и ит, которые будем называть множеством обычных и временных дуг. Если 1, то дуга и е С/г называется активной в момент времени / е N. иначе дуга называется неактивной. Если для дуги и с 11т
\//еМм то подмножество Ми назы-
вается периодом активности дуги и . Считаем, что если и <е и о, то период активности дуги и есть все множество N.
Определение 2. Пусть г_ - динамиче-
ский граф. Если существует такое натуральное число Т , что для каждой дуги и, <=ит 1.2.... период ее активности имеет вид Ми = и |/ +пТ,Ь1 +пТ_, то
и=0,1, 2,...
граф О назовем периодическим динамическим графом с периодом Г и обозначим его От $,17,/, т . Будем
считать, что Т > тах - а1 + 1 .
¿=0,1,2,...
Определение 3. Взвешенным периодическим динамическим графом назовем граф т. с .
где c:(/—>Z - весовая функция.
Определение 4. Пусть не!/: /4(3= С ./>'-./ е X . Тогда ру'.и ^X и р2 '.и —>X - отображения, действующие по правилам: р\ /. р2 С 3=./ • т.е. отображение Р1 сопоставляет дуге и ее начало, а отображение Р2 - конец.
Определение 5. Путем длины п на периодическом динамическом графе (¡т ^.!/. /'. г с началом в момент времени /0 е N и ^ [ « ^г —» и, такое, что
х е 1И_131 и ДУга г'е |«3г
проходится путем в момент времени /0 +' -1 • Назовем /() е N начальным моментом времени для пути и [
Путь [.я]] —>1/ на графе (¡г $.(/./. т яв-
ляется допустимым, если
называется отображение
Pi & [, 4J Pi X
Vi е г (' X
! i + t0 -i j= l,
(1)
т.е. все дуги этого пути активны в момент прохождения их путем. Условие (1) назовем условием допустимости пути.
Определение 6. Цепью длины п на периодическом динамическом графе От ^.!/. /'. г с началом в момент времени /0 е N называется отображение 7 —>С/, такое, что одна вершина дуги
П [ X инцидентна дуге // [ Ч1 .... а другая -77[,4+О'е причем дуга г/^^^и,
/ е проходится в момент времени /0 +' _ 1 •
Число t0 е N называется начальным моментом времени для цепи 7] Цепь // [ [ —> И на графе GT .!/./. г __ является допустимой, если V/ е |п Д-дуга г/ [ U активна в момент времени 1() + i -1.
Рассмотрим задачу о нахождении максимального потока в периодической динамической сети. В классической постановке [1, 2] вводятся понятия: «сеть», «источник» и «сток», «поток», и т. д. Поскольку для динамических графов введено понятие «время», оно должно быть отражено в этих определениях.
Определение 7. Периодической динамической сетью назовем взвешенный периодический динамический граф GT т. с . на котором выделены две
вершины: источник s'el: deg + 0 Vt е N и сток
t'e X : deg'_ <У О V/ е N (здесь deg+ и degL Ц -полустепень захода в вершину х и полустепень исхода из вершины х в момент времени / е N соответственно). Весовая функция с :U х N —> Z+ определяет пропускную способность дуг графа Gj в каждый момент времени / е N. Будем считать, что V/ eN cii,ty const. Если Bt'sN:
T(lJ'y 0 >т0 полагаем
Определение 8. Динамическим потоком в периодической динамической сети GT .!/./. т,с из источника s' в сток t называется неотрицательная функция fl:UxN^R+, такая, что 1. VteN,VieX, HflU, HflV, t + О (условие сохранения);
7// У С =i \fv°EU:С =/
на
d^ ZflU, tu
максимальна (обозначим
r<t,t=l
ril,t+\ =1
2. \fteN, (условие ограни-
ченности).
Определение 9. В периодической динамической сети (¡у и, /, т, с величиной динамического потока, исходящего из источника в момент времени /0еЖ, в сток /' называется с/ ^ ~= V // /() .
Максимальным динамическим потоком, исходящим из источника 5' в момент времени /0 е N в сток /', называется динамический поток, для которого величина с1 [о ~= У /1 максимальна (обозначим
\fueU^ С^г^'
ее ^Дгах )•
Определение 10. В периодической динамической сети (/у .!/./. т. с величиной динамического потока из источника 5', приходящего в сток в момент ^ <е N, называется
времени ^
Максимальным динамическим потоком из источника 5', приходящим в сток /' в момент времени /| <= N . называется динамический поток, для которого величи-
).
Таким образом, можно рассматривать задачи о на-ХОВДенИИ веЛИЧИН (11 ~п1ах и
с! I -|гах . Различие между ними заключается в том, что в первом случае источник рассматривается в одно и то же время /0 , тогда как в сток динамический поток может «прийти» в любой момент времени / > 1(). Во второй задаче, наоборот, известен момент ^, в который динамический поток «приходит» в сток, но начальные моменты времени при этом могут быть различными.
Определение 11. Пусть ~ некоторая
цепь с началом в момент времени /() с N . соединяющая источник 5' и сток в периодической динамической сети (/у .!/./. т,с . Назовем дуги этой цепи, направленные от источника к стоку, прямыми, а дуги, направленные от стока к источнику - обратными. Цепь 77^ '^ называется увеличивающей, если для
каждого момента времени I > _ на прямых
дугах этой цепи значение динамического потока меньше пропускной способности (т.е. А^^Ус^^ , если дуга и - прямая), а на обратных дугах значение динамического потока положительно если и - обратная).
Рассмотрим алгоритм прорыва [3] для поиска максимального потока в обыкновенном ориентированном графе. Он сводится к последовательному нахождению увеличивающих цепей из источника в сток. Но, так как на графе От . и, /, т,с ^ допустимыми являются лишь цепи, все дуги которых активны в соответствующие моменты времени, то непосредственно применять этот алгоритм к периодическому динамическому графу нельзя. Приведем два алгоритма, являющихся модификациями алгоритма прорыва для случая периодических динамических графов. Модификация заключается в том, что к основному набору меток вершин добавляется еще одна метка для обозначения времени - Тт, и рассматриваются только допустимые увеличивающие цепи.
Модифицированные алгоритмы прорыва для поиска максимального динамического
Пусть т. с _ - периодическая динами-
ческая сеть с источником ь'еХ и стоком /'е X. Введем метки вершины геХ: - величина максимального потока их источника 5' в вершину г (если для /' ёХ определена метка г, ( . то вершина г называется помеченной); Н ( - вершина, непосредственно предшествующая г'е/ в увеличивающей цепи; 'Гт { - момент времени, в который увеличивающая цепь проходит вершину г ; - метка определяет, (г 01) или нет (г (> 0 ).
просмотрена вершина i
а) Алгоритм поиска максимального динамического потока, исходящего из источника в момент времени
t0eN.
fl<l,toyO VmsC/,
dlT°>
Z(j= О V/ = 1,2,...,\x\ (все вершины считаются
непросмотренными).
2. Выбрать вершину ieX - помеченную, но не просмотренную. Если выбор невозможен, то алгоритм завершен.
3. VM еU'.pi (Cj^i, fl4,Tm(i)~y.c4i,Tm(i)^ непомеченная и пересчитать метки по правилам:
^¡-min ^^jf^Tmii) flii,Tm(i)
4. Vve U:p2 (ij^i '.fl(i,Tm(i\}> 0, p^ii -непомеченная и г 7m ( ^ 1, пересчитать метки по правилам:
'-i>] О- min ^О' <'.7н?(7)3
Tm^iT^TmCj-l.
5. Если помечен сток t, то найдена увеличивающая цепь; перейти на шаг 6.
Иначе, считать вершину i просмотренной, перейти на шаг 2.
6. Пересчитать значение потоковой функции (на прямых дугах полученной цепи увеличить значение на . на обратных - уменьшить на £•(' ). Новое значение максимального потока: d [ ~= d [ е ( . После этого снимаются все пометки, ¿"С 3=
Н 0,Тт j= ?о • Вернуться на шаг 2.
б) Алгоритм поиска максимального динамического потока, приходящего в сток в момент времени t^eN.
Сначала необходимо инвертировать дуги графа (jt $.11. f. г,с, т.е. построить граф GT4f,U,f, т,с ,
то м ei/:
такой, что если
ZО V/ = 1,2,...,\х\ (все вершины считаются
непросмотренными).
2. Выбрать вершину ieX - помеченную, но не просмотренную, и такую, что Tm (3^ 1 • Если выбор невозможен, то алгоритм завершен.
3. Уи
непомеченная и пересчитать метки по
правилам:
ЯфгО/
1. \/v <=U \ i: fl 0, - непо-
меченная и г (. '/)/? ' • пересчитать метки по правилам:
¿'<>1 О min i'<3// <Ljm(i\^
Hifv О/ Tm^iT^TmCj-l.
4. Если помечена вершина s', то найдена увеличивающая цепь; перейти на шаг 6.
Иначе, считать вершину i просмотренной, перейти на шаг 2.
5. Пересчитать значение потоковой функции (на прямых дугах полученной цепи увеличить значение на на обратных - уменьшить на s (' ). Новое
значение максимального потока: d 11= d Ч- s^^ После этого снимаются все пометки, ¿X 3= 0,Тот • Вернуться на шаг 2. Таким образом, мы получили два алгоритма, позволяющих найти величины d [ ~)гах и с! ^ .
Для решения этих задач можно использовать другой подход. На графе Gj допустимыми являются только те пути, которые удовлетворяют условию (1). Построим вспомогательный граф, на котором будут присутствовать только допустимые для исходного графа пути.
Построение вспомогательного графа
Используя периодический динамический граф
./ С 3= ' Кроме того, для всех таких дуг мим ^'Т $-11.)'. г
сохраняются одинаковые периоды активности и пропускные способности, т.е. и с еЫ . Тогда величина максимального потока из источника 5', приходящего в сток 7' в момент времени ^ е N на графе (г/ т.е . равна величине максимального потока, исходящего из вершины 7' в момент времени 1\ е N (теперь она является источником на От ) в вершину 5' (сток на От ) на инвертированном графе От С. /,т,с .
1. ¿Ч' 3= '-.Я< 3=0.7н?О/,
уоУиеи
вспомогательный
MUi =
= max .
¿=1,2,...
построим
О с'3 Пусть V», е И <= 1.2.
= и Ь +пТ,Ь1 +пТНайдем Ь,
п=0,1,2,...
Пусть существует целое число к>0, такое, что ЪГШК е \+кТ,Т + кТ Назовем число к характеристикой графа (}■/■ . Тогда для вспомогательного графа |Х'| = ^ + а множество 1Г строится по сле-
дующему правилу:
для всех и е II: С е X
- \/т = 1...^ +1^-1, если 1,то
- и'=и' и ^
где ГЪьУ^+Ь-Щ^+тЩ^
-если тЦ, ^ + то
- 1Г=и'и А \
где Г О <+ € +-ОД} + кЩ-, - с'Ц'УсЦ^. Сформулируем теорему, устанавливающую связь между графами От и G'.
Теорема 1. На вспомогательном графе С дуге и е II:/{¡У С./^ в момент
времени /е^У: 1 соответствует дуга
- м'е [/:/<'> <+<-ОД,/+/|х|~ если 1 < ^ < кТ;
- если
Зпег+ :/ = /0 + пТ, кТ<Г0 < < + 1^-1;
если 3Л = С + 1 ~% + тТ.
Доказательство теоремы следует из правила построения вспомогательного графа.
Замечание 1. Вершины вспомогательного графа О ^',и/е'^ можно разделить на несколько «слоев», в каждом из которых находится по \х\ вершин. Запись /0 =' + п\х\ ^п = 0,1,... означает, что вершина /0 с X' на вспомогательном является «двойником» вершины I е X и расположена в {р + 1 -м «слое». Число т + \ соответствует моменту времени, в который рассматривается вершина г и все исходящие из нее дуги.
Пример 1. Рассмотрим граф изо-
браженный на рис. 1 (рядом с дугой указан период активности п = 1, 2, ...):
3
Рис. 1
/О <2>«2> <3>«з> С4>«4> С4
Рассмотрим, например, путь //^ = г4>мз • Он
удовлетворяет условию (1) и является допустимым для графа 05. Действительно, 1, г^-лЗ-1 •
Другой путь //|-= г4,«4 не является допустимым, так как 0.
Вспомогательный граф представлен на рис. 2:
t=15 5>Ч 58 " 60
1=14 53 —— 5f>
1=13 49 —-yp^il
1=12 45 48
t=ll 41 42 —■—' ^4-3 ^^^44
t=!0 37 t-9
1=8 29
1=7 25
t=6 21
t=5 17
[=4 13
t=3 S
1=2 5
Рис. 2
Допустимому пути - соответствует путь 5—»10—>16 (представлен в виде последовательности вершин). Путь цне является допустимым, поэтому
на графе О этот путь не представлен.
Из алгоритма построения вспомогательного графа следует, что дискретное время N можно разделить на два этапа: конечный «подготовительный» и бесконечный периодический. На рис. 2 они разделены двойной пунктирной линией, слева указаны моменты времени. Подготовительному этапу соответствует промежуток времени \кТт.е. к периодов длины Т , а периодическому - бесконечное множество промежутков длины Т : [£Г + 1 УпТ, ^ + + =1,2,.... Таким образом, начиная с момента времени 1=кТ+1 можно наблюдать установившийся периодический режим, т.е. в моменты времени 1п -1() + пТ, к'к < 1{) < + 1 ^ -1, и = 1,2,... активно одно и то же множество дуг. Для графа, рассмотренного в примере 1, к = 2, Т = 5. Подготовительный этап занимает 2 периода длины 5 (на рис. 2 они разделены одной пунктирной линией), т.е. отрезок [1,10]. Периодическому этапу соответствуют отрезки \\ + 5п,\5 + 5п~)ц=\,2,....
[8 +5п, 11+5 п]
Поиск максимального динамического потока на вспомогательном графе
Пусть У, е X - источник и сток на графе От . Определим Х5. сГ - множество источников на графе О', соответствующих 5', X ( сГ-С. Построим Xи Х(> по следующему алгоритму (значение к е 2+ - то же, что при построении вспомогательного графа):
Уме С/:/О еХ
если то Хя< = Х^и , если та-
кой вершины во множестве Xеще нет;
1. Ут = \..4 + 1^-1, если
если такой
^ 1, то Хг =Хги ^т\х\ вершины во множестве X еще нет;
2. Если г <,^ + 1^1, то Х( =Хги Н+"кТ\х\ , если такой вершины во множестве X^ еще нет.
Элементы множества X^ являются источниками на графе О', XI* - стоками (это следует из определения 7 и теоремы 1).
Замечание 2. При использовании вспомогательного графа для поиска максимального динамического потока необходимо учитывать, что на графе О' помимо источников и стоков, соответствующих УД'еХ, могут появиться новые. Такие вершины будем называть псевдосточниками и псевдостоками. Например, на рис. 2 псевдосточниками являются вершины 19, 23 и 27, псевдостоками - 35 и 55.
Для поиска величины максимального динамического потока, исходящего из источника л'еХ в заданный момент времени /0 е N в сток /'<е X на графе
нужно наити максимальные потоки
из источника в стоки т = 1,2,...
на графе О', если 1 < /() < к!:. и максимальные потоки из источника в стоки /'теХ/.,»г = 1,2,...,
если 3/ > 0: /0 = /0 I ГГ, к!: < /0 < I 1 . Это можно сделать, воспользовавшись, например, алгоритмом Форда-Фалкерсона для орграфов. Тогда величина ^ [0 ]тах будет равна сумме величин полученных максимальных потоков.
Для поиска величины максимального динамического потока из источника УеХ, приходящего в сток е X в момент времени 1\ е N на графе От и, /, г, с нужно найти максимальные потоки из источников А''те Х^,т - 1,2,... веток на графе О', если 1 < ^ < кТ, и максимальные потоки
из источников s'me Xs>,m = 1,2,... веток если 31 > 0: = \ + IT, кТ < \ < ^ +, а затем просуммировать полученные значения.
Рассмотрим граф G5^,U,/,tописанный в примере 1 (рис. 1). Для того чтобы на этом графе найти максимальный динамический поток, исходящий из источника s'= 1 в момент времени t0 =8 в сток t'= 4, нужно на вспомогательном графе (рис. 2) найти максимальный поток из источника 29 в стоки 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56 и 60. А для нахождения максимального динамического потока, исходящего из источника 5'= 1 в момент времени t0=27 в сток t'= 4, нужно на вспомогательном графе найти максимальный поток из источника 12 (так как 27=12+ЗТ) в то же множество стоков.
Теорема 2. Пусть GT$,U,f, т.с ^ - периодическая динамическая сеть с характеристикой k; s', t' -
источник и сток в сети Gj . Тогда V/» - 1.2.....'/'
^Ji+ffl,max = ^ут+т+пТ jmХ,И = 1,2,....
Для максимального динамического потока, приходящего в сток в момент времени ^ е N, можно сформулировать аналогичную теорему.
Теорема 3. Пусть выполняются условия теоремы 2. Тогда \/m = \,2,...,T d^T+m I™* = d Ут+ш+пт'^ ^ п —1,2,....
Доказательства теорем следуют из алгоритма построения вспомогательного графа.
Пример 2. Рассмотрим граф из примера 1. Пусть Vm е U с(и) \/t eN, тогда пропускные спо-
собности дуг зададим матрицей (0 5 3 0 0 0 7
c =
0 0 0 1
0000
ч У
Получим следующие значения величин максимальных динамических потоков, исходящих из источника 5'= 1 в последовательные моменты времени t0 =1,2,3,...:
d Qiax = 5 d |>ax = 5
d = 5 ^fDnax = 5
d []nax = 5 = 5
d [Jnax = 0 = 1
d [;]nax = 0 d [Cl^ax = 1
^[4+5пДпа> d [б+5и Дпа?
= 6 , = 5 = 5 = 1
= 1, и = 1,2,...
Из примера видно, что на периодическом участке |д + 5й,15 + 5й^ =1,2,... величина ^[„^ах для момента времени /0 = /0 +5п, п = 1,2,..., остается постоянной для фиксированного значения /0 е [1.15_.
Величины максимальных динамических потоков из источника 5'=1, приходящих в сток /'= 4 в момент времени [1:
d ,max = 0 d 6,max = 0 ^ [i+5h ,max = 1
d ,max = 5 d 7,max = 5 ^ [2+5я ,max = 6
d ,max = 5 d 8,max = 5 ^ [з+5и ,max = 5
d ,max = 5 d 9,max = 5 ^ [4+5и ,max = 5
d , max = 0 d 1o,max = 1 ^ [5+5и, max = 1
п= 1,2,...
Итак, если ^ = ^ + 5п, п = 1,2,..., то величина
d постоянна для фиксированного значения
Г:е [1Д5~.
Обозначим через
12 ,max _ ^ d |, max
Г 2 ,тах _ 2 4| 1е|, Г 2 _
сумму величин максимальных динамических потоков, исходящих из источника в моменты времени /<е 1ь^2_> а через
~ |,12,тах = ^Ьтах 12!
му величин максимальных ди намических потоков, приходя щих в сток в моменты времени
|,*21-
Теорема 4. Пусть От $.(/./. т,с^ - периодическая динамическая сеть с характеристикой к; 5', I -источник и сток в сети От . Тогда
т
"кт+1+пТ, к+1 ~Х+пТ
,тах 2, " кТ+м+пТ ,тах
сум-
хождении максимального потока в сети О". Полученная величина максимального потока будет равна
суммарной величине С+^+ягГтах =
\/п = 1,2,... в периодической динамической сети О'. Например, граф будет
иметь следующий вид (рис. 3).
Теорема 6. Пусть т. с - периодиче-
ская динамическая сеть с характеристикой к; 5', I -источник и сток в сети ОТ . Тогда
а\т+1+пТ, 1 Т+пТ ,тах
2
3
m=1
= const Vw = 0,1,2,....
Теорема 5. Пусть выполняются условия теоремы 4.
Т
ТОГДа d ^ i. 1 i n7'_m(i;: _ ^^d ^ ' '/ _rIki;: _
m~\
- const \/n = 0,1,2,.... Данные теоремы являются следствиями теорем 2 и 3 соответственно. Они утверждают, что суммарные величины максимальных динамических потоков на периодическом участке постоянны для фиксированного значения п = 1,2,.... Для их нахождения определим подмножество вершин вспомогательного графа X" (^0)с с!1 : Х"= 4еХ':кТ\х\ + 1<х< < + Рас-
смотрим граф G" \x«,f \х",с\х" „> являющийся подграфом G' порожденным множест-
вом X" . Таким образом, определим новый граф, соответствующий периодическому участку + ^ + + =1,2,... на вспомогательном графе G'.
Граф G" является обычной (нединамической) сетью с несколькими источниками и стоками. Множеством источников на графе G", соответствующих .v'e X. будет Xs:f)X", а множеством стоков, соответствующих i'el, - Xi'C}X". Введем на графе G' 'фиктивные источник и сток и решим задачу о на-
Рис. 3
= а 1Т+1+пТ' С+13,+«г7тах уп = 01Х
Таким образом, суммарные величины максимальных динамических потоков на периодическом участке равны.
Замечание 3. Пусть - ориентирован-
ный мультиграф (нединамический), т.е. на нем присутствует одна или несколько кратных дуг. Пусть, например, на графе О есть набор кратных дуг
М^М2,...,!*"
= 1,2,
, n.
Решая задачу о нахождении максимального потока замен
n
в мультиграфе G, можно заменить и1,и2,...,и" одной
дугой и, такой что п
О П"(Г
r=1
т.е. пропускная
способность новой дуги будет равна сумме пропускных способностей всех кратных дуг, ведущих из I в _/. В периодическом динамическом графе (¡у и, /, г, с в фиксированный момент времени /() с N некоторые из кратных дуг могут быть активны, некоторые - нет. Поэтому, вообще говоря, для каждого момента времени /() с N набор кратных дуг из вершины г в вершину у можно заменить одной
дугой и: / ( ^ / . пропускная способность которой равна сумме пропускных способностей тех из них, которые активны в момент времени 10 .
Литература
1. Замбицкий Д.К., Лозовану Д.Д. Алгоритмы решения оптимизационных задач на сетях. Кишинев, 1983.
4
2. Кристофидес Н. Теория графов. Алгоритмический под- 3. Ерусалимский Я.М., Скороходов В.А. // Изв. вузов. Сев.-ход: Пер. с англ. М., 1978. Кавк. регион. Естеств. науки. 2003. № 2. C. 3-5.
Южный федеральный университет_3 апреля 2007 г.