3. Гусева Т.В. и др. Гидрохимические показатели состояния окружающей среды. Справочные материалы. 2000.
4. НиканоровА.М., ЕмельяноваВ.П. // Водные ресурсы. 2005. Т. 32. С. 61-69.
5. Архипова О.Е., Сурков Ф.А. Интернет-технологии в проблемах моделирования качества поверхностных вод // Современные информационные технологии в образовании: Южный федеральный округ: Науч.-метод. конф. 2006.
Южный научный центр РАН, г. Ростов-на-Дону 4 мая 2006 г.
УДК 519.1
ОГРАНИЧЕННЫЕ МАГНИТНЫЕ ДОСТИЖИМОСТИ НА ОРИЕНТИРОВАННЫХ ГРАФАХ
© 2006 г. М.В. Кузьминова
Four different types of non-standard reachability on directed graph G = (X,, U, f) are considered and the shortest path problem is solved on such graphs. The paper proposes the construction of additional graph G' = (X', U, f) allowing G to be considered as an ordinary digraph with standard reachability.
Известны классические задачи, решаемые на ориентированных графах, например, задача о нахождении кратчайшего пути, максимального потока, задача о достижимости, о нахождении наиболее надежного пути, о случайном блуждании частицы на графе, и многие другие [1-3]. Они рассматриваются для случая, когда дуги графа равноправны, но если на прохождение по дугам накладываются какие-либо ограничения, дуги перестают быть равноправными, а некоторые пути - допустимыми. В этом случае алгоритмы решения рассмотренных выше задач необходимо модифицировать с учетом вводимых ограничений или заменить.
В работах Е.О. Басанговой, Я.М. Ерусалимского и С.Ю. Логвинова [49] были впервые рассмотрены вопросы нестандартной достижимости на ориентированных графах. В [10, 11] было рассмотрено три вида магнитной достижимости: с накоплением неубывающей магнитности, с накоплением - исчезанием и с возрастанием-убыванием магнитности. В настоящей работе рассматриваются магнитная достижимость с параметром n0 на начальном и конечном отрезках пути, на отрезке [nb n2], а также магнитная достижимость после n0 шагов. Формулируется и решается задача о нахождении кратчайшего пути на графе с этими видами достижимости.
1. Магнитная достижимость на начальном отрезке пути с параметром n0
1.1. Постановка задачи Рассматривается ориентированный граф G(X, U, f), множество дуг которого представляет собой объединение двух попарно непересекающихся подмножеств: U = UM u UH, UM n UH = 0, UM Ф 0, UH Ф 0 (UM и UH назо-
вем множествами магнитных и немагнитных дуг соответственно). Пусть задано п0 е N. Путь ц на графе является допустимым, если V/ е [1, п0 - 1]^ из условия ц(1) е им, следует, что ¡г(1 + 1) е им. То есть ограничение на прохождение по дугам действует только на начальном отрезке пути длины п0. Достижимость такого вида назовем магнитной на начальном отрезке пути с параметром п0. Граф с описанными ограничениями обозначим
о£( х ,и, /).
Пример 1. Рассмотрим следующий граф (рис. 1): / ( и, ) = (1,2 ), / ( м2 ) = ( 2,3 ), / (и3 ) = ( 2,5 ),
/(И4) = (3,4),/(И5 ) = (3,6), /(и6 ) = (4,7),
/ (И7 ) = (5,6), / (и8 ) = (6,7 ), / (и9 ) = (7,8);
Им = {и2
49, Н
Рис. 1
На рис. 1 рядом с названием дуги указано буквенное обозначение типа дуги.
Для данного графа путь (иь и2, и4, и6, и9} является допустимым при п0 = 3, но не является допустимым при п0 = 4, поскольку отрезок пути (иь и2, и4, и6} длины 4 не удовлетворяет сформулированному выше условию допустимости. Действительно, и4 е им, но и6 е им.
1.2. Кратчайшие пути на графах с магнитными ограничениями на начальном отрезке пути
Рассмотрим задачу о нахождении кратчайшего пути между двумя вершинами на графе О^. Для её решения построим вспомогательный граф, на котором присутствуют лишь допустимые для исходного графа пути, а кратчайшему пути из одной вершины в другую на графе ОН соответствует кратчайший путь из выделенной вершины в подмножество вершин вспомогательного графа. Его конструкция описана алгоритмом построения вспомогательного графа.
Пусть О^(X,и,/,с) - взвешенный ориентированный граф с введенными ограничениями на допустимые пути. Здесь с : и ^ (0, +да) - весовая
функция длины. Обозначим через /и(a, b) путь из вершины a е X в вершину b е X (допустимый с точки зрения введенных ограничений). Рассмотрим задачу нахождения на графе ^(X,U, f, c) кратчайшего пути из
вершины a в вершину b, т.е. такого пути i(a,b), что c(i(a,b
^ min{(a,b)}. Будем считать, что c(i(a,b)) > 0.
Заметим, что данная задача может не иметь решения, поскольку ограничения на достижимость могут оказаться такими, что не найдется ни одного допустимого пути между двумя выбранными вершинами. Пример 2. Рассмотрим граф G-f (X, U, f,c) (рис. 2):
3
из, н
Рис. 2
Здесь п0 = 2,
/ ("1 ) = (1,2 ), / («2 ) = ( 2,3), / («3 ) = ( 2,4 ), / («4 ) = (3,4), / («5) = (4,5 );
иМ ={«1},иН ={«2, «3, «4, «5}.
Пусть требуется найти кратчайший путь из вершины 1 в вершину 5. Поскольку п0 = 2, отрезок любого пути длины 2 на данном графе должен удовлетворять условиям. В нашем случае существует два пути из 1 в 5: ¡л1 = {«1, «2, «4, «5}; ^2 = {«1, «3, «5}.
Начальные отрезки этих путей /0 = { и1, и2} и ^ = {«1, «3} не удовлетворяют условию магнитности. Значит, для данного графа не существует допустимого пути между указанными вершинами.
1.3. Построение вспомогательного графа Используя исходный граф О^ (X, и, /, с), построим О^ '(X , и , /', с'),
такой что |х | = 2|Х|. Множества и' и с' : и' ^ (0, +<») строятся следующим образом:
- если /(и) = (г,у), и е ин, ко множеству и' добавляются дуги: /(и') = = (г,у); с'(и') = с(и);/(и1) = (г,у + |Х|); с'(и') = с(и);
- если /(и) = (г,у), и е им, ко множеству и' добавляются дуги: /(и1) = = (г,] + X); с'(и') = с(и);/(и1) = (г + И,У + И); с'(и) = с(и).
Для графа ОН '(X , и , /', с') построим точное транзитивное замыкание порядка п0. Для этого найдем А"0, где А - матрица смежности графа ОН '. Граф, определяемый матрицей А"0, обозначим О"Н '(X',и,/,с).
Для получения матрицы А"0 воспользуемся следующим алгоритмом.
I ( п|х 'I / \ ( )Х1
Рассмотрим матрицы А = {аи } (1 < "0) и А = {аи } , при этом
' п, ]=1 ^ '/, ] =1
А+1 = а1 . А. Введем массив т[/], / = 1..|хтакой что, если (/,]) - дуга графа О"Н ', то т[/] содержит последовательность вершин, соответствующих кратчайшему пути длины "0 из вершины / в ] на графе ОН '. Для каждого значения / = 1..| X '| занесем в т[/] значение /.
Далее для всех / = 1..|X'|; для всех ] = 1..|X'|; для всех к = 1..|X '|; если а\к Ф 0, ак] Ф 0 и с(/, ])> с(/, к) + с(к, ]), то
- а1] = 1;
- с (/, ] ) = с (/, к) + с (к, ]); (*)
- в т[/] добавить вершину к.
(До первого присваивания значения в пункте (*) длина любой дуги графа ' полагается равной да.)
По графу ОНо '(X\и,/,с) построим вспомогательный О% ''(X",и",/",с"), такой, что |Х"| = |Х'| = 21X1, а и" и с" : и" ^ (0, +да) строятся по правилу:
- если / (и) = (/, ]), и е и', (/ < XI), ко множеству и" добавляется дуга
/"(и") = (/,] + 1X1); с"(и") = с'(и);
- если /(и) = (/,]), и е и, ко множеству и" добавляется дуга /"(и") = = (/ + XI, ] + И); с"(и") = с'(и).
Приведем схему построения вспомогательного графа для случая магнитной достижимости на начальном отрезке пути:
О"0 ^ О"0 ^ О"0 ^ О"0 .
Для графа из примера 1 при "0 = 3 вспомогательный граф О3Н ''(X", и", / '', с '') приведен на рис. 3.
Сформулируем следующую теорему:
Теорема 1. Пусть ОЩ (X,U, /, с) - исходный граф, описанный ранее,
'(X ",U",/",с ") - вспомогательный граф, построенный на основе гра-
фа О^. Кратчайшему пути из вершины г е X в у е X на исходном графе
соответствует кратчайший путь из вершины г е X в у = г + |Х| (е X") на вспомогательном графе.
Рис. 3
Справедливость теоремы следует из описанного построения вспомогательного графа.
1.4. Алгоритм нахождения кратчайшего пути
Приведем алгоритм нахождения кратчайшего пути из вершины а е X в Ь е X во взвешенном ориентированном графе О^(Х,и, /, с). Он основан
на известном алгоритме Дейкстры поиска кратчайшего пути [1-2]. Поскольку не все пути в исходном графе являются допустимыми (с точки зрения введенных ограничений на достижимость), найдем кратчайший путь из вершины а в некоторое подмножество вершин на вспомогательном графе О^ ''(X", и", /", с"), а затем восстановим его как путь на исходном графе ОН (X, и, /, с).
Обозначим Г+ = {у е X | (г, у) е и}. Положим М = 2 (значение М определяется равенством X''l = ^1X1).
В алгоритме Дейкстры для каждой вершины г определено два типа меток: - длина кратчайшего пути из вершины а в г; - номер вершины, с помощью которой вершина г получила метку I.
В нашем случае возможности попасть из одной вершины исходного графа в другую за данное количество шагов соответствует возможность попасть из выделенной вершины вспомогательного графа в некоторое подмножество его вершин. Таким образом, каждой вершине исходного графа ставится в соответствие несколько вершин на вспомогательном графе, которые условно можно назвать «вершинами-двойниками». Чтобы восстановить кратчайший путь в исходном графе, для каждой г е X" требуется знать, двойником какой вершины у е X она является. Для этого вводится массив РагепЛор, такой что РагепЛор [г] = у.
Итак, для каждой вершины г е X" вспомогательного графа ОН ''(X", и", /", с") определим массивы меток:
- l[i] (i = 1.M|X|) - длина кратчайшего пути из вершины a в i на графе ОН ''(X'', U", /", с");
- z[i] (i = 1.MX) - номер вершины графа О% ''(X", U", /",с"), с помощью которой была вычислена метка l[i];
- ParentTop [i] (i = 1..M|X|) - номер вершины исходного графа, двойником которой является i.
Для хранения вершин, к которым алгоритм может перейти на следующем шаге, вводится массив NextTop, содержащий пары значений (i, l(i)), i £ X".
Метка l[i] вершины i = (i = 1.M|X|) может быть временной или постоянной, а сама вершина - просмотренной или непросмотренной. Тогда алгоритм может быть сформулирован следующим образом:
1. Начальные присваивания: l[a] = 0;
z[a] = -1;
Vj = 1..M|X|, j ф a {
i[j] = z[j] = -1;
}
Все вершины считаем непросмотренными.
2. Объявим вершину a графа ОН ''(X", U", /", с") текущей, метку l[a] -
постоянной. Метки всех остальных вершин - временные. Будем обозначать текущую вершину сиг (т.е. сиг = a).
3. Очистить массив NextTops.
Vj £ Г+иг & (j имеет временную метку )& (j - непросмотренная)
{
l[j] = min (lj], 1[сиг] + с[сиг][]У;
Если при пересчете метка l[j] вершины j изменилась, то
{
z[j] = сиг;
занести в массив NextTops пару значений (j, lj]);
} }
Если выбор вершины j, удовлетворяющей перечисленным условиям, невозможен, то считаем вершину сиг просмотренной и изменяем ее значение следующим образом:
- если г[сиг] = -1, то алгоритм завершен и кратчайшего пути из источника в сток не существует;
- иначе сиг = 2[сиг].
После этого следует перейти к шагу 3.
4. Среди вершин, принадлежащих массиву №хЛорБ, выбираем такую, для которой значение метки I минимально. Обозначим ее t е X". Тогда, если 1Щ = да, то алгоритм завершен и не существует кратчайшего пути из источника в сток; если Зк е [0, М - 1 : t = Ь + к|Х|, то найден кратчайший путь на вспомогательном графе ОН ''(X", и", /", с"). Кратчайший путь для
исходного графа восстанавливаем при помощи меток г[/] (/ = 1.М|Х|) и массива РагеШТор [/'] (/' = 1.М|Х|) следующим образом:
О I = Г;
о напечатать значение РагеШТор [/];
о пока г[/'] > -1 {
напечатать значение РагеШТор №]];
I = 2[1\;
}
иначе, полагаем сиг = t и возвращаемся на шаг 3.
Длина полученного кратчайшего пути равна /[/].
Для графа О3Н(X,и,/,с) зададим весовую функцию с : и ^ (0, +да) (рис. 4).
114, М
Рис. 4
В рамке рядом с дугой указана ее длина. с(и1) = 3, с(и2) = 1, с(и3) = 2, с(и4) = 3, с(и5) = 1, с(и6) = 4, с(и7) = 1, с(и8) = 4, с(и9) = 2. Пусть а = 2, Ь = 8. Всего для данного графа существует три пути из вершины 2 в 8, а именно = {и2, и4, и6, и9}, = {и2, и5, и8, и9}, ,м3 = {и3, и7, и8, и9}.
Из них только и ,м3 являются допустимыми, так как отрезок пути ^2
={и2, и5} не является допустимым (и2 е и^, и5 г и^). Кратчайшим путем для исходного графа является путь = {и3, и7, и8, и9}, его длина равна 9.
Таким образом, кратчайший путь для графа ОН (X,и,/,с), изображенного на рис. 3, сначала был найден на вспомогательном графе
О^ ' (Х",ип, /",с ") (на котором присутствуют только допустимые пути), а затем с помощью меток вершин г [г] (/ = 1,2|Х|) восстановлен для исходного графа.
2. Магнитная достижимость на конечном отрезке пути с параметром п0
Пусть О(Х, и, / - ориентированный граф, и = им и ин, им п ин = 0, им Ф 0, ин Ф 0. Пусть задано п0 е N. Путь ц : [1, п\ы ^ и на графе является допустимым, если V/ е [п - п0 + 1, п - 1\№ из условия ц(() е им следует, что ]и(г + 1) е им. (Магнитное ограничение действует на конечном отрезке длины п0). Такую достижимость назовем магнитной достижимостью на конечном отрезке пути с параметром п0. Граф с описанным ограничением обозначим ОП^^(Х ,и, /). Рассмотрим задачу о нахождении кратчайшего пути между двумя заданными вершинами а, Ь е X на графе ОП^0(Х,и,/), т.е. зададим функцию длины с : и^ (0; +да) и будем рассматривать граф ОП^0 (X, и, /).
Данную задачу можно свести к задаче о нахождении кратчайшего пути из вершины а еХв Ь еХна графе ОП^(Х,и,/,с), т.е. в условиях магнитной достижимости на начальном отрезке пути с тем же значением параметра п0. Для этого необходимо поменять направление всех дуг графа О^ на противоположное, а также изменить тип дуги (если дуга была маг-
нитной, то она становится немагнитной, и наоборот). Тогда кратчайшему пути из вершины а е Х в Ь е Х на
путь из вершины Ь в а на графе Опн .
граф
из вершины 2 в 6 (рис. 5).
пути из вершины a £ Xe b £ X на графе О^ соответствует кратчайший
Пример 3. Рассмотрим граф Ок (X, U, /, с) и найдем кратчайший путь
иь н m и2, м U Г 3, н "71 и5, м и7, н ГП »
1 Ш ~ 2 Ü4, Н L L Аа Ш
U&H
4
Рис. 5
/(и ) = (1,2), /и ) = (2,3), /(из) = (2,5), /(и4) = (2,4), /(и5) = (3,5),
/(и6)=(4,5),/(ип) = (5,6), Uм = [и2,и5},Uн = [щ,щ,и4,и6,и7}, с(щ) = I, c (и2 ) = 3, с (и3 ) = 5, с (и4 ) = 2, с (и5 ) = 5, с (и6 ) = 1, с (и7 ) = 4.
Рассмотрим пути, ведущие из 2 в 6: = {и2, и5, и7}, г2 = {и3, и7}, ¡3 = {и4, и6, и7}. Поскольку п0 = 2, допустимыми будут только пути г2 и ¡3, так как на конечном отрезке пути длины 2 и5 е им, а и7 е ин (что противоречит условию магнитности).
После изменения направления и типа дуг граф будет иметь вид (рис. 6):
3
4
Рис. 6
ТеперьМ) = (2, 1), А^) = (3, 2),/(щ) = (5, 2),/(щ) = (4, 2),/(из) = (5, 3), /и6) = (5, 4), /(и7) = (6, 5), им = {и1, и3, и4, и6, и7}, ин = {и2, и5}, с(и1) = 1, с(и2) = 3, с(и3) = 5, с(и4) = 2, с(и5) = 5, с(и6) = 1, с(и7) = 4.
Найдем кратчайший путь из 6 в 2 в условиях магнитной достижимости
на начальном отрезке пути длины 2. Таким путем будет / ={и7, и6, и4}, с (/ ) = 7. Значит, кратчайшим путем из вершины 2 в 6 на графе
О^(Х,и,/,с) будет // ={и4,и6,и7}, с(/) = 7.
Таким образом, задача о нахождении кратчайшего пути между двумя вершинами на графе ОК (X, и, /, с) сводится к задаче о нахождении кратчайшего пути на графе ОН (X, и, /, с).
3. Магнитная достижимость, возникающая после п0 шагов
3.1. Постановка задачи
Пусть О(Х, и, /) - ориентированный граф, такой что и = им и ин, им п ин = 0, им ф 0, ин Ф 0. Зададим п0 е N. Путь ¡г : [1, н\ы ^ и является допустимым, если из условия ¡(¡) е им следует, что ¡1(1 + 1) е им V/ е [п0 + 1, п - 1\№ То есть ограничения на прохождение по дугам начинают действовать после п0-го шага. Достижимость такого вида назовем магнитной, возникающей после п0 шагов, а граф с такими ограничениями на достижимость обозначим Оп + (X ,и, /).
Рассмотрим граф из примера 1 в условиях магнитной достижимости,
возникающей после п0 шагов (рис. 7):
>-^
иг, м уГ \ и«, н
Рис. 7
Если п0 = 2, то допустимыми для данного графа являются, например, пути = {и2, и4, и6, и9}, ^2 = {и2, и5, и8, и9}, ,м3 = (иь и3, и7, и8}, но если рассмотрим путь ¡!3 = (иь и3, и7, и8, и9}, то он не будет допустимым при таком значении параметра п0, так как ц(4) = и8 е им, но ц(5) = и9 е ия. Если п0 = 4, то на данном графе любой путь длины большей, либо равной 4 будет являться допустимым.
Как и в случае магнитной достижимости на начальном отрезке пути, рассматривается задача о нахождении кратчайшего пути из вершины а е X в Ь е X на графе О„о + (X, и,/), т.е. вводится функция длины с : и^
^ (0; +да) и рассматриваются взвешенные графы О + (X ,и, /, с). Предлагается алгоритм построения вспомогательного графа Ощ + '(X',и',/',с'),
на котором присутствуют только допустимые для исходного графа пути. Сначала кратчайший путь находится среди допустимых путей на вспомогательном графе, а затем восстанавливается для графа Ощ+.
3.2. Построение вспомогательного графа Используя исходный граф О + (X, и, /, с), построим вспомогательный
граф О + '(X',и',/',с'), такой что X! = 31X1. Для построения множества и' необходимо сначала построить точное транзитивное замыкание порядка п0 графа Ощ + (X,и,/,с). Обозначим его О„0 + (X,и,/,с). Тогда множество и' строится следующим образом:
- для всех дуг и е и, если/и) = (г,у), ко множеству и' добавляется дуга /(и1) = (г, у + И); с' (и ') = с (и);
- если /(и) = (г,у), и е ин, ко множеству и' добавляются дуги /(Щ ) = (г + И,У + И); с'(и ) = с(и);/М = (г + И,У + 2X1); с'М = с(и);
- если /(и) = (г, у), и е им, ко множеству и' добавляются дуги /и1) = (г + И,У + 2X1); с'и1) = с'(и);= (г + 2X1,У + ВД; с'(иА') = с(и);
Схема построения вспомогательного графа: Ощ + ^ Ощ + ^ Ощ + '.
Построим вспомогательный граф для рассмотренного в пункте 3.1 графа при п0 = 2 (рис. 8):
17 18 Ii 20 2L 22 23 24
4 5
Рис. 8
Для графов с магнитной достижимостью, действующей после п0-го шага, справедлива теорема, аналогичная теореме 1.
Теорема 2. Пусть О+ (X,и,/,с) - исходный граф, описанный в
пункте 2.1, О + ' (X' , и' , /' , с' ), - вспомогательный граф, построенный на основе графа О +. Кратчайшему пути из вершины / е X в ] е X на исходном графе соответствует кратчайший путь из вершины / е X' в подмножество вершин {]к е X':]к = I + , к = 1,2} на вспомогательном графе.
Как и в случае теоремы 1, её справедливость следует из построения вспомогательного графа О + (X',и',/',с').
3.3. Алгоритм нахождения кратчайшего пути на графе с магнитными ограничениями, возникающими после п0 шагов
Алгоритм поиска кратчайшего пути из вершины а е X в Ь е X на графе О + (X,и,/,с) аналогичен алгоритму для графа ОH(X,и,/,с), описанному в пункте 1.4. Необходимо только положить М = 3.
После окончания работы алгоритма кратчайший путь из а в Ь представляется в виде последовательности вершин /ь /2, ..., 1к (**), но так как при построении вспомогательного графа (к которому и применяется алгоритм) используется транзитивное замыкание, в полученном кратчайшем пути могут встречаться дуги, которых нет на исходном графе. Пусть, например, (1т, 1п) 1 < т, п < к - одна из таких дуг, т.е. (¡т, /п) й и. Тогда в последовательности (**) вершину 1т необходимо заменить на последовательность т[/т], определенную в пункте 2.2. Полученная таким образом последовательность вершин соответствует кратчайшему пути между вершинами а в Ь на графе Оп + (X, и, /, с).
Для графа, изображенного на рис. 4, с теми же значениями весовой функции и ограничениями, сформулированными в пункте 3.1, получим следующий вспомогательный граф (рассмотрим случай п0 = 3) (рис. 9):
1 2 3 4 5 6 7 8
Рис. 9
Пусть а = 1, Ь = 8. Кратчайшим путем между этими вершинами будет являться путь ^ = (м1, и2, и4, и6, и9}, его длина равна 13.
Замечание 1. Сравним результаты работы алгоритмов построения вспомогательных графов пунктов 1.2 и 3.2 (рис. 3 и рис. 8). Легко заметить, что вспомогательный граф для задачи с магнитными ограничениями, возникающими после п0 шагов, на конечном отрезке пути менее громоздкий, чем для ограничений на начальном отрезке. Это объясняется тем, что
при построении графа Ощ + (X',и' , /' , с') используется транзитивное замыкание графа 0(Х, и, /) порядка п0, что позволяет заменить последовательность из п0 дуг исходного графа одной дугой и уменьшает размер вспомогательного графа.
Замечание 2. Задача о нахождении кратчайшего пути между двумя вершинами на графе О+ (X,и,/,с), в отличие от аналогичной задачи
для графа ОК (X, и, /, с), не может быть сведена к задаче о нахождении
кратчайшего пути на графе ОН (X, и, /, с).
4. Магнитная достижимость на отрезке [п1, п2]
4.1. Постановка задачи
Пусть О(^ и,/) - ориентированный граф, и = им и ин, им п ин = 0, имФ 0, инФ 0. Зададим щ, п2 е Щщ < п2). Путь ^ : [1, п\к^ и является допустимым, если из условия ц(г) е им следует, что ¡г(1 + 1) е им V/ е [пь п2 - 1]№ Таким образом, ограничение на прохождение по дугам действует на отрезке пути [пь п2\. Достижимость такого вида назовем магнитной достижимостью на отрезке [пь п2\, а граф с такой достижимостью обозначим О[ ^](X,и,/).
Пример 4. Снова рассмотрим граф из примера 1 пункта 1.1. Пусть магнитные ограничения действуют на отрезке [2, 4] (рис. 10).
Рис. 10
Рассмотрим, например, путь = (иь ^2, И5, и9}. В нашем случае ограничение действует на отрезке {и2, и5, и8}. Условие магнитности здесь не выполняется: и2 е им, и5 е ин, поэтому путь ¡1Х не является допустимым для данного графа. Возьмем другой путь: ¡12 = (иь и3, и7, и8, и9}. На отрезке этого пути {и3, и7, и8} выполняется условие магнитности, значит путь ¡2 -допустим.
На дугах графа О[и п ]Х,и,/) определим функцию длины
[ "1, "2 ]
с : и ^ (0; +да) и рассмотрим задачу о нахождении кратчайшего пути между двумя вершинами на взвешенном графе О[и п АX ,и, /).
4.2. Построение вспомогательного графа Используя исходный граф О^ п ](Х,и,/), построим вспомогательный
граф Ог п'(Х,и, /', с'). Для этого сначала построим граф
[п1, "2 ]
О[п1, ^ '(X ,и,/, с), где |х| = 2|Х|, а и и С: и ^(0, + с») такие, что:
- если /(и) = (I,}), и е ин, ко множеству и добавляются дуги / (и) = (I, }); С (и) = с (и); / (и) = ( I, ] + |Х|); С (й) = с (и);
- если /(и) = (I, /), и е им, ко множеству и добавляются дуги / (и ) = ( I, ] + | Х|); с (и ) = с (и); / (и ) = ( I + | Х|, ] + | Х|); с (и ) = с (и).
Построим точное транзитивное замыкание порядка щ - 1 графа О[" " ' (Х, и, /) и точное транзитивное замыкание порядка "2 - щ + 1
графа (О[,^'(Х,и,/,с). Обозначим их „2](Х,и,/,с) и О^,^](Х,0,
/, с) соответственно. (Алгоритм построения транзитивного замыкания см. в пункте 1.2.)
Тогда для графа О[ ^](Х',и' ,/',с') \Х'\ = 3|Х|, множества и' и с' : и' ^ (0; +да) строятся следующим образом:
- для всех дуг u е U, если/и) = (I, у), ко множеству О' добавляется дуга /(и1) = (I, у + |Х1); с' (и ') = С (и);
- если /(и) = (',у), и е О, к V добавляется дуга /(и') = (I + X,
у + 2X1); с ' (и ')= С(и);
- если ¡(и) = (I, у), и е О, к О' добавляется дуга /(и') = (I + 2Х, У + 2Х); Г(и') = с(и).
Для графа 0,2 41(Х,О, /) на рис. 10 построим вспомогательный граф
Рис. 11
Теорема 3. Пусть О[п п ]X,О, /, с) - исходный граф, описанный в
пункте 4.1, 0[п п ](Х' ,О' ,/' ,с') - вспомогательный граф, построенный на основе графа О[ п ]. Кратчайшему пути из вершины I е X в у е X на исходном графе соответствует кратчайший путь из вершины I е X' в подмножество вершин {к е X' :¡к = I + &Х, к = 1, 2} на вспомогательном графе.
Справедливость теоремы вытекает из построения графа
Оп0+' (X' V' , /' , с '),.
4.3. Кратчайшие пути на графе с магнитными ограничениями на отрезке
["1, "2]
Кратчайший путь между двумя вершинами на графе О[ п ] (X, О, /, с)
можно найти, используя алгоритм пункта 3.3. Рассмотрим граф на рис. 4 при условии магнитной достижимости на отрезке [2, 4] и найдем кратчайший путь из вершины 1 в 7. Таким путем будет /л = {и1,и3,и7, и8},
с (й) = 10.
Заметим, что магнитная достижимость на начальном отрезке пути с параметром "0 является частным случаем магнитной достижимости на отрезке ["ь "2] при щ = 1, "2 = "0, а магнитная достижимость, возникающая после "0 шагов, - частный случай достижимости на [«1, "2], если «1 = "0 + 1, "2 - любое (щ > "2).
Таким образом, рассмотрено четыре типа магнитной достижимости на ориентированных графах:
- на начальном отрезке пути с параметром "0;
- на конечном отрезке пути с параметром "0;
- достижимость, возникающая после "0 шагов;
- на отрезке [иь "2].
Случай конечного отрезка пути (в отличие от магнитной достижимости после "0 шагов) может быть сведен к случаю достижимости на начальном отрезке. Кроме того, достижимость на отрезке [п\, "2] является обобщением первых двух типов. Рассмотрена задача о нахождении кратчайшего пути между двумя вершинами на графах с такими ограничениями, описаны соответствующие алгоритмы. Во всех случаях поиск кратчайшего пути производится на вспомогательном графе, на котором присутствуют только допустимые для исходного графа пути.
Литература
1. Замбицкий Д.К., Лозовану Д.Д. Алгоритмы решения оптимизационных задач на сетях. Кишинев, 1983.
2. Кристофидес Н. Теория графов. Алгоритмический подход: Пер. с англ. М., 1978.
3. Харари Ф. Теория графов: Пер. с англ. М., 1973.
4. Басангова Е.О., Ерусалимский Я.М. // Вычислительные системы и алгоритмы. Ростов н/Д, 1983. С. 135-140.
5. Басангова Е.О., Ерусалимский Я.М. // Алгебра и дискретная математика. Элиста, 1985. С. 70-75.
6. Басангова Е.О., Ерусалимский Я.М. Смешанная достижимость на частично-ориентированных графах // РГУ, 1982. Деп в ВИНИТИ. 1982. № 5892-82.
7. Басангова Е.О., Ерусалимский Я.М. // Дискретные структуры и их приложения. Элиста, 1988. С. 23-28.
8. Ерусалимский Я.М. // Модели, графы и алгебраические структуры. Элиста, 1989. С. 45-48.
9. Ерусалимский Я.М., Логвинов С.Ю. // Изв. вузов. Сев.-Кавк. регион. Естеств. науки. 1996. № 2. С. 14-17.
10. Скороходов В.А. // Модели и дискретные структуры. Элиста, 2002. С. 93-100.
11. Скороходов В.А. Графы с магнитной достижимостью. Марковские процессы и потоки в сетях // Деп в ВИНИТИ, 2003. № 410-В2003.
Ростовский государственный университет 16 мая 2006 г.