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

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

CC BY
1703
87
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МАКСИМАЛЬНОЕ НЕЗАВИСИМОЕ МНОЖЕСТВО / РАЗРЕЖЕННЫЙ ГРАФ / МЕТОД ВЕТВЕЙИ ГРАНИЦ / MAXIMAL INDEPENDENT SET / SPARSE GRAPH / BRANCH AND BOUND METHOD

Аннотация научной статьи по математике, автор научной работы — Фирюлина Оксана Сергеевна

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

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

Finding all maximal independent sets of an undirected graph

An algorithm of search for all maximal independent sets in an undirected graph is presented. This problem is a so-called NP-complete problem which means the current lack of algorithms for solving it in polynomial time. The proposed algorithm, though also not being a polynomial one, in the worst cases finds a solution faster than the trivial exhaustive algorithm. Comparison of the suggested algorithm with the known Bron-Kerbosch algorithm over a certain set of random generated graphs with different density values is made. Special attention is paid to the comparison over sparse graphs.

Текст научной работы на тему «Нахождение всех максимальных независимых множеств неориентированного графа»

Сер. 10. 2013. Вып. 1

ВЕСТНИК САНКТ-ПЕТЕРБУРГСКОГО УНИВЕРСИТЕТА

УДК 519.157+519.161+519.163 О. С. Фирюлина

НАХОЖДЕНИЕ ВСЕХ МАКСИМАЛЬНЫХ НЕЗАВИСИМЫХ МНОЖЕСТВ НЕОРИЕНТИРОВАННОГО ГРАФА

Введение. Определение максимальных независимых множеств (МНМ) графа полезно в кластерном анализе в таких областях как информационный поиск и социология. Известно, что эта задача принадлежит к числу так называемых NP-полных задач и количество МНМ в графе может расти экспоненциально [1]. Простая схема решения, основанная на методе поиска с возвращением, приводит к генерации p! всех возможных перестановок вершин для каждого МНМ размерности p. С учетом общего количества возможных МНМ в произвольном графе решение задачи методом полного перебора оказывается практически неосуществимым даже для графов сравнительно небольших размерностей. В данной статье представлен алгоритм AllIS для построения всех МНМ неориентированного графа, основанный на способе выделения структурных особенностей [2-5]. Каждому МНМ соответствует единственная ветвь дерева поиска, порожденного предложенным алгоритмом, поэтому повторного построения уже сформированных максимальных независимых множеств графа не происходит.

Основные определения. Здесь и далее множество неупорядоченных пар различных элементов некоторого множества B будем обозначать

B[2] = {(x,y)\x,y е B & x < y}.

Обыкновенным графом G = (V, E) называется упорядоченная пара множеств: конечного непустого V, элементы которого называются вершинами графа G, и подмножества E С V[2], представляющего собой множество неупорядоченных пар разных вершин, элементы которого называются ребрами этого графа.

Отметим два крайних случая обыкновенных n-вершинных графов: безреберный граф Hn = (U, 9), n = \U\, и полный граф Fn = (U, UИ), n = \U\.

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

Граф G' = (V',E') называется подграфом графа G = (V,E), если V' С V и E' = {(x, у) е E \ x,y е V'}. Иными словами, при образовании подграфа G' из графа G удаляются все вершины множества Y = V \ V' и только те ребра, которые инцидентны хотя бы одной удаляемой вершине, поэтому для краткости будем записывать G' = G\Y.

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

Фирюлина Оксана Сергеевна — аспирантка кафедры информационных систем факультета прикладной математики—процессов управления Санкт-Петербургского государственного университета. Научный руководитель: проф. И. В. Олемской. Количество опубликованных работ: 6. Научное направление: экстремальная теория графов. E-mail: [email protected].

© О. С. Фирюлина, 2013

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

Пусть п-вершинный граф О = (V, Е) задан матрицей смежностей А = \\aij\\п п :

а = Г 1, (г,]) е Е, ^ \ 0, (г,]) е Е.

Граф О можно представить в виде О = (У,Бу,л), где V = {1,2,...,п}, Бу,л = {(р,ч) I (р,ч) е V[2] & арл = 0; р,д е V} - множество всех несмежных пар различных вершин графа О.

Любую пару несмежных вершин (в, 7) е Бу,л будем называть узлом и обозначать буквой а = (в, 7).

Базовым множеством для некоторого узла а = (в, 7) е Бу,л графа О назовем множество

Ва [а] = {3 | (3,, в) е Бу,л & (3, 7) е БуЛ, 3 е V}и {в, 7}.

