Скажите, пожалуйста, можно ли еще получить документ о прохождении курса ("Графы и алгоритмы", декабрь 2020) после предоставления всех дополнительных необходимых документов? |
Лекция 9: Независимые множества, клики, вершинные покрытия.
Стратегия перебора для задачи о независимом множестве
Пусть - граф, в котором требуется найти наибольшее независимое множество. Выберем в нем произвольную вершину . Обозначим через подграф, получающийся удалением из графа вершины , т.е. , а через - подграф, получающийся удалением из всех вершин, смежных с . На рисунке 9.2 показаны графы и , получающиеся из графа , изображенного на рис. 9.1, при .
Пусть - какое-нибудь независимое множество графа . Если оно не содержит вершины , то оно является независимым множеством графа . Если же , то никакая вершина, смежная с , не принадлежит . В этом случае множество является независимым множеством графа . Заметим, что в графе на одну вершину меньше, чем в исходном графе . Если вершина не является изолированной, то и в графе вершин меньше, чем в графе . Таким образом, задача о независимом множестве для графа свелась к решению той же задачи для двух графов меньшего размера. Это приводит к рекуррентному соотношению для числа независимости:
и к рекурсивному алгоритму для нахождения наибольшего независимого множества графа найдем наибольшее независимое множество графа , затем наибольшее независимое множество графа и выберем большее из этих двух множеств. В целом процесс решения задачи при этом можно рассматривать как исчерпывающий поиск в возникающем дереве подзадач. Чтобы не путать вершины дерева и вершины графа, вершины дерева будем называть узлами. Узел, не являющийся листом, называется внутренним узлом. Каждому внутреннему узлу дерева соответствует некоторый граф и некоторая вершина этого графа . Вершину можно выбирать произвольно, но она не должна быть изолированной вершиной графа . Внутренний узел имеет двух сыновей - левого и правого. Левому сыну соответствует подграф графа , получаемый удалением вершины , а правому - подграф, получаемый удалением всех вершин, смежных с . Корню дерева соответствует исходный граф. Листьям соответствуют подграфы, не имеющие ребер, то есть подграфы, у которых все вершины изолированные. Множества вершин этих подграфов - это независимые множества исходного графа.
Для нахождения наибольшего независимого множества не обязательно строить все дерево полностью, а достаточно обойти его в том или ином порядке, запоминая на каждом шаге только небольшую часть информации об устройстве этого дерева. Можно, например, применить поиск в глубину для обхода дерева: сначала пройти от корня до некоторого листа, затем вернуться к предку этого листа и искать следующий лист, и т.д.
Для одного и того же графа могут получиться разные деревья в зависимости от того, как выбирается активная вершина в каждом узле дерева. Может быть различным и число листьев в этих деревьях, а значит, и трудоемкость алгоритма, основанного на обходе дерева. Однако в любом случае листьев в дереве будет не меньше, чем максимальных независимых множеств у графа, так как каждое из этих множеств будет соответствовать некоторому листу. Так, для графа , т.е. графа, состоящего из компонент связности, каждая из которых изоморфна графу , в дереве подзадач будет листьев.