Научная статья на тему 'Математическая модель вычисления покрывающего дерева сети'

Математическая модель вычисления покрывающего дерева сети Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
526
54
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПОКРЫВАЮЩЕЕ ДЕРЕВО / ОПТИМИЗАЦИЯ ЗАТРАТ НА ТРАФИК / НАГРУЗКА НА РЁБРА / СТОИМОСТЬ ИСПОЛЬЗОВАНИЯ СЕТИ / ИНТЕНСИВНОСТЬ ОБМЕНА ТРАФИКОМ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Анищенко А. А.

Для произвольной заданной сети строится минимальное покрывающее дерево, учитывающее ин тенсивность обмена данными для каждой пары узлов исходной сети. Тем самым решается про блема выбора оптимального маршрута для обмена данными между каждой парой вершин за данного графа сети; решается задача выбора минимальных по стоимости провайдеров, обеспе чивающего связь между узлами сети. Для этого сеть передачи данных представляется в виде нео риентированного графа, для которого строится покрывающее дерево, обеспечивающее мини мальные затраты на весь проходящий по сети трафик. Количество переданной информации в единицу времени между каждой парой узлов сети задаётся матрицей интенсивностей обмена данными. Граф сети задаётся матрицей смежности. Стоимость прохождения единицы информа ции по каждому из рёбер графа сети представляет собой матрицу весов. Для решения постав ленной задачи разработан алгоритм и соответствующий программный продукт, строящий по крывающее дерево, которое позволяет передавать заранее заданные объёмы информации меж ду всеми пользователями сети, при этом суммарная стоимость трафика будет минимальной. По мимо построенного покрывающего дерева алгоритм даёт также возможную минимальную стои мость передачи заданного объёма данных между всеми узлами сети. Алгоритм позволяет пост роить минимальное покрывающее дерево (покрывающее дерево минимального веса), однако для такой цели можно использовать уже имеющиеся алгоритмы, такие как, например, алгоритм Прима или Краскала. Однако с помощью указанных алгоритмов возможно построить лишь ми нимальное по весу покрывающее дерево. В отличие от них предложенный в работе алгоритм строит дерево с учётом нагрузок на рёбра и вершины исходного графа сети и, вычисляя общую стоимость всего проходящего по сети трафика, минимизирует её.

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

Текст научной работы на тему «Математическая модель вычисления покрывающего дерева сети»

Математическая модель вычисления покрывающего дерева сети

Ключевые слова: покрывающее дерево, оптимизация затрат на трафик, нагрузка на рёбра, стоимость использования сети, интенсивность обмена трафиком.

Для произвольной заданной сети строится минимальное покрывающее дерево, учитывающее интенсивность обмена данными для каждой пары узлов исходной сети. Тем самым решается проблема выбора оптимального маршрута для обмена данными между каждой парой вершин заданного графа сети; решается задача выбора минимальных по стоимости провайдеров, обеспечивающего связь между узлами сети. Для этого сеть передачи данных представляется в виде неориентированного графа, для которого строится покрывающее дерево, обеспечивающее минимальные затраты на весь проходящий по сети трафик. Количество переданной информации в единицу времени между каждой парой узлов сети задаётся матрицей интенсивностей обмена данными. Граф сети задаётся матрицей смежности. Стоимость прохождения единицы информации по каждому из рёбер графа сети представляет собой матрицу весов. Для решения поставленной задачи разработан алгоритм и соответствующий программный продукт, строящий покрывающее дерево, которое позволяет передавать заранее заданные объёмы информации между всеми пользователями сети, при этом суммарная стоимость трафика будет минимальной. Помимо построенного покрывающего дерева алгоритм даёт также возможную минимальную стоимость передачи заданного объёма данных между всеми узлами сети. Алгоритм позволяет построить минимальное покрывающее дерево (покрывающее дерево минимального веса), однако для такой цели можно использовать уже имеющиеся алгоритмы, такие как, например, алгоритм Прима или Краскала. Однако с помощью указанных алгоритмов возможно построить лишь минимальное по весу покрывающее дерево. В отличие от них предложенный в работе алгоритм строит дерево с учётом нагрузок на рёбра и вершины исходного графа сети и, вычисляя общую стоимость всего проходящего по сети трафика, минимизирует её.

