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

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

CC BY
2098
163
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МЕТРИЧЕСКИЕ ХАРАКТЕРИСТИКИ ГРАФА / РАДИУС ГРАФА / ДИАМЕТР ГРАФА / ЦЕНТР ГРАФА / ПЕРИФЕРИЙНЫЕ ВЕРШИНЫ ГРАФА / METRIC CHARACTERISTICS OF A GRAPH / GRAPH RADIUS / GRAPH DIAMETER / GRAPH CENTER / GRAPH PERIPHERAL VERTICES

Аннотация научной статьи по математике, автор научной работы — Ураков Айрат Ренатович, Тимеряев Тимофей Валерьевич

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

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

Fast search algorithms for two metric characteristics problems on weighted graphs

Two problems are considered of metric characteristics search on weighted undirected graphs with non-negative edge weights. The first problem is to find the radius, diameter, at least one center, and one pair of peripheral vertices of an undirected graph with non-negative edge weights. In the second problem one also has the pre-calculated distances matrix. For these problems we propose fast search algorithms, which use only small fraction of graph vertices for metric characteristics search. The proposed algorithms are tested on various inputs against the other popular methods.

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

УДК 519.173.5 ББК 22.176

АЛГОРИТМЫ БЫСТРОГО ПОИСКА ДЛЯ ДВУХ ЗАДАЧ О МЕТРИЧЕСКИХ ХАРАКТЕРИСТИКАХ ВЗВЕШЕННЫХ ГРАФОВ

Ураков А. Р.1, Тимеряев Т. В.2

(Уфимский государственный авиационный технический университет, Уфа)

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

Ключевые слова: метрические характеристики графа, радиус графа, диаметр графа, центр графа, периферийные вершины графа.

Введение

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

1 Ураков Айрат Ренатович, кандидат физико-математических наук, доцент, (urakov@ufanet.ru).

2 Тимеряев Тимофей Валерьевич, аспирант (timeryaev@yandex.ru).

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

Этот подход и один из способов разбиения более подробно рассмотрены нами в [1]. Там же показано, что задача разбиения, являясь ЛГ’-сложной, требует многократного пересчета метрических характеристик. Актуальность расчета метрических характеристик становится еще выше, если задачу разбиения приходится решать в оперативном режиме из-за постоянных изменений в структуре исходного нагруженного графа.

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

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

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

ходящих под определение центра, радиуса и диаметра. Для взвешенных графов c n вершинами известные алгоритмы, выполняющие эту задачу, имеют сложность от O(Cn2,376) для графов, имеющих ограниченные C целые веса ребер [10], до O(n3/ log2 n) для графов с произвольными вещественными весами ребер [4]. Очевидно, что для структур, состоящих из сотен тысяч, миллионов вершин, применение такого способа является во многих ситуациях нецелесообразным или даже практически невозможным из-за слишком большого времени счета.

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

В данной статье рассматриваются задачи двух типов. Задача 1: нахождение центра, радиуса и диаметра графа, заданного лишь множествами вершин V и ребер E; Задача 2: нахождение центра, радиуса и диаметра графа при наличии дополнительной информации в виде вычисленных кратчайших расстояний между всеми парами вершин графа.

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

при тестировании на взвешенных графах различной природы.

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

Рассматривается связный неориентированный взвешенный граф С = (V, Е, ш), где V = {г1, г2,..., гп} - множество вершин графа, Е = {е1, е2,..., еп} - множество ребер графа, а ш : Е ^ [0, то) - вещественная весовая функция на ребрах. Мощности множества вершин и множества ребер будем считать равными IV| = п, |Е| = т. Введем ряд обозначений и определений.

Вес ребра из вершины гі в вершину Vj будем обозначать ш(і, і). Вес пути - сумма весов входящих в него ребер. Расстояние т^ между гі и Vj - наименьший из весов путей, соединяющих эти вершины. Матрица расстояний М = (т^) - матрица, состоящая из расстояний между всеми парами вершин графа. Граф называется связным, если между любыми двумя вершинами графа гі и Vj существует путь, т.е. т^ < то. Метрические характеристики графа определяются следующим образом.

Определение 1. Эксцентриситетом є(гі) вершины гі называют максимальное расстояние от этой вершины до всех остальных є(гі) = шах^щ т^.

Определение 2. Радиус графа г = шт^щ є(гі). Вершина с, на которой достигается этот минимум, называется центром графа.

Определение 3. Диаметр графа д = шахі у=щ ту. Вершины, расстояние между которыми равно диаметру, называются периферийными.

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

