Экстремальные задачи на графах

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

Независимым множеством вершин графа называется любое множество попарно не смежных вершин, т.е. множество вершин, порождающее пустой подграф. Независимое множество называется максимальным, если оно не является собственным подмножеством другого независимого множества,и наибольшим, если содержит наибольшее количество вершин. Число вершин в наибольшем независимом множестве графа G обозначается через Экстремальные задачи на графах - student2.ru и называется числом независимости графа. Задача о независимом множестве состоит в нахождении наибольшего независимого множества .

Кликой графа называется множество вершин, порождающее полный подграф, т.е. множество вершин, каждые две из которых смежны. Число вершин в клике наибольшего размера называется кликовым числом графа и обозначается через Экстремальные задачи на графах - student2.ru . Очевидно, задача о независимом множестве трансформируется в задачу о клике и наоборот простым переходом от данного графа G к дополнительному графу Экстремальные задачи на графах - student2.ru , так что Экстремальные задачи на графах - student2.ru .

Вершинное покрытие графа – это такое множество вершин, что каждое ребро графа инцидентно хотя бы одной из этих вершин. Наименьшее число вершин в вершинном покрытии графа G обозначается через Экстремальные задачи на графах - student2.ru и называется числом вершинного покрытия графа. В графе на рисунке 18 наибольшим независимым множеством является множество {1,2,5,7}, наибольшей кликой – множество {3,4,5,6}, наименьшим вершинным покрытием – множество {3,4,6}.

Экстремальные задачи на графах - student2.ru

Рис. 18

Между задачами о независимом множестве и о вершинном покрытии тоже имеется простая связь благодаря следующему легко устанавливаемому факту.

Теорема 10. Подмножество U множества вершин графа G является вершинным покрытием тогда и только тогда, когда Экстремальные задачи на графах - student2.ru – независимое множество.

В частности, отсюда следует, что Экстремальные задачи на графах - student2.ru для любого графа G с n вершинами.

Таким образом, все три задачи тесно связаны друг с другом. Далее рассмотрим задачу о независимом множестве.

Пусть G – граф, в котором требуется найти наибольшее независимое множество. Выберем в нем произвольную вершину а и пусть А – множество всех вершин графа, смежных с а, В – множество всех вершин, не смежных с а. Обозначим через Экстремальные задачи на графах - student2.ru подграф, получающийся удалением из графа G вершины а, а через Экстремальные задачи на графах - student2.ru подграф, получающийся удалением из G всех вершин множества Экстремальные задачи на графах - student2.ru . Иначе говоря, Экстремальные задачи на графах - student2.ru – подграф графа G, порожденный множеством Экстремальные задачи на графах - student2.ru , а Экстремальные задачи на графах - student2.ru – подграф, порожденный множеством B (см. рисунок 19).

Экстремальные задачи на графах - student2.ru

Рис. 19

Пусть Х – какое-нибудь независимое множество графа G. Если оно не содержит вершину а, то оно является независимым множеством графа Экстремальные задачи на графах - student2.ru , если же Экстремальные задачи на графах - student2.ru , то множество Экстремальные задачи на графах - student2.ru является независимым множеством графа Экстремальные задачи на графах - student2.ru . Таким образом, задача о независимом множестве для графа G свелась к решению той же задачи для двух графов меньшего размера. Это приводит к рекуррентному уравнению для числа независимости:

Экстремальные задачи на графах - student2.ru

и к рекурсивному алгоритму для нахождения наибольшего независимого множества графа G: найдем наибольшее независимое множество Экстремальные задачи на графах - student2.ru графа Экстремальные задачи на графах - student2.ru , затем наибольшее независимое множество Экстремальные задачи на графах - student2.ru графа Экстремальные задачи на графах - student2.ru и выберем большее из множеств Экстремальные задачи на графах - student2.ru и Экстремальные задачи на графах - student2.ru . В целом процесс решения задачи можно при этом интерпретировать как исчерпывающий поиск в возникающем дереве подзадач, т.е. подграфов. Каждой вершине этого дерева соответствует некоторый граф, сыновьям вершины – два подграфа этого графа, корню – исходный граф. Листьям дерева соответствуют графы, для которых задача решается непосредственно, без сведения к подзадачам. В простейшем случае это могут быть графы с пустым множеством вершин, но при этом количество листьев будет максимальным. Можно доводить разложение на подзадачи до графов с пустым множеством ребер, при этом листьев в дереве станет меньше, но потребуется для каждого встречающегося графа проверять наличие в нем ребер. Число листьев зависит от того, в каком порядке рассматриваются вершины графа, но оно во всяком случае не меньше, чем число максимальных независимых множеств у графа, так как каждое из этих множеств будет соответствовать некоторому листу. Так, для графа Экстремальные задачи на графах - student2.ru , т.е. графа, состоящего из p компонент связности, каждая из которых изоморфна графу Экстремальные задачи на графах - student2.ru , в дереве подзадач будет в лучшем случае Экстремальные задачи на графах - student2.ru листьев.