Опорным множеством для некоторого узла а = (в, 7) е Бу,л графа О будем называть множество

ша[а] = Па[а]\{в,7}.

Обозначим QG[а] - максимальное независимое множество в графе О, в котором содержатся две вершины в и 7, Аа - множество всех вершин, имеющих ребро с каждой вершиной рассматриваемого графа.

Теорема 1. Любое максимальное независимое множество Qа[а] содержится в базовом множестве, соответствующем паре а = (в, 7):

Qа[а] С Па[а].

Доказательство. Пусть существует вершина V* е Еа[а] : М = {в, 7^*} -независимое множество вершин, индуцирующее некоторый безреберный подграф О' С О. По определению безреберного графа, его вершины в,1 и V* попарно несмежны, следовательно, вершина V* одновременно несмежна с в и 7 . Тогда по определению базового множества, должно выполняться условие V* е Ва[а]. Противоречие доказывает, что не существует безреберного подграфа, множество вершин которого содержит пару (в, 7) и какой-либо элемент, не принадлежащий базовому множеству, соответствующему указанной паре. Таким образом, множества вершин, индуцирующие безреберный подграф, а следовательно, и все максимальные независимые множества, имеющие в качестве двух своих вершины в и 7, целиком содержатся в базовом множестве Ва[а].

Следствие. Пусть Qа[а] - г-е МНМ множество графа О, содержащее вершины в и 7, т - количество всех таких МНМ. Тогда

Ба[а] \ и™!Qiа[а] =

Теорема 2. Пусть задан обыкновенный граф О = (V,,Бу,л). Если Ва[а] С Ба[а*], тогда для любого МНМ Qа[а] С Ва[а] найдется МНМ <^а[а*] С Ба[а*] такое, что <^а[а*] = Qа[а] (другими словами, любое МНМ, содержащее вершины в и 7, будет являться МНМ, содержащим вершины в* и 7*).

Доказательство. Положим а = (в, y), а* = (в*, !*)■ Если Dg[o] С Dg[o*\, значит, у всех вершин из множества Dg[o] нет ребер с вершинами в*,Y* € Dg[o*\, в частности, имеем следующие несмежные пары вершин:

(в, y), (в, в*), (в, y*), (y, в*), (y, y*), (в*гГ).

Так как в и y одновременно несмежны с вершинами в* и y*, по определению базового множества Do[a] следует, что в*,^Г € Do[a]. Кроме того, подграф G графа G, индуцированный множеством вершин Do[a], представляет собой несвязный граф с числом компонент k(G') ^ 5. Его можно представить в таком виде:

G = G' U G' U G'3 U G4 U G'5,

где G',G'2,G'3,G'4,G'b - компоненты связности графа G. Подграф G'5 характеризуется следующим свойством: любая его вершина не имеет ребер с вершинами fi,Y, в*,Y* в графе G'. Но так как без дополнительной информации о ребрах этого графа нельзя определить, является ли он связным или нет, то будем его обозначать волной сверху, чтобы отличить от связных подграфов G',G',G3 и G'A. Не умоляя общности, будем считать подграф G5 связным, так как на ход доказательства это никак не повлияет.

Любое МНМ множество Qg' в графе G' можно представить в виде объединения соответствующих МНМ Qg^ ,Qg'2 ,QG'3 ,Qg'4 ,Q& , в графах G'1,G'2 ,G'3, G'4,G'5:

Qg' = Qg[ U Qg'2 U Qg'3 U Qg'4 U Qg, ,

или, учитывая то, что графы i = 1,4, состоят из одной вершины:

Qg' = {в*} u {y*} u {в} U {y} U Qg,5.

Таким образом, любое МНМ QG', а значит, и любое QG' [а], будет являться МНМ, содержащим вершины fi*,Y*. Так как, согласно теореме 1, все МНМ, имеющие в качестве двух своих элементов в, Y, содержатся в базовом множестве DG[a], которое, напомним, индуцировало подграф G', то, очевидно, любое МНМ QG' [а] в подграфе G' -максимально независимое в исходном графе G, поэтому индекс G' можно изменить на G : Qg' [а] = QgM- Так как все МНМ, имеющие в качестве двух своих элементов в*,Y*, содержатся в базовом множестве DG[o*], а любое МНМ Qg^] есть МНМ, содержащее вершины в* ,Y*, следовательно,

vqgm С dgm 3 Qg^*] С Dg^*] | Qg^*] = Qg^].

