Задача о клике

Материал из testwiki
Версия от 17:24, 19 декабря 2023; imported>Alex NB OT (исправление ошибок параметров шаблонов Cite после обновления модуля Citation/CS1)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Задача о клике относится к классу NP-полных задач в области теории графов. Впервые она была сформулирована в 1972 году Ричардом Карпом.[1]

Граф с кликой размера 3.

Кликой в неориентированном графе называется подмножество вершин, каждые две из которых соединены ребром графа. Иными словами, это полный подграф первоначального графа. Размер клики определяется как число вершин в ней. Задача о клике существует в двух вариантах: в задаче распознавания требуется определить, существует ли в заданном графе G клика размера k, в то время как в вычислительном варианте требуется найти в заданном графе G клику максимального размера.

NP-полнота

NP-полнота задачи о клике следует из NP-полноты задачи о независимом множестве вершин. Легко показать, что необходимым и достаточным условием для существования клики размера k является наличие независимого множества размера не менее k в дополнении графа. Это очевидно, поскольку полнота подграфа означает, что его дополнение не содержит ни одного ребра.

Другое доказательство NP-полноты можно найти в книге «Алгоритмы: построение и анализ».[2]

Алгоритмы

Как и для других NP-полных задач, эффективного алгоритма для поиска клики заданного размера на данный момент не найдено. Полный перебор всех возможных подграфов размера k с проверкой того, является ли хотя бы один из них полным, — неэффективен, поскольку полное число таких подграфов в графе с v вершинами равно биномиальному коэффициенту (vk)=v!k!(vk)!.

Другой алгоритм работает так: две клики размера n и m «склеиваются» в большую клику размера n+m, причём кликой размера 1 полагается отдельная вершина графа. Алгоритм завершается, как только ни одного слияния больше произвести нельзя. Время работы данного алгоритма линейно, однако он является эвристическим, поскольку не всегда приводит к нахождению клики максимального размера. В качестве примера неудачного завершения можно привести случай, когда вершины, принадлежащие максимальной клике, оказываются разделены и находятся в кликах меньшего размера, причём последние уже не могут быть «склеены» между собой.

Доказано, что, при условии неравенства классов P и NP, не существует полиномиального аппроксимационного алгоритма с абсолютной ошибкой равной произвольному k. Рассмотрим граф G и Gk=G×Ck - прямое произведение графа G и клики Ck размера k. Очевидно, что кликовое число графа Gk будет равно ω(Gk)=ω(G)k. Предположим, что существует аппроксимационный алгоритм A с абсолютной ошибкой равной k. Тогда подадим на вход A граф Gk+1 и при условии OPTA(I)+k получим ω(Gk+1)A(Gk+1)=(k+1)ω(G)A(Gk+1)k. Пусть Ci - клики графов вида Gi, где 1ik+1. Заметим справедливость неравенства Ciω(G) и подставим его в вышеописанное неравенство следующим образом: (k+1)ω(G)i=1k+1|Ci|k. После преобразования получим i=1k+1ω(G)|Ci|k, а значит, существует i такое, что Ci=ω(G) и, следовательно, задача о клике разрешима за полиномиальное время, что противоречит условию о неравенстве классов P и NP.

См. также

Примечания

Шаблон:Примечания

Литература

Ссылки

Шаблон:NP-полные задачи

Шаблон:Math-stub