Научная статья на тему 'Параллельные алгоритмы решения  некоторых экстремальных задач на графах'

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

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

Аннотация научной статьи по математике, автор научной работы — Шунгаров Х. Д.

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

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

Parallel Algorithm of Solution of Some External Problems on Graphs

In given research for the problem of finding of Spanning tree minimal weight and wood of maximal weight in connected Graph are offered polynomial parallel algorithms. It is proved that the application of such algorithms of finding of Spanning tree of minimal weight in graph is effective.

Текст научной работы на тему «Параллельные алгоритмы решения некоторых экстремальных задач на графах»

Параллельные алгоритмы решения некоторых экстремальных задач на графах

Шунгаров Х. Д. [email protected] ) Карачаево-Черкесский Государственный Университет

1. Введение.

Задача нахождения остовного дерева минимального веса (ОДМВ) графа G возникает при проектировании линий электропередач, трубопроводов, дорог и т. п., когда требуется заданные центры соединить некоторой системой каналов связи так, что любые два центра были связаны непосредственно соединяющими их каналами, либо через другие центры и каналы, и чтобы общая длина (стоимость) каналов связи была минимальной.

Известно [1, 2, 3, 4], что для задач нахождения остовного дерева минимального веса и леса максимального веса (ЛМВ) графа существуют эффективные алгоритмы. В [5] представлен параллельный алгоритм

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

Пусть имеется конвейерная параллельная вычислительная система, представляющая собой последовательность из ©^2 процессоров, каждый из которых осуществляет лишь один шаг задания, передавая результаты следующему процессору, который делает очередной шаг. Таким образом, для вычисления результата данные передаются от одного процессора к другому. Предположим также, что имеется некоторый алгоритм а, операции которого разбиты на группы, упорядоченные так, что каждая операция любой группы зависит либо от начальных условий алгоритма, либо от результатов операций, находящихся в предыдущих группах. Представление алгоритма в подобном

нахождения ОДМВ графа, ускорение которого составляет

В

составляет о(п) .

виде называется параллельной формой алгоритма или параллельным алгоритмом [6].

Каждая группа операций называется ярусом параллельного алгоритма, число групп - высотой, а максимальное число операций в ярусе - шириной параллельного алгоритма [6]. Высоту (ширину) параллельного алгоритма а обозначим через Н(а) (8(а)).

Все недостающие определения понятий, относящихся к теории параллельных алгоритмов можно найти в [5, 6]; в [7] представлены определения понятий, относящихся к теории графов.

Ускорением А(а) называется величина, показывающая, во сколько раз быстрее конкретная задача может быть решена при помощи параллельного алгоритма по сравнению с последовательной реализацией такого алгоритма[6]. Проблема конструирования параллельных алгоритмов для задач на графах является актуальной и практически важной и сводится к задаче разбиения этого графа на подграфы.

2. Постановка задачи.

Пусть задан неориентированный связный граф G=(V, E), V={vi, v2, ..., vn}, E={e}, e=(vi, vj), Всякому ребру eeE приписан вес w(e)=w(v;, vj)>0. Такой граф будем называть взвешенным. Обозначим через x=(V, Ex) - суграф[7], который является остовным деревом графа G, Ex^E. Множество всех таких остовных деревьев обозначим через X={x}. На множестве Х определим целевую функцию (ЦФ)

F(х) = ^ w(e) ^ min. (1)

eeEx

Требуется найти такой элемент х°еХ, на котором ЦФ F(x) (1) принимает минимальное значение, т. е.

F (х0 )= min F (х). (2)

хе X

Множество Х называется множеством допустимых решений, а элемент х0, удовлетворяющий равенству (2), называется оптимальным решением или

оптимумом. Сформулированная задача называется задачей нахождения ОДМВ на графе О, для решения которой предлагается параллельный алгоритм а., основанный на идее алгоритма Прима [7].

3. Описание параллельного алгоритма а.

Предположим, что граф О=(У, Е) задан матрицей весов У этой

