girniy.ru 1

УДК 519.1


Разложение графа минимальными кликовыми сепараторами

Болховец В. О.

научный руководитель канд. техн. наук, доц. Быкова В. В.

Сибирский федеральный университет, Институт математики


Идея разложения графа кликовыми сепараторами была предложена Р. Тарьяном как средство реализации подхода «разделяй и властвуй» для решения NP-трудных задач, базирующихся на отношениях смежности вершин графа. Процесс такого разложения заключается в многократном поиске в графе G = (V, E) кликового минимального сепаратора S, выделении компонент связности G(V S) и копировании S в эти компоненты. Полученные в результате части были названы атомами графа G. Было установлено, что атомы не разрушают клики исходного графа, не порождают новых клик и сохраняют бесхордовые циклы длины не более 3. Поэтому атомарное представление графа нашло применение в решении многих классических графовых задач: нахождение наибольшей клики, вычисление хроматического числа, определение наибольшего независимого множества вершин графа, поиск наименьшего пополнения графа до хордального, распознавание класса совершенных графов и др. Известно, что разложение графа на атомы уникально, если его осуществлять кликовыми минимальными сепараторами.

Множество вершин S связного графа G = (V, E) называется сепаратором этого графа, если граф G(V \ S) несвязен. Если при этом S – клика в G, то такой сепаратор считается кликовым сепаратором графа G. Уточним теперь, в каком смысле сепаратор графа минимальный. Рассмотрим в G = (VE) сепаратор S и две несмежные вершины abV \ S. Сепаратор S образует (ab)-сепаратор, если вершины a и b принадлежат разным компонентам связности графа G(V S) и минимальный (ab)-сепаратор, если S – (ab)-сепаратор и в нем нет собственного подмножества, являющегося (ab)-сепаратором.


Например, пусть G = (VE), V = {1, 2, 3, 4}, E = {(1, 2), (1, 4), (2, 3), (2, 4), (3, 4)}; Множество S = {2, 4} является сепаратором в G, так как G(V \ S) = ({1, 3}, ) несвязен. Заметим, также, что множество S образует полный граф в G, следовательно, S – клика. Очевидно, что минимальность для S тоже выполняется – в S не существует других точек, удаление которых нарушило бы связность в S. Исходя из определения, S – минимальный кликовый сепаратор графа G.

Разложение графа минимальными кликовыми сепараторами сводится к решению следующей последовательности задач:


  • найти для заданного графа G = (VE) минимальный элиминирующий порядок L;

  • на основе L построить минимальную триангуляцию H = (VE) графа G = (VE), E  E;

  • найти максимальные клики триангуляции H;

  • построить дерево клик триангуляции H;

  • найти минимальные кликовые сепараторы графа G;

  • разложить граф G с помощью найденных минимальных кликовых сепараторов.

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

На сегодняшний день единственным эффективным методом нахождения кликовых минимальных сепараторов графа является извлечение их из минимальной триангуляции графа. Граф G считается хордальным, если ни один из его индуцированных подграфов не является простым циклом длины ≥ 4. Любой граф можно превратить в хордальный, добавив в него некоторое множество ребер. Триангуляцией графа G = (VE) называется хордальный граф H = (VE), который содержит G в качестве остовного подграфа (E  E). Триангуляция минимальная, если она не содержит в себе в качестве собственного подграфа другую триангуляцию графа. В нашем случае процесс добавления ребер реализуется следующим образом:


  • для каждой следующей вершины v из L находится множество смежных с ней вершин в текущем графе;

  • все несмежные между собой найденные вершины соединяются ребрами (достраиваются до клики) и добавляются полученные ребра в текущий граф и граф H;

  • вершина v удаляется из текущего графа;

  • процесс повторяется до тех пор, пока не будут обработаны все вершины из L.

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

  • для связного хордального графа всегда существует дерево клик. Это такое дерево, в котором множество узлов – множество { I} всех максимальных клик графа. Узлы и соединены ребром, если   ≠ ;

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

Используя эти свойства и полученные на предыдущем шаге максимальные клики триангуляции, дерево клик создается с помощью алгоритма Краскала – алгоритма поиска остовного дерева максимального веса.

Поиск минимальных кликовых сепараторов графа осуществляется на основе следующих свойств хордальных графов:
  • любое ребро дерева клик, связывающее узлы и образует минимальный сепаратор данного графа;


  • граф является хордальным тогда и только тогда, когда его любой минимальный сепаратор есть клика;

  • если H  минимальная триангуляция для G, то всякий минимальный сепаратор графа H есть минимальный сепаратор графа G.

Зная эти свойства, остается только выбрать из минимальных сепараторов триангуляции H те минимальные сепараторы, которые образуют в G клики.

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

Программа реализована на языке C++ в среде Visual Studio 2008 Express Edition. Программа может быть использована для решения различных графовых задач, основанных на отношении смежности вершин графа. В работе приводятся многочисленные примеры разложений графов, найденные с помощью разработанной программы.