ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА
2013 Прикладная теория графов №3(21)
УДК 519.176
О ДВУХ ЗАДАЧАХ АППРОКСИМАЦИИ ВЗВЕШЕННЫХ ГРАФОВ
И АЛГОРИТМАХ ИХ РЕШЕНИЯ
А. Р. Ураков, Т. В. Тимеряев
Уфимский государственный авиационный технический университет, г. Уфа, Россия E-mail: urakov@ufanet.ru, timeryaev@yandex.ru
Рассматриваются две связанные задачи аппроксимации взвешенных графов. В качестве погрешности аппроксимации рассматривается абсолютная величина максимума разностей расстояний между вершинами исходного графа и соответствующими им вершинами графа аппроксимирующего. В первой задаче требуется минимизировать погрешность аппроксимации при заданной размерности аппроксимирующего графа. Во второй — минимизировать размерность аппроксимирующего графа при заданной погрешности. Для задач приводится постановка в терминах задачи разбиения графа, описываются эвристические алгоритмы решения и производится сравнение с решением известным алгоритмом разбиения графа.
Ключевые слова: аппроксимация графа, разбиение графа, уменьшение сложности задач.
Введение
Под аппроксимацией графа в общем случае понимают процесс приближения некоторой исходной информации о исследуемом графе (возможно, не обладающей полнотой) графом с нужными исследователю характеристиками. В качестве исходной информации может выступать либо граф, обладающий неудобными с точки зрения рассматриваемой задачи свойствами, либо набор данных, не представленный в виде графа, но требующий такого представления для возможности формулирования и решения задач на нём с использованием аппарата теории графов.
Известные задачи аппроксимации графа можно условно разделить на следующие категории: І) восстановление исследуемой структуры по ограниченному объёму информации в виде графа с последующим изучением её свойств и механизмов посредством решения задач на получившемся приближённом графе [1]; 2) приближение исходного графа с одним числом рёбер (его матрицы связности) графом на тех же вершинах с другим числом рёбер (другой матрицей связности), обладающим определёнными свойствами [2-4]; 3) различного рода задачи на графах специального вида [5, б].
В одной из постановок задачи аппроксимации требуется приблизить рассматриваемый граф графом, состоящим из k компонент связности [Т]. В таком виде задача аппроксимации имеет много общего с задачей разбиения. В задаче разбиения графа требуется найти представление множества вершин исходного графа V в виде некоторого числа попарно непересекающихся подмножеств. Как правило, задачи разбиения графа содержат размер получаемого «разреза» множества вершин (cut size) как одну из составляющих целевой функции. В соответствии с этим существуют различные постановки задачи (min-cut, ratio cut, balanced cut и др.) [8-10].
В данной работе рассматривается не упоминавшаяся ранее в литературе задача аппроксимации взвешенного графа большой размерности графом меньшей размерности с целевой функцией на максимум разностей расстояний между вершинами исходного
графа и соответствующими им вершинами полученного малого графа. Рассматриваются два варианта задачи, приводятся их формулировки в терминах задач аппроксимации и разбиения графа. Для задач предлагаются алгоритмы решения, приводится их сравнение на данных из открытого доступа.
1. Постановка задачи и определения
Рассматривается простой связный ненаправленный взвешенный граф О = (V, Е,ш), где V = {^1, у2,... , уп} —множество вершин; Е = |ві, в2,..., вт} —множество рёбер; ш : Е ^ [0, то) —неотрицательная вещественная весовая функция на рёбрах. Введём ряд обозначений и определений.
Вес ребра из вершины уі в вершину у- будем обозначать ш(г, і) (отсутствие ребра — ш(г,і) = то). Длина пути — сумма весов входящих в него рёбер. Расстояние ш^ из вершины юі в вершину у — длина кратчайшего пути из уі в у.
Рассматриваемые задачи аппроксимации состоят в сопоставлении исходному графу О аппроксимирующего графа Оа = ("а,Еа,ша) меньшей размерности: |"а| = па, где 1 ^ па ^ п. Будем называть вершины {уа : і = 1,... , па} аппроксимирующего графа метавершинами. Множество метавершин может быть подмножеством исходного множества вершин ("а С V) или как частично, так и полностью не содержаться в V. Вес ребра между метавершинами уа и Vа графа Оа будем обозначать ша (г, і), расстояние между этими же метавершинами — ша^-. Будем обозначать у^і) метавершину графа Оа, аппроксимирующую вершину уі графа О. Погрешностью аппроксимации будем называть величину Ае = тах ^|ші:?- — т^ф) |^.
В работе рассматриваются две задачи аппроксимации: 1) уменьшение погрешности Ае при заданной размерности Оа и 2) уменьшение размерности Оа так, чтобы погрешность Ае не превосходила заданной величины.
Задача 1. Даны простой связный ненаправленный взвешенный граф О = (V, Е, ш) с неотрицательной вещественной весовой функцией на рёбрах ш : Е ^ [0, то) и вещественное число втах > 0. Найти граф Оа = ("а, Еа,ша) и функцию с : {1,...,п} ^ ^ {1,..., па}, такие, что подграфы О} (V}), где V} = {у Є V : с(г) = і}, і = 1,... , па, связны, Ае ^ втах и |Va| ^ тІП.
Задача 2. Даны простой связный ненаправленный взвешенный граф О = (V, Е, ш), IV| = п, с неотрицательной вещественной весовой функцией на рёбрах ш : Е ^ [0, то) и целое число к, п > к > 0. Найти граф Оа = ("а,Еа,ша), |Va| = к, и функцию соответствия с : {1..., п} ^ {1,... , к}, такие, что подграфы О} (V}), где V} = {уі Є V : с(г) = і}, связны и Ае ^ тіп.
Обе рассматриваемые задачи являются ЫР-трудными. Эти задачи при некоторых допущениях могут быть сформулированы в терминах задачи разбиения графа. Введём обозначения: диаметр множества вершин і("і) = тах Ш}к; радиус множества
3,к-л^ ,^ Є У
вершин г(Уі) = тіп І тах ш}к ); вершину, на которой достигается г("Ц), будем на-ЄУі у к : ^ Є У )
зывать центром множества вершин V и обозначать е(^).
Будем аппроксимировать вершины подмножеств разбиения "і центрами этих подмножеств уСі = е ("і). Веса рёбер в графе Оа между этими центрами будем полагать равными расстояниям между центрами в исходном графе О: ша (сі, с}-) = шСіСі. Добавим для каждой вершины Оа петлю с весом, равным половине диаметра соответствующего множества разбиения: ша (сі, сі) = сі("і)/2. Дополнительно будем требовать связность всех подграфов разбиения Оі ("і).
При выполнении всех этих условий для погрешности аппроксимации справедливо ^тах/2 ^ Ае ^ гт1 + гт2. Здесь ^тах = тах і ("і), гт1 —максимальный, а гт2 —
І
второй по величине радиусы множеств разбиения V:. Действительно, в этом случае погрешность аппроксимации внутри подграфов не превосходит ^тах/2 ^ гт1, а погрешность аппроксимации между вершинами у и у из разных подграфов не превосходит суммы расстояний от этих вершин до центров соответствующих подграфов, т. е.
Ае ^ гті + гт2 .
При такой оценке для Ае задачи разбиения графа, соответствующие поставленным задачам аппроксимации, выглядят следующим образом.
Задача 1*. Даны простой связный ненаправленный взвешенный граф О = (V, Е,ш) с неотрицательной вещественной весовой функцией на рёбрах ш : Е ^ [0, то) и вещественное число втах > 0. Найти разбиение множества вершин графа на попарно непересекающиеся подмножества "і, "2,... , "к, такое, что все подграфы О:(V:), порождённые этими множествами, связны, гт1 + гт2 ^ втах и к ^ тіп.
Задача 2*. Даны простой связный ненаправленный взвешенный граф О = (V, Е,ш), IV| = п, с неотрицательной вещественной весовой функцией на ребрах ш : Е ^ ^ [0, то) и целое число к, п > к > 0. Найти разбиение множества вершин графа на к попарно непересекающихся подмножеств "1, "2,... , "к, такое, что все подграфы О:(V:), порождённые этими множествами, связны и гт1 + гт2 ^ тіп.
Предлагаются эвристические алгоритмы решения задач 1 и 2.
2. Алгоритм для задачи 1 (А1)
Алгоритм состоит в последовательном «удалении» вершин графа. Удаляемым вершинам ставится в соответствие в качестве метавершины одна из смежных вершин и выполняется пересчёт весов рёбер получившегося графа меньшей размерности.
Пусть на возможность удаления первой рассматривается вершина у степени ш, смежная с вершинами уІ2, г = 1,... , ш. Удаление у влечёт необходимость изменения весов рёбер только между смежными с ней вершинами. Пересчёт весов данных рёбер будем производить по формуле
)ш (}, г) + ш (г, гг), если ш (}, г) + ш (г, гг) <ш (г7-, гг) , ш (г} ,гг)^ (. .л
I ш (г}-, гг) иначе.
После такого пересчёта погрешность аппроксимации между всеми неудалёнными вершинами останется равной нулю. Поэтому для минимизации общей погрешности аппроксимации необходимо поставить в соответствие удалённой вершине у такую метавершину ус(і) , которая сделает как можно меньшим максимум абсолютной разности расстояний между у:, ус(:) и вершинами исходного графа: тах (|ш}- — Шф} |) ^ тіп.
В исходном графе расстояния от у: до любой вершины графа У} определяются формулой Ші} = тіп (ш (г, г^) + шІг}); после удаления у: расстояния между неудалёнными
г
вершинами шІг} не изменились. В качестве ус(:) будем выбирать ближайшую смежную с У: вершину ус(і) = у:. : ш (г, г,-) = тіпш (г, гг), при этом погрешность аппроксимации
увеличится не более чем на вес ребра ш (г, г^).
В задаче 1 требуется, чтобы погрешность аппроксимации не превосходила некоторого заданного числа Ае ^ втах. Для достижения этого необходимо хранить информацию о погрешности, вносимой каждой из оставшихся вершин Уг. Пусть АЄ — максимально возможная погрешность аппроксимации между вершинами, аппроксимируемыми вершиной Уг; сначала все АЄ = 0. Удаление вершины у: изменяет погрешность
аппроксимирующей её вершины гф) по правилу Д!(г) = Д!(г) + Д^ + ш (г, с(г)). В силу сохранения расстояний между оставшимися вершинами для выполнения Де ^ етах необходимо, чтобы для всех пар оставшихся вершин (у, г-) выполнялось Д^ + Де ^ ^ етах, это справедливо, как только Де ^ етах/2 для всех ^. Согласно этому, вершину у можно удалять, когда для аппроксимирующей её вершины гф) выполняется
ДеМ + А! + ш (г, с(г)) ^ втах/2.
Рассмотрение и удаление вершин может производиться различными способами. Одной из очевидных стратегий является удаление вершин в порядке роста добавляемой этими вершинами погрешности. В п. 4 приводятся результаты тестирования алгоритма для реализации, в которой вершины рассматриваются в порядке роста их степеней. Такая стратегия показала наилучшие результаты на тестовых графах.
Полученная таким образом аппроксимация не гарантирует связности подграфов О- (V), V = (г* £ V : с(г) = ]}, исходного графа, вершины которых аппроксимируются одной метавершиной. Существует правило переопределения функции с, гарантирующее связность таких подграфов и не увеличивающее погрешность аппроксимации.
Пусть для всех множеств V- найдены радиусы г (V-) и центры с(V/) (быстрый поиск этих величин можно осуществить, используя алгоритм [11]). Если для вершины У £ V; отсутствует путь до центра с(^) в графе (V;), то в пути от у до с(^) в исходном графе О существует вершина г- £ V. Если принадлежность вершины г* множеству V не увеличивает г(V) и у вершины г* принадлежность множеству не изменялась, полагаем с(г) = /.В противном случае все вершины пути от у до г- в исходном графе О делаем принадлежащими множеству V;, полагая с(з) = к. После каждого изменения принадлежности множеству какой-либо из вершин центры и радиусы изменившихся множеств V;, V пересчитываются и процесс повторяется снова до тех пор, пока не останется несвязных подграфов. После этого полагаем ш (с (V-), с (V-)) = г (V-), с(г) = с (V-) для всех г, таких, что с(г) = ^.
В худшем случае, когда для полного графа выполняется «удаление» п — 2 вершин, сложность алгоритма составляет 0(п3).
3. Алгоритм для задачи 2 (Д2)
Для решения задачи 2 предлагается эвристический итерационный алгоритм, в основе которого лежит алгоритм Д1. Итеративно ищется такое значение величины етах (и аппроксимация при этом значении), при котором решение задачи 1 алгоритмом Д1 обладает свойством |^| ^ к, где к — ограничение из задачи 2. Для поиска такого етах используется интерполяция многочленом Лагранжа и предположение о зависимости етах = / (|К|). При этом считаем, что / (|V|) = 0, а для получения ещё одной точки интерполяции полагаем етах = ш(п/к), где ш — средний вес ребра в графе.
Если в результате такого поиска аппроксимирующий граф содержит вершин меньше нужного (|К| < к), то полагаем с(г) = с (V-) для всех г, с(г) = ^, а к — |^| вершин г* с максимальным удалением от центров своих множеств с(У-) переносим в отдельные множества, полагая с(г) = г.
4. Результаты
В качестве тестовых данных использовались взвешенные графы дорожных сетей США из открытого доступа [12]. Из них были получены связные подграфы размерностью от 103 до 5 • 103, по 10 для каждой размерности. Характеристики тестовых графов представлены в табл. 1.
Таблица 1
Характеристики тестовых графов
Группа графов Среднее кол-во вершин Средняя степень вершин Средний диаметр Среднее расстояние
С1 103 2,48 3,64 • 105 1,39 • 105
С2 2 • 103 2,6 3,17 • 105 1,07 • 105
С3 3 • 103 2,62 Б, 6 СО 1 О О"1 1,9 • 105
С4 4 • 103 2,68 4,09 • 105 1,45 • 105
СБ 5 • 103 2,66 4, 8 00 1 О О"1 1,69 • 105
Кол-во
графов
10
Для сравнения с алгоритмом А2 использовалась модификация эвристического алгоритма Е1^саа — МайЬеувеБ биразбиения графа (А2* [13], сложность одной итерации 0(|Е|)), решающая задачу в постановке 2*. Описание сущности процесса разбиения данным методом приводится в [14]. Здесь укажем лишь особенности адаптации алгоритма к рассматриваемой задаче.
В задаче требуется минимизировать сумму максимального гт1 и второго по величине гт2 радиусов множества вершин получившихся подграфов разбиения — гт1 + гт2 ^ шт. После начального разбиения выбор пары подграфов (Сг,С^-) для его улучшения производится так, чтобы радиус множества вершин был равен гт1 или гт2. При этом выбирается как подграф, имеющий минимальный радиус множества вершин среди подграфов, связанных с хотя бы одним ребром и изменённых со времени последнего совместного рассмотрения с Сг. Число вершин — претендентов на перемещение — ограничивается требованием сохранения связности подграфов после перемещения. Улучшение пары (Сг,С^-) останавливается, если шах< 0 (дг — разни-
г
ца целевых функций до и после возможного перемещения гг) или радиусы множеств вершин обоих подграфов меньше гт2.
После того как дальнейшее улучшение разбиения становится невозможным, для каждого подграфа находится центр гС1 и диаметр ^Сг). Функция соответствия с задается как с(^') = г для всех ], таких, что € V*. Подграф строится из к вершин, веса его рёбер задаются формулами и>а(г,^) = т (сг, с,) и и>а(г, г) = d (Сг) /2.
Результаты экспериментов приведены в табл. 2 и 3.
Заключение
Рассмотрены две задачи аппроксимации на уменьшение размерности графа при ограничениях на величину изменения расстояний между исходными вершинами и вершинами аппроксимирующего графа. Полезность постановки этих задач обнаруживается в практических приложениях: транспортной логистике, мониторинге вычислительных сетей и т. д. Полученный малый аппроксимирующий граф может использоваться при решении КР-трудных задач на графах, позволяя: а) решать задачи быстрее, используя методы для графов большой размерности, б) получать более точные результаты, применяя более вычислительно сложные алгоритмы.
Рассматриваемые задачи аппроксимации являются частным случаем задачи разбиения графа. Функцию с, ставящую в соответствие вершинам исходного графа вершины аппроксимирующего графа, можно рассматривать как способ распределения вершин по множествам разбиения ^. Такое отношение между задачами аппроксимации и разбиения графа позволяет использовать методы решения одной задачи при решении другой, и наоборот.
Таблица 2 Результаты решения задачи 1 алгоритмом А1
Группа графов К Ае фактическая Время, с
е — 103 с-шах — -*-и
С1 897 975 1,4
С2 1,8 • 103 987 5,8
С3 2,7 • 103 991 14
С4 3,Б • 103 995 25
СБ 4,4 • 103 996 41
е — 2 - 103 ешах — 2 10
С1 765 2 • 103 1,4
С2 1,4 • 103 2 • 103 5,8
С3 2,2 • 103 2 • 103 14
С4 2,8 • 103 2 • 103 25
СБ 3,4 • 103 2 • 103 41
ешах Б * 10"
С1 558 4,9 • 103 1,3
С2 945 4,9 • 103 5,4
С3 1,Б • 103 4,9 • 103 13
С4 1,8 • 103 Б • 103 24
СБ 2,2 • 103 Б • 103 38
Таблица 3
Результаты решения задачи 2 (Д1 — отношение Ае к диаметру графа, Д2 — отношение Ае к среднему расстоянию в графе)
Группа графов А2 А2*
Ае Аі А2 Время, с Ае Аі А2 Время, с
к — [0,1 • IV и
С1 4,6 • 104 0,14 0,35 0,52 1,3 • 105 0,35 0,92 1,7
С2 3 • 104 0,1 0,29 2,3 9, 6 1 О 0,31 0,91 8,4
С3 4, 3 1 О 0,09 0,26 5,4 1,8 • 105 0,32 0,95 23
С4 3, 2 1 О 0,08 0,24 9,9 1,4 • 105 0,33 0,97 44
СБ 2, 8 1 о 0,06 0,19 16 1,7 • 105 0,32 0,95 81
к — [0,2 • IVи
С1 2, 4 1 о 0,08 0,2 0,83 1,2 • 105 0,31 0,82 1,9
С2 1,7 • 104 0,06 0,16 3,6 8,1 • 104 0,26 0,76 11
С3 2, 3 1 О 0,05 0,13 8,5 1,6 • 105 0,28 0,83 30
С4 1,6 • 104 0,04 0,12 15 1,2 • 105 0,29 0,85 62
СБ 1 6 1 О 0,04 0,11 26 1,Б • 105 0,28 0,82 112
к — [0,Б • IVи
С1 7 • 103 0,02 0,06 1,3 8 1 О 0,23 0,58 2,7
С2 4,9 • 103 0,02 0,05 5,5 Б,8 • 104 0,18 0,53 17
С3 Б,9 • 103 0,01 0,04 13 1 • 105 0,19 0,55 50
С4 4,3 • 103 0,01 0,03 24 8, 7 1 О 0,19 0,55 108
СБ 4,3 • 103 0,01 0,03 39 8, 4 1 О 0,18 0,53 199
Необходимо отметить, что в практической деятельности связность подграфов С, (V,), приводимая в постановках рассматриваемых задач, часто не является необходимой. Это связано с тем, что граф разбивается лишь логически, связность его не нарушается. С исключением этого условия в приведённых алгоритмах отпадает надобность в процедуре изменения принадлежности вершин множествам V, и вычислении г(^) и е(^), что значительно уменьшает время аппроксимации данными методами.
ЛИТЕРАТУРА
1. Bonneau J, Anderson J., et al. Eight friends are enough: social graph approximation via public listings // Proc. Second ACM EuroSys Workshop on Social Network Systems. Nuremberg, 2009. P. 13-18.
2. Koutis I., Levin A., et al. Improved spectral sparsification and numerical algorithms for SDD matrices // Proc. STACS. Paris, 2012. P. 266-277.
3. Long B., Xiaoyun X., et al. Community learning by graph approximation // Proc. Seventh IEEE Intern. Conf. on Data Mining. Omaha, 2007. P. 232-241.
4. Jacob J., Jentsch M., et al. Detecting hierarchical structure in molecular characteristics of disease using transitive approximations of directed graphs // Bioinformatics. 2008. V. 24(7). P. 995-1001.
5. KuhnF., Moscibroda T., et al. Unit disk graph approximation // Proc. Joint Workshop on Foundations of Mobile Computing. Philadelphia, 2004. P. 17-23.
6. Fertin G., Hermelin D., et al. Common structured patterns in linear graphs: approximation and combinatorics // Proc. 18th Annual Conf. on Combinatorial Pattern Matching. Berlin, 2007. P. 241-252.
7. Ильев В. П., Ильева С. Д. и др. Приближенные алгоритмы для задач аппроксимации графов // Дискретный анализ и исследование операций. 2007. Т. 18(1). С. 41-60.
8. Kernighan B. and Lin S. An efficient heuristic procedure for partitioning graphs // The Bell System Techn. J. 1970. V.40(1). P. 291-307.
9. Hagen L. and Kahng A. New spectral methods for ratio cut partitioning and clustering // IEEE Trans. Computer-Aided Design of Integrated Circuits and Systems. 1992. V. 11(9). P. 10741085.
10. Andreev K. and Racke H. Balanced graph partitioning // Proc. sixteenth Annual ACM Symposium on Parallelism in Algorithms and Architectures. Barcelona, 2004. P. 120-124.
11. Ураков А. Р., Тимеряев Т. В. Алгоритмы быстрого поиска для двух задач о метрических характеристиках взвешенных графов // Управление большими системами. 2013. Вып. 42. С. 153-172.
12. http://www.dis.uniroma1.it/challenge9/download.shtml — 9th DIMACS Implementation Challenge — Shortest Paths (дата обращения: май 2013).
13. Fiduccia C. and Mattheyses R. A linear time heuristic for improving network partitions // DAC’82. Proc. 19th Design Automation Conf. Las Vegas, 1982. P. 175-181.
14. Ураков А. Р., Тимеряев Т. В. Многоуровневый алгоритм разбиения графов по критерию средней длины // Информационные технологии. 2012. №4. С. 22-25.