матрицы уД если (у^ у^еЕ и ,^=0, если (у^ у^Е . Обозначим через

N(vj)- список вершин, смежных вершине у,, i ф у, у е {1,2,...,п}; УТ, ЕТ -

множества вершин и ребер строящегося фрагмента ОДМВ графа О. В

процессе работы параллельного алгоритма а, описанного ниже, с каждой

вершиной у* у е N(у,) связываются две метки а ((у*)) и в(у* ). Метка а{у*)

является минимальным весом ребра (у,, у*) , где у*^(у,), т.е. а(у*)= шт ,Уу), а ) - имя второй вершины этого ребра, т.е. )= у,.

Уу еN(у,)

Параллельный алгоритм а состоит из этапов аг, перенумерованных индексом t=1, 2, ...^^.Этап а1 начинается с того, что фиксируется некоторая вершина у/еу и определяются множества УТ= (у/}, ЕТ=0. Вершина у/еу вошла

во фрагмент строящегося ОДМВ графа О. На вход этапа а подается список N (у/) и каждой вершине уе N(у/) приписываются метки а(у) = ®(у/, у), в(у)=у/ . Затем все метки а(у), у е N (у/) сравниваются между собой и выбирается метка а(ур) = шт а (у ), имеющая минимальное значение; в(ур )=у/. Ребро ( ур, у/)

vеN (у/)

присоединяется к фрагменту строящегося ОДМВ графа О, а множества УТ, ЕТ изменяются следующим образом: УТ= (у/,ур }, ЕТ = ((ур,у/ ) }. После чего метки

а(ур) в(ур) вершины ур удаляются .

На вход этапа а2 подается список К(ур), метки всех вершин уеN(у/)\УТ и

множества УТ, ЕТ. В списке К(ур) удаляется вершина у/. Каждой вершине

V г (ы(ур )\ {VI })п N(У[) приписываются метки а(у) = а(ур,V) в(у) = ур . Для каждой

вершины V (vp)\ {VI })п NV) метки изменяются следующим образом. Если для

вершины V е N(ур)\ {VI}) выполняется неравенство а(у)<ю(ур,V), то метки

а(), в(у) вершины V не меняются. Если для вершины V е N^р )\ {VI})

выполняется неравенство а(V)>a(уp,V) ,то а(у) = a(уp,V) в(^) = vp . Затем все метки

сравниваются между собой и выбирается

К )= min а(^),где = N (VI) и N(Vp )\{VI}, в^у) = vz , г = I или г = р Ребро

метка а\

vеV2\VT

, vy) присоединяется к фрагменту строящегося ОДМВ графа G , а множества

УТ, ЕТ изменяются следующим образом УТ= {VI,vp,vy}, ЕТ = {уp,VI ),^у,,vz)}.

После чего метки а(уу ) в^у) вершины Vy удаляются .

Пусть осуществлено к-1 этапов е{1,2,..., к -1} параллельного алгоритма а.

Множество УТ содержит к-1 вершин, а множество ЕТ -(к-2) ребер строящегося ОДМВ графа G. Предположим также, что в результате работы первых к-1 этапов а(} е {1,2,...,к -1} получено множество меток и V,vm) - последнее ребро

минимального веса, присоединенное к фрагменту строящегося ОДМВ графа

^ где V$ е ¥Т .

На вход этапа ак к е {1,2,...,п -1} подается список N(Vт) , множества УТ, ЕТ и множество меток а^), V еVk _1 \ VT , полученных в результате работы к-1 этапов е {1,2,...,к -1}, где Vk_1- множество всех вершин, имеющих метки. В списке N(т) удаляется вершина vs. Если N(Vт 0, т.е. не все вершины списка N) помечены, то каждой вершине V г{м(Vт )\^})п Vk-1 \ УТ приписываются метки а(V) = ®(vm,V), в(V) = vm • Для каждой

вершиныV е(((Vт)\{}) Vk-1\VT метки изменяются следующим образом. Если а(у)<a(уm,V), то метки а^),в^) вершины V не меняются. Если же а(у)>a(уm,V) ,то а() = o}(уm,V), в() = vm . Множество всех вершин, имеющих метки на этапе а к, обозначим через Vk. Затем все метки сравниваются между собой и

выбирается метка а(^г )= шт а(^), имеющая минимальное значение, для

уеУ2\УТ

которой в(уг) = ух ,ухеУТ . Ребро (уг,ух) присоединяется к фрагменту

строящегося ОДМВ графа О , а множества УТ, ЕТ изменяются следующим образом УТ= УТ у (уг }, ЕТ =ЕТ у (уг, ух}. Затем метки а(^г), в(уг) вершины уг

