Максимальное независимое множество вершин в дереве

Автор: Пользователь скрыл имя, 14 Мая 2012 в 01:28, реферат

Краткое описание

Определим граф как конечное множество вершин V и набор E неупорядоченных и упорядоченных пар вершин и обозначим G=(V, E). Мощности множеств V и E будем обозначать буквами N и M. Неупорядоченная пара вершин называется ребром, а упорядоченная пара – дугой. Граф, содержащий только ребра, называется неориентированным; граф, содержащий только дуги, – ориентированным, или орграфом. Вершины, соединенные ребром, называются смежными. Ребра, имеющие общую вершину, также называются смежными. Ребро и любая из его двух вершин называются инцидентными. Говорят, что ребро (u, v) соединяет вершины u и v. Каждый граф можно представить на плоскости множеством точек, соответствующих вершинам, которые соединены линиями, соответствующими ребрам. В трехмерном пространстве любой граф можно представить таким образом, что линии (ребра) не будут пересекаться.

Оглавление

Введение 3
Основные определения 4
Построение всех максимальных независимых множеств 5
Список использованной литературы 8

Файлы: 1 файл

Максимальные вершины.docx

— 46.19 Кб (Скачать)

Министерство  образования Республики Беларусь

Учреждение  образования

«Белорусский  государственный  университет транспорта» 
 
 
 
 

    Кафедра «Информационные  технологии»

    Максимальное  независимое множество вершин в дереве

 

    

