Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Разрезание (разбиение) графа



Пусть задан сложный граф:

Совокупность частей B(G) называют разбиением графа G(X,U), если для любого GiÎ B(G) Gi¹Æ iÎI (определяет число разбиений), т.е. для любого Gi GjÎ B(G) [Gi∩Gj¹Æ, т.е. Хi∩Хj=Æ и Ui∩Uj=Uij или Ui∩Uj=Æ]. Иначе совокупность B(G)={G1, G2,..., Gn}, где n – мощность │I│, является разрезанием графа G, если любая часть из этой совокупности непустая и если для любых двух частей из B(G) пересечение множества вершин пусто, а пересечение рёбер может быть непустым, а также, если пересечение всех частей в точности равно графу G.

25. Алгоритмы разбиения графа. Последовательный алгоритм.

Разбиение графа на подграфы (англ. Graph partition) (иногда в литературе также употребляется термин разрезание графа[1]) — представление исходного графа в виде множества подмножеств вершин по определенным правилам. Обычно по условию задачи требуется, чтобы , то есть все вершины исходного графа должны быть распределены по подмножествам, причем . Обычно также дополнительно вводится требование ортогональности разбиения: , то есть одна и та же вершина не может входить в состав различных подмножеств. Иногда из множества возможных разбиений требуется выбрать одно, удовлетворяющее ограничениям и являющееся оптимальным (либо субоптимальным) по обозначенному критерию, либо доказать, что искомое разбиение не существует (ограничения противоречивы). Задача разбиения графа относится к классу NP-полных, верхняя оценка числа разбиений определяется числом Белла, однако при этом обычно не все возможные разбиения являются корректными (не нарушают ограничений), то есть оценка является завышенной. При значениях числа вершин графа более 15—20 получение оптимальных разбиений как правило невозможно за приемлемое время (иногда для этого используется метод ветвей и границ), поэтому на практике ограничиваются субоптимальными решениями, полученными с использованием эвристических алгоритмов.

Последовательный алгоритм разрезания графа.

Пусть задан граф G(X,U) и требуется разрезать его на l кусков {G1, G2,..., Gl}, с числом вершин n1,n2,..., nl.

Работу начинают с формирования первого куска: в графе G определяется вершина хi с наименьшей локальной степе­нью - min i, если таких вер­шин несколько, то предпочтение отдаётся той вершине, которая имеет большее число кратных рёбер. С этой вер­шиныначинается построение. Для этого в граф G1 первоначально включается xi и все вершины смеж­ные с ней. Обозначим это множество через Гxi. Если мощность Гxi равна заданной мощности n1, то кусок сформирован. Если это число больше, чем n1 , то удаляются лишние вершины, связанные с оставшимися вер­шинами меньшим числом рёбер. В случае, когда мощность Гxi меньше n1 , то добавляется вершина по формуле:

minxi)=xj)- aj, где

aj- число рёбер соединяющих вершины хj со всеми, не выбранными вершинами. Строим множество вершин Гxj смежных с хj и процесс выборки вершин повторяется. Образованный подграф G1 исключается из исходного графа и получаем граф, который подлежит дальнейшему разрезанию.

26. Итерационный алгоритм разбиения графа на части.

Итерационный алгоритм разрезания графа.

Пусть задан граф G(X,U) и подмножество вершин Q≤X. Требуется найти такое разбиение графа В(G) на l одинаковых частей {G1, G2,..., G l }, чтобы суммарное число соединяющих рёбер было минимальным.

Перед началом работы распределяются вершины из множества Q, мощностью равной q. Формирование начинается с вершины х ε , где εÎ{1,2,.., q}, т.е. х ε оприорно считаем входящим в множество вершин Х1ÎG(Х1,U1). Составление частей разбиения будем вести по уровням. Вершина х ε – первый уровень. Для определения вершины следующего уровня, т.е. второй вершины, которую необходимо поместить в граф G1, формируется образ Гx ε , т.е. строим подмножество смежных рёбер.

Введём понятие относительного веса:

xi)=xj)- a,

где xj)- локальная степень вершины;

a- число рёбер, соединяющих к-тую вершину из подмножества Х1 с рассматриваемой вершиной.

Из подмножества Гx ε выбирается вершина с минимальной xi).

Выбранная вершина является вершиной второго уровня, т.е. на втором уровне будет  х ε,xj). Далее формируется множество Гх ε ∩ Гхj и для каждой вершины из этого множества рассчитывают xi). Далее выбирается минимальное значение xi) и алгоритм повторяется до тех пор, пока мощность множества Х1 не станет равна заданной. Полученная часть удаляется из графа G. Формирование следующих частей ведётся аналогично.

27. Раскраска графа.

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





Дата публикования: 2015-01-25; Прочитано: 1778 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...