Задача 1. Дан связный неориентированный взвешенный граф С = (V, Е, ш) с неотрицательной вещественной весовой функцией на ребрах ш : Е ^ [0, то). Требуется найти радиус,

диаметр данного графа и хотя бы один из центров графа и одну пару периферийных вершин.

Задача 2. Даны связный неориентированный взвешенный граф G = (V, E, w) с неотрицательной вещественной весовой функцией на ребрах w : E ^ [0, то) и вычисленная матрица расстояний M. Требуется найти радиус, диаметр данного графа и хотя бы один из центров графа и одну пару периферийных вершин.

Введем еще два понятия. Задачей о кратчайших путях с единственным источником (Single Source Shortest Paths, SSSP) называется задача, в которой задан граф G = (V, E) и необходимо найти кратчайшие пути от заданной вершины vi до всех остальных Vj Є V. Поиск кратчайших расстояний от вершины Vi данного графа до всех остальных будем обозначать SSSP(vi). Будем называть множеством опорных вершин P = {pi,p2,... ,pp} данного графа множество любых p вершин, информация о расстояниях от которых используется при вычислении метрических характеристик.

2. Состояние вопроса

Наиболее распространенным способом нахождения метрических характеристик графа в случае с невычисленной матрицей расстояний является решение задачи о кратчайших путях между всеми парами вершин. Большинство таких алгоритмов не обладает универсальностью и показывает хорошую скорость решения только для графов с определенным набором свойств. В частности, существуют алгоритмы для разреженных графов [7], для графов с целыми ограниченными весами ребер [10] и т.п. И хотя сложность решения задачи о кратчайших путях периодически понижается с появлением новых алгоритмов, нахождение метрических характеристик таким способом для взвешенных графов с большим числом вершин все еще остается не практичным.

Существуют алгоритмы, находящие метрические характеристики графов, обладающих особым устройством и описываю-

щих специальные структуры. К подобным можно отнести, например, алгоритм поиска диаметра для графов «сетей малого мира» (Small World Networks) [11] или алгоритм поиска центра и диаметра для графов бензеноидных систем (Benzenoid Systems) [5]. Эти алгоритмы для ускорения решения используют особенности рассматриваемых графов и поэтому область их эффективного применения сильно ограничена.

Одной из разновидностей задач о метрических характеристиках графов является приближенное вычисление радиуса и диаметра графа, при этом поиск расстояний между вершинами графа производится с некоторой погрешностью, что позволяет значительно уменьшить время счета. К алгоритмам, решающим эту задачу, можно отнести алгоритм приближенной функции окрестности (Approximate Neighborhood Function Algorithm) [2] и

[З].

Кроме поиска точных и приближенных характеристик графа широко используется поиск и так называемых эффективных характеристик графа. Эффективный радиус вершины v определяется как 90-й перцентиль всех расстояний от данной вершины. Эффективный диаметр графа определяется как минимальное расстояние, на котором 90% вершин достижимы друг из друга. Алгоритмы решения этих задач предлагаются, например, в [9].

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

3. Алгоритмы быстрого поиска

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

3.1. ПОИСК ЦЕНТРА И РАДИУСА

В основе ускорения поиска лежит определение нижней и верхней ги границ радиуса графа по множеству опорных вершин Р и просмотр претендентов на центр сг, до тех пор, пока для какого-то из них не будет выполнено равенство гг = ги.

Для радиуса графа г и произвольной вершины V справедливо г ^ гг = ш^, где ш^ = ттк=тп;к=г ш*^. Нижнюю границу радиуса гг также можно определить, используя множество вершин гг = тшг=тп(тахрер шгр). В этом случае гг = тахреР ш^р ^ тахреР шср ^ е(с) = г.

С другой стороны, радиус графа г ограничен сверху эксцентриситетом любой вершины г ^ ги = е(^^-). Таким образом, радиус лежит в пределах гг ^ г ^ ги и

(1) если гг = ги, то г = гг = ги.

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

Для быстрого поиска радиуса необходимо находить вершины - претенденты на центр с с как можно большим

(2) max mcp = r = min(max mip)

peP гР i=in peP p/

и с как можно меньшим эксцентриситетом e(Ci), здесь P - множество опорных вершин. При этом желательно, чтобы число просмотренных претендентов на центр Ci и вершин в P было как можно меньше, это позволит минимизировать число решений SSSP в Задаче 1 и число просмотренных элементов матрицы расстояний в Задаче 2.