Оглавление

    Введение 3

    Основные определения 4

    Построение всех максимальных независимых множеств 5

    Список использованной литературы 8 

 

    

    Введение

     Определим граф как конечное множество вершин V и набор E неупорядоченных и упорядоченных пар вершин и обозначим G=(V, E). Мощности множеств V и E будем обозначать буквами N и M. Неупорядоченная пара вершин называется ребром, а упорядоченная пара – дугой. Граф, содержащий только ребра, называется неориентированным; граф, содержащий только дуги, – ориентированным, или орграфом. Вершины, соединенные ребром, называются смежными. Ребра, имеющие общую вершину, также называются смежными. Ребро и любая из его двух вершин называются инцидентными. Говорят, что ребро (u, v) соединяет вершины u и v. Каждый граф можно представить на плоскости множеством точек, соответствующих вершинам, которые соединены линиями, соответствующими ребрам. В трехмерном пространстве любой граф можно представить таким образом, что линии (ребра) не будут пересекаться.

     Способы описания. Выбор соответствующей структуры данных для представления графа имеет принципиальное значение при разработке эффективных алгоритмов. При решении задач используются следующие четыре основных способа описания графа: матрица инциденций; матрица смежности; списки связи и перечни ребер. Мы будем использовать только два: матрицу смежности и перечень ребер.

     Матрица смежности – это двумерный массив размерности N*N. 

     A [i, j]=  

    Для хранения перечня ребер необходим  двумерный массив R размерности M*2. Строка массива описывает ребро. 
 
 
 
 

    Основные  определения

    Рассмотрим  неориентированный граф G=(V,E).

    Независимое множество вершин (внутренне  устойчивое множество) — это множество вершин графа G такое, что любые две вершины в нем не смежны, то есть никакая пара вершин не соединена ребром. Любое подмножество S, содержащееся в V, и такое, что пересечение S с множеством вершин смежных с S пусто, является независимым множеством вершин.

    Множество SV, удовлетворяющее условию.

    SE(S)=Ø     (1)

    называется  независимым множеством вершин.

    Для графа, изображенного на рисунке 1, независимыми являются {x7,x8,x2}, {x3,x1} множества вершин.

    Независимое множество называется максимальным, когда нет другого независимого множества, в которое оно бы входило. Если множество удовлетворяет условию (1) и условию

    HE(H)≠Ø HS   (2)

    является  максимальным независимым множеством. Например, множества {x1,x3,x7} и {x4,x6} максимальные независимые, а {x7,x8,x2} — нет. В графе может быть более одного независимого множества.

    Если  Q является семейством всех независимых множеств графа G, то

    α[G]=maxSQ|(3)

    называется  числом независимости графа G, а множество S*, на котором достигается этот максимум, называется наибольшим независимым множеством.

    

    Максимальный  полный подграф (клика) графа G это порожденный подграф, построенный на подмножестве S вершин графа и являющийся полным и максимальным в том смысле, что любой другой подграф графа G, построенный на множестве вершин H, содержащем S, не является полным. То есть, в отличие от максимального независимого множества, в клике все вершины попарно смежны.

    Аналогично  тому, как было определено число  независимости графа, с помощью  соотношения (3) мы можем определить кликовое число графа (известное также как густота или плотность). Это — максимальное число вершин в кликах данного графа. Тогда, образно говоря, у "плотного" графа кликовое число будет, вероятно, больше, а число независимости меньше, в то время как у "разреженного" графа, по всей вероятности, будет иметь место противоположное соотношение между этими числами.

    Построение  всех максимальных независимых  множеств

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

    Этот  алгоритм является существенно упрощенным перебором, использующим дерево поиска. В процессе поиска — на некотором  этапе k — независимое множество вершин Sk расширяется путем добавления к нему подходящим образом выбранной вершины (чтобы получилось новое независимое множество Sk+1) на этапе k+1, и так поступают до тех пор, пока добавление вершин станет невозможным, а порождаемое множество не станет максимальным независимым множеством. Пусть Qk будет на этапе k наибольшим множеством вершин, для которого SkQk=Ø, то есть после добавления любой вершины из Qk к Sk получается независимое множество Sk+1. В некоторый произвольный момент работы алгоритма множество Qk состоит из вершин двух типов: подмножества Qk- тех вершин, которые уже использовались в процессе поиска для расширения множеств Sk, и подмножества Qk+ таких вершин, которые еще не использовались. Тогда дальнейшее ветвление в дереве поиска включает процедуру выбора вершины xik Qk+, добавление ее к Sk для построения множества

    Sk+1 = Sk {xik}    (4)

    и порождение новых множеств:

    Qk+1- = Qk- − E(xik)    (5)

    и

    Qk+1+ = Qk+ − (E(xik) {xik}).    (6)

    Шаг возвращения алгоритма состоит  в удалении вершины xik из Sk+1, чтобы вернуться к Sk, изъятии xik из старого множества Qk+ и добавлении xik к старому множеству Qk- для формирования новых множеств Qk+ и Qk-.

    Множество Sk является максимальный независимым множеством только тогда, когда невозможно его дальнейшее расширение, т.е. когда Qk+=Ø. Если Qk+ ≠ Ø, то текущее множество Sk было расширено на некотором предшествующем этапе работы алгоритма путем добавления вершины из Qk-, и поэтому оно не является максимальным независимым множеством. Таким образом, необходимым и достаточным условием того, что Sk — максимальное независимое множество, является выполнение равенств

    Qk+ = Qk- = Ø.  (7)

    Если  очередной этап работы алгоритма  наступает тогда, когда существует некоторая вершина хQk-, для которой E(x)Qk+=Ø, то безразлично, какая из вершин, принадлежащих Qk+, используется для расширения Sk, и это справедливо при любом числе дальнейших ветвлений; вершина х не может быть удалена из Qp- на любом следующем шаге р>k. Таким образом, условие

    x Qk-, такая, что E(x) ∩ Qk+ = Ø,   (8)

    является  достаточным для осуществления  шага возвращения, поскольку из Sk при всяком дальнейшем ветвлении уже не получится максимальное независимое множество.

    Как и во всяком методе, использующем дерево поиска, здесь выгодно стремиться начать шаги возвращения как можно раньше, поскольку это ограничит "размеры" "ненужной" части дерева поиска. Следовательно, целесообразно сосредоточить усилия на том, чтобы возможно раньше добиться выполнения условия (8) с помощью подходящего выбора вершин, используемых при расширении множеств Sk. На каждом следующем шаге процедуры можно выбирать для добавления к Sk любую вершину xik Qk+ на шаге возвращения xik будет удалена из Qk+ и включена в Qk-. Если вершину xk выбрать так, чтобы она принадлежала множеству E(х) при некоторой вершине х из Qk-, то на соответствующем шаге возвращения величина

    Δ(x) = |E(x) Qk+|   (9)

    уменьшится  на единицу (по сравнению с тем  значением, которое было до выполнения прямого шага в шага возвращения), так что условие (8) теперь станет выполняться раньше.

    Таким образом, один из возможных способов выбора вершины xik для расширения множества Sk состоит, во-первых, в нахождении вершины x* Qk- с возможно меньшим значением величины Δ(х*) и, кроме того, в выборе вершины xi из множества E(x*)∩Qk+. Такой выбор вершины xik будет приводить на шаге возвращения к уменьшению величины Δ(x*) — каждый раз на единицу — до тех пор, пока вершина x* не станет удовлетворять условию (8) при выполнении шага возвращения.

Информация о работе Максимальное независимое множество вершин в дереве