Опубликован: 27.09.2006 | Уровень: специалист | Доступ: платный | ВУЗ: Нижегородский государственный университет им. Н.И.Лобачевского

Лекция 9: Независимые множества, клики, вершинные покрытия.

< Лекция 8 || Лекция 9: 12345 || Лекция 10 >

Стратегия перебора для задачи о независимом множестве

Пусть G - граф, в котором требуется найти наибольшее независимое множество. Выберем в нем произвольную вершину a. Обозначим через G_{1} подграф, получающийся удалением из графа G вершины a, т.е. G_{1} =G-a, а через G_{2} - подграф, получающийся удалением из G всех вершин, смежных с a. На рисунке 9.2 показаны графы G_{1} и G_{2}, получающиеся из графа G, изображенного на рис. 9.1, при a=1.


Рис. 9.2.

Пусть X - какое-нибудь независимое множество графа G. Если оно не содержит вершины a, то оно является независимым множеством графа G_{1}. Если же a\in X, то никакая вершина, смежная с a, не принадлежит X. В этом случае множество X является независимым множеством графа G_{2}. Заметим, что в графе G_{1} на одну вершину меньше, чем в исходном графе G. Если вершина a не является изолированной, то и в графе G_{2} вершин меньше, чем в графе G. Таким образом, задача о независимом множестве для графа G свелась к решению той же задачи для двух графов меньшего размера. Это приводит к рекуррентному соотношению для числа независимости:

\alpha (G)=\max \{ \alpha (G_{1} ),\alpha (G_{2} )\}

и к рекурсивному алгоритму для нахождения наибольшего независимого множества графа G: найдем наибольшее независимое множество X_{1} графа G_{1}, затем наибольшее независимое множество X_{2} графа G_{2} и выберем большее из этих двух множеств. В целом процесс решения задачи при этом можно рассматривать как исчерпывающий поиск в возникающем дереве подзадач. Чтобы не путать вершины дерева и вершины графа, вершины дерева будем называть узлами. Узел, не являющийся листом, называется внутренним узлом. Каждому внутреннему узлу дерева соответствует некоторый граф H и некоторая вершина этого графа x. Вершину x можно выбирать произвольно, но она не должна быть изолированной вершиной графа H. Внутренний узел имеет двух сыновей - левого и правого. Левому сыну соответствует подграф графа H, получаемый удалением вершины x, а правому - подграф, получаемый удалением всех вершин, смежных с x. Корню дерева соответствует исходный граф. Листьям соответствуют подграфы, не имеющие ребер, то есть подграфы, у которых все вершины изолированные. Множества вершин этих подграфов - это независимые множества исходного графа.

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

Для одного и того же графа могут получиться разные деревья в зависимости от того, как выбирается активная вершина x в каждом узле дерева. Может быть различным и число листьев в этих деревьях, а значит, и трудоемкость алгоритма, основанного на обходе дерева. Однако в любом случае листьев в дереве будет не меньше, чем максимальных независимых множеств у графа, так как каждое из этих множеств будет соответствовать некоторому листу. Так, для графа pK_{2}, т.е. графа, состоящего из p компонент связности, каждая из которых изоморфна графу K_{2}, в дереве подзадач будет 2^{p} листьев.

< Лекция 8 || Лекция 9: 12345 || Лекция 10 >
Татьяна Наумович
Татьяна Наумович

Скажите, пожалуйста, можно ли еще получить документ о прохождении курса ("Графы и алгоритмы", декабрь 2020) после предоставления всех дополнительных необходимых документов?
Или нужно проходить заново?

Петр Петров
Петр Петров

произведение графов К(2)*О(4) фактически 4 отдельных графа К(2)?

Михайло Бабин
Михайло Бабин
Украина
Madi Sam
Madi Sam
Казахстан, rwre, rtsgtr