удаляются . Если N (ут ) = 0, т.е. не все вершины списка N (ут) помечены, то

метки а (у), у е Ук-1 \ УТ сравниваются между собой и выбирается метка

а(yq )= шт а(^), имеющая минимальное значение, для которой

уеУ1 \УТ

) = уу ,ууеУТ . Ребро (vq, у у) присоединяется к фрагменту строящегося

ОДМВ графа О , а множества УТ, ЕТ изменяются следующим образом: УТ= УТ у ^ }, ЕТ =ЕТ у {( vq, у у )}. Затем метки а{у(1), в(vq) вершины уч

удаляются . Параллельный алгоритм а заканчивает свою работу по завершению этапа ап-1, т.е. когда УТ = У . 4. Анализ и обоснование алгоритма а.

При анализе всякого алгоритма особое место занимает оценка его трудоемкости [6]. Под трудоемкостью алгоритма будем понимать время выполнения соответствующей программы на ЭВМ. Трудоемкостью алгоритма называется функция ставящая в соответствие каждому натуральному числу п время работы а(п) алгоритма в худшем случае на входах длины п[6].

При анализе и обосновании алгоритмов будем использовать О-символику. Будем говорить, что неотрицательная функция Дп) не превосходит по порядку функцию §(п), если существует такая константа с, что ^п)<с§(п) для всех п>0 и при этом будем писать ^п)=0(§(п)). Иногда вместо «трудоемкость алгоритма есть 0(§(п))» будем говорить «алгоритм решает задачу за время 0(§(п))»[7].

Пусть Т = {(,Т1),((2,Т2),...,У,Ек)} - остовный лес взвешенного графа О ,У, и Е, - множества вершин и ребер /' -ой компоненты леса Т. Параллельный алгоритм а опирается на следующую известную теорему [7].

Теорема 1. Пусть ребро (и, V) имеет минимальный вес среди всех ребер, у

которых ровно одна концевая вершина содержится в VTl. Тогда среди

остовных деревьев графа О, содержащих Tу {(и, V)}, найдется такой, вес

которого не более веса любого остовного дерева, содержащего T. Докажем теперь, что справедлива

Теорема 2. Пусть задан связный взвешенный граф О=(¥, Е), V={v¡, V2, ..., vn}, Е={е}, е=^и V), ц=1, 2, ..., п, Щ. Тогда построенный параллельным алгоритмом а граф T = (, ET), представляет собой ОДМВ графа О.

Доказательство. Сначала докажем, что граф T = (^, ET), полученный в результате работы параллельного алгоритма а , является деревом. Поскольку согласно конструкции параллельного алгоритма а, на каждом этапе е {1,2,...,п -1} к ЕТ добавляется ребро, одна концевая вершина которого

принадлежит УТ, а другая - нет, то граф T = (VT, ET) на каждом этапе е {1,2,...,п -1} является деревом. После завершения работы параллельного

алгоритма а это дерево Т будет остовным деревом графа G, поскольку параллельный алгоритм а заканчивает свою работу только если УТ=У.

Докажем теперь, что построенное параллельным алгоритмом а остовное дерево Т= (, ET) является ОДМВ графа G. Для этого достаточно доказать, что после выполнения этапа ак,к е {1,2,...,п -1} построенный граф Tk = (к, ET к) содержится в некотором ОДМВ графа G. Докажем индукцией по

к. При к=1 утверждение о том, что после выполнения этапа а построенный граф T1 =(щ, ET1 ) содержится в некотором ОДМВ графа G непосредственно следует из теоремы 1. Предположим, что это утверждение справедливо для некоторого к>1, т.е. граф Tk, построенный в результате работы к этапов е {1,2,...,к} содержится в некотором ОДМВ графа G. Учитывая правило выбора ребра с для присоединения к Tk на этапе ак+1, к е {1,2,...,п - 2} применим теорему 1 .Тогда получим, что граф Tk+1 = Tkие , построенный в результате

выполнения этапа ак+1,к е (1,2,...,п - 2} также содержится в некотором ОДМВ

графа О. Таким образом, теорема 2 доказана.

