УДК 519.7 DOI 10.17223/2226308X/12/52
ПРИБЛИЖЁННЫЙ АЛГОРИТМ ПОИСКА ОПТИМАЛЬНОГО МАРШРУТА В СЕТИ С ОГРАНИЧЕНИЕМ
А. А. Солдатенко
Предлагается приближённый алгоритм RevTree решения NP-трудной задачи RCSP (Resource Constrained Shortest Path). Задача RCSP является расширением задачи о кратчайшем пути в ориентированном графе G = (V,E), когда для каждой дуги e £ E кроме основной весовой функции w(e) дополнительно задаются функции Ti(e), i = 1,...,k, численно отражающие потребности в ресурсах, которые необходимы для передвижения по этой дуге. Задача RCSP возникает при проектировании и эксплуатации компьютерных и мультисервисных сетей. Показано, что алгоритм RevTree всегда находит допустимое решение задачи RCSP, если оно существует, за полиномиальное время, отклоняясь от оптимального решения на величину, зависящую от значений w(e) и ri(e), e £ E.
Ключевые слова: ресурсоограниченный кратчайший путь, алгоритмы на графах, оптимальная маршрутизация, компьютерные и мультисервисные сети.
Введение
Задача RCSP традиционно формулируется в терминах теории графов и целочисленного линейного программирования. В теоретико-графовой формулировке рассматриваемая сеть представляется ориентированным графом, вершины которого соответствуют узлам сети, а дуги — каналам связи. Предполагается, что всякая дуга обладает основным весом, например стоимостью, а также некоторыми дополнительными весами, отражающими потребности в ресурсах, которые нужны для передвижения по этой дуге. Требуется найти кратчайший путь между двумя заданными узлами сети, который удовлетворял бы заданным ограничениям на итоговые ресурсные затраты, необходимые для прохождения этого пути. Известно, что даже при одном ограничении задача RCSP является NP-трудной [1].
В настоящее время выделяют три класса методов и соответствующих им алгоритмов, способных находить точное или приближённое решение задачи RCSP: 1) методы ранжирования путей [2], 2) методы маркировки вершин [1, 3, 4] и 3) методы лагранже-вой релаксации [5, 6]. Первые два класса основаны на теоретико-графовой постановке задачи, в то время как методы третьего класса исходят из постановки задачи RCSP на языке целочисленного линейного программирования. К сожалению, большинство существующих алгоритмов решения задачи RCSP медленно работают на сетях большой размерности, для многих современных приложений совершенно неприемлемы временные характеристики данных алгоритмов и их многочисленных усовершенствованных версий [3]. Поэтому остаётся актуальной разработка приближённых алгоритмов решения задачи RCSP, способных быстро находить решение на сетях большой размерности [3, 6].
1. Теоретико-графовая постановка задачи
Пусть сеть описана взвешенным ориентированным графом (далее — просто графом) G = (V, E) без кратных дуг и петель, в котором каждая вершина v £ V представляет узел сети, а каждая дуга e £ E — канал связи между соответствующими узлами сети, при этом n = |V| и m = |E|. Считаем, что на множестве дуг графа G = (V, E) задана функция w(e): E ^ R+, ставящая в соответствие каждой дуге e £ E её вес
эд(е) > 0. Пусть для вершин в, ^ Е V в графе О существует путь Р, идущий от вершины в к вершине Полагаем, что вес этого (5, ^)-пути Р вычисляется как сумма весов всех входящих в него дуг:
ЦР)=Е Це), (1)
вер
т.е. функция ^(е) является аддитивной. Если ^(е) —стоимость передвижения по дуге е, то ^(Р) можно интерпретировать как стоимость прохождения (в, ^)-пути Р в графе О.
Пусть для каждой дуги графа О также заданы функции гДе): Е ^ г = 1,... , к, отражающие ресурсные потребности, которые необходимы для передвижения по этой дуге, и всегда гДе) > 0. Предполагается, что все эти функции аддитивные, т.е. для любого (в, -пути Р верны равенства
Гг(Р)=Е Гг(е), г = 1,...,к (2)
вер
Кроме того, определены величины Я^ Е г = 1,..., к, задающие ресурсные ограничения рассматриваемой мультисервисной сети. Всякий (в,^)-путь Р называется допустимым, если он удовлетворяет ресурсным ограничениям:
гг(Р) ^ Яг, г = 1,...,к (3)
Требуется найти (в, ^)-путь Р, который минимизирует целевую функцию (1) и удовлетворяет ограничениям (3). Такой путь определяет оптимальное решение задачи ИСБР и называется ресурсноограниченным кратчайшим (в, ^)-путём в графе О = (V, Е). Вес этого пути обозначим через ОРТ. Всякий допустимый (в, ^)-путь можно рассматривать в качестве приближённого решения данной задачи. В [7] предложен эвристический алгоритм поиска приближённого решения. В настоящей работе предлагается алгоритм И,еуТгее, который находит допустимое решение задачи ИСБР за полиномиальное время, отклоняясь от оптимального решения на величину, зависящую от значений ^(е) и гДе), е Е Е, т. е. получены оценки его сложности и точности.
2. Описание алгоритма ИеуТгее
Под размерностью задачи ИСБР понимаются значения п и т — число вершин и дуг графа О = (V, Е) соответственно, а под её параметрами — значения функций и>(е),гДе). Для краткости вместо гДе) и Я^ будем писать г(е) и Я. Опишем алгоритм И,еуТгее для случая, когда имеется только один ресурс Я^ и и>(е),гДе) —положительные вещественнозначные функции.
Алгоритм И,еуТгее состоит из двух фаз, на каждой из которых однократно выполняется известный алгоритм Дейкстры [8]. На первой фазе, исходя из функций г(е), е Е Е, вычисляется дерево путей минимального веса с корнем в вершине Это дерево определяет для каждой вершины и Е V такой (и,^)-путь, вес которого указывает минимальный ресурс для прохождения (и, ^)-пути. Обозначим (и,^)-путь через Р2.
Пусть Р1 —путь из стартовой вершины в в текущую вершину V, найденный как некоторое допустимое решение задачи ИСБР для вершин в и V. Согласно формуле (2), для прохождения этого (в,^)-пути затрачен ресурс величины г(Р\). Множество Г(^) определяет возможные направления дальнейшего движения по дугам графа О из вершины V. Тогда для перемещения из вершины V в вершину и Е Г(^) необходимо выполнение условия
г(Р1) + г^,и) + п(и) ^ Я, (4)
где n(u) = Е r(e). Условие (4) гарантирует, что путь (Pbe,P2), где e = (v,u) Е E,
является допустимым решением задачи RCSP.
На второй фазе вновь выполняется алгоритм Дейкстры, но только с усечёнными окрестностями вершин. Усечение окрестности r(v) для текущей вершины v Е V осуществляется следующим образом: если для u Е r(v) нарушается условие (4), то она удаляется из r(v). Таким образом, алгоритм RevTree уменьшает мощность множеств r(v) с учётом ресурсного ограничения R, что позволяет находить допустимое решение задачи RCSP, если оно существует (алгоритм 1).
Алгоритм 1. RevTree
Вход: граф G = (V, E), w(e), r(e) для всех e Е E, величина R, вершины s, d Е V. Выход: значение веса и последовательность вершин допустимого (s, d)-пути. 1: Инициализация
2: w[s] := 0; r[s] := 0; p[s] := null; Passed := 0; nr[d] := 0. 3: Первая фаза 4: Для всех v Е V \ {d}
nr [v] := то. 5: Пока 3u Е Passed
6: выбираем u Е Passed с минимальным nr [u]; Passed := Passed U {u}. 7: Для всех v Е Passed & e = (u,v) Е E: 8: Если nr [v] > nr [u] + r(e), то 9: nr[v] := nr[u] + r(e).
10: Passed := 0. 11: Вторая фаза 12: Для всех v Е V \ {s}
w[v] := то; p[v] := null; r[v] := 0. 13: Пока 3u Е Passed
14: выбираем u Е Passed с минимальным w[u] и r[u] + nr [v] < R;
15: Passed := Passed U {u}.
16: Для всех v Е Passed & e = (u,v) Е E:
17: Если w[v] > w[u] + w(e), то
18: w[v] := w[u] + w(e); r[v] := r[u] + r(e); p[v] := u.
3. Оценки сложности и точности алгоритма RevTree
Известно, что алгоритм Дейкстры требует O(n2) времени и O(n) памяти [8]. На первой фазе с помощью алгоритма Дейкстры находится дерево путей минимального веса с корнем в вершине d, для сохранения которого необходимо O(n) памяти. На второй фазе в алгоритм Дейкстры добавляется проверка условия (4), которая не влияет на оценку вычислительной сложности. Поскольку обе фазы алгоритма RevTree выполняются последовательно, в целом для нахождения решения задачи RCSP затрачивается O(n2) времени и O(n) памяти.
Оценим точность приближённого решения, формируемого алгоритмом RevTree. Для этого вычислим Amin = min (r(e)/w(e)) > 0, Amax = max(r(e)/w(e)) > 0. Заме-
e€E e€E
тим, что функции Amax, Amin определены для любого e Е E, поскольку в формулировке задачи RCSP предполагается, что w(e) > 0 и r(e) > 0 для всех e Е E.
Пусть алгоритм RevTree на некотором шаге нашёл путь Pi, идущий из стартовой
вершины s в текущую вершину v, как оптимальное решение задачи RCSP для вершин s
и v. Если вершина v совпадает с целевой вершиной d, то найдено оптимальное решение
исходной задачи. Если вершина v совпадает с s, то путь P1 содержит пустое множество
дуг и для него w(P1) = r(P1) = 0. В общем случае вершина v определяет начало ещё
не пройденной части искомого ^,^-пути. Рассмотрим неусечённую окрестность r(v)
текущей вершины v как множество концов дуг, исходящих из вершины v и обладающих
временными метками. Пусть x G r(v) —вершина, для которой w(v,x) = min w(v,u),
uer(v)
но не выполняется условие (4), т. е. верно соотношение
r(P1) + r(v,x)+ n(x) > R. (5)
Именно эту вершину выбирает алгоритм Дейкстры, если окрестность r(v) не подверглась усечению. При выборе вершины u G r(v), удовлетворяющей условию (4), алгоритм RevTree отклоняется от кратчайшего пути в смысле (1) без учёта ресурсного ограничения (3). Обозначим (v^-путь, найденный с помощью неусечённых окрестностей, как Pr*est, а с помощью усечённых окрестностей — Prest. Для путей (P1,Prest) и (P1,Pr*est) справедливы следующие неравенства:
w(Pi) + W(Prgst) ^ OPT ^ w(Pi) + W(Prest). (6)
В (6) величина w(P1)+w(P*est) определяет значение целевой функции для кратчайшего пути без учёта ресурсных ограничений, а w(P1) + w(Prest) —значение целевой функции пути, найденного алгоритмом RevTree. Предполагается, что решение задачи RCSP существует. Следовательно, найдётся хотя бы один допустимый ^,^-путь, а значит, всегда существует определённый выше путь Prest. Для прохождения всякого (v, ^-пути доступен ресурс Rrest = R — r(P1). Согласно условию (4), справедливо неравенство Rrest ^ n(v). Исходя из определения функции Л(б), для всякой дуги e G E имеют место соотношения
0 < Лт^(е) ^ r(e) ^ Лmaxw(e).
Поскольку функции w(e) и r(e) аддитивные, получим подобные соотношения для любого ^^)-пути, в том числе Pr*est и Prest:
0 < Лт^^) ^ r(Prest) ^ ЛmaxW(P¿J; (7)
0 < ЛminW(Prest) ^ r(Prest) ^ ЛmaxW(Prest). (8)
Путь P est по построению проходит через вершину x, поэтому с учётом (5) верны соотношения
r(Prest) ^ r(v, Х) + П(Х) > R — r(Pi) = Rrest.
Здесь n(x) —минимально необходимый ресурс для передвижения из вершины x в вершину d. Следовательно, r(Pr*est) > Rrest. Отсюда с учётом (7) получим
Rrest Amax < W^st). (9)
Из соотношений (8) имеем неравенство w(Prest) ^ r(Prest)/Лmin. Поскольку всегда
w(Prest) ^ w(Prest) и r(Prest) ^ Rrest, то
W(Prest) ^ r(Prest)/Лmin ^ Rrest/Лmin. (10)
Из (9) и (10) следует
Rrest/Amax < w(Pr*est) < Rest/А
ill)
Оценим решение, найденное алгоритмом ЯеуТгее, исходя из неравенств (6). В результате получим
ЦА) + ЦРезО - ОРТ ^ ЦРгезО - ЦР*^) (12
OPT - w(Pi) + w(p;est)
Наибольшее отклонение найденного решения от оптимального достигается при v = s и w(Prest) = Prest/Amin. Тогда неравенство (12) принимает вид
R rest /^min
OPT < Rest/Л min — w(pr*st)
OPT
Согласно (11), справедливо Rrest/Am
Rrest/Amin OPT < Rrest/А min — Rrest/A:
W(Pr*est)
< w(Pr*est). Отсюда окончательно имеем
Аг
OPT
R rest/А m
Amin
- 1
е.
Таким образом, допустимое решение, найденное алгоритмом RevTree, отклоняется от оптимального решения задачи RCSP не более чем на величину е = Amax/Amin — 1.
4. Вычислительные эксперименты
Для оценки результативности алгоритма RevTree проведены вычислительные эксперименты на компьютере с процессором Intel Core i7-7700K Processor (8 MB Cache, 3,60 ГГц) и ОЗУ объёмом 16 Гбайт. Осуществлялось сравнение программной реализации алгоритма RevTree и пакета IBM ILOG CPLEX [9] по времени работы, числу выполненных запросов, точности найденного решения. Заметим, что обе программы находят решение задачи RCSP, если множество допустимых решений не пусто, при этом CPLEX находит оптимальное (точное) решение. Эксперименты проводились на случайно сгенерированных графах G1-G3 для последовательности из 1000 случайно сгенерированных (s, ^-запросов (табл. 1). Для случайной генерации графов применялся метод Ваксмена с параметрами a = 0,15, в = 0,25, который традиционно используется для генерации графов, топологически схожих с реальными компьютерными сетями [10]. Запрос считался выполненным, если для него было найдено допустимое решение задачи RCSP. Результаты экспериментов представлены в табл. 2. Согласно этим результатам, алгоритм RevTree для рассматриваемых графов находит столько же допустимых решений, что и CPLEX, при этом они совпадают и являются оптимальными. Однако во всех случаях алгоритм RevTree работает значительно быстрее пакета программ CPLEX.
Таблица 1 Размерность и параметры задачи RCSP
Название графа n — число вершин m — число дуг ^max ^min £
Gl 500 3923 0,75 0,6 0,25
G2 1000 16345 0,75 0,6 0,25
Оз 1500 36655 0,75 0,6 0,25
min
Таблица 2
Результаты сравнения алгоритма RevTree и пакета CPLEX
CPLEX RevTree
Название графа Время Число вы- Время Число выполненных запросов,
обработки полненных обработки из них для q найдено прибли-
серии запросов серии женное решение
запросов, с запросов, с Всего q
О! 428,265 910 2,69 910 0
G2 1607,58 967 47,524 967 0
Оз 7571,22 676 94,217 676 0
Заключение
Предложен полиномиальный приближённый алгоритм RevTree решения задачи RCSP при наличии только одного ресурса. Алгоритм имеет сложность по времени O(n2) и всегда находит допустимое решение задачи, если оно существует, отклоняясь от оптимального решения на величину, не превышающую е = Amax/Amin — 1, зависящую от параметров задачи RCSP. Эксперименты подтверждают результативность алгоритма RevTree и положений, высказанных в п. 3. Целесообразны дальнейшие исследования специальной маркировки вершин, заложенной в алгоритме RevTree.
ЛИТЕРАТУРА
1. Joksch H. C. The shortest route problem with constraints //J. Math. Analysis Appl. 1966. V. 14. P. 191-197.
2. Di Puglia Pugliese L. and Guerriero F. A survey of resource constrained shortest path-problems: exact solution approaches //J. Networks. 2013. V. 62. Iss. 3. P. 183-200.
3. Zhu X. and Wilhelm W. E. A three-stage approach for the resource-constrained shortest path as a sub-problem in column generation //J. Computers & Operations Research. 2012. V. 39. Iss. 2. P. 164-178.
4. Dumitrescu I. and Boland N. Improved preprocessing, labeling and scaling algorithms for the weight-constrained shortest path problem //J. Networks. 2003. V. 42. P. 135-153.
5. Jepsen M, Petersen B., Spoorendonk S., and Pisinger D. A branch-and-cut algorithm for the capacitated profitable tour problem //J. Discrete Optimization. 2014. V. 14. P. 78-96.
6. Horvath M. and Kis T. Solving resource constrained shortest path problems with LP-based methods //J. Computers & Operations Research. 2016. V. 73. P. 150-164.
7. Солдатенко А. А. Алгоритм оптимальной маршрутизации в мультисервисных телекоммуникационных сетях // Прикладная дискретная математика. Приложение. 2018. №11. С.122-127.
8. Кормен Т. Х., Лейзерсон Ч. И., Ривест Р. Л., Штайн К. Алгоритмы. Построение и анализ. М.: Вильямс, 2018. 1328с.
9. https://www.ibm.com/support/knowledgecenter/SSSA5P_12.6.2/ilog.odms.studio. help/pdf/usrcplex.pdf-IBM Corp.: IBM ILOG CPLEX Optimizer Studio. CPLEX User's Manual. Version 12 Release 6, 2015.
10. Pathan A. K., Monowar M. M., and Khan S. Simulation Technologies in Networking and Communications: Selecting the Best Tool for the Test. CRC Press, 2017. 648 p.