Алгоритм AllIS для построения всех максимальных независимых множеств. Выбрав узел а0 = (в°^°) € Sv,a в графе G0 = G, строим для него опорное множество ^g0 [а0]. Задача нахождения МНМ, содержащего вершины в0,Y°, в графе G сводится к поиску МНМ в подграфе G' С G0, индуцированном множеством вершин &go [а0] С V, а затем объединению каждого найденного МНМ в G' с парой вершин (в0,Y0). Для нахождения МНМ в подграфе G' = (uGo [а0],swg0 «oja) используется та же схема. Выбираем узел а1 = (в1 ,Y') € S^g0 «oj ,a, строим для него опорное множество wGi [а1 ] и переходим к нахождению МНМ в подграфе G2 С G1 С G0. Таким образом, выбрав некоторую пару вершин в графе, переходим к соответствующему подграфу, тем самым сужая размерность задачи.

Решение задачи можно представить в виде дерева поиска, в котором каждый к-й уровень отвечает рассмотрению некоторого подграфа Ок С Ок-1 С ... С О0 = О. Здесь ак = (вк ) - некоторый узел в соответствующем графе Ок, индуцированном множеством иаь-1 [ак-1 ]. Узлы ак и ак-1 связаны следующим образом: ак € Ь1Шак_1 [ак-1]А. Для компактности записи можно опустить индекс Ок у множества иак [ак], так как по индексу узла ак однозначно можно определить, из вершин какого графа формируется опорное множество и[ак].

Учитывая тот факт, что любой подграф Ок, Ок-1,..., О0 является подграфом О, а множества несмежных пар в них определяются: БШ[ак-1],л, БШ[ак-2],л, со-

ответственно, то индекс А у множества Б также можно опустить, понимая, что все несмежные пары вершин в указанных подграфах несмежны и в исходном графе с матрицей смежностей А. Множество БШ[ак],л будем записывать в виде Б[ак].

Подграф Ок+1 С Ок будем задавать в следующем виде:

Ок+1 = (и[а%Б[акк ]), ак+1 € Б [а1;].

Для компактной формализации алгоритма введем узел отрицательного уровня с вершинами, не имеющими ребра ни с одной вершиной графа О, и обозначим его а-1 = (уЗ-1,^-1) = (0,0):

и[а-1] = V, Б[а-1] = Бу,л.

Базовое множество Б[ак+1] для узла ак+1 = (рк+1 ,^к+1) € Б[а'к] графа Ок+1 представим как

Б[ак+1 ] = {3 | (¿,/Зк+1) € Б [ак ]&(3,,1к+1) € Б^ ], 3 € и^]}.

Опорное множество ш[а'1+1 ] для узла ак+1 = (в^1 ,^!к+1) € Б[ак] графа Ок+1 определяем по правилу

] = В[ак+1 ] \{вкк+1,1!к+1}.

Множество Б[ак +1 ] несмежных пар в графе, индуцированном множеством вершин и^1 ] :

Б [а к+1] = {(р, д)1(р, д) € и [а к+1 ][2] & арл = 0,р,д € и [а к+1]}. Находим множество Д[а к +1 ] по правилу

Д[а к+1 ]= и [а к+1] ^^«^{рМ. Множество Р [ак+1], сформированное согласно правилу

Р[ак +1 ] = ^[ак] € Р[ак] | {/3>к+1,1к+1} С Q[ак]}, Р[а-1] = 9,

будем называть окрестностью узла а к +1.

Приведем реализацию алгоритма ЛШБ в псевдокодах:

procedure ALLIS ( G = (V, SVA)) begin

k := 0 //номер текущего уровня дерева перебора

J := 0//независимое множество Q := 0//максимальное независимое множество F := 0 //множество использованных пар

R := 0 //множество узлов, использование которых не позволит построить новое уникальное МНМ

M(G) := 0 //множество всех МНМ графа G а'1 := (0,0)

:= 0//множество вершин, которые будут удаляться из множества

P[ak-1 ] := 0 w[al-1] := V SKfc-1] := s^a

construct Д^-1]

ak := (pk,Yk) е s^a, вк,Yk е V

construct D[ak]

continue := true

while continue = true do

Д^-1 ] := Д^-1 ] \ ^д while Да-1 ] = 0 do

V6* е Да-1 ] do Q := J U {<„}, M(G) := M(G) и {Q} for £ := -1 to к - 1 do P[af] := P[af] U {Q} end do

Д^-1 ] := Д^-1 ] \{<f}

end do

if S[ak-1] = 0

then

if к = 0

then continue := false else J := J \{ek-1 ,Yk-1}, F := F \{ak-1} к := к - 1 end if else