Паросочетания

Паросочетанием в графе называется множество ребер, попарно не имеющих общих вершин. Задача о паросочетании состоит в том, чтобы в данном графе найти паросочетание с наибольшим числом ребер. Это число для графа G будем обозначать через Экстремальные задачи на графах - student2.ru . Реберным покрытием графа называется такое множество ребер, что всякая вершина графа инцидентна хотя бы одному из этих ребер. Наименьшее число ребер в реберном покрытии графа G обозначим через Экстремальные задачи на графах - student2.ru . Заметим, что реберное покрытие существует только для графов без изолированных вершин.

Определение паросочетания похоже на определение независимого множества вершин, паросочетание иногда так и называют – независимое множество ребер. Эта аналогия усиливается еще тесной связью между реберными покрытиями и паросочетаниями, подобно тому, как связаны между собой вершинные покрытия и независимые множества. Даже равенство, количественно выражающее эту связь, имеет точно такой же вид (напомним, что числа независимости Экстремальные задачи на графах - student2.ru и вершинного покрытия Экстремальные задачи на графах - student2.ru связаны равенством Экстремальные задачи на графах - student2.ru ). Приведем доказательство этого факта, так как оно имеет алгоритмическое значение – показывает, как каждая из двух задач сводится к другой.

Теорема 11.Для любого графа G с n вершинами, не имеющего изолированных вершин, справедливо равенство Экстремальные задачи на графах - student2.ru .

Доказательство. Пусть М – наибольшее паросочетание в графе G. Обозначим через W множество всех вершин графа, не покрытых ребрами этого паросочетания. Тогда Экстремальные задачи на графах - student2.ru . Очевидно, W – независимое множество (иначе М не было бы наибольшим). Выберем для каждой вершины из М какое-нибудь инцидентное ей ребро. Пусть F – множество всех выбранных ребер. Тогда Экстремальные задачи на графах - student2.ru – реберное покрытие и Экстремальные задачи на графах - student2.ru , следовательно, Экстремальные задачи на графах - student2.ru .

Обратно, пусть С – наименьшее реберное покрытие графа G. Рассмотрим подграф Н графа G, образованный ребрами этого покрытия. В графе Н один из концов каждого ребра является вершиной степени 1 (ребро, каждая вершина которого инцидентна по крайней мере еще одному ребру, можно было бы удалить из С, оставшиеся ребра по-прежнему покрывали бы все вершины). Отсюда следует, что каждая компонента связности графа Н является звездой (звезда – это дерево, у которого не более одной вершины степени больше 1). Так как в любом лесе сумма количеств ребер и компонент связности равна числу вершин, то число компонент связности в графе Н равно Экстремальные задачи на графах - student2.ru . Выбрав по одному ребру из каждой компоненты, получим паросочетание. Отсюда следует, что Экстремальные задачи на графах - student2.ru . 

Пусть G – граф, М – некоторое паросочетание в нем. Ребра паросочетания будем называть сильными, остальные ребра графа – слабыми. Вершину назовем насыщенной, если она инцидентна какому-либо ребру паросочетания, в противном случае ненасыщенной,. На рисунке 20 слева показан граф и в нем выделены ребра паросочетания Экстремальные задачи на графах - student2.ru . Вершины 1 и 5 – ненасыщенные. Заметим, что к этому паросочетанию нельзя добавить ни одного ребра, т.е. оно максимальное. Однако оно не является наибольшим. В этом легко убедиться, если рассмотреть путь 5,6,8,9,10,7,3,4 (показан пунктиром). Он начинается и оканчивается в ненасыщенных вершинах, а вдоль пути чередуются сильные и слабые ребра. Если на этом пути превратить каждое сильное ребро в слабое, а каждое слабое – в сильное, то получится новое паросочетание, показанное на рисунке справа, в котором на одно ребро больше. Увеличение паросочетания с помощью подобных преобразований – в этом и состоит суть метода чередующихся цепей.

