В математике разбиение графа — это сведение графа к меньшему графу путем разбиения его набора узлов на взаимоисключающие группы. Ребра исходного графа, которые пересекаются между группами, будут создавать ребра в разбиенном графе. Если количество результирующих ребер мало по сравнению с исходным графом, то разбиенный граф может лучше подходить для анализа и решения задач, чем исходный. Нахождение разбиения, которое упрощает анализ графа, является сложной задачей, но оно имеет приложения к научным вычислениям, проектированию схем VLSI и планированию задач на многопроцессорных компьютерах, среди прочего. [1] В последнее время проблема разбиения графа приобрела важность из-за ее применения для кластеризации и обнаружения клик в социальных, патологических и биологических сетях. Обзор последних тенденций в вычислительных методах и приложениях см. в работе Buluc et al. (2013). [2] Двумя распространенными примерами разбиения графа являются задачи минимального разреза и максимального разреза .
Обычно задачи разбиения графа попадают в категорию NP-трудных задач. Решения этих задач обычно выводятся с использованием эвристик и алгоритмов аппроксимации. [3] Однако можно показать, что задача равномерного разбиения графа или сбалансированного разбиения графа является NP-полной для аппроксимации в пределах любого конечного множителя. [1] Даже для специальных классов графов, таких как деревья и сетки, не существует разумных алгоритмов аппроксимации, [4] если только P=NP . Сетки представляют собой особенно интересный случай, поскольку они моделируют графы, полученные в результате моделирования модели конечных элементов (FEM) . Когда аппроксимируется не только количество ребер между компонентами, но и размеры компонентов, можно показать, что для этих графов не существует разумных полностью полиномиальных алгоритмов. [4]
Рассмотрим граф G = ( V , E ), где V обозначает множество из n вершин, а E — множество ребер. Для задачи сбалансированного разбиения ( k , v ) целью является разбиение G на k компонентов не более чем размером v · ( n / k ), при этом минимизируя емкость ребер между отдельными компонентами. [1] Также, учитывая G и целое число k > 1, разбейте V на k частей (подмножеств) V 1 , V 2 , ..., V k таким образом, чтобы части были непересекающимися и имели одинаковый размер, а количество ребер с конечными точками в разных частях было минимизировано. Такие задачи разбиения обсуждались в литературе как подходы бикритериальной аппроксимации или увеличения ресурсов. Распространенным расширением является гиперграфы , где ребро может соединять более двух вершин. Гиперребро не разрезается, если все вершины находятся в одном разбиении, и разрезается ровно один раз в противном случае, независимо от того, сколько вершин находится на каждой стороне. Такое использование распространено в автоматизации электронного проектирования .
Для конкретной ( k , 1 + ε ) сбалансированной задачи разбиения мы стремимся найти минимальное по стоимости разбиение G на k компонентов, где каждый компонент содержит максимум (1 + ε )·( n / k ) узлов. Мы сравниваем стоимость этого алгоритма приближения со стоимостью разреза ( k ,1), где каждый из k компонентов должен иметь одинаковый размер ( n / k ) узлов каждый, таким образом, являясь более ограниченной задачей. Таким образом,
Мы уже знаем, что разрез (2,1) является минимальной задачей деления пополам и является NP-полной. [5] Далее мы оцениваем задачу 3-разбиения, где n = 3 k , которая также ограничена полиномиальным временем. [1] Теперь, если мы предположим, что у нас есть конечный алгоритм приближения для ( k , 1)-сбалансированного разбиения, то либо пример 3-разбиения может быть решен с использованием сбалансированного ( k , 1) разбиения в G, либо он не может быть решен. Если пример 3-разбиения может быть решен, то задача ( k , 1)-сбалансированного разбиения в G может быть решена без разрезания какого-либо ребра. В противном случае, если пример 3-разбиения не может быть решен, оптимальное ( k , 1)-сбалансированное разбиение в G разрежет по крайней мере одно ребро. Алгоритм приближения с конечным коэффициентом приближения должен различать эти два случая. Следовательно, он может решить задачу 3-разбиения, что является противоречием при предположении, что P = NP . Таким образом, очевидно, что ( k ,1)-сбалансированная задача разбиения не имеет полиномиального алгоритма аппроксимации с конечным коэффициентом аппроксимации, если только P = NP . [1]
Теорема о плоском разделителе утверждает, что любой n -вершинный планарный граф может быть разделен на примерно равные части путем удаления O( √ n ) вершин. Это не является разделением в описанном выше смысле, поскольку множество разделов состоит из вершин, а не ребер. Однако тот же результат также подразумевает, что каждый планарный граф ограниченной степени имеет сбалансированный разрез с O( √ n ) ребрами.
Поскольку разбиение графа является сложной задачей, практические решения основаны на эвристике. Существует две широкие категории методов: локальные и глобальные. Известные локальные методы — это алгоритм Кернигана–Лина и алгоритмы Фидуччи–Маттейсеса , которые были первыми эффективными двухсторонними разрезами с помощью стратегий локального поиска. Их основным недостатком является произвольное начальное разбиение множества вершин, что может повлиять на качество конечного решения. Глобальные подходы опираются на свойства всего графа и не опираются на произвольное начальное разбиение. Наиболее распространенным примером является спектральное разбиение, где разбиение выводится из приближенных собственных векторов матрицы смежности, или спектральная кластеризация , которая группирует вершины графа с помощью собственного разложения матрицы Лапласа графа .
Многоуровневый алгоритм разбиения графа работает, применяя один или несколько этапов. Каждый этап уменьшает размер графа, сворачивая вершины и ребра, разбивает меньший граф, затем отображает обратно и уточняет это разбиение исходного графа. [6] В общей многоуровневой схеме может применяться широкий спектр методов разбиения и уточнения. Во многих случаях этот подход может дать как быстрое время выполнения, так и очень качественные результаты. Одним из широко используемых примеров такого подхода является METIS , [7] разбиение графа, и hMETIS, соответствующий разбиение для гиперграфов. [8] Альтернативный подход, возникший из [9] и реализованный, например, в scikit-learn, представляет собой спектральную кластеризацию с разбиением, определенным из собственных векторов матрицы Лапласа графа для исходного графа, вычисленного решателем LOBPCG с многосеточным предобусловливанием .
Дан граф с матрицей смежности , где запись подразумевает ребро между узлом и , и матрицей степеней , которая является диагональной матрицей, где каждая диагональная запись строки , , представляет степень узла узла . Матрица Лапласа определяется как . Теперь разбиение с разрезом по отношению для графа определяется как разбиение на непересекающиеся , и , минимизирующее отношение
числа ребер, которые фактически пересекают этот разрез, к числу пар вершин, которые могли бы поддерживать такие ребра. Спектральное разбиение графа может быть мотивировано [10] по аналогии с разбиением вибрирующей струны или системы масса-пружина и аналогичным образом распространено на случай отрицательных весов графа. [11]
В таком сценарии второе наименьшее собственное значение ( ) из , дает нижнюю границу оптимальной стоимости ( ) разбиения с пропорциональным разрезом с . Собственный вектор ( ), соответствующий , называемый вектором Фидлера , делит граф пополам только на два сообщества на основе знака соответствующего элемента вектора . Разделение на большее количество сообществ может быть достигнуто путем повторного деления пополам или путем использования нескольких собственных векторов, соответствующих наименьшим собственным значениям. [12] Примеры на рисунках 1,2 иллюстрируют подход спектрального деления пополам.
Однако разбиение по минимальному разрезу не работает, когда количество сообществ, которые необходимо разбить, или размеры разделов неизвестны. Например, оптимизация размера разреза для свободных размеров групп помещает все вершины в одно и то же сообщество. Кроме того, размер разреза может быть неправильным для минимизации, поскольку хорошее разделение — это не просто разделение с небольшим количеством ребер между сообществами. Это побудило использовать модульность (Q) [13] в качестве метрики для оптимизации сбалансированного разбиения графа. Пример на рисунке 3 иллюстрирует 2 экземпляра одного и того же графа, так что в (a) модульность (Q) является метрикой разбиения, а в (b) метрикой разбиения является отношение-разрезание.
Другая целевая функция, используемая для разбиения графа, — это Проводимость , которая является отношением между количеством граней разреза и объемом наименьшей части. Проводимость связана с электрическими потоками и случайными блужданиями. Граница Чигера гарантирует, что спектральное бисекция обеспечивает разбиения с почти оптимальной проводимостью. Качество этого приближения зависит от второго наименьшего собственного значения лапласиана λ 2 .
Разделение графа может быть полезным для определения минимального набора узлов или связей, которые следует иммунизировать, чтобы остановить эпидемии. [14]
Спиновые модели использовались для кластеризации многомерных данных, в которых сходства переводятся в силу связи. [15] Свойства конфигурации спина основного состояния могут быть напрямую интерпретированы как сообщества. Таким образом, граф разделяется для минимизации гамильтониана разделенного графа. Гамильтониан (H) выводится путем назначения следующих вознаграждений и штрафов за разделение.
Кроме того, спектральная кластеризация на основе Kernel-PCA принимает форму фреймворка опорных векторных машин наименьших квадратов, и, следовательно, становится возможным проецировать записи данных в пространство признаков, индуцированное ядром, которое имеет максимальную дисперсию, что подразумевает высокое разделение между спроецированными сообществами. [16]
Некоторые методы выражают разбиение графа как многокритериальную задачу оптимизации, которая может быть решена с использованием локальных методов, выраженных в теоретико-игровой структуре, где каждый узел принимает решение о разбиении, которое он выбирает. [17]
Для очень крупномасштабных распределенных графов классические методы разбиения могут не применяться (например, спектральное разбиение, Metis [7] ), поскольку они требуют полного доступа к данным графа для выполнения глобальных операций. Для таких крупномасштабных сценариев распределенное разбиение графа используется для выполнения разбиения только через асинхронные локальные операции.
scikit-learn реализует спектральную кластеризацию с разбиением, определяемым из собственных векторов матрицы Лапласа графа для исходного графа, вычисленного с помощью ARPACK или решателя LOBPCG с многосеточным предобусловливанием . [9]
METIS [7] — семейство алгоритмов разбиения графов Кариписа и Кумара. В этом семействе алгоритмов kMetis нацелен на большую скорость разбиения, hMetis [8] применяется к гиперграфам и нацелен на качество разбиения, а ParMetis [7] — параллельная реализация алгоритма разбиения графов Metis.
KaHyPar [18] [19] [20] — это многоуровневая структура разбиения гиперграфа, предоставляющая прямые алгоритмы разбиения на основе k-way и рекурсивного деления пополам. Она реализует многоуровневый подход в его самой экстремальной версии, удаляя только одну вершину на каждом уровне иерархии. Используя этот очень мелкозернистый подход n -уровня в сочетании с сильной локальной эвристикой поиска, она вычисляет решения очень высокого качества.
Scotch [21] — это фреймворк для разбиения графов от Pellegrini. Он использует рекурсивную многоуровневую бисекцию и включает последовательные и параллельные методы разбиения.
Jostle [22] — это последовательный и параллельный решатель разбиения графа, разработанный Крисом Уолшоу. Коммерческая версия этого разбиения известна как NetWorks.
Party [23] реализует оптимизированную для пузырьков/форм структуру и алгоритм полезных наборов.
Пакеты программного обеспечения DibaP [24] и его параллельный MPI вариант PDibaP [25] от Мейерхенке реализуют структуру Bubble с использованием диффузии; DibaP также использует основанные на AMG методы для огрубления и решения линейных систем, возникающих при диффузионном подходе.
Сандерс и Шульц выпустили пакет для разбиения графов KaHIP [26] (Karlsruhe High Quality Partitioning), который реализует, например, методы, основанные на потоках, более локализованные локальные поиски и несколько параллельных и последовательных метаэвристик.
Инструменты Parkway [27] Трифуновича и Кноттенбельта, а также Zoltan [28] Девайна и др. фокусируются на разбиении гиперграфов.
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ){{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка )