Алгоритм определения внешне устойчивых множеств вершин

Используя полученные результаты, алгоритм нахождения всех доминирующих множеств вершин графа можно сформулировать следующим образом:

1) Получить матрицу A’ = E v A.

2) Обозначить вершины графа логическими переменными, например, x1, x2, x3,…, xn, где xi = 1, если вершина принадлежит какому либо внешне устойчивому множеству, и xi = 0 в противном случае.

3) Для каждой вершины графа, используя матрицу A’, записать выражение

где – xi вершина, соответствующая выбранной строке,

xk, xl,…, xq – вершины, смежные ей.

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

4) Сформировать логическое выражение в виде произведения полученных сумм

П = Ci Cj Ck .

5) Провести преобразования логического выражения П для получения минимальной дизъюнктивной нормальной формы (МДНФ).

6) Каждая конъюнкция полученной МДНФ будет являться доминирующим множеством вершин графа, а количество переменных в минимальной из них будет числом внешней устойчивости данного графа β(G). В совокупности получим семейство из всех внешне устойчивых множеств графа.

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

Для нахождения вершинной базы необходимо сформировать матрицу

A” = E v A v…v An-1,

где Е – единичная матрица размера n n, А,…, An–1 – степени матрицы смежности графа, от 1 до n–1.

Затем надо найти в матрице A” множество строк, единицы в которых покрывают все столбцы, – множество вершин, соответствующее этому множеству строк, и есть вершинная база.

В качестве примера найдем вершинную базу графа, показанного на рис. 2.33

Составим матрицу смежности графа

A = .

Определим необходимые степени матрицы смежности

A2= * = ,

A3= * = .

 

Определим матрицу A”

A”= E v A v A2 v A3 = .

Для определения вершинной базы необходимо найти вершины, строки которых покрывают все столбцы матрицы A”.

Анализируя матрицу A”, замечаем, что

- для покрытия столбца 1 нужна строка 1 (v1),

- для покрытия столбца 2 нужна строка 1 (v1), или строка 2 (v2), или строка 3 (v3), что можно записать так (v1 v2 v3),

- для покрытия столбца 3 нужна строка 3 (v3),

- для покрытия столбца 4 нужна или строка 1 (v1), или строка 2 (v2), или строка 3 (v3), или строка 4 (v4), что можно записать так

(v1 v2 v3 v4).

Поскольку надо покрыть единицами и первый столбец, и второй столбец, и третий столбец, и четвертый столбец, то, заменив союз И символом конъюнкции, запишем

v1 (v1 v2 v3) v3 (v1 v2 v3 v4).

Раскрыв скобки и проведя преобразования, получаем

v1 v3.

Множество вершин {v1, v3} и есть вершинная база графа.

Множество вершин графа, среди которых нет смежных, называется независимым множеством вершин (НМВ) или внутренне устойчивым множеством вершин.

Если такое множество не является подмножеством другого множества с таким свойством, то оно максимально.

Мощность максимального независимого множества вершин (МНМВ) α(G) – называется числом внутренней устойчивости графа.

С помощью приведенного ниже алгоритма можно выделить семейство всех независимых множеств вершин произвольного графа.

Алгоритм определения внутренне устойчивых множеств вершин:

1) Составить матрицу смежности графа.

2) Обозначить вершины графа логическими переменными, например, x1, x2, x3,…, xn, где xi = 0, если вершина принадлежит какому либо внутренне устойчивому множеству, и xi = 1 в противном случае.

Обратите внимание на отличие значений xi от значений этой переменной в алгоритме определения внешне устойчивых множеств вершин графа.

3) В матрице смежности выбрать строку с максимальным числом ненулевых элементов. Если таких строк несколько, то берется любая из них.

4) Для выбранной строки записывается выражение

где xi – вершина, соответствующая выбранной строке, xk, xl,…, xq – вершины, смежные ей.

Трактовать это выражение можно так – во внутренне устойчивое множество вершин графа не должна входить вершина xi или ни одна из вершин, смежных с ней.

5) После этого в строке и столбце матрицы смежности с индексом i единицы заменить нулями (строку и столбец с индексом i можно удалить).

6) В полученной матрице смежности снова выбрать строку с наибольшим числом ненулевых элементов (например, строку j) и записать выражение

7) Строка и столбец с индексом j обнуляются.

8) Процесс повторяется, пока все строки матрицы смежности не станут пустыми (одни нули).

В строках изолированных и тупиковых вершин первоначальной матрицы смежности стоят только 0, поэтому для них не будут составлены выражения Ci. Изолированные вершины обязательно войдут в любое из внутренне устойчивых множеств и будут учтены в п. 10 алгоритма. поэтому их можно сразу исключить из матрицы смежности, упростив тем самым решение задачи. Тупиковые вершины будут учтены в выражениях для вершин, смежных с ними.

9) Из полученных выражений Ci, Cj, , Ck составить произведение

П = Ci Cj Ck,

в котором надо раскрыть скобки и провести минимизацию.

10) После минимизации для каждой конъюнкции найти не вошедшие в нее вершины графа, которые и образуют независимое множество.

В совокупности получим семейство из всех независимых множеств.

11) Число внутренней устойчивости графа α(G) будет равно количеству вершин, вошедших в максимальное независимое множество вершин.