Научная статья на тему 'Метод ускоренной коррекции SPT с использованием динамических алгоритмов'

Метод ускоренной коррекции SPT с использованием динамических алгоритмов Текст научной статьи по специальности «Математика»

CC BY
134
26
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по математике, автор научной работы — Партыка Станислав Александрович

Предлагается модификация алгоритма D’Esopo-Pape с применением метода трансформации статических SPT алгоритмов в динамические. Отличительной особенностью данного метода является поддержка специальных структур данных для коррекции текущих значений длин маршрутов. Описываются зависимости числа операций сравнения от количества вершин графа для статических и динамических алгоритмов. Приводится краткий анализ полученных результатов.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Method of accelerated correction spt with use of dynamic algorithms

A methods for transformation of static algorithms into dynamic is proposed. The feature of such methods is in supporting of special data structures for correction of current value of route length. Relations for a number of comparison operations and graph’s nodes quantity are derived for static and dynamic algorithms. The brief analysis of presented results is conducted. Advantages of dynamic algorithms application are underlined.

Текст научной работы на тему «Метод ускоренной коррекции SPT с использованием динамических алгоритмов»

УДК 681.324 С.А.ПАРТЫКА

МЕТОД УСКОРЕННОЙ КОРРЕКЦИИ 8РТ С ИСПОЛЬЗОВАНИЕМ ДИНАМИЧЕСКИХ АЛГОРИТМОВ

Предлагается модификация алгоритма Б^оро-Раре с применением метода трансформации статических 8РТ алгоритмов в динамические. Отличительной особенностью данного метода является поддержка специальных структур данных для коррекции текущих значений длин маршрутов. Описываются зависимости числа операций сравнения от количества вершин графа для статических и динамических алгоритмов. Приводится краткий анализ полученных результатов.

1. Введение

В современной телекоммуникационной индустрии существует множество транспортных проблем, в частности проблем маршрутизации [1-3]. Загрузка и пропускная способность линий связи современных компьютерных сетей динамически меняются, что, в свою очередь, может приводить к относительно частой рассылке служебной информации об изменении маршрутов. Традиционно применяемые методы маршрутизации оказываются неэффективными. Изменения характеристик каналов связи, модификация структуры сети, включение в нее новых узлов и линий связи приводят к полному пересчету таблиц маршрутизации. Когда топология сети в области маршрутизации изменяется (например, происходит отказ канала или изменяется его стоимость), каждый маршрутизатор области уведомляется об изменении. После модификации базы данных состояния каналов каждый маршрутизатор повторно вычисляет свой 8РТ. В современных маршрутизаторах пересчет вызывает удаление текущего 8РТ с повторным его построением с помощью алгоритма поиска кратчайших путей, например алгоритма Дейкстры [4].

Разработка новых, более эффективных алгоритмов поиска кратчайших путей позволяет повысить быстродействие современных компьютерных сетей. Под ускоренной маршрутизацией понимается метод поиска оптимальных маршрутов для передачи пакетов данных от узла-отправителя к узлу-получателю в условиях динамически изменяющейся структуры сети и характеристик линий связи, позволяющий сократить трудоемкость построения таблиц маршрутизации путем частичного изменения дерева кратчайших путей с помощью дополнительной информации о конфигурации сети [5].

Цель исследования. Преобразование статических 8РТ алгоритмов с организацией очередей в виде связанных списков в динамические в целях снижения алгоритмической сложности путем использования доступной информации в 8РТ [6].

2. Метод преобразования алгоритмов

Пусть в = (V, 8) есть ориентированный граф, где V - набор узлов, а 8 - набор ребер в графе. Пусть N - общее количество узлов в V и Е - общее количество ребер в 8 . Граф в состоит из корневого узла п0 и всех других узлов п^...,^ _ 1, доступных из корневого узла по ориентированным дугам в в . Каждое ребро е; (1 = 0,...,Е _ 1) имеет положительный вес Ю; .