Теорема 3. Пусть задан связный взвешенный граф 0=(У, Е), У=(у1, у2, ■■■, уп}, Е=(е}, е=(уи у) 1у=1, 2, ■.., п, Щ.Тогда высота параллельного алгоритма а удовлетворяет равенству:

Доказательство. Согласно конструкции параллельный алгоритм а состоит из п -1 этапов,. каждый из которых представляет ярус параллельного алгоритма а . Отсюда и из определения высоты параллельного алгоритма следует, что ни)=п-1. Теорема 3 доказана.

Теорема 4. Пусть задан связный взвешенный граф 0=(У, Е), У=(у1, у2, ■.., уп}, Е=(е}, е=(у, у) 1у=1, 2, ■.., п, Щ.Тогда ширина параллельного алгоритма а определяется соотношением:

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

1) присваивание и изменение меток;

2) нахождение вершины, «ближайшей» к фрагменту строящегося ОДМВ графа О и присоединение ребра минимального веса;

3) удаление вершины из списка вершин.

Каждая группа операций 1)-3) требует времени не более О(п), поэтому

Теорема 5. Пусть задан связный взвешенный граф 0=(У, Е), У=(у1, у2, ■.., уп}, Е=(е}, е=(уи у) ц=1, 2, ■.., п, Щ.Тогдаускорение параллельного алгоритма а удовлетворяет соотношению: А(а)=О(п).

Доказательство. Обозначим через Р1 (а) - число операций параллельного

параллельного алгоритма а. Величина Р1 (а) является шириной параллельного алгоритма а, поэтому согласно (4) имеем:

(3)

Таким образом, теорема 4 доказана.

алгоритма а1, а через р2 (а)- число операций последовательной реализации

Р (а) = O(n). (5)

Величина р2 (а) составляет о(п2) элементарных операций, т. е. Р2( )= о(п2). (6)

Из определения ускорения параллельного алгоритма а следует, что 4*)=Р2 (а)/Р (а). (7)

Подставляя теперь (5) и (6) в правую часть (7), получим A(ai)=O(n).

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

Таким образом, теорема 5 доказана. Из теорем 3, 4 вытекает Следствие 1. Пусть выполняются условия теоремы 4. Тогда параллельный алгоритм а находит ОДМВ графа G за время о(п) элементарных операций, используя параллельную вычислительную систему, состоящую из п-1 процессоров.

4.Задача нахождения леса максимального веса (ЛМВ).

Пусть дан граф G=(V, E) и вес w(e)=wij>0 для каждого ребра ееЕ. Требуется найти лес - ациклический подграф графа G, - имеющий максимальный общий вес. Такой граф G будем называть графом G с весами w. Введем функцию

расстояния для Е графа G: dij=W-wij, где w = maxwj , тогда такой граф G будем

(. vj )e

называть графом G с расстоянием d [4]. Известна [4] следующая

Теорема 6. Пусть задан связный взвешенный граф G=(V, E), V={v1, v2, ..., vn}, E={e}, e=(vu Vj), i,j=1, 2, ..., n, Щ. Остовное дерево минимального веса в графе G с расстоянием d совпадает с лесом максимального веса в графе G с весами W .

Из теоремы 6 следует, что параллельный алгоритм а можно применить к задаче нахождения ЛМВ графа G, изменив вес каждого ребра ееЕ следующим образом: dij=W-wij, w = max w(e). Таким образом, имеет место следующая

ееЕ

Теорема 7. Пусть задан связный граф 0=(У, Е), у={у1, у2, у„}, Е={е}, е=(у, V), Ц=1, 2, ..., п, Щ. Всякое ребро ееЕ взвешено числом wjj=w(e)>0. Введем функцию расстояния djj=W-wjj, w = т^ ^е). Тогда

ееЕ

1) решение х0, полученное параллельным алгоритмом а, представляет собой ЛМВ графа О;

2) высота Н(а) параллельного алгоритма а нахождения ЛМВ графа О удовлетворяет равенству н (а ) = п — 1;

3) ширина Б(а) параллельного алгоритма а нахождения ЛМВ графа О удовлетворяет соотношению s(а) = о(п);

4) ускорение параллельного алгоритма а нахождения ЛМВ графа О удовлетворяет равенству А(а)=О(п).

Работу параллельного алгоритма а рассмотрим на графе G, изображенном на рис.1.