В графе ищутся вершины pi и p2, являющиеся друг для друга самыми удаленными:

(3) Pi,P2 : трхр2 = maxmip1 = maxmip2.

i=i,n i=i,n

Для этого выбираются любая вершина графа di и вершина d2, определяемая как самая удаленная от di d2 : т^2 = maxi=i^ mdij. Последующие вершины в данной «последовательности» определяются аналогичным образом

(4) dj+i : mdjdj+i = max i.

i=i,n

Процесс продолжается до тех пор, пока не будет выполнено m,djdj+1 = , в этом случае искомые вершины найдены

и pi = dj-i, p2 = dj.

Найденные вершины pi и p2 включаются в пустое до этого множество опорных вершин P = {pi, Р2}. Претенденты на центр ci ищутся по формуле (2). Если для первого претендента на центр ci выполняется равенство ri = ru, данная вершина является одним из центров графа и радиус графа r = ri = ru. Если же ru > ri, то самая удаленная от ci вершина p3 : mcip3 = e(ci) добавляется в множество опорных вершин P и выполняется поиск C2 по формуле (2). Процесс продолжается до тех пор, пока для какого-то из претендентов не будет выполнено равенство (1). Приведем описание алгоритма для обеих постановок задач.

Алгоритм поиска центра и радиуса (Р1, Р2)

Вход:

граф С = (V, Е, ш);

для Задачи 2 матрица расстояний М;

Гг = 0, г„ = то.

1. Построение исходного опорного множества.

д1 - любая вершина графа.

Используя (4), определяем рьр2 из (3) и включаем их в Р.

В Задаче 1 при этом для ді из (4) предварительно решаем £££Р (ді).

2. Находим претендента на центр.

Определяем вершину сі и Гг по формуле (2).

3. Проверка претендента.

В Задаче 1, если для сі кратчайшие расстояния не вычислены, решаем £££Р(сі).

Находим эксцентриситет є(сі) и Ги = є(сі), если є(сі) < Ги. Если Ги = Гг: добавляем вершину р- : тСіРі = є(сі) в Р; в Задаче 1, если для р- кратчайшие расстояния не вычислены, решаем £££Р(р-); переходим к шагу 2.

Иначе сі - один и центров графа, Г = Гг - радиус графа, конец алгоритма.

3.2. ПОИСК ДИАМЕТРА

Алгоритмы поиска диаметра состоят из двух частей. Вначале ищется один из центров графа алгоритмами, описанными в предыдущем разделе. Во второй части алгоритма производится непосредственный поиск диаметра на основе информации о расстояниях от центра до остальных вершин графа. То есть алгоритмы поиска диаметра полностью решают поставленные нами Задачи 1, 2 и могут называться алгоритмами поиска радиуса и диаметра.

3.2.1. АЛГОРИТМ ДЛЯ ЗАДАЧИ 2

После нахождения одного из центров графа с просматриваются расстояний только от тех вершин гі, для которых выполняется неравенство

(5) тіС > дг/2,

где дг - текущая нижняя граница диаметра, вычисляемая по формуле

(6) дг = шах ті7-

і-ЄР -

а Р - множество опорных вершин, образованное при вычислении радиуса графа. Действительно, если диаметр графа больше текущей нижней границы и гі - одна из периферийных вершин графа, для некоторой вершины г- в силу неравенства треугольника для матрицы расстояний имеем тіс + т- ^ т- = й > дг. То есть тіс + тс- > дг = 2 ■ дг/2 и необходимо либо тіс > дг/2, либо т- > дг/2. Что доказывает необходимость рассматривать только вершины гі, удовлетворяющие (5), в силу симметричности матрицы М.

Приведем описание алгоритма.

Алгоритм поиска диаметра для Задачи 2 (Д2)

Вход:

граф С = (V, Е, ш);

матрица кратчайших расстояний М;

дг = 0.

1. Поиск центра графа.

Используя алгоритм из раздела 3.1, находим один центров графа с.

Вычисляем нижнюю границу диаметра дг по формуле (6).

2. Поиск диаметра.

Просмотр на диаметр расстояний от вершин гі, для которых выполняется формула (5).

Если т- > дг, дг = т-.

Выход:

^г - диаметр графа.

3.2.2. АЛГОРИТМ ДЛЯ ЗАДАЧИ 1

По определению кратчайшего расстояния для элементов матрицы расстояний М справедливо неравенство треугольника

(7) ш,у ^ Шгк + ш^-, Уг,;,к.

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

