logo
razdel2_dmat_10

Независимые множества

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

Множество вершин U графа G = (V,X) называется независимым (внутренне устойчивым), если никакие две вершины из этого множества не смежны. Другими словами, если U V и U независимо в графе G, то порожденный подграф G(U) является пустым. Очевидно, что если при этом U* U, то U* - также независимое множество.

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

Наибольшее по мощности независимое множество называется наибольшим.

Ясно, что наибольшее независимое множество является максимальным. Обратное, вообще говоря, неверно.

Число вершин в наибольшем независимом множестве графа G называется числом независимости (или числом внутренней устойчивости) этого графа и обозначается (G).

Например, для графа G, изображенного на рис.1., (G)=4, множества вершин {1,2,3,7}, {1,2,3,8}, {2,3,5,7}, {2,3,5,8} являются наибольшими независимыми, а {4,7} – максимальное независимое множество, не являющееся наибольшим.

2

1 3 7

5 4 6

8

Рис. 1.

Понятие внутренней устойчивости естественным образом переносятся и на случай ориентированного графа.

Алгоритм с возвратом

Очевидный алгоритм, который можно применить для нахождения независимых множеств вершин, это «полный перебор всех возможностей»: генерируем все возможные подмножества вершин заданного графа или орграфа и проверяем, является ли оно независимым. Среди всех независимых множеств выбираем максимальные. Опишем теперь общий метод, позволяющий значительно сократить число шагов в алгоритмах полного перебора всех возможностей. Чтобы применить этот метод, представим искомое решение в виде последовательности <x1,…x n>. Основная идея метода состоит в том, что решение строится последовательно, начиная с пустой последовательности ε (длины 0). Вообще, имея данное частичное решение <x1,…x k>, мы стараемся найти такое допустимое значение x k+1, относительно которого мы не можем сразу сказать, что <x1,…x k, x k+1> можно расширить до некоторого решения (либо <x1,…x k, x k+1> уже является решением). Если такое предполагаемое, но еще не использованное значение x k+1 существует, то мы добавляем его к нашему частичному решению и продолжаем процесс для последовательности <x1,…x k, x k+1>. Если его не существует, то мы возвращаемся к нашему частичному решению <x1,…x k-1> и продолжаем процесс, отыскивая новое, еще не использованное допустимое значение xk – отсюда название «алгоритм с возвратом» (англ.: backtracking).

С понятием независимости в графе связано понятие доминирования или внешней устойчивости.

Подмножество вершин U графа G = (V,X) называется доминирующим или внешне устойчивым, если каждая вершина из V\U смежна с некоторой вершиной из U. Иначе говоря, каждая вершина графа находится на расстоянии не более 1 от доминирующего множества.

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

Доминирующее множество, состоящее из наименьшего числа вершин, называется наименьшим.

Так для графа, изображенного на рис. 1, минимальным внешне устойчивым множеством является множество 4,6.

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

Очевидно, что ядра графа – это максимальные независимые и минимальные доминирующие множества.

Понятия независимого, доминирующего множеств, а также ядра естественным образом переносится на ориентированные графы.