Рис.1. Граф G = (v, E), V | = n, n = 19 .Ребра, вошедшие в ОДМВ выделены.

Ad.1. Graph G = (v,e), j | = n,n = 19.Spanning Tree of a Minimal Weight

entered Ribs are marked.

Параллельный алгоритм а состоит из © = 18 этапов.

Этап а1. На вход этапа а1 подается список N (у!). Каждой вершине v е N (v1) приписываются метки: а(у2) = 1в(у2) = V1

а(у3 ) = 2в(у3 ) = у1 .

Метки а(),V е NV) сравниваются между собой и выбирается метка а^2 ) = 1в('2 ) = v1• Ребро (V2) присоединяется к фрагменту строящегося ОДМВ графа G• Множества УТ, ЕТ имеют вид: УТ= {у1, V2}, ЕТ= {(v1, V2)}. После чего метки ),а(v2) удаляются

Этап а 2 . На вход этапа а2 подается список NV), множества УТ,ЕТ и метки а^), V е NV) . Затем вершина V! удаляется из списка NV). Каждой вершине V е N)\ {vl} приписываются метки:

а^6 )= 5 в("6 ) = v2 a(v3 ) = 3 в(v3 ) = v2

а^5 ) = 4 в(v5 ) =

Вершина vзеN (vl )п N ^2) \ {vl}, поэтому метки вершины vз изменяются )= 2 в('3 ) = vl. Метки a(v),V е N(vl) сравниваются между собой и выбирается метка ) = 1в(;2) = Vl. Ребро (vl,vз) присоединяется к фрагменту строящегося ОДМВ графа G. Множества УТ, ЕТ изменяются следующим образом: УТ= ^1^2, vз}, ЕТ= {(1, V2), (vl, vз)}. После чего метки ), в^з) удаляются. Аналогичным образом работают остальные этапы.

Этап а3. На вход этапа аз подается список NV), множества УТ,ЕТ и метки а(), V е NV). Затем вершина vз удаляется из списка NV). Каждой вершине V е NV)\ {vз} приписываются метки:

а^6 )= 1 ^6 ) = v3 a(v8 ) = 1 в("8 ) = v3 a(v4 ) = 2 в(v4 ) = v3

а^5 )= 4 в(v5 ) = ^