Значит, вычислив расстояния от некоторой вершины г^ до всех остальных, для определения диаметра нужно просматривать расстояния только между теми парами вершин г^,гг, для которых справедливо

(8) ш^ + ш^г > ^г.

В качестве вершины г^ в алгоритме используется центр графа с.

Согласно (7) потенциально наибольшим расстоянием между собой обладают вершины г&, гг с максимальной суммой ш^ + ш^г. Поэтому имеет смысл рассматривать вершины г^, гг в порядке убывания величины ш^ + ш^г. Если при таком проходе «сверху вниз» для какой-то из пар вершин г&, гг неравенство (8) не выполняется, то просмотр остальных пар, обладающих меньшим потенциальным расстоянием между собой, не нужен.

Для ускорения вместо сортировки пар г&, гг по сумме ш^с + шсг сортируются вершины гг по расстоянию до центра шгс, а проверка по формуле (8) выполняется для пар вершин в порядке

(9) гт1 гт2 , гШ1 гтз , . . . , гтх гтп , гт2 гтз, гт2 гт4 . . .

Здесь шг - номер вершины с г-м по величине расстоянием до центра графа. Если для некоторых гтгт5 (8) не выполняется, переходим к просмотру гтт гт4+2. Если (8) не выполняется и при этом ] = г + 1, конец алгоритма и ^г - диаметр графа. Ниже следует описание алгоритма.

Алгоритм поиска диаметра для Задачи І (ДІ)

Вход:

граф G = (V, E, w); di = 0.

1. Поиск центра графа.

Используя алгоритм из раздела 3.1, находим один центров графа c.

Вычисляем нижнюю границу диаметра di по формуле (6).

2. Сортировка.

Сортировка вершин vi по расстоянию до центра с в порядке убывания.

3. Проверка претендентов

Выбор пары претендентов из списка (9).

Если для пары v^, Vi выполняется (8), то если для v^, v кратчайшие расстояния не вычислены, решаем SSSP(v^), SSSP(vi). Если шы > di, di = шы

Выход:

di - диаметр графа.

4. Результаты

Все тесты проводились на компьютере с процессором Intel Core i5 530 с частотой 2,93 ГГц и объемом памяти 3 ГБ в 32-разрядной версии Windows XP. Программный код был написан на языке C++ с использованием среды разработки Borland C++ Builder 6. В качестве первого набора тестовых данных использовались взвешенные графы дорожных сетей США из открытого доступа [12]. Вторым набором тестовых данных были сгенерированные нами полные графы со случайными весами ребер. Для полных графов результат брался как среднее по 10 различным графам с одинаковыми характеристиками. Параметры тестовых графов представлены в таблице 1.

Разработанные алгоритмы для Задачи 1 (обозначения Р1 и Д1) сравнивались с алгоритмом Дейкстры в реализации с двоичной кучей [6] для каждой вершины графа для графов с малой средней степенью вершин и алгоритмом Флойда-Уоршелла

[8] для полных графов (РС1, ДС1). В силу того, что решение задачи алгоритмом Дейкстры невозможно за приемлемое время для графов большой размерности, время работы алгоритма для графов, начиная с ЯК_БАУ, было приближено методом наименьших квадратов. В качестве данных для аппроксимации выступало время работы алгоритма на разной размерности подграфах тестовых графов, часть этих подграфов представлена в таблице 1 (ЯК_1, ЯК_2 и т.п.). Время работы алгоритма Дейкстры для всех вершин было аппроксимировано функциями 7,1-10-7п2 1с§(п)—1,1*10 7пш 1с^(п)+0,66 для поиска радиуса и 7,2 ■ 10-7п2 к^(п)—1,1 ■ 10-7пш к^(п)+0,98 для поиска диаметра. В разработанных алгоритмах для Задачи 1 в качестве алгоритма решения используется алгоритм Дейкстры в реализации с двоичной кучей, в качестве сортирующего алгоритма в Д1 используется быстрая сортировка. В таблицах 2 и 3 приводятся результаты тестов для Задачи 1.

Заметно значительное сокращение времени поиска радиуса и диаметра всех тестируемых графов разработанными алгоритмами для Задачи 1. Процент вершин, для которых необходимо решить £££Р, при поиске радиуса не превышает 0,9%, а при поиске диаметра 7%.

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

ведены в таблице 3. Для Задачи 2 на рассматриваемых графах также наблюдается значительное преимущество разработанных алгоритмов над сравниваемыми - ускорение поиска радиуса от 56 раз и ускорение поиска диаметра от 5 и более раз.

