УДК 519.1
МАКСИМАЛЬНЫМ ПОТОК В СЕТИ С ЦИКЛИЧЕСКОМ ЗАВИСИМОСТЬЮ ДЛИТЕЛЬНОСТЕЙ ПРОХОЖДЕНИЯ ПО ДУГАМ ОТ ВРЕМЕНИ
© 2011 г. В.А. Скороходов, А.С. Чеботарева
Южный федеральный университет, ул. Мильчакова, 8, г. Ростов-на-Дону, 344090
Southern Federal University, Milchakov St., 8, Rostov-on-Don, 344090
Рассмотрена задача нахождения максимального потока в сетях специального вида. В таких сетях для каждой дуги меняется длительность прохождения по ней. Считаем длительности прохождения периодическими по времени. Показано, что для таких сетей не выполняется теорема Форда и Фалкерсона, согласно которой величина максимального потока равна пропускной способности минимального разреза. Предложены оценки величины максимального потока в сети с циклической зависимостью длительностей прохождения по дугам от времени. Разработан алгоритм нахождения максимального суммарного потока для рассматриваемых сетей.
Ключевые слова: граф, алгоритмы на графах, достижимость, нестандартная достижимость, потоки в сетях.
The problem of the maximum flow in networks of a special kind is considered. In such networks for each arc duration ofpassage on it is specified. Thus, duration ofpassage is periodic on time. It is shown that for such networks it is not carried out Ford and Fulkerson theorems that the size of the maximum flow is equal to throughput of the minimum cut. Estimations of size of the maximum total flow in a network with periodic dependence durations passages on arcs from time are offered. The algorithm of a finding of the maximum total flow in considered networks is developed.
Keywords: graph, graph algorithms, reachability, nonstandard reachability, flows on networks.
Пример сетей с циклической зависимостью дли- сети при наличии пробок. При этом может возникать тельностей прохождения по дугам - транспортные следующая ситуация: если один поток начал движе-
ние раньше, а другой позже, но в некоторой точке участка дуги догнал первый, то они оба дальше не смогут пройти. Образуется дополнительная (непредусмотренная) пробка. Таким образом, возникает вопрос: какова величина максимального потока в сети с заданным условием и как его пропустить по дугам сети таким образом, чтобы не образовывалось дополнительных пробок? Данный пример показывает существенное усложнение классической задачи из-за влияния дуг вспомогательного графа друг на друга.
В настоящей работе предложен подход для решения потоковой задачи в сетях с ограничениями, аналогичными нестандартной достижимости [1, 2].
Постановка задачи
Пусть 0(Х, и,/) - ориентированная сеть, у которой для каждой дуги и указана величина ё(и, /) - длительность прохождения единицы потока по этой дуге в момент времени / (е[/0;Т-\\х ). Будем считать, что величины ё (и, /) периодические по времени с периодом Т, т.е. ё (и, t + Т) = ё (и, /) . Кроме этого, 0 < ё (и, 0 < Т У и е и Vt е 2+ .
Определение 1. Ориентированную сеть О с рассмотренным свойством будем называть сетью с циклической зависимостью длительностей прохождения по дугам от времени.
Рассмотрим задачу о нахождении максимального потока в такой сети. Поскольку по одной и той же дуге поток может быть пропущен в разное время, будем ставить задачу нахождения не классического стационарного потока (который для рассматриваемых сетей не является стационарным), а некоторого суммарного потока за один период.
Такую задачу невозможно решать при помощи классических алгоритмов, поэтому для ее решения построим вспомогательный граф (аналогично тому, как это делается в [1, 2]) по следующим правилам.
Каждой вершине х исходного графа поставим в соответствие Т вершин вспомогательного графа. Обозначим все получившиеся из х вершины {хг },(г = 0,1,...Т-1) (в каждый момент времени ti вершине х исходного графа соответствует хг).
Каждой дуге и (такой, что /(и) = (х, у)) исходного
графа будут соответствовать Т дуг {и^ }Т=о вспомогательного. При этом дуги таковы, что /) = (X, Уг+ё(и,(г )—аТ ) , где а=1, если г + ё(и, ti) > Т и а=0 в противном случае. Веса исходной дуги присваиваются соответствующим дугам вспомогательного графа.
Для решения задачи о максимальном потоке одного построения вспомогательного графа недостаточно, поскольку на вспомогательном графе дуги могут влиять друг на друга.
Определение 2. Через g(и , 0 будем обозначать
множество g(u^, t) = (а((); Ъ(()) п>[0;Т_1 — tо], где
a(t) =
1
■ (t-ti), t>ti;
d (u,ti)
-ti + T), t < 1
d (u,ti)
b(t) = a(t) + -
i
ё (и,
При этом t, ^ е [tо; tт—^ . Будем говорить, что дуга и существует в момент времени t , если
g (ин, ^ Ф0 .
Каждой дуге и^ ставится в соответствие объеди-
т-1
нение промежутков и g , tk) •
к=0 1
Если взять пересечение промежутков g(u',) и g(и", tk), то может получиться, что оно не пусто, т.е. в момент времени tk существуют обе дуги. А так как и' и и" соответствуют одной «физической» дуге и е С, то, очевидно, что величина двойного потока (по дугам и' и и") не должна превышать пропускную способность дуги й-Пример 1.
Рассмотрим граф, состоящий из двух вершин {1, 2} и дуги и, их соединяющей. Зададим для нее веса в различные промежутки времени.
Ti Т2 Тз Т4
u 3 i 2 i
Вспомогательный граф О', будет выглядеть следующим образом (рис. 1).
Рис. 1. Вспомогательный граф О'
Так как дуги 12 ^ 2о и 1з ^ 2о приходят в одну и ту же вершину, то некоторую (в данном случае последнюю) часть пути они должны будут проходить одновременно, что при ограниченной пропускной способности дуги исходного графа невозможно.
Для дуг 1о ^ 2з и 11 ^ 22 ситуация аналогична. В этом случае пускать по обеим дугам поток, равный пропускной способности дуги, нельзя [3]. Таким об-
разом, одновременно можно пустить максимальный поток по дугам 10 ^ 2з , 12 ^ 20 , или 10 ^ 2з , 1з ^ 2о, или 11 ^ 22, 12 ^ 2о, или 11 ^ 22, 1з ^ 2о.
Проиллюстрируем взаимное влияние дуг вспомогательного графа друг на друга (рис. 2).
Рис. 2. Взаимное влияние дуг вспомогательного графа
На рис. 2 каждая дуга вспомогательного графа разбита на столько частей, каков ее вес (в нашей задаче он равен длительности прохождения по дуге). Одну часть поток проходит за одну единицу времени. Легко видеть пересечения промежутков действия дуг.
Приведенный пример показывает, что использование классических методов для решения поставленной задачи о максимальном потоке в сети с циклической зависимостью длительностей прохождения по дугам от времени затруднительно. Более того, не выполняется теорема Форда и Фалкерсона о том, что величина максимального потока в сети равна пропускной способности минимального разреза [3].
Далее понадобятся следующие понятия:
Определение 3. Будем говорить, что дуги Ц ^ 2^
и щ влияют друг на друга, если существует момент времени 1 из промежутка [/0;Т-Лх такой, что пересечение g (щ , /) и g(ut2, /) не равно пустому множеству (т.е. 3/ е[/о; Т-1]2 : g(u,l, /) П g(щ2,/) Ф0).
Определение 4. Степенью влияния дуги назовем количество дуг, на которые влияет данная дуга. Обозначим %(и) = 2 Ь(и, V), где
V
к(и,1, ич) =
= |1,3/ е [/0; - ]2 : g(и^, /) Пg(и,г, /) ф 0;
[0, в противном случае.
Оценка величины максимального суммарного потока
Оценим величину максимального суммарного потока в сети с циклической зависимостью длительностей прохождения по дугам от времени. Справедливы следующие теоремы.
Теорема 1. Пусть (X ,7) - некоторый разрез [3, 4]. Тогда величина максимального суммарного потока во вспомогательной сети О не превышает величины
V < 2 С (и) , где М - максимальное подмножество
иеМ
разреза (X Y), содержащее наибольшее число элементов множества (X,Y) такое, что Vu, v е M выполняется h(u, v) = 0.
Теорема 2. Для величины максимального суммарного потока в сети G с циклической зависимостью длительностей прохождения по дугам от времени
имеет место соотношение V > min 2 C(u), где M' -
(X Y) ueM'
максимальное по вложению подмножество разреза (X,Y), содержащее наименьшее число элементов множества, такое, что Vu, v е M' выполняется h(u, v) = 0.
Таким образом, как следствие первых двух теорем, справедлива следующая
Теорема 3. Для величины максимального потока в сети G с циклической зависимостью длительностей
прохождения по дугам от времени имеет место соот-
*
ношение min 2 C(u) < V < min 2 C(u).
(X ,Y) ueM' (X ,Y) ueM
Пример 2.
На примере одного и того же «физического» графа (рис. 3) покажем верность наших утверждений.
Пусть период, с которым изменяются веса его дуг, равен 3.
Рис. 3. Исходный граф
Зададим таблицу весов дуг этого графа в различные промежутки времени.
Ti Т2 Т3
Ui 1 1 2
U2 2 1 2
U3 3 1 2
U4 1 1 1
Пусть пропускная способность (ПС) каждой дуги этого графа равна 1.
По данным примера построим вспомогательный граф (рис. 4).
Рис. 4. Вспомогательный граф
Точки 5 и к - фиктивные источник и сток (ПС всех дуг, выходящих из 5 и входящих в к, считается равной да).
Видно, что существует 6 различных способов попасть из введенного фиктивного источника 5 в фиктивный сток к. Опишем и обозначим эти пути: путь 1: 5 ^ 10 ^ 32 ^ 40 ^ k ; путь 2:5 ^ 21 ^ 32 ^ 40 ^ к ; путь 3 :5 ^ 11 ^ 32 ^ 40 ^ к ; путь 4:5 ^ 11 ^ 22 ^ 31 ^ 42 ^ к ; путь 5 : 5 ^ 12 ^ 21 ^ 32 ^ 40 ^ к ; путь 6: 5 ^ 12 ^ 31 ^ 42 ^ к . Рассмотрим дугу 10 ^ 21 . Она влияет на дугу 12 ^ 21 . Величина двойного потока (по 10 ^ 21 и 12 ^ 21) не должна превышать ПС дуги 1 ^ 2. Значит, пропуская по одной из этих дуг поток, равный ПС дуги 1 ^ 2, по 2-й дуге пропустить какой-либо поток мы уже не сможем. Следовательно, пути 2 и 5 некоторым образом влияют друг на друга, так как эти дуги являются частью путей 2 и 5. При рассмотрении дуги 11 ^ 22 видно, что она не влияет ни на какую другую. Значит, пока по пути 6 мы можем проходить одновременно с одним из путей 2 или 5.
Аналогично рассматриваем 10 ^ 32 . Она влияет на 11 ^ 32. Отсюда можно сделать вывод о влиянии путей 1 и 3 друг на друга. Путь 4 не влияет ни на какой другой путь.
Дуга 20 ^ 30 влияет на дуги 21 ^ 32 и 22 ^ 31, которые друг на друга не влияют. Так как эта дуга не входит ни в один из 6 путей, описанных выше, значит, влиятельности путей она не меняет.
Остается рассмотреть дуги 32 ^ 40 , 30 ^ 4 ,
3Х ^ 42. Они не влияют друг на друга, значит, влиятельность путей при прохождении по ним не изменяется.
Таким образом, получили, что пути 2 и 5, 1, 3 некоторым образом влияют друг на друга, а пути 6 и 4 не влияют на остальные.
Насыщая одну дугу, пропуская по ней поток некоторой величины, мы должны будем уменьшить на эту же величину ПС всех дуг, на которые она влияет. Насыщая некоторый путь, мы также должны уменьшить ПС всех дуг, по которым он проходит, так как возможны случаи, как в нашем примере, по дуге 32 ^ 40
проходят сразу 4 пути. Ясно, что при насыщении пути 2 на некоторую величину ПС для других путей уменьшится на эту величину.
Таким образом, если мы выбираем и насыщаем путь 2 (пропускаем по нему поток, равный 1), то на 1 необходимо уменьшить ПС дуг 12 ^ 21, 20 ^ 30 и 32 ^ 40, после чего она стала нулевой. А значит, пути,
содержащие эти дуги, становятся недоступными. Такими стали пути 1, 3 и 5.
Остались доступными пути 4 и 6. Выберем и насытим один из них (например, путь 4). Уменьшим ПС, дуги 3 ^ 42 . Недоступным стал путь 6.
Таким образом, величина потока в заданном графе равна 2. Больший поток мы пропустить не можем.
Подсчитаем верхнюю и нижнюю оценки максимального суммарного потока во вспомогательной сети при помощи соотношения в теореме 3.
Для разреза
({5Д0Ль12};{20,21,22,30,31,32,40,41,42, к}) на вспомогательном графе (рис. 4) максимальное число не влияющих друг на друга дуг равно 4, ПС каждой дуги равна 1. Следовательно, V > 4 и V < 4 . Из разреза ({5Д0,11,12,21,22};{20,30,31,32,40,41,42,к}) видно, что
V < 4 и V > 4, как и в предыдущем разрезе. Рассмотрим разрез ({5,10,11,12,21,22,31,32};{20,30,40,42,41, к}). Для него - V < 2, V > 2, для разреза ({5Д0Д1,12,20,21,22};{30,31,32,40,41,42,к}) — V<4^>3 , ({5,10,11,12,20,21,22,30,31,32},{40,41,42,к}) — V < 3^ > 3. Получить более низкие оценки не удаётся.
Таким образом, тт{4,4,3,...2} < V* < тт{4,4,3,...2} ,
т.е. 2 < V < 2 .
Полученная ПС < 2, значит, неравенство верно. Пусть ПС всех дуг, кроме дуги 3 ^ 4, равна 1, ПС дуги 3 ^ 4 зададим равной 2. Тогда ПС всех разрезов, не содержащих ни одну из 3 дуг 30 ^ 41 , 31 ^ 42, 32 ^40, не изменятся, а ПС, например, разреза ({5,10,11,12,20,21,22,30,31,32},{40,41,42,к}) станет равной 6.
При таких условиях наше утверждение примет вид
V < mm{4,4,6,...} или V < 4.
Рассматривая, выбирая и насыщая некоторые пути, получаем поток, равный 4 (насытили пути 1, 2, 4, 6). В этом случае мы достигли верхней границы.
Алгоритм построения максимального потока в сети с циклической зависимостью длительностей прохождения по дугам от времени
Определение 5. Степенью влияния цепи ц будем называть количество цепей, на которые она влияет.
Обозначим х(ц) = 2 Км, Л), где л
|1, Зи ел, Зу е ц : %(и, V) = 1; 0, а Шоеаш пёо^аа.
Кц, л) =
Для нахождения максимального потока построим вспомогательный граф, который назовем графом влиятельностей. Каждая вершина графа влиятельно-стей будет соответствовать одному простому пути во вспомогательной сети. Если 2 пути влияют друг на друга, то на графе влиятельностей вершины, им соответствующие, будут смежными. Рассмотрим, например, граф влиятельностей некоторой вспомогательной сети (рис. 5).
Рис. 5. Граф влиятельностей некоторой вспомогательной сети
В данном графе 8 вершин, т.е. в сети 8 простых путей. Вершину ui соединяют с другими вершинами 2 дуги. Значит, путь u влияет на 2 других пути. По определению это означает, что степень влияния пути uj равна 2 (x(uj) = 2). Аналогично, рассматривая все остальные вершины построенного графа, можно определить степени влияния всех остальных путей данной сети.
Можно описать алгоритм построения максимального потока как набора путей, насыщающих дуги вспомогательной сети с учетом влиятельностей.
Алгоритм
0. Находим все насыщающие цепи. Если таких цепей нет, то поток построен.
1. Строим граф влиятельностей.
2. Всем вершинам графа влиятельностей ставим в соответствие метки m = да, k = х(м) - равная степени влияния пути.
3. Из вершин, метка m которых равна да, выбираем вершину x с наименьшей степенью влияния.
4. Ей назначаем метку m = £,(е Z+), которая является наименьшим числом, которое не равно числам на смежных с x вершинах.
5. Степени влияния k вершин, смежных с x, уменьшаем на 1.
6. Если остались вершины, у которых метка m равна да, то идем на шаг 3. Иначе работа по пометке вершин завершена.
7. Разобьем множество вершин графа влиятельно-
r
стей на подмножества U xi, отнеся к xi те вершины,
i=0
у которых метка m=i . r - максимальная метка.
8. В качестве множества M выбираем то множество xi , у которого наибольшее число элементов.
9. Производим насыщение по множеству M . Возврат на шаг 0.
Пример 3 .
В качестве примера, иллюстрирующего работу приведенного алгоритма, рассмотрим вспомогательную сеть G' на рис. 6; ПС указаны рядом с дугами.
Перечислим все простые пути, их веса и степени влияния в этой сети:
M-i: 1о ^2i ^32,С(И) = 2,х(М1) = 2;
M2 :1i ^ 2- ^З2,c(M2) = 2,x(M2) = 3 ;
мз :12 ^ 2о ^ 31, с(мз) = 2 х(мз) = 2; M4:1о ^ 31, c(M4)=3 x(M4)=1;
Поступила в редакцию_
:ll ^32,с(ц5) = 3,х(Ц5) =1; Цб :12 ^30,с(^6) = 3,ХОб) = 1 •
1 2 3
Рис. 6. Вспомогательная сеть О'
Для рассматриваемой сети построим соответствующий ей граф влиятельностей (рис. 7).
Рис. 7. Граф влиятельностей для вспомогательной сети О'
Применяя алгоритм, получим, что множество насыщающих цепей имеет вид Ц3, Ц4, , ц6.
Так как больше насыщающих цепей нет, то это означает, что величина максимального суммарного потока равна 10.
Литература
1. Басангова Е.О., Ерусалимский Я.М. Алгоритм нахожде-
ния максимального потока в частично-ориентированной сети // Дискретные структуры и их приложения. Элиста, 1988. С. 23-28.
2. Ерусалимский Я.М., Скороходов В.А. Графы с вентиль-
ной достижимостью. Марковские процессы и потоки в сетях // Изв. вузов. Сев.-Кавк. регион. Естеств. науки. 2003. № 2. С. 3-8.
3. Форд Л.Р., Фалкерсон Д.Р. Потоки в сетях: пер. с англ. М., 1966. 223 с.
4. Оре О. Теория графов: пер. с англ. М., 1980. 334 с.
12 января 2011 г