Материал: Дискретная математика. учебное пособие. Собенина О.В

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Опишем алгоритм нахождения всех максимальных независимых множеств вершин графа.

Начальная установка.

Шаг 1. Пусть S0 = Q0- = , Q0+= X, k=0.

Прямой шаг.

Шаг 2. Выбрать вершину xikQk+ и сформировать Sk+1, Qk-+1 и Qk++1, оставив Qk- и Qk+ нетронутыми. Положить k=k+1.

Проверка.

Шаг 3. Если выполняется условие (4.5), то перейти к шагу 5 иначе к шагу 4.

Шаг 4. Если Qk+=Qk- =, то напечатать максимальное независимое множество Sk и перейти к шагу 5. Если Qk+=, а Qk-, то перейти к шагу 5, иначе  к шагу 2.

Шаг возвращения.

Шаг 5. Положить k=k–1. Удалить xik из Sk+1, чтобы получить Sk. Исправить Qk+ и Qk-, удалив вершину xik из Qk+ и добавив ее к Qk-. Если k0, то перейти к шагу 3, иначе если Q0+=, то остановиться (к этому моменту будут напечатаны все максимальные независимые множества), иначе перейти к шагу 2.

П ример. Найти все максимальные независимые множества графа G.

Матрица смежности графа G:

А=

x1

x2

x3

x4

x5

x6

x7

x1

0

1

1

0

0

0

0

x2

1

0

0

1

0

1

0

x3

1

0

0

0

1

0

1

x4

0

1

0

0

1

1

0

x5

0

0

1

1

0

0

1

x6

0

1

0

1

0

0

1

x7

0

0

1

0

1

1

0

1. Начальная установка:

S0 = Ø; Q0- = Ø; Q0+ = {x1, x2, x3, x4, x5, x6, x7}; k=0.

2. Прямой шаг:

x1; S1 = {x1}; Q1- = Ø; Q1+ = {x4, x5, x6, x7}; k = 1.

3. Проверка.

Условие не выполняется, переходим к шагу 4 (→ 4).

4. Условие не выполняется → 2.

2. x4; S2 = {x1, x4}; Q2- = Ø; Q2+ = {x7}; k = 2.

3. Условие не выполняется → 4.

4. Условие не выполняется → 2.

2. x7; S3 = {x1, x4, x7}; Q3- = Ø; Q3+ = Ø; k = 3.

3. Условие не выполняется → 4.

4. S3 = {x1, x4, x7} максимальное независимое множество 5.

5. k = 2; S2 = {x1, x4}; Q2- = {x7}; Q2+ = Ø → 3.

3. Условие выполняется → 5.

5. k = 1; S1 = {x1}; Q1- = {x4}; Q1+ = {x5, x6, x7} → 3.

3. Условие не выполняется → 4.

4. Условие не выполняется → 2.

2. x5; S2 = {x1, x5}; Q2- = Ø; Q2+ = {x6}; k = 2.

3. Условие не выполняется → 4.

4. Условие не выполняется → 2.

2. x6; S3 = {x1, x5, x6}; Q3- = Ø; Q3+ = Ø; k = 3.

3. Условие не выполняется → 4.

4. S3 = {x1, x5, x6} максимальное независимое множество 5.

5. k = 2; S2 = {x1, x5}; Q2- = {x6}; Q2+ = Ø → 3.

3. Условие выполняется → 5.

5. k = 1; S1 = {x1}; Q1- = {x4, x5}; Q1+ = {x6, x7} → 3.

3. Условие не выполняется → 4.

4. Условие не выполняется → 2.

2. x6; S2 = {x1, x6}; Q2- = {x5}; Q2+ = Ø; k = 2.

3. Условие выполняется → 5.

5. k = 1; S1 = {x1}; Q1- = {x4, x5, x6}; Q1+ = {x7} → 3.

3. Условие выполняется → 5.

5. k = 0; S0 = Ø; Q0- = {x1}; Q0+ = {x2, x3, x4, x5, x6, x7} → 2.

2. x2; S1 = {x2}; Q1- = Ø; Q1+ = {x3, x5, x7}; k = 1.

3. Условие не выполняется → 4.

4. Условие не выполняется → 2.

2. x3; S2 = {x2, x3}; Q2- = Ø; Q2+ = Ø; k = 2.

3. Условие не выполняется → 4.

4. S2 = {x2, x3} — максимальное независимое множество 5.