Таблица 1. Параметры тестовых графов

Название Вершин Ребер Средняя степень

Я1Ч_1 1001 2432 2,43

Я1Ч_2 2007 5288 2,63

Я1Ч_5 5000 1,34 ■ 104 2,69

Я1Ч_7 7000 1,8 ■ 104 2,58

Я1Ч_10 104 2,7 ■ 104 2,69

Я1Ч_15 1,5 ■ 104 4,38 ■ 104 2,92

Я1Ч_20 2 ■ 104 5,41 ■ 104 2,71

2,64 ■ 105 7,34 ■ 105 2,78

Я^ВАУ 3,21 ■ 105 8 ■ 105 2,49

Я^СОЬ 4,36 ■ 105 1,06 ■ 106 2,43

Я^БЬА 1,07 ■ 106 2,71 ■ 106 2,53

1,21 ■ 106 2,84 ■ 106 2,35

Я^ЬКБ 2,76 ■ 106 6,89 ■ 106 2,5

Я^Б 3,6 ■ 106 8,78 ■ 106 2,44

RN_W 6,26 ■ 106 1,52 ■ 107 2,43

Р_1 1000 106 1000

Р_2 2000 4 ■ 106 2000

Р_5 5000 2,5 ■ 107 5000

Р_7 7000 4,9 ■ 107 7000

Б_10 104 108 104

Таблица 2. Результаты для Задачи 1, начало. Р1 БББР, шт. - количество решений задач БББР при использовании Р1;

Р1 БББР, доля - доля вершин с решенной БББР от общего количества вершин графа. Аналогично для Д1. Звёздочкой обозначены приближенные результаты

о\

~-Л

Граф РС1, сек Р1, сек Р1 шт. Р1 \SSSP, доля ДС1, сек Д1, сек Д1 555/ шт. Д1 555Р, , доля

Я\ 1 1,33 0,016 4 0,004 1,31 0 4 0,004

Я\_2 5,45 0,031 7 0,0035 5,45 0,031 10 0,005

Я\'_5 39 0,031 4 0,0008 39 0,61 72 0,0144

Я\_7 75 0,063 6 0,00086 75 5,5 492 0,0702

ИЧ_10 170 0,17 10 0,001 170 0,72 41 0,00,1

ЮЧ_15 373 0,17 7 0,00047 374 0,77 30 0,002

Я\_20 761 0,23 6 0,0003 762 25 635 0,0318

Я\_\Т 1,54 • 105 3,5 6 2,3 • 10-5 1,54- 105 5,3 9 3,4 • 10-5

ЯХВАУ 2,49 • 105* 3,16 4 1,3 • 10-5 2,49 • 105* 3,31 4 1,25 • 10-5

БШСОЬ 4,76 • 105* 7,09 6 Ю 1 О т-Ч т-Ч 4,77 • 105* 233 198 0,00045

R:\_FLA 2,99 • 106* 13 4 3,7 • 10“6 2,99 • 106* 16 5 4,7- 10“6

4,03 • 106* 14 4 3,3 • 10“6 4,03 • 106* 15 4 3,3 • 10“6

2,14 • 107* 37 4 1,5 • 10“6 2,14 • 107* 38 4 1,5 • 10“6

ЯКЕ 3,76 • 107* 49 4 1,1 • 10_6 3,77 • 107* 51 4 1,1 • 10_6

Я\_\¥ 1,18 • 108* 92 4 6,4- 10_у 1,19 • 108* 97 4 6,4 • 10_у

Информационные технологии в управлении

Таблица 3. Результаты для Задачи 1, продолжение. Р1 БББР, шт. - количество решений задач БББР при использовании Р1;

Р1 БББР, доля - доля вершин с решенной БББР от общего количества вершин графа. Аналогично для Д1. Звёздочкой обозначены приближенные результаты

Граф РС1, сек Р1, сек Р1 шт. Р1 555Р, , доля ДС1, сек Д1, сек Д1 555/ шт. Д1 555Р, , доля

Р_1 10 0,18 9 0,009 10 0,27 13,9 0,0139

¥_2 81 1 10,3 0,0052 81 1,75 17,8 0,0089

Р_5 1246 12 9,5 0,0019 1246 21 15,4 0,0031

¥_7 3401 33 10 0,0014 3401 45 13,7 0,002

БЮ 9853 71 9,5 0,00095 9853 123 16,5 0,0017