Для каждой дуги е е Е , пусть W(e) обозначает вес, ассоциированный с е, а Б(е) и Е(е) обозначают начальный и конечный узел ребра е . Пусть дан ряд узлов N с V, который ассоциируется с двумя наборами ребер графа: 1^) = {е е 81Е(е) е N1 (набор ребер направленных в узлы N) и 0^) = {е е 8^(е) е N (набор ребер направленных из узлов N). Пусть п0 определяет корневой узел 8РТ.

Древовидная структура данных Т поддерживается алгоритмом для того, чтобы следить за существующим деревом кратчайших путей. Пусть каждый узел графа в, наряду с его родительским атрибутом Р(п,Т), имеет список потомков С(п,Т), а также атрибут расстояния. Структура данных Т изменяется прогрессивно в течение вычисления, и когда работа алгоритма завершена, представляет собой 8РТ. 42

В дополнение к структуре данных t алгоритм также поддерживает связанный список Q, который временно содержит подмножество узлов вместе с двумя признаками. Каждый элемент Q имеет форму {n, (x,D)}, где x определяет потенциального родителя для узла n, а D определяет потенциальное расстояние к узлу n .

В случае смены родительского атрибута узла n процедура Bpar(n,T) переносит n из списка потомков родительского узла в соответствующий список потомков, а также производит коррекцию атрибута P(n, T).

Инструкция EXTRACT(Q) выбирает первый (верхний) элемент и удаляет его из очереди. Вспомогательная процедура Bchild(n,T) находит множество узлов (включая n), которые являются потомками n. Это множество можно легко вычислить, спускаясь непосредственно вниз по T .

3. Спецификация алгоритма

Шаг 1: Инициализация

(A) Статическая версия

V(n е V) Ф root(G) P(n,T) ^ (O) D(n, T) ^ MaxInt C(n,T) ^ (O)

ENQUEUE(Q{root(G), (O, D)}) Go To Step 2

(B) Динамическая версия (при наличии старого SPT) Vei е 8+ or

N ^ 0

W(ei) ^ W(ei) + Ai (Ребро ei изменяет свой вес на А.):

if S(ei) = P(E(ei),T)

N ^ Bchild(E(ei),T) Vn е N

D(n,T) = D(n, T) + А.

Случай 1 (Ребро ei е8- уменьшает свой вес на Ai): ENQUEUE(Q{E(e), (S(e), D)})

Случай 2 (Ребро ei е 8+ увеличивает свой вес на Ai): Ve е I(N)

if D(E(e),T) > D(S(e),T) + W(e) D(E(e),T) = D(S(e),T) + W(e)

Bpar(E(e),T)

ENQUEUE(Q{E(e), (S(e), D)}) else

if D(E(ei), T) > D(S(ei), T) + W(ei)

Bpar(E(ei),T)

N ^ Bchild(E(ei),T) Vn е N

D(n, T) = D(n, T) + W(e) ENQUEUE(Q{E(e), (S(e), D)})

Go To Step 2

Шаг 2: Извлечение вершины

if Q = O

Terminate

else

{y, (x, D)} ^EXTRACT(Q) Шаг 3: Обновление расстояний Ve е O(y)

if D(E(e), T) > D(y, T) + W(e) D(E(e),T) = D(y, T) + W(e)

Bpar(E(e),T)

D(n, T) = D(S(e),T) + W(e) ENQUEUE(Q{E(e), y, D)}) Go To Step 2

В начале работы алгоритма происходит инициализация начальных установок для статической версии алгоритма, а также корректируются значения атрибутов затронутых изменениями весов ребер графа узлов для динамической версии. Предполагается, что в существующем SPT все узлы имеют родительский атрибут P(n, T), имеют список потомков C(n,T), а также атрибут расстояния D(n,T).

В случае изменения веса ребра первоначально производится проверка на принадлежность ребра существующему SPT. Если условие выполняется, то выбирается узел E(ei) и все его потомки в существующем SPT. Все такие узлы включаются процедурой Bchild(n,T) в множество N для дальнейшего обновления их расстояний.

Случай 1 (вес ребра уменьшается). Узел - предок и все его потомки в старом SPT помещаются с помощью инструкции ENQUEUE в очередь для последующей обработки.

