Рис. 1. Производительность поисковых систем
По графикам видно, что битовые автоматы всегда работают быстрее регистрового поиска, полубайтовые автоматы всегда быстрее битовых, а байтовые достигают очень высокой производительности при небольших объёмах таблиц, однако с ростом числа состояний их производительность падает настолько быстро, что они начинают проигрывать полубайтовым, а затем и битовым автоматам.
Можно заключить, что регистровый поиск следует использовать только в том случае, когда доступное количество памяти недостаточно даже для хранения таблиц битового автомата, битовый автомат — только если недостаточно памяти для полубайтового автомата. Выбор между байтовым и полубайтовым автоматами следует делать, исходя из измерений производительности обоих автоматов на целевом оборудовании.
ЛИТЕРАТУРА
1. Агибалов Г. П., Оранов А. М. Лекции по теории конечных автоматов. Томск: Изд-во Том. ун-та, 1984. 185 с.
2. Панкратов И. В. Одновременный поиск нескольких двоичных шаблонов в потоке с помощью конечного автомата // Прикладная дискретная математика. 2014. №2. С. 119-125.
3. Knuth D. E., Morris J. H. Jr., and Pratt V.R. Fast pattern matching in strings // SIAM J. Comput. 1977. No. 6(2). P. 323-350.
4. AhoA.V. and CorasickM.J. Efficient string matching: An aid to bibliographic search // Commun. ACM. 1975. No. 18(6). P. 333-340.
УДК 519.7 DOI 10.17223/2226308X/11/38
АЛГОРИТМ ОПТИМАЛЬНОЙ МАРШРУТИЗАЦИИ В МУЛЬТИСЕРВИСНЫХ ТЕЛЕКОММУНИКАЦИОННЫХ СЕТЯХ
А. А. Солдатенко
Рассматривается КР-трудная задача поиска ресурсоограниченного кратчайшего пути (ИСБР) в графе С = (У,Е). Задача ИСБР является расширением извест-
ной задачи о кратчайшем пути в ориентированном графе, когда каждой дуге e £ E кроме основного веса w(e) дополнительно задаются несколько весовых функций wr (e), отражающих потребности в ресурсах, которые необходимы для передвижения по этой дуге. Задача RCSP позволяет моделировать мультисер-висные телекоммуникационные сети и определять в них оптимальный маршрут передачи данных между двумя заданными узлами сети. Предлагаются два алгоритма для приближённого решения задач RCSP на сетях большой размерности. Первый алгоритм является расширением известного алгоритма Дейкстры, который присваивает дополнительные метки каждой вершине. Эти метки позволяют алгоритму Дейкстры находить ресурсоограниченный путь в графе. В отличие от известных модификаций, такая модификация не требует дополнительных знаний о графе. Второй алгоритм, помимо дополнительных меток, добавляет к алгоритму Дейкстры потенциальные функции и ориентиры. Потенциальные функции, вычисленные на основе ориентиров, дают значительное ускорение на графах большой размерности. Предлагаемые алгоритмы не превосходят по вычислительной сложности алгоритм Дейкстры. Приводятся результаты вычислительных экспериментов, подтверждающие эффективность предложенных алгоритмов.
Ключевые слова: ресурсоограниченный кратчайший путь, графы большой размерности.
Большинство современных телекоммуникационных сетей являются мультисервис-ными, поскольку предоставляют пользователям множество разнообразных услуг, касающихся проводной телефонии, сотовой связи, кабельного телевидения и передачи данных. Качество обслуживания (Quality of Service, QoS) в мультисервисных сетях определяется такими параметрами, как полоса пропускания, задержка, вариация задержки, стоимость и надёжность передачи данных [1]. Всякий запрос пользователя на оказание услуги предполагает определение некоторого (желательно, оптимального по затратам, например, по времени или стоимости) маршрута между двумя узлами с учётом ресурсных возможностей этой сети. Таким образом, задача оптимального обслуживания пользователя в мультисервисной сети может быть математически сформулирована как задача поиска ресурсоограниченного кратчайшего пути в графе. Данная задача известна в литературе под названием Resource Constrained Shortest Path (RCSP) [2, 3]. На практике задача RCSP возникает как при проектировании, так и при эксплуатации мультисервисных сетей. На этапе проектирования с помощью многократного решения задачи RCSP возможна оценка качества услуг, которую проектируемая сеть способна предоставить потенциальным пользователям. При эксплуатации сети RCSP решается в реальном масштабе времени для каждого отдельного запроса пользователя на какую-либо услугу. В настоящее время мультисервисные сети активно расширяются путем увеличения числа предоставляемых услуг и входящих в них узлов. Количество узлов в сети может достигать нескольких сотен тысяч. Именно для таких больших сетей, чаще всего, требуется находить решение задачи RCSP в реальных условиях.
Известны две формулировки задачи RCSP: в терминах теории графов и целочисленного линейного программирования. В теоретико-графовой формулировке мульти-сервисная сеть представляется ориентированным графом, вершины которого соответствуют узлам сети, а дуги — каналам связи. Предполагается, что всякая дуга обладает основным весом (это может быть стоимость или время прохождения по дуге), а также некоторыми дополнительными весами, отражающими потребности в ресурсах, которые нужны для передвижения по этой дуге. Требуется найти кратчайший путь между
двумя заданными узлами сети, отвечающий заданным ограничениям на итоговые ресурсные затраты, необходимые для прохождения этого пути. Показано, что даже при ограничении на один ресурс задача ИСБР является КР-трудной [4].
В настоящее время выделяют три класса методов и алгоритмов, способных находить точное или приближенное решение задачи ИСБР: методы ранжирования путей [4], методы маркировки вершин [1, 2, 5], методы лагранжевой релаксации [6-8]. Первые два класса методов основаны на теоретико-графовой постановке задачи, методы третьего класса исходят из постановки задачи ИСБР на языке целочисленного линейного программирования. Большинство существующих алгоритмов не приспособлены к сетям большой размерности и, как следствие, не отвечают реальному масштабу времени, необходимому для обработки запросов при эксплуатации мультисервисных сетей. Поэтому актуальны различные приёмы и методы ускорения существующих алгоритмов, а также разработка новых подходов к решению задачи ИСБР [1, 8].
Рассмотрим задачу ИСБР в теоретико-графовой постановке, используя общепринятые в теории графов терминологию и обозначения [9]. Пусть мультисервисная сеть описана взвешенным ориентированным графом (далее просто графом) О = (V, Е) без кратных дуг и петель, в котором каждая вершина V Е V представляет узел сети, каждая дуга е Е Е — канал связи между соответствующими узлами сети. Считаем, что на множестве дуг графа О задана функция ^(е): Е ^ ставящая в соответствие каждой дуге е € Е её вес и>(е) ^ 0. Пусть для вершин в,^ € V в графе О существует путь Р, идущий от вершины в к вершине Полагаем, что вес этого (в, -пути Р вычисляется как сумма весов всех входящих в него дуг:
ЦР)=Е Це), (1)
вер
т. е. функция ^(Р) является аддитивной. Если ^(е) —стоимость передвижения по дуге е, то ^(Р) —стоимость прохождения (в, ^)-пути Р в графе О.
Пусть для каждой дуги графа О = (V, Е), кроме и>(е), заданы весовые функции и>г(е): Е ^ М+, г = 1,... , к, отражающие потребности в ресурсах, которые необходимы для передвижения по этой дуге. Предполагается, что все эти функции аддитивные, т. е. для любого (в, ^)-пути Р верны равенства
'шг (Р) = ^ 'шг (е), г = 1,..., к. вер
Считаем, что заданы также величины Е г = 1,..., к, определяющие ресурсные ограничения мультисервисной сети. Всякий (в, ^)-путь Р называется допустимым, если он удовлетворяет ресурсным ограничениям
(е) ^ , г = 1,...,к (2)
вер
Очевидно, что кратчайший (в,^)-путь в графе О не обязательно допустимый.
Задачу ИСБР можно сформулировать следующим образом. Заданы граф О = = (V, Е), на дугах которого определены неотрицательные вещественнозначные функции эд(е) и -шг(е); величины Шг, г = 1,... , к; (в, ^)-запрос. Требуется найти в О ресур-соограниченный кратчайший (в,^)-путь, т.е. такой (в,^)-путь Р, который минимизирует ^(Р) в (1) и удовлетворяет ограничениям (2). Задача ИСБР не имеет решения, если множество допустимых (в,^)-путей пустое.
Для решения задачи RCSP предлагается эвристический алгоритм Л\, являющийся модификацией алгоритма Дейкстры. Как известно, алгоритм Дейкстры — маркировочная процедура, осуществляющая поиск кратчайшего пути в графе на основе меток вершин за полиномиальное время [5]. В алгоритме Л! к меткам алгоритма Дейкстры добавлены ещё две метки: величина затраченных ресурсов при прохождении пути от стартовой вершины s до текущей вершины v и допустимость (да/нет) использования вершины v для дальнейшего построения искомого пути. Применение этих меток позволяет, прежде всего, находить допустимые пути и далее среди них кратчайший путь, не увеличивая существенно время поиска. В остальном алгоритм Л! полностью соответствует классическому алгоритму Дейкстры. Если множество допустимых решений задачи RCSP непустое, то решение, найденное алгоритмом Л\, всегда допустимое, но не обязательно оптимальное.
С целью применения алгоритма Дейкстры к графам большой размерности в настоящее время разрабатываются всевозможные приёмы ускорения [10, 11]. Одним из таких приёмов является применение потенциальных функций, которые могут определяться различными способами, в частности с помощью ориентиров. Предлагаемый двухфазный алгоритм Л2 предназначен для ускорения алгоритма Л!. На первой фазе алгоритм Л2 производит расстановку ориентиров в вершинах графа и вычисляет потенциальные функции, на второй фазе — осуществляет с помощью алгоритма Л! и вычисленных потенциальных функций поиск ресурсоограниченного оптимального маршрута в графе. Алгоритм Л2 имеет следующие параметры: число ориентиров и стратегия их расстановки (случайным образом в вершинах графа, случайным образом в вершинах, образующих оболочку графа, и др.). Для вычисления потенциальных функций алгоритм Л2 использует евклидову метрику.
Для оценки эффективности предложенных алгоритмов проведены серии вычислительных экспериментов. В табл. 1 представлены параметры графов, на которых проводились эксперименты. Первая серия экспериментов состояла в сравнении алгоритма Л! и пакета IBM ILOG CPLEX [12]. Эксперименты проводились на случайно сгенерированных графах с различным числом вершин и рёбер для последовательности а, состоящей из 1000 случайно сгенерированных (s, d)-запросов. Сравнение осуществлялось по числу выполненных запросов, точности найденного решения и времени работы алгоритмов. Запрос считался выполненным, если для него получено точное или приближенное решение задачи RCSP. Точность приближённого решения, найденного алгоритмом Л! , оценивалась относительно результата, вычисленного с помощью CPLEX. В качестве результата пакет программ CPLEX всегда выдаёт оптимальное решение задачи RCSP, если множество допустимых решений не пусто.
Таблица 1 Параметры графов
Название графа Число вершин Число дуг
О! 100 720
G2 625 4800
Оз 2500 19600
AK 69082 157662
CT 153011 375310
MA 308401 771362
Результаты первой серии экспериментов представлены в табл. 2, где qerr обозначает количество запросов, для которых найдено приближённое решение; err — макси-
мальная относительная погрешность в процентах. По этим результатам можно сделать следующие выводы. Пакет СРЬЕХ для рассматриваемых графов с заданными ресурсными ограничениями выполняет примерно половину запросов последовательности а. Время нахождения точного решения существенно зависит от размеров графа и числа рассматриваемых ресурсов. Например, для исходного графа с числом вершин 2500, числом рёбер 19600 и количеством ресурсов 10 с помощью пакета СРЬЕХ не удалось получить решение за 1000 с. Алгоритм А выполняет примерно такую же долю запросов, что пакет СРЬЕХ, затрачивая на это на два порядка меньше времени. Эвристический характер алгоритма не исключает ситуации, когда построенное решение не является точным. Однако, как показывают эксперименты, это происходит сравнительно редко и с малой относительной погрешностью. Таким образом, алгоритм А\ можно применять к реальным мультисервисным сетям с числом узлов, не превосходящим 10 000, для которых приемлема небольшая потеря точности в решении.
Таблица 2
Результаты сравнения алгоритма А\ с пакетом CPLEX
Название графа Количество ресурсов СРЬЕХ А!
Время обработки а, с Число выполненных запросов Время обработки а, с Число выполненных запросов егг
всего Яетт
О! 1 39,8 945 0,050 937 1 2
С2 1 79,1 855 0,339 829 1 0,4
Оз 1 267,2 959 5,919 944 3 3
О! 2 39,6 961 0,048 872 4 7
О2 2 79,6 807 0,294 757 3 4
Оз 2 284,1 799 3,541 783 6 0,7
О! 5 40,0 756 0,029 727 3 11
О2 5 89,0 703 0,264 701 2 1
Оз 5 362,6 666 2,337 647 4 0,2
О! 10 43,6 828 0,038 807 0 0
О2 10 111,9 712 0,245 713 7 1
Оз 10 - - 2,836 694 - -
Цель второй серии экспериментов — сравнение алгоритмов А! и А2 на графах большой размерности. Для алгоритма А2 выбраны следующие параметры: число ориентиров— 12, стратегия их расстановки — случайное размещение в вершинах графа. Сравнение производилось по времени работы и доле выполненных запросов. Результаты представлены в табл. 3. Видно, что время работы алгоритма А2 меньше времени работы алгоритма А! в несколько раз, при этом число выполненных запросов совпадает. Это позволяет сделать следующий вывод: алгоритм А2 можно применять к реальным мультисервисным сетям с числом узлов в несколько сотен тысяч, для которых приемлема небольшая потеря точности в решении.
Во время экспериментов полагалось, что все поступающие запросы однородны и не конкурируют между собой. В реальных сетях возможны ситуации, когда несколько запросов конкурируют за ресурсы или имеют разный характер, например различные требования к ресурсам. Таким образом, требуется дальнейшее развитие алгоритмов для эффективной маршрутизации в подобных сетях.
Таблица 3
Результаты сравнения алгоритмов A\ и A2
Название Количество A A
графа ресурсов Число выпол- Время обра- Число выпол- Время обра-
ненных запро- ботки а, с ненных запро- ботки а, с
сов сов
AK 1 531 511,171 531 434,538
CT 1 821 1100,88 821 117,283
MA 1 738 687,516 738 103,052
AK 2 587 548,222 587 397,847
CT 2 667 735,669 667 73,765
MA 2 802 776,492 802 158,573
AK 5 523 473,254 523 368,664
CT 5 813 1152,33 813 123,665
MA 5 806 756,533 806 137,998
AK 10 541 410,33 541 329,267
CT 10 679 688,384 679 74,905
MA 10 557 258,307 557 52,353
ЛИТЕРАТУРА
1. Van Mieghem P., Kuipers F. A, Korkmaz T., et al. Quality of service routing // LNCS. 2003. V. 2856. P. 80-117.
2. Joksch H. C. The shortest route problem with constraints //J. Math. Analysis Appl. 1966. V.14. P. 191-197.
3. Dror M. Note on the complexity of the shortest path models for column generation in VRPTW // J. Operat. Res. 1994. V.42. P. 977-978.
4. Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. М.: Мир, 1982. 416с.
5. 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.
6. Mehlhorn K. and Ziegelmann M. Resource constrained shortest paths // LNCS. 2000. V. 1879. P. 326-337.
7. JepsenM., Petersen B., Spoorendonk S., and Pisinger D. A branch-and-cut algorithm for the capacitated profitable tour problem //J. Discr. Optimization. 2014. V. 14. P. 78-96.
8. Horvath M. and Kis T. Solving resource constrained shortest path problems with LP-based methods //J. Computers & Operat. Res. 2016. V. 73. P. 150-164.
9. Емеличев В. А., Мельников О. И., Сарванов В. И., Тышкевич Р. И. Лекции по теории графов. М.: Книжный дом «Либроком», 2012. 390с.
10. Быкова В. В., Солдатенко А. А. Оптимальная маршрутизация по ориентирам в нестационарных сетях // Прикладная дискретная математика. 2017. №37. С. 114-123.
11. Быкова В. В., Солдатенко А. А. Адаптивное размещение ориентиров в задаче о кратчайшем пути для графов большой размерности // Программные продукты и системы. 2016. №1. С. 60-67.
12. IBM ILOG CPLEX Optimizer Studio. CPLEX User's Manual. Version 12 Release 6, 2015.