Научная статья на тему 'Параллельный алгоритм поиска внутреннего центра предфрактального графа'

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

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

Аннотация научной статьи по математике, автор научной работы — Букка Елена Станиславовна, Кочкаров Расул Ахматович

Статья посвящена параллельному алгоритму поиска внутреннего центра предфрактального графа, смежность старых ребер которого сохраняется. Алгоритм построен для PRAM(Parallel RandomAccessMachine) модели параллельной вычислительной системы

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

Похожие темы научных работ по математике , автор научной работы — Букка Елена Станиславовна, Кочкаров Расул Ахматович

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

This article is devoted parallel algorithm of search of the internal centre prefractal graph, adjacency of old edges which is remained. This algorithm is construction for Parallel Random Access Machine

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

УДК 519.6; 519.17

Е.С. Букка, Р.А. Кочкаров

параллельный алгоритм поиска внутреннего центра предфрактального графа

В статье предложен параллельный алгоритм поиска внутреннего центра предфрактального графа, смежность старых ребер которого сохраняется. Алгоритм а*2 построен для PRAM (Parallel Random Access Machine) - модели параллельной вычислительной системы [1].

Алгоритм а*2

Рассмотрим взвешенный предфрактальный граф Gl = (V EL), порожденный ориентированной затравкой H = (W, Q), смежность старых ребер которого сохраняется [2]. Затравка H является сильно связным графом, т. е. каждая вершина достижима из всякой другой вершины. Это означает также, что каждая вершина всего предфрак-тального графа достижима из всякой другой его вершины.

от друга, находят числа внутреннего разделения

(х(Ь)), каждый на своей подграф-затравке Ь-го

5 (Ь) ранга :

(х(Ь)) = тах[й(V(Ь),х(Ь))], где й(х(Ь),х(Ь)) = 0.

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

Рассмотрим далее подграф-затравки ^ - 1)-го

(L)

ранга Ь), = 1, пЬ-2 . Каждая из них в процессе порождения предфрактального графа ОЬ-1 была привязана к вершинам предыдущего в траектории графа GL-2, т. к. действует правило сохранения смежности старых ребер. Тогда каждая подграф-затравка ^ - 1)-го ранга Ь) также име-

Алгоритм

использует k процессоров ет одну общую вершину с соответствующими за-

РГ1, РГ2, ..., Рг„ где к = пЬ-1 [1, 3].

Опишем принцип работы алгоритма а*2. Алгоритм начинает свою работу с подграф-затравок

Ь-го ранга ^ь), = 1, пЬ 1. На последнем шаге порождения предфрактального графа ОЬ каждая вершина графа ОЬ-1 была замещена затравкой Н. Поскольку при порождении предфрактального графа действует правило сохранения смежности старых ребер, к каждой вершине О «привязываются» затравки одной из своих вершин. Назначим

по одному процес-

„ь-1

травками (L - 2)-го ранга z

(L)

значим каждой подграф-затравке zs ) по одному

sL-2 = 1, n l 2(l)

l-3

. На-

процессору из Prs

s

L-1

= 1, n

L-2

l-2

На втором шаге п процессоров РГ параллельно находят числа внутреннего разделения каждый для своей подграф-

затравки (L - 1)-го ранга z

(L)

L-1

= 1, n

L-2

( L-1)

