Начальная установка.
Шаг 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-. Если k0, то перейти к шагу 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 и наоборот.