Задача 83.2 (КЛИКА). Дан граф = ( , ) и целое число > 0. Правда ли, что ( ) ≥ .
То есть необходимо ответить на вопрос, существует ли в графе в графе полный подграф с вершинами.
Задача о клике принадлежит к классу . Действительно, если известен ответ "да" и в качестве доказательства указан набор из вершин, можно за
полиномиальное время проверить, что эти вершины действительно образуют клику. Докажем -полноту задачи о клике, сведя к ней известную нам -полную
задачу о выполнимости.
Задача 83.3 (ВЫПОЛНИМОСТЬ). Дана конъюнктивная нормальная форма= ( 1) ( 2) ... ( ). Требуется ответить на вопрос, является ли эта формула выполнимой (то есть, найдется ли набор значений переменных, чтобы формула принимала значение 1.
Теорема 83.4 . ВЫПОЛНИМОСТЬ КЛИКА.
Доказательство. Покажем, что задача о выполнимости сводится за полиномиальное время к задаче о клике.
Пусть нам поставлена следующая задача о выполнимости: дана конъюнктивная нормальная форма = ( 1) ( 2) ... ( ), где — дизъюнкт, = 1, . Построим
граф = ( , ) следующим образом:
( ) = {( , ) | — литерал в },
( ) = {(( , ), ( , )) | ̸= , ̸= },
= .
1)Пусть выполнима. Значит на определенном наборе значений переменных
= 1. Тогда в каждом дизъюнкте найдется хотя бы один литерал = 1. Рассмотрим вершины ( , ) и ( , ) при ̸= . Поскольку на выбранном наборе
значений переменных = 1 и = 1, то ̸= . Следовательно вершины ( , ) и ( , ) соединены ребром в графе . Таким образом, множество вершин {( , ) | = 1, } порождает полный подграф в графе .
2) Пусть теперь в графе есть клика размера с вершинами ( 1, 1), ( 2, 2),
...( , ). Тогда ̸= , , = 1, . Следовательно можно таким образом подобрать значения переменных, чтобы все принимали значение 1 одновременно. Следовательно — выполнима.
3) Итак, мы показали, что формула является выполнимой тогда и только тогда, когда в графе имеется клика размера .
Осталось заметить, что построение графа можно выполнить за полиномиальное время от размера СКНФ .