Анищенко А.А.,

соискатель, кафедра теории вероятностей и математической статистики РУДН, [email protected]

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

Пусть сеть представлена в виде связного неориентированного графа без петель С(У,Е) с множеством вершин V = \;п, и множеством ребер Е. (Здесь и далее используется терминология Харари [5|.)

Структура фа фа представлена матрицей смежности МБ = {т$ц } > где равно количеству ребер связывающих вершины I и j, 1,] = \;п- Если та^ = 0- то

вершины не смежные. Для удобства дальнейшего обозначения вводится равносильное обозначение та(!,]) = тЗц ■

Интенсивность передачи данных между узлами задана матрицей Л : Л = {Ху}={Х(ь])}% ¡, ] = \;п, /,У е ¡/(С)I где есть количество информации, переданное за единицу времени из вершины / в вершину /.

Заданы стоимости прохождения единицы трафика по каждому из ребер графа.

Ставится задача построения такого остовного дерева Т(У,ТЕ)> которое позволяет передавать заранее заданные объёмы информации между всеми пользователями сети (матрица Л ). При этом суммарная стоимость трафика будет минимальной.

При обеспечении связи между парой вершин более чем одним провайдером (кратные ребра иа графе) рассматривается только ребро с минимальной стоимостью. Данный выбор оправдан, что доказано в [2],

Поскольку граф в неориентированный, рёбра < /,} > и < _/,/ > представляют собой одно и то же ребро

и являются равноценными, то есть стоимость за единицу трафика, прошедшего по ним, одинакова.

Стоимость прохождения единицы трафика по каждому из ребер задаётся матрицей стоимостей или матрицей весов \УН = {и'/;7}-{м>г(¿,])}, ¡,] = \:п- Так как граф

С(У,Е) неориентированный, матрица №7? симметрична относительно главной диагонали. Тогда в матрице МБ

,если вершины / и / смежны ,еели вершины;и] не смежны

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

Тогда, объединяя вершины в группы, можно добиться такого укрупнения графа С (V .Е'), при котором воз-

{1, есл I А

О, есл!

можно построение оптимального покрывающего дерева для укрупнённого графа. Л затем при необходимости и для графов, лежащих в вершинах укрупненного графа V. Для этого разбивка на группы записывается в матрицу В = {(¡¡!}, 1—\;т, / = I,/). Где т- количество групп, то есть |К'| =т, \У\ = п;

П,если /е/

V; т V, V/ е V щ =■' J

Транзитная нагрузка ц>(V») на некоторую вершину

дерева V <~ У( Т) - нагрузка данными, проходящими

через узел, но не выходящими из него и не входящими в него.

/ \

Здесь

Тогда для у круп- vifvj =

О, если i £ i

пенного графа С матрица обмена данными Л' вычисляется следующим образом: Л'= RAR1 . Таким образом, при большом количестве вершин поставленную задачу можно свести к меньшей, поэтому предполагается, что в исходном графе п достаточно мало, для того, чтобы были возможны вычисления.

Для решения поставленной задачи:

1. Строится произвольное покрывающее дерево T(V,TE), с матрицей смежности S={sy}={s(i,j)}t

ii j — п и прежней матрицей интенсивностей передачи данных Л.

2. Вычисляется матрица весов полученного дерева WRT = {wrtij } = {wrt(i,j)}: wrty = s„>

3. Для полученного дерева Т вычисляются нагрузки на ребра R = {r.. J = {r(i,j)}, i,j = \;п-

4. Вычисляется суммарная стоимость прохождения трафика по построенному покрывающему дереву

ieK-

/ftMv S(¡./(¡)Щ y*/fl) Mi.jH)

Mi)+\i(i) -сЫ\) - Ui.f(i))-Mf(i) j) -

z<k(i)

- YjMftüs \(i. z))+ys ui. zj.fdjj)

. z<k(i)

(1)

MO=ifeff + )=tiWJ)+KW);