Управление большими системами. Выпуск 42

Таблица 4. Результаты для Задачи 2

Граф РС2, сек Р2,сек Р, ускорение ДС2, сек Д2, сек Д, ускорение

Я\1 4,21 0,031 135 1,7 0,047 36

Я\_2 156 0,14 1114 7,3 0,17 42

Я\'_5 95 0,16 593 45 1,38 32

Я\_7 181 0,38 476 87 16 5

ИЧ_10 374 0,89 420 177 2,19 80

Р_1 4,07 0,072 56 2,08 0,107 19

¥_2 16 0,16 100 8,16 0,26 31

Р_5 100 0,43 232 50 0,69 72

¥_7 196 0,63 311 98 0,86 113

БЮ 399 0,81 492 200 1,27 157

о\

40

Информационные технологии в управлении

Заключение

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

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

Литература

1. УРАКОВ А.Р., ТИМЕРЯЕВ Т.В. Многоуровневый алгоритм разбиения графов по критерию средней длины // Информационные технологии. - 2012. - №4. - С. 22-25.

2. BERMAN P., KASIVISWANATHAN S.P. Faster Approximation of Distances in Graphs // Algorithms and Data Structures. Lecture Notes in Computer Science. -2007. - Vol. 4619. - P. 541-552.

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

3. BOLDI P., ROSA M., VIGNA S. HyperANF: approximating the neighbourhood function of very large graphs on a budget // Proc. 20th international conference on World Wide Web. - New York: ACM, 2011. - P. 625-634.

4. CHAN T.M. More Algorithms for All-Pairs Shortest Paths in Weighted Graphs // Proc. 39th annual ACM symposium on Theory of computing. - New York: ACM, 2007. - P. 590-598.

5. CHEPOI V., DRAGAN F. ET AL. Center and Diameter Problems in Plane Triangulations and Quadrangulations // Proc. 13th annual ACM-SIAM symposium on Discrete algorithms. - Philadelphia: Society for Industrial and Applied Mathematics, 2002. - P. 346-355.

6. CORMEN T.H., LEISERSON C.E., RIVEST R.L., STEIN C. Introduction to Algorithms, Second Edition. - MIT Press, 2001. - 1202 p.

7. DIJKSTRA E.W. A note on two problems in connection with graphs // Numerische Mathematik 1. - 1959. - P. 83-89.

8. FLOYD R.W. Algorithm 97: Shortest Path // Communications of the ACM. - 1962. - Vol. 5, №6. - P. 345.

9. KUNG U., TSOURAKAKIS C.E., APPEL A.P., FALOUTSOS C., LESKOVEC J. Radius Plots for Mining Tera-byte Scale Graphs: Algorithms, Patterns, and Observations // SIAM International Conference on Data Mining. - 2010. - P. 548-558.

10. SHOSHAN A., ZWICK U. All Pairs Shortest Paths in Undirected Graphs with Integer Weights // Proc. 40th Annual Symposium on Foundations of Computer Science. -Washington: IEEE Computer Society, 1999. - P. 605-614.

11. TAKES F.W., KOSTERS W.A. Determining the diameter of small world networks // Proc. 20th ACM international conference on Information and knowledge management. -New York: ACM, 2011. - P. 1191-1196.

12. 9th DIMACS Implementation Challenge - Shortest Paths [Электронный ресурс]. — Режим доступа: http://www.dis.uniroma1.it/challenge9/download.shtml (дата обращения: ноябрь 2012).

FAST SEARCH ALGORITHMS FOR TWO METRIC CHARACTERISTICS PROBLEMS ON WEIGHTED GRAPHS

Airat Urakov, Ufa State Aviation Technical University, Ufa, Cand.Sc., assistant professor (urakov@ufanet.ru).

Timofey Timeryaev, Ufa State Aviation Technical University, Ufa, graduate student (timeryaev@yandex.ru).

Abstract: Two problems are considered of metric characteristics search on weighted undirected graphs with non-negative edge weights. The first problem is to find the radius, diameter, at least one center, and one pair ofperipheral vertices of an undirected graph with non-negative edge weights. In the second problem one also has the pre-calculated distances matrix. For these problems we propose fast search algorithms, which use only small fraction of graph vertices for metric characteristics search. The proposed algorithms are tested on various inputs against the other popular methods.

Keywords: metric characteristics of a graph, graph radius, graph diameter, graph center, graph peripheral vertices.

Статья представлена к публикации членом редакционной коллегии П. Ю. Чеботаревым

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