5. k = 1; S1 = {x2}; Q1- = {x3}; Q1+ = {x5, x7} → 3.

3. Условие не выполняется → 4.

4. Условие не выполняется → 2.

2. x5; S2 = {x2, x5}; Q2- = Ø; Q2+ = Ø; k = 2.

3. Условие не выполняется → 4.

4. S2 = {x2, x5} — максимальное независимое множество 5.

5. k = 1; S1 = {x2}; Q1- = {x3, x5}; Q1+ = {x7} → 3.

3. Условие не выполняется → 4.

4. Условие не выполняется → 2.

2. x7; S2 = {x2, x7}; Q2- = Ø; Q2+ = Ø; k = 2.

3. Условие не выполняется → 4.

4. S2 = {x2, x7} — максимальное независимое множество 5.

5. k = 1; S1 = {x2}; Q1- = {x3, x5, x7}; Q1+ = Ø → 3.

3. Условие выполняется → 5.

5. k = 0; S0 = Ø; Q0- = {x1, x2}; Q0+ = {x3, x4, x5, x6, x7} → 3.

3. Условие не выполняется → 4.

4. Условие не выполняется → 2.

2. x3; S1 = {x3}; Q1- = {x2}; Q1+ = {x4, x6}; k = 1.

3. Условие не выполняется → 4.

4. Условие не выполняется → 2.

2. x4; S2 = {x3, x4}; Q2- = Ø; Q2+ = Ø; k = 2.

3. Условие не выполняется → 4.

4. S2 = {x3, x4} — максимальное независимое множество 5.

5. k = 1; S1 = {x3}; Q1- = {x2, x4}; Q1+ = {x6} → 3.

3. Условие не выполняется → 4.

4. Условие не выполняется → 2.

2. x6; S2 = {x3, x6}; Q2- = Ø; Q2+ = Ø; k = 2.

3. Условие не выполняется → 4.

4. S2 = {x3, x6} — максимальное независимое множество 5.

5. k = 1; S1 = {x3}; Q1- = {x2, x4, x6}; Q1+ = Ø → 3.

3. Условие выполняется → 5.

5. k = 0; S0 = Ø; Q0- = {x1, x2, x3}; Q0+ = {x4, x5, x6, x7} → 2.

2. x4; S1 = {x4}; Q1- = {x1, x3}; Q1+ = {x7}; k = 1.

3. Условие выполняется → 5.

5. k = 0; S0 = Ø; Q0- = {x1, x2, x3, x4}; Q0+ = {x5, x6, x7} → 2.

2. x5; S1 = {x5}; Q1- = {x1, x2}; Q1+ = {x6}; k = 1.

3. Условие выполняется → 5.

5. k = 0; S0 = Ø; Q0- = {x1, x2, x3, x4, x5}; Q0+ = {x6, x7} → 2.

2. x6; S1 = {x6}; Q1- = {x1, x3, x5}; Q1+ = Ø; k = 1.

3. Условие выполняется → 5.

5. k = 0; S0 = Ø; Q0- = {x1, x2, x3, x4, x5, x6}; Q0+ = {x7} → 2.

2. x7; S1 = {x7}; Q1- = {x1, x2, x4}; Q1+ = Ø; k = 1.

3. Условие выполняется → 5.

5. k = 0; S0 = Ø; Q0- = {x1, x2, x3, x4, x5, x6, x7}; Q0+ = Ø → останов.

Таким образом, данный граф имеет семь максимальных независимых множеств:

S1 = {x1, x4, x7}; S2 = {x1, x5, x6}; S3 = {x2, x3}; S4 = {x2, x5}; S5 = {x2, x7}; S6 = {x3, x4}; S7 = {x3, x6}.

Ядро  множество, которое является одновременно минимальным доминирующим и максимальным независимым.

Утверждение 4.9.1. Конечный граф без петель, не содержащий контуров нечетной длины, обладает ядром.

Понятие, противоположное максимальному независимому множеству, есть максимальный полный подграф. Максимальный полный подграф графа G называется кликой графа. Следовательно, в противоположность максимальному независимому множеству, в котором не могут встретиться две смежные вершины, в клике все вершины попарно смежны. Совершенно очевидно, что максимальное независимое множество графа G соответствует клике графа и наоборот, где – дополнение графа G.

Кликовое число – максимальное число вершин в кликах данного графа.

Утверждение. 4.9.2. Максимальное независимое множество графа G соответствует клике графа G и наоборот.

Источник: https://studfile.net/preview/16566820/