st (x(L-1>) = max [d(v

f sl-1 ' , =m~i Jl-1

sL-1

x— 0 + s, (xs L;)L

каждой подграф-затравке z^

сору из Pr , sL = 1,2,

Рассмотрим подграф-затравку z{

(L)

т. к. за-

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

где й(х5,Ь 1)1, х^ 1)1) = 0. То есть осуществляется поиск кратчайших путей от (п - 1) вершин V подграф-затравки Ь) до общей вершины х Далее, к длине кратчайшего пути й (V

(L-1)

Jl-1 ( l-1) L-1

(L-1)-,

(n - 1) вершин v(L) подграф-затравки zx(

(L)

до

«общей» вершины x[L). Среди кратчайших пу- бирается максимальная. Заметим, что st (x(L))

, х- -')

добавляется соответствующее число разделения 5 (х^Ь)), найденное для подграф-затравок предыдущего ранга, и среди получившихся сумм вы-

(ЬК_

тей найдем максимальный и определим число

s, (x[l)) = max [d(v(l), x1(l))], которое назовем

,(l) (L)

j =1,n-1

j1

числом внутреннего разделения вершины х(Ь) подграф-затравки 2*{Ь).

Таким образом, на первом шаге к процессоров Рг1, Рг2, ..., Ргк параллельно и независимо друг

^ l

число внутреннего разделения той вершины, от

(L-1) x (L-1))

JL-( ' sL-1

(Lh = с Г„(^

которой начинается путь d(v 1, x^L 1). Можно

считать, что добавляем s, (x(s ) = st (v( )). Сум

ма d(x(L-1), x(L-1)) + st (x(L)) = st (x(L)), так как

sr.

d (x(L-1), x1- L-1)) = 0.

а

l

4

Математическое моделирование: методы, алгоритмы, технологии

Указанным способом находим числа внутрен-

него разделения st (x^ "*) для общих вершин x

(')

подграф-затравок б1 = 1, п1 —1 до 2-го ранга включительно, т. е. для всех I = Ь,Ь — 1,..., 2. На каждом шаге I = Ь,Ь — 1,..., 2 подграф-затравкам

2у1) назначаются процессоры Рг , б1 = 1, п1—1 .

На последнем шаге 1=2 найдены числа разделения (х^), Б2 = 1,п для общих вершин

Д2)

подграф-затравок 2-го ранга г и одной 2 Б2 (1) (1) подграф-затравки первого ранга г у = 2\ .

(1)

Подграф-затравка по сути соответствует

графу О, из траектории О, О,, ..., О,. Тогда для 1 11 Ь (1) каждой вершины подграф-затравки найдено

число (х(2)) , Б2 = 1, п .

Далее рассматриваем подграф-

затравку z

(1)

которой назначим процес-

п11 процессоров Рг подграф-затравкам г(1),

б1 = 1, п1—1 . Каждый процессор будет обрабатывать только назначенную ему подграф-затравку.

(2) Одновременно п1-1 процессоров Рг параллельно и независимо друг от друга находят числа внутреннего разделения (х^)), каждый на назначенной ему подграф-затравке 1-го ранга ): st(¿1)) = тах[й(^),х«)) + st(х^)], где

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

й (х^), х^)) = 0. Поиск кратчайших путей между вершинами осуществляется с помощью процедуры Дейкстры.

Шаг Ь . (1) Назначим каждый из п процессоров Рг подграф-затравкам первого ранга г1(1) , = 1, п. Каждый процессор будет работать с подграф-затравкой г1(1) как с отдельным графом. (2) Одновременно п процессоров Рг парал-

сор Рг Процессор Рг находит для каж- лельно и независимо друг от друга находят чис-1 (1)1 (1) дой ее вершины x^ число внутреннего ла внутреннего разделения st (x^ ), каждый на

разделения: st(x®) = max [d(vx®) + st(x^2"1)].

1 y1=1,n-1 j1 1 2

Вершина x*o, для которой число внутреннего разделения st(x*) минимальное является внутренним центром предфрактального графа GL:

st(x') = min [st(xJ))].

S1=1, 2,..., n 1

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

Алгоритм а*2

Вход: взвешенный предфрактальный граф Оь = (Гь, Еь )

Выход: х* — внутренний центр предфракталь-ного графа ОЬ.

Шаг 1. (1) Назначим каждый из к = пь—1 процессоров Рг1, Рг2, ..., Ргк подграф-затравкам

гБ,ь), бь = 1, пЬ—1 . Каждый процессор будет обрабатывать только назначенную ему подграф-затравку.

(2) Одновременно к процессоров Рг1, Рг2, ..., Ргк параллельно и независимо друг от друга находят числа внутреннего разделения st (х^ь)), каждый на назначенной ему подграф-затравке

Ь-го ранга г(Ь): б,(х(Ь)) = тах [й(м(Ь),х(Ь))], где

Б 7 1 у Б г у 4 ] Ь 7 Б Ь

й (х^ь), х^ь)) = 0. Поиск кратчайших путей между вершинами осуществляется с помощью процедуры Дейкстры.

Для всех I = Ь — 1, Ь — 2,..., 2 выполнить: Шаг Ь — I +1. (1) Назначим каждый из

назначенной ему подграф-затравке первого ранга г1(1): ^(х®) = та—[йх®) + ^(х(2))], где

й (х^1, х®) = 0. Поиск кратчайших путей между вершинами осуществляется с помощью процедуры Дейкстры.

Ш а г Ь + 1 . Используя процессор Рг из всех (1 ) ¿1 вершин хБ , = 1, 2,..., п в качестве внутреннего центра предфрактального графа ОЬ выбрать вершину х* с наименьшим числом разделения:

5(х;) = т1п ^ (х^))].

б1=1, 2,..., п 1

Процедура Дейкстры.

Вход: взвешенный граф О = (V, Е).