Экстремальные задачи на графах - student2.ru Рис.20 Экстремальные задачи на графах - student2.ru

Сформулируем необходимые понятия и докажем теорему, лежащую в основе этого метода чередующихся цепей. Чередующейся цепью относительно данного паросочетания называется простой путь, в котором чередуются сильные и слабые ребра (т.е. за сильным ребром следует слабое, за слабым – сильное). Чередующаяся цепь называется увеличивающей, если она соединяет две ненасыщенные вершины. Если М – паросочетание, Р – увеличивающая цепь относительно М, то легко видеть, что Экстремальные задачи на графах - student2.ru – тоже паросочетание и Экстремальные задачи на графах - student2.ru .

Теорема 12. Паросочетание является наибольшим тогда и только тогда, когда относительно него нет увеличивающих цепей.

Доказательство. Если есть увеличивающая цепь, то, поступая так, как в рассмотренном примере, т.е. заменяя вдоль этой цепи сильные ребра на слабые и наоборот, мы, очевидно, получим большее паросочетание. Для доказательства обратного утверждения рассмотрим паросочетание М в графе G и предположим, что М не наибольшее. Покажем, что тогда имеется увеличивающая цепь относительно М. Пусть Экстремальные задачи на графах - student2.ru – другое паросочетание и Экстремальные задачи на графах - student2.ru . Рассмотрим подграф Н графа G, образованный теми ребрами, которые входят в одно и только в одно из паросочетаний Экстремальные задачи на графах - student2.ru . Иначе говоря, множеством ребер графа Н является симметрическая разность Экстремальные задачи на графах - student2.ru . В графе Н каждая вершина инцидентна не более чем двум ребрам (одному из М и одному из Экстремальные задачи на графах - student2.ru ), т.е. имеет степень не более двух. В таком графе каждая компонента связности – путь или цикл. В каждом из этих путей и циклов чередуются ребра из М и Экстремальные задачи на графах - student2.ru . Так как Экстремальные задачи на графах - student2.ru , то имеется компонента, в которой ребер из Экстремальные задачи на графах - student2.ru содержится больше, чем ребер из М. Это может быть только путь, у которого оба концевых ребра принадлежат Экстремальные задачи на графах - student2.ru . Легко видеть, что относительно М этот путь будет увеличивающей цепью. 

Для решения задачи о паросочетании остается научиться находить увеличивающие цепи или убеждаться, что таких нет. Тогда, начиная с любого паросочетания (можно и с пустого множества ребер), можем строить паросочетания со все увеличивающимся количеством ребер до тех пор, пока не получим такое, относительно которого нет увеличивающих цепей. Оно и будет наибольшим. Известны эффективные алгоритмы, которые ищут увеличивающие цепи для произвольных графов, но они достаточно сложны. Рассмотрим более простой алгоритм, решающий эту задачу для двудольных графов.

Пусть Экстремальные задачи на графах - student2.ru – двудольный граф, М – паросочетание в G, X и Y – множества ненасыщенных вершин соответственно в долях А и В. Всякая увеличивающая цепь, если такая имеется, соединяет вершину из А с вершиной из В. Ориентируем ребра графа G следующим образом: всякое слабое ребро в направлении от А к В, а всякое сильное – в направлении от В к А. Полученный орграф обозначим через Экстремальные задачи на графах - student2.ru . Очевидно, что увеличивающая цепь в графе G существует тогда и только тогда, когда в графе Экстремальные задачи на графах - student2.ru имеется ориентированный путь из какой-либо вершины Экстремальные задачи на графах - student2.ru в какую-либо вершину Экстремальные задачи на графах - student2.ru . Такой путь можно найти (или убедиться в его отсутствии) простым поиском в ширину.

Оптимальные каркасы