choose ahk := Y) е S[ahk-1] : \D[ahk]\ = maxakeS[ok-i]\D[ak]\ R := {(/3k,Yk) \ D[ak] С D[ak], (¡3k,Yk) е S[a.k-1 ] \K}}*

^д := 0

construct P [ak ]

exist := 0

for all I е P [ak ] do

if \(i \ j ) \{ek,Yk}\ = 1

then ^д := ^д U (I \ J) \ {ek, Yk} if \D[ak]\ =3 or \D[ak]\ = \I \ J\ then exist := 1 end if end if end do if exist = 1

then S[ak-1] := S[ak-1 ] \ (R U {ak}) else

J := J U{ek,Yk}, F := F U{ak} construct u[ak]

if w [ak] = 0

then S[ak] := 0, A[ak] := 0, Q := J, M(G) := M(G) U {Q}

for £ := -1 to k - 1 do P[af] := P[af] U {Q} end do else

construct S[ak], A[ak] construct D[ak+1 ] for all ak+ e S[ak] end if

S[ak"1 ] := S[ak"1 ] \ (R U {ak}), k := k + 1

end if

end if

end do

return M(G)

end {of ALLIS}

Тестирование алгоритма. Предложенный в статье алгоритм сравнивался при тестировании с алгоритмом Брона-Кербоша [6]. Для тестирования генерировались графы с различными значениями плотности. В целях сохранения единообразия оба алгоритма были реализованы в пакете Maple 14. Тесты проводились на одинаковых матрицах и были запущены на процессоре Intel Core i5 2.6 GHz 4 GB RAM в системе Windows 7.

Время поиска, с

О 20 40 60 80 100 Плотность графа, %

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

Рис. 1. Зависимость времени поиска решения от плотности графа 1 - по алгоритму ЛШБ; 2 - по алгоритму Брона-Кербоша [6].

На рис. 1, 2 приведены результаты тестирования. Зависимость времени поиска решения от плотности графа размерности п = 20 отражает рис. 1. Из этого рисунка видно, что при увеличении плотности время поиска решения уменьшается для обоих алгоритмов. Следует отметить, что для сильно разреженных графов при плотности меньше 10% время работы алгоритма ЛШБ значительно меньше времени работы алгоритма Брона-Кербоша. Эспериментальные значения времени работы обоих алгоритмов для произвольных графов размерности п Е [10, 30] при фиксированной величине плотности р = 2% приведены на рис. 2, а. Результаты представлены в логарифмической шкале: по горизонтальной оси - ^ п, по вертикальной - = Ь + |£тт|,

где п - количество вершин в графе, Ь - экспериментальное время поиска всех

Рис. 2. Зависимость времени работы алгоритмов от размерности графа при плотности 2% (а) и 4% (б) 1 - по алгоритму ; 2 - по алгоритму Брона-Кербоша [6].

максимальных независимых множеств, tmin - минимальное экспериментальное время. На рис. 2, б даны результаты аналогичных экспериментов при плотности 4%.

Заключение. В статье описан алгоритм AllIS нахождения всех МНМ обыкновенного неориентированного графа. Приведены результаты экспериментального сравнения этого алгоритма с широко известным алгоритмом для поиска всех МНМ в графе -алгоритмом Брона-Кербоша. Установлено, что при небольшом значении плотности графа скорость алгоритма AllIS заметно выше.

Литература

1. Moon J. WMoser L. On cliques in graphs // Israel J. Math. 1965. Vol. 3. P. 23-28.

2. Олемской И. В. Алгоритм выделения структурных особенностей // Николай Ефимович Кирин: сб. ст.; под ред. В. В. Жука, В. Ф. Кузютина. СПб.: АССПИН, 2003. С. 224-251.

3. Олемской И. В. Методы интегрирования систем структурно разделенных дифференциальных уравнений. СПб.: Изд-во С.-Петерб. ун-та, 2009. 180 с.

4. Олемской И. В. Модификация алгоритма выделения структурных особенностей // Вестн. С.-Петерб. ун-та. Сер. 10: Прикладная математика, информатика, процессы управления. 2006. Вып. 2. С. 55-65.

5. Олемской И. В. Явный метод типа Рунге-Кутты пятого порядка // Вычислительные технологии. 2005. Т. 10, № 2. С. 87-105.

6. Bron C., Kerbosch J. Algorithm 457: Finding all cliques of an undirected graph // Comm. ACM. 1973. Vol. 16. P. 575-577.

Статья рекомендована к печати проф. Л. А. Петросяном. Статья принята к печати 25 октября 2012 г.

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