УТ= {v1, v2, v3, ^ } ,ЕТ= {("1, v2 ^ (v1, v3 ), (v3, v6)}.

Этап а4 : .М(v6 ) : а("10 ) = 1 в("10 ) = ^

a(v8 ) = 1 в^8 ) = v3 a(v4 ) = 2 в("4 ) = v3 a(v5 ) = 4 в(v5 ) = v2

а(у7 ) = 4 в(У7 ) = уб УТ= { У2, у 3, У6, ую } ,ЕТ= {(уь У2 ( (уЬ у 3 ),(у 3, убХ (уб, У10 )}. Этап а5 : N(у10 ) : а(у14 ) = 3 в(У14 ) = У10

а(у15 ) = 8 в(У15 ) = У10 а(у11 ) = 1 в(у11 ) = У10 а(у8 ) = 1 в(У8 ) = У3 а(у4 ) = 2 в(у4 ) = У3 а(Уб ) = 5 в(Уб ) = У2 а(у7 ) = 4 в(У7 ) = У6 а(у5 )= 4 в(У5 ) = У2

УТ= { у2, уз, уб, уц } ,ЕТ= {{у1, у2 ( (у1, уз ( (уз, уб), (уб, У10 ( (у10' У11)} • Этап аб : N(у11) : а(у14 ) = 3 в(У14 ) = У10

а(у15 ) = 8 в(у15 ) = У10 а(у13)= 2 в(у13) = У11 а(у8 ) = 1 в(у8 ) = У3 а(у4 ) = 2 в(у4 ) = У3 а(у5 ) = 4 в(у5 ) = У2 а(у7 ) = 2 в(у7 ) = У11

УТ= { у2, У3, У6, У10' У1Ь У8 },ЕТ= {(уЬ У2 ( (уЬ У3 ),(у3> УбХ (У6. У10 ( (У10' У11( (У3' У8 )}. Этап а : N(У8 ) : а(у12 ) = 4 в(У12 ) = У8

а(у15 ) = 8 в(у15 ) = У10 а(у13)= 2 в(у13) = У11 а(у4 ) = 2 в(у4 ) = У3 а(у5 ) = 4 в(у5 ) = У2 а(у7 ) = 2 в(у7 ) = У11

УТ= {уЬ У2> У3> У6, У10. У1Ь У8' У4 }

ЕТ= {(у1 > У2 ( (уЬ У3 ),(у3> УбХ (у6> У10 ( (у10. У11( (у3>У8 ( (у3> У4 )} . Этап а8 : N (у 4 )= 0: а(у12 )= 4 в(у12 ) = У8

а("15 ) = 8 в("15 ) = "10 а("13)= 2 в(v13) = v11 а(v5 )= 4 в^5 ) = v2 a(v7 ) = 2 в(С1 ) = v11

УТ= {v1, v2, v3, v6, v10, v11, v8, v4, v13 },

ЕТ= ^ ), (Ь ^ ),(v3, v6), (v6, v10 ) )v10, v11), (v3, ^ ), (v3, v4 ), (1Ь v13 )}.

Этап а9 : N(vlз ) : ^12 ) = 3 в(v12 ) = 13

a(v15)= 4 в(v15) = v13 a(v19 )= 5 в(19 ) = v13 a(v5 )= 4 ^5 ) = v2 a(v7 ) = 2 в(v7 ) = v11

УТ= {v1, v3, v6, v10, v11, v8, v4, v13, ^ },

ЕТ= {(v1, ^ ), (v1, v3 ) (v3, v6 X (6, v10 ), (v10, 11 ), (v3, v8 ) (v3, v4 ), (v11, v13 ), (v11, v7 )}. Этап аю: N^7 )= 0: а^ ) = 3в(vl2 ) = 13

а(15)= 4 в(15) = v13 a(v19 )= 5 в(19 ) = v13 a(v5 )= 4 в(v5 ) = v2

УТ= {v1, v3, v6, v10, v11, v8, v4, v13, v12 },

ЕТ= , v2 ), (v1, v3 ^ v6), (v6, v10 ), (v10, v11), (v3, ^ ), (v3, v4 ), (1Ь v13 ),| l(v11, v7 ) (v13, v12 )

Этап аП: N(vl2): a(v15)= 4 в(v15) = v13

а(19 )= 5 в(v19 ) = 13 а^5 )= 4 в(v5 ) = v2

УТ= {v1, ^ v6, v10, v11, v8, v13, v7, v12, v5 }

ЕТ= {(v1, v2 ), ^Ь ^ ),(v3, v6), (v6,10 ) (v10, v11), (v3, v8 ), (v3, v4 ) (v11, v13 ), (v11, ^ V l(v13, v12 ), (У2, v5 )

Этап а12: N V):

a(v15)= 4 в(v15) = 13 а(19 ) = 5 в(v19 ) = v13 a(v9 )= 6 ^9 ) = v5

УТ= {v1, ^ v3, v6, v10, v11, v8, v4, v13, v12, v5, v15 },

ЕТ= l(vl, v2 ), (v1, v3 ),(v3, v6), (v6, v10 ) )v10, v11), (v3, ^ ), (v3, v4 ), (v11, v13) l(v11, v7 ) (v13, v12 ), (v2, ^ ), (v13, v15 )

Этап а1з : N(15 ): а(v9 ) = 6 в(у9 ) = V5

а(19 ) = 1 в(v19 ) = 15

a(v16 )= 2 в(v16 ) = v15

a(v17 )= 1в(v17 ) = v15

УТ= {v1, ^^^ ^ v6, v10, v11, v8, v13, v7, v12, v5, v15, v17 },

ЕТ= l(vl, ^ ), (v1, v3 ),(v3, (v6, v10 ), (v10,11 ^ (v3, v8 ), ^ ), (v11, v13 ) l(v11, v7 ), (v13,12 ) (v2, v5 ), ^ v15 ), (v15, v17 )

Этап а14 : N(ц ) : а^9 ) = 6 в(у9) = V5

a(v19 ) = 1 в(v19 ) = v15

а(16 )= 2 в(v16 ) = 15

а(18 ) = 2 в(v18 ) = v15

УТ= {v1, ^^^ ^ v6, v10, v11, v8, v13, v7, v12, v5, v15, v17, v19 },

ЕТ= Д1^ v2 ), (v1, v3 ^ v6), (v6, v10 ), (v10, v11), (v3, v8 ) (v3, v4 ), (v11,13 ) l(v11, v7 ), ^ v12 ), (v2, v5 ) (v13, v15 ), (v15,17 ) (v15, v19 )

Этап а15 : N(19): а^9)= 6в(у9) = V5

а(16 )= 2 в(v16 ) = 15

а(18 )= 2 в(v18 ) = v15

УТ= {v1, ^^^ ^ v6, v10, v11, v8, v13, v7, v12, v5, v15, v17, v19, v18 },

ЕТ= l(vl, v2 ), (v1, v3 ),(v3, v6), (v6, v10 ) )v10, v11), (v3, ^ ), (v3, v4 ), (1Ь v13 ), l(v11, v7 ) (v13, v12 ), (v2, ^ ), (v13, v15 ), ^ v17 ), (v15, v19 ) (v15, v18 )

Этап а16 : N(18)=0: a(v9) = 6в^9) = V5

а(16 )= 2 в(v16 ) = 15

УТ= {v1, ^^^ 13, v6, v10, v11, v8, v4, ^ v7, v12, v5, v15,17, v19, v18, v16 },

ЕТ= l(vl, v2 ), (v1, Ч ),(v3, v6), (v6, v10 ), (v10, v11), (v3, ^ ), (v3, v4 ), (1Ь v13 ),

l(v11, v7 ) (v13, v12 ), (v2, ^ ), (v13, v15 ), ^ v17 ), (v15, v19 ) (v15, v18 ), (v15,16).

Этап а17 : N(v16 ) : а(у9 ) = 6 e(v9 ) = V5

а(у14 )= 4 в(у14 ) = у16

VT= { v^ ^ v6, v10, у1Ъ v8, v4, v13, v7, v12, v5, v15, v17, v19, ^ v16, у14 },

ET= 1(ь v2 ), (v1, v3 ) (v3, v6), (v6, у10 ), (v10, у11), у8 ), (v3, v4 ^ (v11, у13 ), j

1(у1Ъ у7 ), (v13, v12 ) (v2, у5 ), (v13, у15 ), (v15, у17 ), (v15, у19 ), (v15, v18 ) (v15, у16 ), (v16, v14 )j

Этап а18: N(14): а(у9) = 1 e(v9) = v14

VT= {v1, ^ v3, v6, v10, v11, v8, v4, v13, v7, v12, ^ v15, v17, v19, v18, v16, v14, у9 },

ET= 1(ь v2 ), ( у3 ^^ v6), (v6, у10 ), б^Ь у11), (v3, у8 ), (v3, у4 ), (v11, у13 ), (v11, у7 ), (v13, v12 ),j l(v2, v5 ) (v13, у15 ), (v15, у17 ), (v15, у19 ), (v15, у18 ), (v15, v16 ) (v16, у14 ), (v14, v9 ) J

Параллельный алгоритм а заканчивает свою работу, поскольку VT = V . Литература.

1. Kruskal J. B. On the Shortest Spanning Subs tree of a Graph and the Traveling Salesman Problem, Proc. Amer. Math. Soc., 7 (1956), 48-50.

2. Prim R. C. Shortest Connection Networks and Some Generalizations, BSTJ, 36(1957), 1389, 1401.

3. Yao A. С. - С. An O(|E|loglog|V|) Algorithm for Finding Minimum Spanning Trees, Inf. Proc. Letters, 4(1975), 21 - 25.

4. Пападимитриу Х., Стайглиц К. Комбинаторная оптимизация. Алгоритмы и сложность. - М: Мир, 1985, 512с.

5. F. Leighton. Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes. Morgan Kaufmann Publishers, San Mateo, CA(1992)

6. Воеводин В. В. Математические модели и методы в параллельных системах. М.: Наука, 1986, 296 с.

7. Емеличев и др. Лекции по теории графов. М.: Наука, 1990, 384 с.

8. ЗыковА.А. Основы теории графов. М.: 1987, 384с.

9. Шунгаров Х. Д. Параллельные алгоритмы на графах \\ В сб. трудов IV научно-техн.конф."Решение научно-технических и социально-экономических проблем современности",Черкесск, 2002, с. 55-5 7.

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