这里给出的例子是教材《算法概论》P267的8.14。题目:
Prove that the following problem is NP-complete: given an undirected graph G = (V, E) and an integer k, return a clique of size k as well as an independent set of size k, provided both exist.
题目是说,给定一个无向图和整数k,要寻找一个大小为k的团和一个大小为k的独立集(假设都存在)。
首先,寻找一个大小为k的独立集,等价于寻找G的补图G’的大小为k的团,因此可以将问题简化为寻找一个无向图的大小为K的团。
我们将利用3SAT问题归约到K-团问题。
我们可以假设一个K个子句的3SAT问题,现在使用如下构造图的方式:不同字句中,符号不相反(如A与非A)的节点存在一条边。因此,如果我们找到了大小为K的团,则说明我们在K个子句里都找到了一个真值,3SAT成立。而如果K个子句的3SAT问题有解,则说明K个子句中都至少有一个真值,根据构造图的方式,只需要将每个子句中的那个真值找出,在图中对应的K个节点就会两两互连,成为一个大小为K的团。因此可以证明如果K个子句的3SAT问题是NP完全问题,K-团问题也是NP完全问题,题目8.14所描述的问题也是NP完全问题。