Случай 2 (вес ребра увеличивается). В этом случае для каждого ребра e, направленного в узел n , принадлежащий множеству N , производится сравнение текущего атрибута расстояния D(n, T) с потенциально возможным расстоянием через S(ei ) . В случае, если потенциально возможное расстояние имеет меньшее значение чем D(n,T), происходит коррекция атрибута D(n, T), узел n удаляется из списка потомков P(n, T) и добавляется к списку потомков S(e). Также изменяется родительский атрибут P(n, T) на S(e): C(S(ei),T) ^ C(S(ei),T) + {E(ej} C(P(E(ei), T), T) ^ C(P(E(ei), T), T) - {E(ej} P(E(ei),T) ^ S(ei)

В дальнейшем выполняется инструкция ENQUEUE.

Если ребро, изменившее свой вес, не принадлежит существующему SPT, то производится сравнение текущего атрибута расстояния D(n, T) с потенциально возможным расстоянием через S(ei ) . При необходимости производится коррекция родительского атрибута с помощью процедуры Bpar(n,T), выполняется процедура Bchild(n,T) и множество найденных потомков N помещается в очередь.

После шага инициализации на шаге 2 из списка Q извлекается первый элемент. Как было замечено ранее, формирование связанного списка Q происходит в соответствии с используемым статическим алгоритмом.

На шаге 3 рассматривается каждый узел E(ei), который присоединен к ребру ei, направленному из узла y . Если потенциально новое расстояние E(ei ) (которое является равным W(ei ) плюс расстояние D(y, T) ) является меньшим чем его старое значение, то происходит соответствующее корректирование атрибутов и E(ei ) ставится в очередь в

список Q . После того, как этот шаг закончен, выполнение шагов 2 и 3 повторяется до тех пор, пока список Q не будет пуст.

Приведенный выше алгоритм использует трансформацию статических алгоритмов в динамические. Для дальнейшего снижения вычислительных затрат вводится обновление текущих кратчайших расстояний узлов - потомков на шаге 3 с помощью процедуры Bchlld(n,T): Ve e O(y)

lf D(E(e), T) > D(y, T) + W(e) D(E(e), T) = D(y, T) + W(e) Bpar (E(e), T) N ^ Bchud(E(e),T) Vn e N

D(n, T) = D(S(e),T) + W(e) ENQUEUE(Q{E(e), y, D)}) Go To Step 2

В зависимости от реализуемого алгоритма очередь Q имеет различную организацию. В случае алгоритма Дейкстры организуется отсортированный связанный список. В случае алгоритма Беллмана-Форда каждый новый элемент помещается в конец очереди. Согласно D'Esopo-Pape новый элемент также помещается в конец очереди. Если n уже присутствует в очереди, то новые атрибуты заменяют старые. Если же узел уже ранее бывал в очереди, то помещается в начало связанного списка. Для модифицированного D'Esopo-Pape поддерживается два списка, с новыми элементами и уже ранее рассматриваемыми узлами.

4. Методика моделирования и анализ полученных результатов

Было проведено экспериментальное моделирование для подтверждения теоретических выкладок, изложенных выше, проверки эффективности предложенного метода преобразования статических алгоритмов поиска кратчайших путей на графах в динамические, а также для сравнительного анализа работы алгоритмов с точки зрения количества операций сравнения.

В ходе проведенного моделирования производилась генерация графов со случайной топологией в диапазоне числа вершин от 100 до 2000 с шагом в 100 вершин по методике, указанной в [5,6]. Средняя степень вершин составляла 10. Веса ребер графа устанавливались равными евклидовому расстоянию между вершинами.

Для каждого значения числа вершин графа генерировалось 50 различных топологий. Для статических алгоритмов на графе 300 раз случайным образом выбиралась начальная вершина. Для динамических версий алгоритмов по каждой топологии графа 300 раз случайным образом менялись наборы весов ребер (число ребер, одновременно меняющих свой вес, находилось в интервале 5-30).

На рис. 1 показаны полученные зависимости числа операций сравнения от количества вершин графа для статических алгоритмов.

100 200 II 400 5011 II .'I 300 91 1000 1100 1200 1300 4 и 1500 ..... 17L1L1 i | м 2000

Число вершин графа

Рис. 1. Трудоемкость статических алгоритмов

Из графиков, приведенных на рис.1, следует, что алгоритмы Беллмана-Форда и Б^оро-Раре, имеющие большую асимптотическую сложность, на практике работают намного эффективнее алгоритма Дейкстры, что связанно с проведением моделирования на разреженных графах. Полученные результаты указывают на то, что Б^оро-Раре имеет явные преимущества перед алгоритмами Беллмана-Форда и Дейкстры.

5

? о -,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,—

1011 2011 300 400 500 ..... 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000

Число вершин графа

Рис. 2. Трудоемкость динамических алгоритмов при изменяющейся топологии графа В случае изменения состояния связей (весов ребер графа), как и ожидалось, за счет поддержки древовидной структуры т происходит локализация областей графа, для которых требуется повторное построение 8РТ. Стоит обратить внимание на то, что данный подход позволяет добиться значительного снижения алгоритмической сложности (рис. 2). Кроме того, в отличие от статических алгоритмов, предложенный метод приводит к динамическим алгоритмам с сублинейной сложностью относительно размера сети.

I1 -I-1-i-i-1-i-i-i-i-i-1-1-i-1-1-1-1-1-1-1—

100 200 300 400 5011 600 700 800 900 1000 1100 1200 ВСЮ 1400 1500 1600 17110 1800 1900 2000

Число вершин графа

Рис. 3. Трудоемкость динамических алгоритмов при дополнительном обновлении процедурой

ВсЫМ(п,Т)

Как видно на рис. 3, использование дополнительного обновления текущих длин кратчайших путей на шаге 3 для узлов - потомков позволяет дополнительно снизить вычислительные затраты алгоритмов Б^оро-Раре и Беллмана-Форда.

100 200 300 400 500 ÔLH1 700 S00 900 1000 1100 1200 1300 1400 1500 1ÔLU1 1700 1S00 1900 2000

Число вершин графа

Рис. 4. Число операций сравнения на одно изменение ребра графа

~ Li -1-1-|-1-1-1-1-1-1-1-1-1-|-|-|-1-|-|-|-

100 200 300 400 50li 600 700 500 91 1000 1100 1200 1300 1400 1500 1600 1700 I ' I2000

Число вершин графа

Рис.5. Число операций сравнения на одно изменение ребра графа с процедурой Bchlld(n,T)

На рис. 4 и 5 представлены зависимости среднего числа операций сравнения на одно изменение ребра графа для методов трансформации и дополнительного обновления соответственно.

5. Заключение

Научная новизна. Для преобразования статических версий SPT алгоритмов в динамические предложен метод, позволяющий добиться значительного снижения алгоритмической сложности. Приведенные иллюстрации показывают существенное сокращение вычислительных затрат при использовании динамических версий алгоритмов.

Практическое значение. Проведенный сравнительный анализ результатов моделирования для различных размерностей графов позволяет сделать вывод о том, что предложенные методы обновления текущих расстояний к узлам для случаев локальных изменений топологии графа позволяют добиться значительного эффекта экономии вычислительных ресурсов.

Список литературы: 1. NarvaezP., Kai-YeungSiu, Hong-Yi Tzeng. New Dynamic SPT Algorithm Based on a Ball-and-String Model. IEEE/ACM TRANSACTIONS ON NETWORKING, Vol. 9, DECEMBER2001. NO. 6. Р. 706-718. 2. T. Cormen, C. Leiserson, andR. Rivest. Introduction to Algorithms.//Cambridge, MA: The MIT Press, 2001. 3.R. Perlman, G. Varghese. "Pitfalls in the design of distributed routing algorithms," in Proc. SIGCOMM, vol. Aug., 1988. Р. 43-54. 4. E. Dijkstra, "A note two problems in connection with graphs." Numerical Mathemat. 1959. Vol. 1. Р. 269-271.5. Завизиступ Ю.Ю., Партыка С.А.Метод преобразования статических SPT алгоритмов в динамические//АСУ и приборы автоматики. Вып. .№153. Харшв: Харю-вський нацюнальний умверсигег радюелекгротки, 2010.Вып. 153. С.69-73. 6. Завизиступ Ю.Ю., Партыка С.А. Метод снижения алгоритмической сложности динамического SPT алгоритма // Вестник ХНТУ. 2011. №>2(41). С. 318-322.

Поступила в редколлегию 06.03.2012 Партыка Станислав Александрович, асистент кафедры ЭВМ ХНУРЭ. Научные интересы: компьютерные сети, математическое моделирование. Увлечения: путешествия, туризм. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 80577021354. E-mail: [email protected]

i Надоели баннеры? Вы всегда можете отключить рекламу.