Mf(W= I I

¡ei'iKktf(il)

z

z<k(i)

ы j=i

5. Полученная стоимость сравнивается с предыдущей наименьшей стоимостью и сохраняется только наименьшая.

6. Строится следующее покрывающее дерево, и алгоритм возвращается к п.2.

Таким образом, перебирая все возможные покрывающие деревья, используя, например, алгоритм Кри-стофидеса [3J, для каждого дерева вычисляется суммарная стоимость проходящего по нему трафика и выбирается наименьшая. Полученная стоимость и будет представлять собой минимальную возможную стоимость, по которой можно передать трафик через заданную сеть С с известной интенсивностью обмена данными между узлами Л . Более подробно алгоритм описан в [2].

Для вычисления нагрузок на рёбра дерева Т используется алгоритм, полученный в [1],

Вычисление нагрузок происходит «снизу», то есть на каждом этапе вычисляется нагрузка на концевые вершины дерева (вершины, смежные только с одной вершиной дерева). После каждого этапа концевые вершины «удаляются» и образуются новые. Так происходит до тех пор, пока не останется последняя вершина или последняя пара вершин. Для каждого этана: если концевая вершина имеет номер i, то смежная с ней обозначается как f (i).

Тогда вектор F — { f] } = { f(i)} является на каждом

этапе вектором вершин, смежных с концевыми. (После каждого этапа вектор обнуляется).

dw(i)- «дуговая» нагрузка на i -ю вершину. Для вершины с номером f (i), смежной с концевой вершиной /

+Usv(f(i).h),i)+WMfOJA)))

SV -{svy }-{sv(i,j)}> /,7=1,« - матрица, в /-й

строке которой записана последовательность пройденных и удалённых вершин до вершины i;

K = fkj} = {k(i)}, i — \;n — вектор-счётчик количества элементов в строке I матрицы S V .

После того, как вычислены все транзитные нагрузки И>(/) на вершины i = 1/и, можно вычислить и нагрузки на ребра дерева Т:

V/ - й г(/,/(0) - г(/Ш) - Mf) - scMi) + lam(i) -- X \lam(i,sv(i, z) + /am{5v(i, z)ti).

z<k(i)

(2)

Так как исходный граф G неориентированный и вычисленные нагрузки на ребра r(i, /') являются суммарными нагрузками на ребро < i,j > в обе стороны, то есть из / в / и из / в /, то матрица нагрузок па ребра графа = симметрична.

Блок- схема алгоритма вычисления нагрузок на рёбра покрывающего дерева Т представлена на рис. I.

Задача о нахождении минимального остовного или покрывающего дерева для взвешенного связанного неориентированного графа возникала давно и встречается довольно часто в различных областях. Существует немало алгоритмов реализующих поиск минимального по весу покрывающего дерева для г рафа. Самыми известными из них являются алгоритмы Крас кала. Прима, Бо-рувки [3]. Однако в применении к сетям такие алгоритмы не всегда подходят, поскольку они не учитывают нагрузки на узлы и каналы сети.

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

Mathematical model of finding a network spanning tree

Anishchenko AA, Peoples' Friendship University, Moscow, Russia, [email protected]

Abstract. The minimal spanning tree is created for any given network which takes into account the intensity of the data communication for each pair of nodes of the given network. So the problem of choosing the optimal route for the data com-munication between each pair of vertices of the given network graph is solved, the problem of choosing the providers with minimum cost of communication be-tween nodes is solved. For this data network is represented as an undirected graph for which is created a spanning tree with the minimum traffic overhead. Amount of data transmitted per unit of time between each pair of network nodes is represented as a matrix of the data exchange intensity. Graph of the network is given by the adjacency matrix. The cost of a unity of information on each of the edges of the network is a matrix of weights. An algorithm and corresponding software package were developed to solve this problem. Throgh the usage of minimal spanning tree the software allows a user to deliver a known amount of information to all nodes at minimal traffic cost.Besides the constructed spanning tree algorithm computes the minimal cost of transfer a given amount of data between all nodes. In addition algorithm can construct a minimum spanning tree (spanning tree with the lowest total cost), for this is possible use of the existing algorithms such as the Prim's or Kruskal's algorithm, for example. But using these algorithms allows building a spanning tree with the lowest total cost. In contrast, the proposed algorithm creates a tree taking into account loads on the edges and vertices of the original network graph and computes and minimizes the total cost of all traffic in the network. Keywords: spanning tee, cost optimization for traffic, load on the edges, the cost of using the network, the data exchange intensity.

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