Выход: кратчайшее расстояние й(у;, V ^).

Теорема 1. Вычислительная сложность алгоритма а*2 равна 0(4п2 Ы).

Доказательство. На первом шаге алгоритм работает на подграф-затравках Ь-го ранга , где находит числа внутреннего разделения вершин хбь), Бь = 1,2,..., п . Поиск числа внутреннего разделения на отдельно взятой подграф-затравке состоит из поиска кратчайших путей й(м(ь), х^ь) и выбора максимального из кратчайших путей. Поиск кратчайших путей осуществляется с помощью процедуры Дейкстры, вычислительная сложность которого равна п2 [2], а выбор максимального элемента или, в худшем случае, сортировка элементов по возрастанию требует выполнения также п2 операций. Тогда поиск числа внутреннего разделения на одной подграф-затравке требует в сумме 2п2 операций. Число всех подграф-

т l-1

затравок L-го ранга равно n , для выполнения

-l-1

шага 1 или поиска всех 55(х^-1), = 1, 2,..., п

требуется 2п2 • пЬ-1 = 2пЬ+1 операций.

На следующем шаге осуществляется поиск чисел внутреннего разделения для вер-

г(Ь-1), = 1,2,..., пЬ-2, что требует

шин

2п2 • пЬ-2 = 2пЬ операций. Продолжая поиск внутренних центров вершин до второго ранга включительно получаем: 2пЬ+1 + 2пЬ + 2пЬ-1 +... + 2п3. На шаге Ь осуществляется поиск кратчайших путей попарно между всеми вершинами х®, = 1,2,..., п, что требует п2 • п = п3 операций плюс поиск максимального элемента на шаге Ь +1.

В сумме получаем: 2пЬ+1 + 2пЬ + 2пЬ-1 +... + 2п3 + п3 + п2 < < 2пЬ+1 + 2пЬ + 2пЬ-1 +... + 2п3 + 2п2 + п3 =

ь+1 2

= 2 ^ п •п - п + пЗ < 2пЬ+2 - п2 + п3 < 2пЬ+2 + п -1

+ п3 < 2пЬ+2 + 2пЬ+2 = 4п2 • пЬ = 4п2 • N.

Таким образом, вычислительная сложность алгоритма а*2 равна 0(4п2 • N).

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

Теорема 2. Временная сложность алгоритма а*2 равна 0(4п3 • Ь).

Доказательство. На первом шаге алгоритм а* находит числа внутреннего разделения на

подграф-затравках L -го ранга z

( l)

St = 1, П

На каждой подграф-затравке работает назначен-

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

На втором шаге также каждой подграф-

затравке (Ь - 1)-го ранга Ь-1), = 1, пЬ-2 назначается процессор Рг . Поиск числа вну-

5Ь-1

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

Таким образом, осуществляя поиск чисел внешнего разделения на подграф-затравках разных рангов, на каждом шаге до (Ь -1) -го шага включительно требуется 2п2 времени. Сложив время, потраченное на всех (Ь -1) шагах, получим 2п • Ь.

На шаге Ь осуществляется поиск кратчайших путей попарно между всеми вершинами х®, = 1,2,..., п, что требует п2 времени, а шаг (Ь +1) требует затрат (п -1) времени на поиск максимального элемента.

Складывая время, необходимое для поиска внутреннего центра предфрактального графа, получим: 2п2 • Ь + п2 + (п -1) < 2п2 • (Ь +1). Таким образом, время исполнения алгоритма а*2 равно 0(2п2 • (Ь +1) .

СПИСОК ЛИТЕРАТУРЫ

1. Воеводин, В.В. Параллельные вычисления [Текст]/В.В. Воеводин, Вл.В. Воеводин.-СПб.: БХВ-Петербург, 2002. -608 с.

2. Кочкаров, А.М. Распознавание фрактальных графов. Алгоритмический подход [Текст]/А.М. Кочка-ров//Нижний Архыз: РАН САО, 1998. -170 с.

3. Кочкаров, А.А. Параллельные алгоритмы на предфрактальных графах [Текст]/А.А. Кочкаров, Р. А. Кочкаров//Препринт ИПМ имени М.В. Кел-

дыша РАН.-2003.-№ 84. -20 с.

4. Кристофидес, Н. Теория графов. Алгоритмический подход [Текст]/Н. Кристофидес.-М.: Мир, 1978.-432 с.

5. Асанов, М.О. Дискретная математика: графы, матроиды, алгоритмы [Текст]/М.О. Асанов, В.А. Баранский, В.В. Расин._Ижевск: НИЦ «РХД», 2001. -288 с.

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