ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА
2013 Прикладная теория графов №1(19)
ПРИКЛАДНАЯ ТЕОРИЯ ГРАФОВ
УДК 519.1
ИССЛЕДОВАНИЕ КЛИКОВЫХ ПОКРЫТИЙ РЁБЕР ГРАФА
И. А. Бадеха
Российский государственный социальный университет, г. Москва, Россия
E-mail: [email protected]
Исследуются кликовые покрытия рёбер графа. Описаны графы, имеющие единственное кликовое покрытие рёбер, рассмотрена возможность снижения порядка (сжатия) графа с сохранением структуры покрытия, приведены методы, упрощающие процедуру поиска минимального кликового покрытия рёбер, исследована взаимосвязь между изоморфизмами графов и соответствующих сжатых графов.
Ключевые слова: графы, покрытия графов кликами, кликовое покрытие рёбер, изоморфизм графов, NP-полные задачи.
Введение
Кликовые покрытия рёбер графа и порождаемое представление графа в виде объединения клик изучается в теории графов достаточно давно. Одно из первых исследований проведено в работе L. Kou, L. Stockmeyer и C. Wong [1], в которой показана взаимосвязь данной задачи с другими задачами (поиск кликового покрытия вершин, проблема конфликта ключей), доказан ряд утверждений о полиномиальных алгоритмах поиска покрытия, приведён простейший эвристический алгоритм поиска покрытия, достигающий результата за полиномиальное время. Обзор вопросов, связанных с покрытиями и разбиениями графов, приводит J. Orlin в работе [2], которая также вышла в 70-е годы. Современные результаты по данной проблеме получены J. Gramm, J. Guo, F. Huffner, R. Niedermeier и отражены в работе [3], в которой авторы предлагают и исследуют метод редукции графа, позволяющий восстановить кликовое покрытие графа рёбрами из покрытия меньшего графа. Обзор имеющихся современных результатов приводит в тезисах к своей диссертации на соискание степени Master of science M. Cavers [4].
Введём основные используемые понятия. Базовые понятия теории графов можно найти в монографии Ф. Харари [5].
Примем следующие обозначения: G = (V, E), где V — множество вершин, |V| = п; E — множество рёбер графа G. Для любого графа T через VT,ET обозначим соответственно множества его вершин и рёбер.
Кликой графа G называется любой его максимальный полный подграф, то есть подграф, все вершины которого попарно смежны [5]. При этом максимальным (по включению) полным подграфом клика называется в том смысле, что никакой другой подграф, содержащий клику и не совпадающий с ней, не является полным. Полный подграф из трёх вершин будем далее называть треугольником. Легко видеть, что для любого полного подграфа существует клика, его содержащая.
Под окружением вершины v понимается множество N(v), состоящее из вершин графа G, смежных с вершиной v. Расширим понятие окружения.
Определение 1. Окружением ребра е будем называть множество вершин N(е) графа О, смежных одновременно с обоими концами ребра е.
По аналогии с данным определением, окружением множества вершин М С Ус будем считать множество вершин N(М), смежных одновременно с каждой вершиной из М.
В некоторых случаях будем рассматривать невыколотое окружение вершины, т. е. множество, состоящее из самой вершины и всех смежных с ней вершин. Аналогичным образом определяется невыколотое окружение ребра: это множество, состоящее из концов и и V ребра (и, у) и всех вершин его окружения. Невыколотым окружением множества вершин М будем называть множество Н(М) = М и N(М). Невыколотое окружение ребра е будем обозначать Н(е), невыколотое окружение вершины у — Н(у). Граф, порождённый множеством вершин М графа О, будем обозначать М^.
Определение 2. Кликовым покрытием рёбер (КПР) графа О называется множество клик, такое, что каждое ребро графа О входит, как минимум, в одну из клик данного множества.
Определение 3. КПР графа назовём тупиковым, если при исключении из него любой клики оно перестаёт покрывать все рёбра графа.
Каждая изолированная вершина в КПР входит в единственную клику, состоящую из одной этой вершины. Так как случай наличия изолированной вершины тривиален, далее не будем уделять ему особого внимания.
Определение 4. Минимальным КПР (МКПР) графа О назовем КПР графа О, содержащее наименьшее из всех возможных КПР число клик.
Мощность МКПР графа О иногда называют его кликовой характеристикой. Отметим, что задача поиска МКПР графа О является КР-полной (см., например, [2]).
Далее в п. 1 и 2 рассматриваются методы упрощения поиска МКПР. В п. 3 исследуется класс графов, обладающих единственным КПР.
1. Упрощение задачи построения МКПР: использование собственных рёбер и полных наборов баз
1.1. Собственные рёбра графа
Рассмотрим особый вид рёбер графа О, наличие которых упрощает процедуру поиска МКПР.
Определение 5. Ребро е назовем собственным ребром клики К, если оно принадлежит клике К и не принадлежит никакой другой клике графа О.
Определение 6. Клику К назовем зафиксированной, если она содержит хотя бы одно собственное ребро либо содержит только одну вершину.
Укажем простой способ определения собственного ребра.
Утверждение 1. Ребро е является собственным ребром графа О тогда и только тогда, когда N(е)с представляет собой клику в графе О.
Доказательство. Пусть ребро е = (а,Ь) является собственным и клика К — единственная клика, содержащая ребро е. Пусть существует вершина х, такая, что х Є N(е) и х Є К. Тогда вершины а, Ь, х образуют треугольник, который не содержится внутри клики К. Это значит, что существует клика К1, содержащая данное ребро и не совпадающая с кликой К, следовательно, ребро е не является собственным, что противоречит предположению.
Пусть теперь N(е)с = К, где К — клика. Так как все вершины клики, в которую входит ребро, принадлежат его окружению, клика К — зафиксированная клика, содержащая собственное ребро е. ■
Если граф имеет зафиксированные клики, то процедура поиска МКПР для него упрощается следующим образом: сначала определяются зафиксированные клики, которые входят в любое КПР и соответственно в МКПР, а затем уже производится поиск оставшихся клик МКПР.
1.2. Использование полных наборов баз
Введём ряд понятий, которые будут использованы в дальнейшем для ускорения поиска МКПР. Будем говорить, что полный подграф Н графа О базируется на ребре е, если любая клика К, содержащая ребро е, содержит Н в качестве своего подграфа.
Под пересечением графов далее будем понимать граф, множество вершин которого получено пересечением множеств вершин пересекаемых графов, а множество рёбер — пересечением множеств их рёбер. Очевидно, что пересечением полных подграфов некоторого графа является также полный подграф этого графа.
Определение 7. Базой Ье ребра е в графе О назовём полный подграф графа О, являющийся пересечением всех полных подграфов, базирующихся на ребре е. При этом ребро е назовём порождающим ребром базы Ье.
Докажем утверждение, которое позволяет получить характеризацию базы ребра.
Утверждение 2. Пусть е = (а,Ь) —ребро графа О, N(е)^ — множество, состоящее из доминирующих вершин окружения ребра е. Подграф графа О, порождённый множеством вершин {а,Ь} и N(е)^, является базой ребра е.
Доказательство. Несложно убедиться, что граф {а, Ь} и N(е)^ является полным подграфом графа О. Для этого необходимо отметить, что любая доминирующая вершина из окружения ребра смежна с каждой доминирующей вершиной окружения и обоими концами ребра, а каждый конец ребра смежен с каждой вершиной своего окружения, в том числе с любой доминирующей вершиной окружения. Пусть ребро е принадлежит клике К. Любая вершина клики К смежна с обоими концами ребра е, а значит, принадлежит невыколотому окружению ребра. Предположим, что вершина ^, являющаяся доминирующей вершиной в окружении ребра е, не принадлежит клике К. Тогда вершина d смежна с каждой вершиной окружения и с обоими концами ребра. Значит, подграф, порождённый множеством вершин Ук и ^}, является полным. Так как указанный полный граф содержит подграф К, то последний в этом случае не является максимальным по включению полным графом, то есть кликой. Данное противоречие подтверждает верность доказываемого утверждения. ■
Таким образом, поиск базы данного ребра е = (а, Ь) может производиться по следующему алгоритму: перебираем вершины графа и определяем количество к вершин, смежных с а и Ь (О(п) элементарных операций). Для каждой вершины и, смежной с обоими концами ребра, снова перебираем все вершины графа и ведём подсчёт количества к(и) вершин, смежных одновременно с а, Ь и и; если к(и) = к, то вершину и помечаем как доминирующую (О(п) элементарных операций).
Получаем, что трудоёмкость нахождения базы для конкретного ребра составляет О(п2) элементарных операций.
Определение 8. Множество В = {Ьі,...,Ьк}, где каждый элемент Ьі является базой какого-то ребра, назовем полным набором баз графа О, если каждое ребро графа О входит в состав хотя бы одной из этих баз.
Определение 9. Кликовым покрытием баз (сокращенно КПБ) графа О для некоторого полного набора баз В назовем множество клик графа О, такое, что каждая база из набора В входит как минимум в одну из клик этого множества.
Докажем утверждение о взаимосвязи между КПР и КПБ.
Утверждение 3. Любое КПБ графа О является его КПР, и любое КПР является КПБ.
Доказательство. Пусть Р — КПР графа О. Если ребро е входит в некоторую клику К покрытия Р, то и порождённая этим ребром база Ье также входит в эту клику. Так как все рёбра покрыты кликами из КПР Р, а любая база порождается каким-то ребром, то в любом полном наборе баз В все базы покрыты кликами из Р. Следовательно, Р — КПБ графа О.
Теперь предположим, что Р — КПБ графа О. Тогда любая база Ье из некоторого полного набора баз В входит в какую-то клику К из Р. Поскольку В — полный набор баз, каждое ребро е графа О входит в некоторую базу Ье из В, а следовательно, и в какую-то клику К из Р. Следовательно, Р — КПР графа О. ■
Таким образом, для получения КПР достаточно получить КПБ.
Отметим, что для того чтобы найти кликовое покрытие баз из некоторого полного набора, достаточно найти множество клик, покрывающих все порождающие рёбра для баз, входящих в этот полный набор. Действительно, если порождающее ребро е для базы Ье покрыто некоторой кликой К, то, согласно определению базы, Ье также покрывается кликой К.
Введём понятие минимального КПБ (по аналогии с минимальным КПР).
Определение 10. Минимальным КПБ (сокращенно МКПБ) графа О назовем КПБ графа О, содержащее наименьшее из всех возможных КПБ число клик.
Центральный результат, являющийся следствием из приведённых выше рассуждений и обуславливающий перспективность использования баз в задаче поиска МКПР, сформулирован в следующем утверждении.
Утверждение 4. Пусть Р — МКПБ графа О для некоторого полного набора баз В. Тогда Р является МКПР графа О.
Доказательство. Пусть Р' — МКПР графа О и |Р' | = г. Из утверждения 3 следует, что любое МКПР графа О является его КПБ. Предположим, существует Р'' — МКПБ графа О, такое, что |Р''| < г. Тогда Р'' является КПР графа О и |Р''| < |Р'|, что противоречит тому, что Р' является минимальным КПР. Значит, Р' является МКПБ графа О. Следовательно, |Р'| = |Р|. Значит, Р является МКПР графа О. ■
Таким образом, можно строить покрытие только тех рёбер, которые являются порождающими для баз, входящих в полный набор, не заботясь об остальных рёбрах.
Далее опишем простейший метод построения некоторого полного набора баз в графе О. Изначально считая множество В пустым, для каждого ребра е Є Ес последовательно проведем следующие действия:
1. Найдём множество доминирующих вершин окружения ребра е, обозначим его как Ье.
2. Добавим элемент Ье в множество В.
3. Рёбра, входящие в состав Ье, исключим из дальнейшего рассмотрения.
Когда закончатся рассматриваемые рёбра, будем считать множество В сформированным.
С учётом трудоёмкости О(п2) нахождения базы ребра и оценки сверху п2 на количество рёбер, трудоёмкость предложенного алгоритма составляет О(п4).
Утверждение 5. Множество В, полученное по вышеописанному алгоритму, является полным набором баз графа О.
Доказательство. Так как любой доминирующей вершиной невыколотого окружения ребра е можно расширить любой полный подграф, содержащий ребро е, множество Н(е)д является базой ребра е. Так как ребро исключается из рассмотрения только в том случае, если оно покрывается базой, порождённой другим ребром, то множество В покрывает все рёбра. Таким образом, В является полным набором баз графа О. ■
Подавляющее большинство существующих алгоритмов построения МКПР строит покрытия последовательно, добавляя в уже построенное покрытие новые клики. Утверждение 5 позволяет останавливать задачу поиска МКПР в случае, когда в уже найденный набор клик входят все порождающие рёбра некоторого полного набора баз. При таком подходе возникают следующие аспекты.
1) К трудоёмкости поиска МКПР добавляется трудоёмкость построения полного набора баз. Выше предложен алгоритм такого построения с трудоёмкостью О(п4). Однако полный набор из малого числа баз снижает количество рёбер, которые необходимо покрыть в процессе построения МКПР. Соответственно перед поиском МКПР необходимо найти полный набор из как можно меньшего числа баз; можно рассмотреть другие, более трудоёмкие алгоритмы построения полного набора баз как можно меньшей мощности. Вместе с тем неясно, какой выигрыш при построении МКПР даст выделение порождающих рёбер, которые необходимо покрыть при построении, поэтому такое увеличение трудоёмкости может оказаться нецелесообразным.
2) Используемый алгоритм (эвристический или точный) поиска МКПР можно модернизировать следующим образом: если на каком-то шаге возникает возможность выбрать произвольным образом следующее ребро для добавления к уже покрытым рёбрам, в первую очередь необходимо выбирать порождающие рёбра баз.
Итак, основным достоинством предложенного метода является тот факт, что поиск полного набора баз добавляет к трудоёмкости алгоритма построения МКПР небольшую величину (ограниченную полиномом от числа вершин графа), в то время как при его применении трудоёмкость построения МКПР может существенно уменьшиться за счёт того, что на некотором шаге алгоритма будут покрыты все порождающие рёбра баз (но ещё не все рёбра графа).
2. Редукция графа в задаче построения МКПР: сжатие графа
2.1. Основные понятия
Пусть дано покрытие графа кликами К1,... , К5. Для удобства примем обозначение I = {1,... , з}. Далее буквой и будем обозначать некоторое подмножество I: и С I.
Определение 11. В принятых выше обозначениях для графа О = (У, Е) классом, порождённым множеством и, назовём множество
Ми = П Ук \ и Ук.
ієи ІЄІ\и
В дальнейшем будем рассматривать в качестве и непустые множества, поскольку в случае и = 0 множество Ми также пусто. На рис. 1 изображён граф О и все клас-
сы Ми для него. В графе О пять непустых классов Ми, три из которых содержат по две вершины, а два —по одной.
Рис. 1. Покрытие графа О (слева); множества Ы\ = М^}, М2 = М^з},
М3 = М{з}, М4 = М{1,2}, М5 = М{2} (справа)
Отметим очевидный факт: все вершины, принадлежащие одному классу Ми, образуют полный подграф. Это следует из того, что любые две вершины, принадлежащие одному классу, принадлежат одной клике с номером г Е и и, следовательно, соединены ребром в графе С.
Утверждение 6. Две вершины Е V входят в множество Ми для некоторого и тогда и только тогда, когда их невыколотые окружения совпадают.
Доказательство. Необходимость. Пусть вершины V и ш находятся в одном множестве Ми. Отметим, что вершины V и ш соединены ребром, так как Ми — полный подграф. Пусть существует вершина и Е V, соединённая ребром с вершиной V. Значит, вершины и и V входят в общую клику, следовательно, и Е Vкp для некоторого р Е и. Так как в силу р Е и и ш Е Ми клика Кр содержит и вершину ш, то (ш,и) Е Е. Аналогично из смежности произвольной вершины с вершиной ш следует её смежность с вершиной V. Таким образом, невыколотые окружения вершин V и ш совпадают.
Достаточность. Пусть вершины V и ш соединены ребром и Н(V) = Н(ш). Тогда любая клика либо содержит обе эти вершины, либо не содержит ни одной из них, ведь если К — полный подграф, V Е Vк и ш Е Vк, то К не является кликой, так как существует полный подграф К' = К и{ш}, содержащий К. Это значит, что для любого р Е I выполнено: из V Е Vкp следует ш Е Vкp и из ш Е У^р следует V Е У^р, то есть V Е Ми ш Е Ми. В качестве и возьмём множество номеров тех клик, в которые
входят обе вершины V и ш. Тогда V, ш Е Ми. ■
Следствие 1. Отношение принадлежности двух вершин одному классу Ми является отношением эквивалентности.
Таким образом, покрытие графа кликами задает группировку вершин в классы с одинаковыми невыколотыми окружениями. В дальнейшем будем называть классы вершин Ми классами эквивалентности. Введём следующее обозначение: для вершины V под иу будем понимать такое подмножество I, для которого V Е Ми^.
Определение 12. Множеством классов вершин графа С для некоторого покрытия назовём множество М = {М С Vc : М = 0 & Зи С I(М = Ми)}.
Так как эквивалентные между собой вершины, формирующие единый класс, определяются исходя из совпадающих невыколотых окружений, не зависящих от выбора КПР, то верно
Утверждение 7. Для любых покрытий графа кликами множества классов вершин совпадают.
Так как любая вершина извне конкретного класса либо входит в невыколотое окружение каждой вершины класса, либо не смежна ни с одной из них, для классов эквивалентности вершин также выполнено следующее
Утверждение 8. Для любых двух классов эквивалентности М1 и М2 либо все вершины класса М1 смежны со всеми вершинами класса М2, либо ни одна из вершин класса М1 не смежна ни с одной вершиной класса М2.
Определение 13. Назовём два класса вершин М1 и М2 соседними, если все вершины класса М1 смежны со всеми вершинами класса М2.
В случае, когда требуется указать, о каком графе идет речь, будем использовать следующие обозначения. Под множеством ис для некоторого покрытия {К1,..., К8} графа С будем понимать подмножество множества I = {1,..., з}. Класс эквивалентности в графе С, порождённый множеством ис, обозначается Мио.
Для обозначения класса эквивалентности вершин, в который входит вершина и, будем иногда прибегать к такой упрощённой записи: Ми (или М^, если необходимо указать, что рассматривается класс эквивалентности вершин графа С).
2.2. Основные результаты
Пусть дан простой граф С = (У, Е) и некоторое его покрытие {К1,..., К}. Рассмотрим взвешенный граф Т(С) = (УТ(с), Ет(С)), полученный следующим образом: каждому непустому классу эквивалентности М графа С соответствует одна вершина £(М) графа Т(С), вес которой равен |М|, и других вершин в графе Т(С) нет. Две вершины £(М1) и £(М2) графа Т(С) соединены ребром в графе Т(С) в том и только в том случае, если классы М1 и М2 соседние. Класс всевозможных графов, каждый из которых может быть получен описанным выше образом из какого-то графа, назовём классом 0.
На рис. 2 изображён граф С и соответствующий ему граф Т(С).
Рис. 2. Покрытие графа С (слева); взвешенный граф Т(С) (справа)
Исследуем некоторые свойства, которыми обладает класс 0.
Легко видеть, что по данному графу Т(С) можно с точностью до изоморфизма восстановить граф С следующим способом:
1. Каждой вершине V графа Т(С) поставить в соответствие полный граф К размера, равного весу этой вершины.
2. Для каждой пары смежных вершин v,w графа Т(С) все вершины графа Kv попарно соединить со всеми вершинами графа Кт.
Согласно построению, для каждого полного подграфа графа С получается полный подграф графа Т(С), и наоборот. При этом двум разным полным подграфам графа С соответствуют два разных полных подграфа графа Т(С), и также наоборот. Это следует из того, что вершины каждого класса эквивалентности графа С либо все входят в некоторый полный подграф, либо все в него не входят.
Отметим, что в графе Т(С) может присутствовать изолированная вершина, даже если в графе С изолированных вершин нет. Это возможно в том и только в том случае, если в графе С есть отдельная компонента связности, являющаяся кликой. Случай наличия изолированной вершины не приводит ни к каким сложностям, поскольку любая такая вершина образует клику, которая входит в любое покрытие графа.
Лемма 1. Если в графе С вершины а и Ь принадлежат разным классам Ма и Мь, то в графе Т = Т(С) вершины і(Ма) и і(Мь) принадлежат разным классам М^М )
и М*(Мь).
Доказательство. Из того, что вершины а и Ь принадлежат разным классам Ма и Мь, в силу утверждения 6 и определения невыколотого окружения вершины следует, что существует вершина и Є У, такая, что (и, а) Є Е и (и, Ь) Є Е.
Случай 1. Пусть вершины а и Ь не соединены ребром в графе С. Тогда і(Ма) и і(Мь) не соединены ребром в графе Т, так как вершины класса Ма не смежны с вершинами класса М&. Значит, невыколотые окружения вершин і(Ма) и і(М&) не совпадают и эти вершины принадлежат разным классам эквивалентности М^М )
и Мі(Мь).
С л у ч а й 2. Пусть вершины а и Ь соединены ребром в графе С. Тогда, согласно утверждению 8, все вершины класса Ма смежны с вершинами класса Мь. Значит, вершины і(Ма) и і(Мь) соединены ребром в графе Т. По аналогичным соображениям, вершины і(Ми) и і(Ма) соединены ребром в графе Т. По соображениям, аналогичным приведённым в п. 1, вершины і(Ми) и і(Мь) не соединены ребром в графе Т. Из этого следует, что М^м) и М^м) различны. ■
Теорема 1 (критерий принадлежности графа классу 0). Граф Г принадлежит классу 0 тогда и только тогда, когда мощность любого класса М^ не превосходит 1.
Доказательство. Необходимость. Предположим, что в графе Г Є 0 мощность некоторого класса М^ больше 1. Рассмотрим граф С = Т-1(Г) (как показано ранее, граф С однозначно с точностью до изоморфизма восстанавливается из графа Т(С)). Из сделанного предположения следует, что в графе Г = Т(С) найдутся две различные вершины а и в, принадлежащие одному классу М^ = Мд. Пусть вершины а, Ь Є Ес таковы, что і(Ма) = а, і(М&) = в. Согласно лемме 1, если бы вершины а и Ь принадлежали разным классам эквивалентности в графе С, то и вершины а и в также принадлежали бы разным классам эквивалентности в графе Г. Следовательно, вершины а и Ь принадлежат одному классу Ма = Мь. Значит, по построению графа Т(С) = Г вершины а = і(Ма) и в = і(Мь) совпадают. Приходим к противоречию с тем, что вершины а и в различны. Значит, мощность любого класса Мг не превосходит 1.
Достаточность. Пусть в графе Г Є 0 мощность каждого класса эквивалентности М^ равна 1 и в графе Г содержится ровно 5 вершин. Построим граф С = Т-1(Г) по
тому алгоритму, который предложен в начале п. 2.2. Получим в полных подграфов, порожденных множествами вершин М1,... , М5, где каждое множество Мг соответствует вершине гг Е Сг. При этом вершины из разных множеств Мг и М^ смежны в том и только в том случае, если смежны вершины V и г^- в графе Г, т. е. если и Е Мг, то либо все вершины множества Мг смежны с и, либо все они не смежны с и. Таким образом, для двух вершин г,т Е Мг выполнено равенство Н(г) = Н(т).
Рассмотрим теперь две вершины г, т из разных классов: г Е Мг, т Е М^, г = ]. Предположим, что Н(г) = Н(т). Все вершины Мг и М^- смежны со всеми вершинами одних и тех же множеств М^ , . . . , М^т , среди которые есть и Мг, и М^-. Это значит, что в графе Г соответствующие данным множествам вершины соединены рёбрами с одними и теми же вершинами и между собой, то есть их невыколотые окружения совпадают. Согласно утверждению 6, они принадлежат одному классу эквивалентности МГ, что противоречит условию. Значит, Н(г) = Н(т).
Итак, Н(г) = Н(т) тогда и только тогда, когда г и т принадлежат одному множеству Мг. Согласно утверждению 6, множества Мг есть классы эквивалентности вершин. По построению графа С граф Т(С) есть Г, откуда получаем, что Г Е 0. ■
Таким образом, в любом графе Г Е 0 каждая вершина составляет отдельный класс эквивалентности и все такие графы входят в 0.
Следствие 2. Пусть граф Г входит в 0. Тогда граф Т(Г) совпадает с графом Г.
Доказательство. В графе Г каждая вершина а составляет отдельный класс Ма, сумма весов вершин в котором равна весу а. Две вершины а и в графа Г, соединённые ребром, составляют два соседних класса вершин. Таким образом, при построении графа Т(Г) каждая вершина этого графа переводится в отдельную вершину графа Г, имеющую такой же вес, а каждое ребро — в ребро между соответствующими вершинами графа Г. ■
Из доказанного выше, в частности, следует, что множество 0 является замкнутым относительно операции построения графа на классах вершин. Далее граф, входящий в множество 0, будем называть сжатым графом. Докажем теорему о связи между изоморфизмом двух графов и изоморфизмом соответствующих им сжатых графов.
Теорема 2. Графы С1 и С2 изоморфны в том и только в том случае, если взвешенные графы Т1 = Т(С^ и Т2 = Т(С2) изоморфны и веса их соответствующих вершин совпадают.
Доказательство. Обозначим вершины ^(М^1) и £(МьС1) как а и в соответственно, будем считать, что Ма = М&.
Необходимость. Пусть графы С1 и С2 изоморфны, а / : 'У^1 ^ — соответ-
ствующая функция изоморфизма. Это значит, что функция / является биекцией и (и,г) Е Ес1 тогда и только тогда, когда (/(и),/(г)) Е £с2. Рассмотрим вершину а графа С1 и вершину /(а) графа С2. Пусть Н(а) = {а, ^1, Л,2,... , ^} — невыколотое окружение вершины а. В силу того, что функция / смежные вершины переводит в смежные, а несмежные — в несмежные, Н (/(а)) = {Ь, / (^1),/ (Л,2),...,/ (^^)}. Поэтому для двух вершин а и Ь графа С1 выполнено Н(а) = Н(Ь) тогда и только тогда, когда для вершин /(а) и /(Ь) графа С2 выполнено Н(/(а)) = Н(/(Ь)).
Обозначим множество вершин графа С2, в которые переводится множество Ма функцией /, как ^(Ма). Из того, что равенство Н(а) = Н(Ь) равносильно Н(/(а)) = = Н(/(Ь)), и из утверждения 6 следует, что множества ^(Ма) и ^(Мь) являются классами эквивалентности вершин. Поскольку /(а) Е ^(Ма) и /(Ь) Е ^(Мь), выполнены
следующие равенства: ^(Ма) = М^(а), ^(Мь) = М^(ь). Значит, каждый класс эквивалентности в графе С1 функцией f поэлементно переводится в класс эквивалентности в графе С2.
Определим функцию д : У^ ^ УТ2 следующим образом: д(а) = і(МСа)). Так как f — функция изоморфизма графов С1 и С2, ІМ^11 = |Мра)|. Следовательно, вес каждой вершины а в графе Т1 совпадает с весом вершины д(а) в графе Т2.
Таким образом, функция д переводит каждую вершину графа Т1 в вершину графа Т2, при этом все вершины графа Т2 покрыты, так как в Т2 каждая вершина соответствует классу эквивалентности графа С2, порождённому функцией f из некоторого класса эквивалентности в графе С1.
Осталось показать, что вершины а и в соединены ребром в графе Т1 в том и только в том случае, если вершины д(а) и д(в) соединены ребром в графе Т2.
Случай 1. Пусть вершины а и в соединены ребром в графе Т1. Это значит, что соответствующие классы вершин Ма и Мь являются соседними в графе С1. Так как функция f смежные вершины переводит в смежные, вершины f (а) Є М^(а) и f (Ь) Є Мдь) соединены ребром в графе С2 и, следовательно, все вершины класса М^(а) соединены со всеми вершинами класса М^(ь), т. е. эти классы соседние. Значит, д(а) = ^(МС2а)) и д(в) = ^Мр^) соединены ребром в графе Т2.
Случай 2. Пусть вершины а и в не соединены ребром в графе Т1, т. е. классы вершин Ма и Мь не являются соседними в графе С1. Так как функция f несмежные вершины переводит в несмежные, вершины f (а) Є Мда) и f (Ь) Є Мдь) не соединены ребром в графе С2 и, следовательно, ни одна вершина класса М (а) не соединена ни с одной из вершин класса М^-(ь), т. е. эти классы не являются соседними. Значит, д(а) = = *МУ и д(в) = І(МС“,) не соединены ребром в графе Т2.
Таким образом, д — функция изоморфизма для графов Т1 и Т2.
Достаточность. Пусть графы Т1 и Т2 изоморфны, д : УТ ^ УТ2 — функция изоморфизма и веса соответствующих вершин совпадают.
Рассмотрим класс эквивалентности £-1(д(а)) графа С2. В графе Т2 ему соответствует вершина д(а) с весом, равным мощности рассматриваемого класса. Поскольку вес вершины д(а) равен весу вершины а, мощность класса £-1(д(а)) равна мощности класса МС1.
Определим функцию f : УСі ^ УС2 следующим образом. Каждой вершине а графа С1 ставится в соответствие одна вершина f (а) графа С2, принадлежащая классу эквивалентности £-1(д(а)). При этом если две вершины а и Ь графа С1 принадлежат одному классу эквивалентности Ма = Мь, то f (а) = f (Ь). Поставленное требование выполнимо в силу того, что классы эквивалентности Ма и £-1(д(а)) равномощны. Других условий на функцию не налагается. Покажем, что f является функцией изоморфизма.
Во-первых, данная функция каждой вершине графа С1 ставит в соответствие одну вершину графа С2. Во-вторых, для каждой вершины графа С2 найдётся её вершина-прообраз в графе С1, так как функция f каждому элементу из множества Ма ставит в соответствие уникальный элемент из £-1(д(а)) и такими классами покрываются все вершины графа.
Наконец, покажем, что вершины а и Ь графа С1 смежны в том и только в том случае, если смежны вершины f (а) и f (Ь) графа С2.
С л у ч а й 1. Пусть вершины а и Ь графа С1 соединены ребром. В этом случае возможны два варианта. Первый вариант: Ма = Мь, в этом случае ^(Ма) и і(М^) — одна вершина в графе Т1, которая функцией д переводится в вершину д(^(Ма)) графа Т2, вес
которой совпадает с весом вершины і(Ма) и с мощностью класса эквивалентности Ма. Согласно определению функции f, вершины а и Ь переводятся в различные вершины f (а) и f (Ь), принадлежащие одному классу эквивалентности. Значит, они соединены ребром. Второй вариант: Ма = Мь, вершины ^(Ма) и і(Мь) различны и соединены ребром в графе Т1. В этом случае вершины д(і(Ма)) и д(і(Мь)) различны и соединены ребром в графе Т2; значит, классы эквивалентности і-1(д(а)) и і-1 (д(в)) —соседние в графе С2. Отсюда следует, что все элементы і-1(д(а)) соединены со всеми элементами і-1(д(в)), т. е. вершина f (а) соединена с f (Ь).
С л у ч а й 2. Пусть вершины а и Ь графа С1 не соединены ребром. Тогда множества Ма и Мь не являются соседними, и вершины і(Ма) и і(Мь) не соединены ребром в графе Т1, а значит, и вершины д(і(Ма)) и д(і(Мь)) не соединены ребром в графе Т2 в силу того, что д - функция изоморфизма. Согласно описанию функции f, отсюда следует, что f (а) и f (Ь) не соединены ребром в графе С2.
Таким образом, f — функция изоморфизма для графов С1 и С2. ■
Доказанная теорема говорит о том, что при изучении свойств кликовых покрытий рёбер можно ограничиться рассмотрением графов, входящих в класс 0.
3. Графы с единственным тупиковым КПР
Графы, имеющие единственное тупиковое покрытие, интересны с той точки зрения, что для них процедура поиска минимального покрытия очень проста: необходимо всего лишь породить какое-нибудь тупиковое покрытие, оно и будет единственным и минимальным. Далее приведён алгоритм порождения всех графов, обладающих единственным тупиковым покрытием.
Теорема 3. Клика К присутствует в любом покрытии графа С тогда и только тогда, когда она является зафиксированной.
Доказательство. Пусть клика К присутствует в любом покрытии графа. Рассмотрим некоторое покрытие Р графа С. Предположим, что клика К не является зафиксированной, т. е. все рёбра клики К не являются собственными. Но тогда можно в Р заменить К на множество клик, каждая из которых, не совпадая с К, покрывает своё ребро клики К. Получили противоречие — построенное покрытие не содержит К.
В обратную сторону утверждение очевидно. ■
Следствие 3. Граф С = (У, Е) обладает единственным тупиковым КПР тогда и только тогда, когда все его рёбра покрываются зафиксированными кликами.
Полученный критерий может быть сформулирован в несколько иной форме.
Теорема 4. Покрытие {К1,... , К5} графа С является единственным тупиковым покрытием этого графа тогда и только тогда, когда для любой клики К найдутся такие вершины а и Ь графа С, что иа П иь = {і}.
Доказательство. Согласно следствию из теоремы 3, единственность покрытия графа равносильна тому, что покрытие {К1,... , К5} содержит только зафиксированные клики. Рассмотрим клику К^, і = 1,... , 5. В ней существуют две вершины а и Ь, не принадлежащие одновременно ни одной клике, кроме К^, что равносильно условию иа П и = {і}. ■
Полученное утверждение поможет построить алгоритм порождения всех графов, имеющих единственное покрытие кликами.
Утверждение 9. Граф С имеет единственное тупиковое покрытие тогда и только тогда, когда граф Т(С) имеет единственное тупиковое покрытие.
Доказательство. Необходимость. Пусть граф С обладает единственным тупиковым покрытием {К(С),... , К;С)}. Очевидно, вершины, содержащиеся в одном классе эквивалентности графа С, целиком принадлежат любой клике, которая содержит хотя бы одну из этих вершин.
Рассмотрим множество {К(Т(С)),... , (С))} полных подграфов графа Т(С), где
каждый полный подграф Кг(Т(С)) получается из клики Кг(С) заменой в ней каждого набора эквивалентных вершин одной вершиной, соответствующей в графе Т(С) данному классу эквивалентности.
Каждая клика Кг(С) из покрытия графа С является зафиксированной, т. е. содержит собственное ребро. Каждый полный подграф Кг(Т(С)) является кликой, так как если бы была возможность достраивания его до клики, то клику Кг(С) также можно
было бы достроить до большей клики, что противоречит определению клики. Для растА°)
сматриваемой клики возможны два варианта.
1. Каждое собственное ребро клики Кг(С) соединяет вершины из одного класса эквивалентности. В этом случае данная клика является отдельной компонентой связности графа С, потому что иначе существует другой класс эквивалентности С У (с),
г
такой, что г Е и и {г} = и, и в этом случае и П {г} = {г}, то есть любое ребро (т,и), где т Е и, и Е {г}, является собственным, что противоречит рассматриваемому условию. Значит, Кг(С) —отдельная компонента связности. В этом случае клика Кг(Т(С)) —
изолированная вершина в графе Т(С), таким образом, она входит в любое покрытие. (^)
2. В клике Кг( ) существует собственное ребро (и,г), соединяющее вершины из разных классов эквивалентности, т. е. М^ = М^С). Рассмотрим в графе Т(С) ребро
(Т (^))
(£(Мад),£(М^)). Оно является собственным для клики Кг( ( , так как если существует
другая клика, содержащая данное ребро, то соответствующее множество вершин графа С, очевидно, является кликой, отличной от Кг(С), и содержит ребро (и,г). Таким образом, клика Кг(Т(С)) входит в любое покрытие графа Т(С).
Наконец, осталось заметить, что любое ребро графа Т(С) покрыто одной из клик набора {К(Т(С)),..., (с))} по построению. Значит, данный набор является тупико-
вым покрытием графа Т(С), а из сказанного ранее следует, что данное тупиковое покрытие единственно.
Достаточность. Пусть граф Т(С) обладает единственным тупиковым покрытием. Это значит, что все клики данного покрытия являются зафиксированными (либо содержат единственную изолированную вершину).
Пусть {К(Т(С)),...,К^Т(с))} —единственное покрытие графа Т(С). Рассмотрим
гтИс) тИс)т тАс) тАт (с))
множество клик {К1 , . . . ,К }, где каждую клику К получим из клики К ,
заменив в ней каждую вершину на все вершины из соответствующего класса эквивалентности графа С. Как нетрудно убедиться, полученные полные подграфы будут кликами.
Очевидно, данное множество покрывает все рёбра графа С, так как любое ребро либо принадлежит классу эквивалентности, либо соединяет между собой вершины из соседних классов. Все рёбра первого типа покрыты благодаря тому, что все вершины одного класса эквивалентности принадлежат одной клике. Все рёбра второго типа покрыты по построению графа Т-1(С).
Рассмотрим клику Кг(Т(С)). Если она состоит из одной вершины, то клика Кг(С) является отдельной компонентой связности графа С и поэтому входит в любое его покрытие. Если она состоит из более чем одной вершины, то она содержит собствен-
(О) (О)
ное ребро (і(Ми),і(М„)) (при этом классы Ми ) и Ми ) не пересекаются). Рассмотрим (с) (с)
вершины и Є Ми ) и V Є Ми ) графа С. Они смежны, так как принадлежат соседним
(О)
классам. Ребро (и, V) является собственным ребром клики , так как если бы существовала другая клика К(с) = К(с), содержащая это ребро, то существовала бы соответствующая клика К(т(с)) = Кг(т(с)) графа Т(С), содержащая ребро (£(Ми),і(М„)).
Таким образом, любая клика данного тупикового покрытия входит в любое покрытие графа С и, следовательно, данное покрытие единственно. ■
Породить все графы на п вершинах, имеющие единственное тупиковое КПР, можно с помощью алгоритма, существенно более простого, чем полный перебор графов порядка п. Далее приводим описание такого алгоритма.
Алгоритм состоит из трёх стадий, применяемых для всех возможных количеств клик в покрытии.
На первой стадии для фиксированного числа в клик в покрытии работает рекурсивная процедура Р(в, і). На і-м уровне рекурсии в процедуре перебираются функции /і : I \ {і} ^ {0,1, 2}, для каждой из которых вызывается копия процедуры Р(в, і + 1). Глубина рекурсии равна в, вектора значений всех функций / хранятся в глобальной памяти и доступны с любого уровня рекурсии. Когда сформирован набор векторов функций /і для всех і = 1,... , в, он сохраняется в памяти для дальнейшего использования.
Алгоритм 1. Процедура Р(з, і)
1: Выбрать функцию / с нулевым вектором значений на области её определения: (0,...,0).
2: Пока вектор значений функции / не равен (2,... , 2), выполнять:
3: Если і < в, то
4: вызвать процедуру Р(в, і + 1),
5: иначе
6: сохранить текущий набор векторов функций /і для і = 1,..., в в памяти.
7: Изменить функцию /і, в качестве вектора значений выбрав следующий в лекси-
кографическом порядке вектор.
8: Выход из процедуры.
На второй стадии из каждого набора функций, порождённого в процедуре Р(в, 1), строится некоторый взвешенный граф, вес каждой вершины в котором равен 1 . При этом рассматриваются множества вершин вида Ьу, каждое из которых определяется множеством V С I. Каждое такое множество изначально пустое, однако в процессе работы алгоритма в некоторые из них добавляются вершины.
На третьей стадии строятся все возможные варианты весовой функции данного графа, дающие в сумме значений п, и по каждому из них строится граф, обладающий единственным тупиковым КПР.
Вопрос о корректности алгоритма 2 возникает в связи с построением графа Т-1(Г). Для графа Г множества Ьу являются классами эквивалентности вершин и каждый из них содержит ровно одну вершину. Значит, согласно теореме 1, взвешенный граф Г (независимо от весовой функции) принадлежит классу б. Поэтому граф Т-1(Г) может быть построен.
Утверждение 10. Алгоритм 2 порождает с точностью до изоморфизма все графы на п вершинах, обладающие единственным тупиковым КПР, и только их.
Алгоритм 2. Построение графов, обладающих единственным тупиковым КПР 1: Для всех в от 1 до п2 2: вызвать процедуру Р(в, 1);
3: каждый набор векторов значений функций преобразовать во взвешенный граф
следующим образом:
4: Для всех функций /і
5: выбрать из множеств вида Ьу два множества Ьух и Ьу2, для которых V =
= {к Є I : /і(к) = 1} и V; = {к Є I : /і(к) = 2};
6: если множество Ьуі пустое, то добавить к нему вершину;
7: если множество Ьу2 пустое, то добавить к нему вершину;
8: если общее число добавленных вершин больше чем п, то данный набор векто-
ров не порождает граф — перейти к п. 3 и рассмотреть следующий набор.
9: Построить взвешенный граф Г следующим образом:
каждому непустому множеству Ьу поставить в соответствие вершину V; две вершины VI и v2 соединить ребром в том и только в том случае, если соответствующие множества VI и V; пересекаются;
каждой вершине полученного графа поставить в соответствие вес 1.
10: Преобразовать полученный взвешенный граф размера к в множество графов
на п ^ к вершинах следующим образом:
11: Для всех размещений из п — к по к
в соответствии с размещением добавить к весу каждой из к вершин графа Г соответствующее число;
построить граф С = Т-1(Г) и выдать пользователю.
12: Выход из алгоритма.
Доказательство. Во-первых, покажем, что любой граф, порожденный алгоритмом 2, обладает единственным покрытием. В графе Г для каждой і-й клики непустыми
оказываются некоторые множества (і) и Ь (і) (по построению графа являющиеся его
у1 у2
классами эквивалентности), такие, что ^(і) П V2i) = {і}. Согласно теореме 4, из этого следует, что граф Г обладает единственным покрытием. При увеличении веса некоторых вершин графа Г множество его покрытий остаётся неизменным. Из утверждения 9 следует, что граф С также обладает единственным покрытием.
Во-вторых, покажем, что любой граф, обладающий единственным покрытием, порождается алгоритмом 2 с точностью до изоморфизма. Пусть граф С обладает единственным покрытием. Тогда, согласно утверждению 9, граф Г = Т(С) также обладает единственным покрытием. Так как множество покрытий не зависит от весовой функции, граф Г, у которого каждой вершине приписан вес 1, обладает единственным покрытием. Согласно теореме 4, из этого следует, что для любой клики Кі, входящей в покрытие, найдутся две вершины и и V, соединённые ребром, для которых П = {і}. Таким образом, множество I \ {і} разбивается на три подмножества: \ {і}, \ {і} и I \ ({і} и и ). Любое такое деление однозначно задается функ-
цией /і : I \ {і} ^ {0,1, 2}. Поскольку в процессе работы алгоритма перебираются все такие функции (и все возможные количества клик в покрытии), можно сделать вывод, что рассматриваются все возможные графы Г Є б. При переходе от наборов векторов к графу Г отбрасываются только те наборы, которые не порождают графа на п
вершинах. Значит, любой граф, обладающий единственным КПР, строится данным
алгоритмом. ■
ЛИТЕРАТУРА
1. KouL.T., Stockmeyer L. J., and Wong C. K. Cliques with regard to keyword conflicts and intersection graphs // Comm. ACM. 1978. V. 21. No. 2. P. 135-139.
2. Orlin J. Contentment in graph theory: covering graphs with cliques // Indagat. Math. 1977. No. 39. P. 406-424.
3. Gramm J., Guo J., Huffner F., and Niedermeier R. Data reduction, exact, and heuristic algorithms for clique cover // Proc. 8th Workshop on Algorithm Engineering and Experiments, Miami, Fl. January 21, 2006. P. 86-94.
4. Cavers M. S. Clique partitions and coverings of graphs. Masters thesis, University of Waterloo, 2005. http://www.math.uwaterloo.ca/co/graduate-students/files/mmath/ Mike-Cavers.pdf
5. Харари Ф. Теория графов М.: Мир, 1973. 301с.