Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Буланкин В.Б / Учебное пособие Гергель В.П..doc
Скачиваний:
195
Добавлен:
22.03.2015
Размер:
1.16 Mб
Скачать

4.5. Обработка графов

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

Пусть, как и ранее во 2 разделе пособия, есть граф

,

для которого набор вершин ,, задается множеством, а список дуг графа

, ,

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

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

, ,

ненулевые значения элементов которой соответствуют дугам графа

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

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

Нахождение минимально охватывающего дерева

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

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

(если для какой либо вершины не существует ни одной дуги в, значениеустанавливается в). В начале работы алгоритма выбирается корневая вершина МОДи полагается

, .

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

-        определяются значения величин для всех вершин, еще не включенные в состав МОД;

-        выбирается вершина графа, имеющая дугу минимального веса до множества

;

-        включение выбранной вершины в.

После выполнения итераций метода МОД будет сформировано; вес этого дерева может быть получен при помощи выражения

.

Трудоемкость нахождения МОД характеризуется квадратичной зависимостью от числа вершин графа

.

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

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

, ,,

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

С учетом такого разделения данных итерация параллельного варианта алгоритма Прима состоит в следующем:

-        определяются значения величин для всех вершин, еще не включенные в состав МОД; данные вычисления выполняются независимо на каждом процессоре в отдельности; трудоемкость такой операции ограничивается сверху величиной(на первой итерации алгоритма необходим перебор всех вершин, что требует вычислений порядка);

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

-        рассылка номера выбранной вершины для включения в охватывающее дерево всем процессорам (для гиперкуба сложность этой операции также определяется величиной ).

Получение МОД обеспечивается при выполнении итераций алгоритма Прима; как результат, общая трудоемкость метода определяется соотношением

.

С учетом данной оценки показатели эффективности параллельного алгоритма имеют вид:

, .

Анализ выражений показывает, что достижение асимптотически ненулевого значения показателя становится возможным при количестве процессоров, пропорциональном величине.