Задача об оптимальном каркасе (стягивающем дереве) состоит в следующем. Дан обыкновенный граф Экстремальные задачи на графах - student2.ru и весовая функция на множестве ребер Экстремальные задачи на графах - student2.ru . Вес множества Экстремальные задачи на графах - student2.ru определяется как сумма весов составляющих его ребер. Требуется в графе G найти каркас максимального веса. Обычно рассматривают задачу на минимум, но это не существенно – она преобразуется в задачу на максимум, если заменить функцию w на -w. В этом разделе будем предполагать, что граф G связен, так что решением задачи всегда будет дерево.

Для решения задачи об оптимальном каркасе известно несколько жадных алгоритмов. Рассмотрим один из них, известный под названием алгоритм Прима. В этом алгоритме на каждом шаге рассматривается частичное решение задачи, представляющее дерево. Вначале это дерево состоит из единственной вершины, в качестве этой вершины может быть выбрана любая вершина графа. Затем к дереву последовательно добавляются ребра и вершины, пока не получится остовное дерево, т.е. каркас. Для того, чтобы из текущего дерева при добавлении нового ребра опять получилось дерево, это новое ребро должно соединять вершину дерева с вершиной, еще не принадлежащей дереву. Такие ребра будем называть подходящими относительно рассматриваемого дерева. «Жадность» алгоритма состоит в том, что на каждом шаге из всех подходящих ребер выбирается ребро наименьшего веса. Это ребро вместе с одно новой вершиной добавляется к дереву. Если обозначить через U и F множества вершин и ребер строящегося дерева, а через W множество вершин, еще не вошедших в это дерево, то алгоритм Прима можно представить следующим образом.

Алгоритм 1.Построение оптимального каркаса методом Прима

1 Экстремальные задачи на графах - student2.ru , где a – произвольная вершина графа

2 Экстремальные задачи на графах - student2.ru

3 Экстремальные задачи на графах - student2.ru

4 while Экстремальные задачи на графах - student2.ru do

5 найти ребро наибольшего веса Экстремальные задачи на графах - student2.ru среди всех таких ребер, у которых Экстремальные задачи на графах - student2.ru , Экстремальные задачи на графах - student2.ru

6 Экстремальные задачи на графах - student2.ru

7 Экстремальные задачи на графах - student2.ru

8 Экстремальные задачи на графах - student2.ru

Докажем, что алгоритм Прима на самом деле строит оптимальный каркас. Дерево F назовем фрагментом, если оно является подграфом графа G и существует такой оптимальный каркас Экстремальные задачи на графах - student2.ru графа G, что F является подграфом графа Экстремальные задачи на графах - student2.ru .

Теорема 13. Если F – фрагмент, е – подходящее ребро наибольшего веса относительно F, то Экстремальные задачи на графах - student2.ru – фрагмент.

Доказательство. Пусть Экстремальные задачи на графах - student2.ru – оптимальный каркас, содержащий F в качестве подграфа. Если ребро е принадлежит Экстремальные задачи на графах - student2.ru , то Экстремальные задачи на графах - student2.ru – подграф Экстремальные задачи на графах - student2.ru и, следовательно, фрагмент. Допустим, е не принадлежит Экстремальные задачи на графах - student2.ru . Если добавить ребро е к дереву Экстремальные задачи на графах - student2.ru , то образуется цикл. В этом цикле есть еще хотя бы одно подходящее ребро относительно F (никакой цикл, очевидно, не может содержать единственное подходящее ребро). Пусть Экстремальные задачи на графах - student2.ru – такое ребро. Тогда подграф Экстремальные задачи на графах - student2.ru , получающийся из Экстремальные задачи на графах - student2.ru удалением ребра Экстремальные задачи на графах - student2.ru и добавлением ребра е, тоже будет деревом. Так как Экстремальные задачи на графах - student2.ru , то Экстремальные задачи на графах - student2.ru . Но Экстремальные задачи на графах - student2.ru – оптимальный каркас, следовательно, Экстремальные задачи на графах - student2.ru и Экстремальные задачи на графах - student2.ru – тоже оптимальный каркас. Но Экстремальные задачи на графах - student2.ru является подграфом графа Экстремальные задачи на графах - student2.ru и, следовательно, фрагментом. 

Дерево, состоящее из единственной вершины, очевидно, является фрагментом. Из теоремы 13 следует, что если после некоторого количества шагов алгоритма Прима дерево F является фрагментом, то оно будет фрагментом и после следующего шага. Следовательно, и окончательное решение, полученное алгоритмом, будет фрагментом, т.е. оптимальным каркасом.

Наши рекомендации