如题一:
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.
给了一个无向图G=(V, E),以及一个整数k,要求返回一个大小为k的团(与大小为k的独立集等价)
团和独立集是两个相对的概念,但根据书上公理可知,寻找k个元素的团和寻找k个元素的独立集是等价命题。
对于任意一个有k个clause的3SAT表达式,可以对每个clause构造一个三角形的子图,(共有k个三角形)
对于每个变量,两种相反的形式之间连一条边,如果能够找到k个元素的独立集,必然k个点分布在k个三角形,即选择了k个变量,使得表达式满足。验证满足性显然是快速的。
于是,当我们用多项式时间算法解决k独立集问题时,我们就一定有多项式时间算法解决3SAT问题,所以k独立集问题是NP-complete problem.
同理,k独立集的等价命题k-clique可以先转换成k-independent的问题,也是NP-complete的。
如题二:
STINGY SAT is the following problem: given a set of clauses (each a disjunction of literals) and an integer k, find a satisfying assignment in which at most k variables are true, if such an assignment exists. Prove that STINGY SAT is NP-complete.
STINGY SAT指的是给定一个团集合(每一个都是析取范式)和一个整数k,确定是否可以找到一个适宜的赋值使得至多k个变量都是正确的。证明STINGY SAT 是一个NP-complete问题。
首先,SAT问题也称为合取范式的可满足问题,一个合取范式形如:A1∧A2∧…∧An,子句Ai(1≤i≤n)形如:a1∨a2∨…∨ak,其中ai是某一布尔变量。SAT问题是指是否存在一组对所有布尔变量的赋值(TRUE或FALSE),使得整个合取范式取值为真。
对于{x1, x2, …, xn}这样一组满足上述要求的解,可以在多项式时间内验证其正确性的,因此STINGY SAT属于NP问题。
把SAT规约到STINGY SAT:
- SAT是STINGY SAT的一个特例,假设SAT的函数为f,给定n个变量x1, x2, …, xn,最多有n个变量为真,那么(f, n)即可看成是STINGY SAT的实例。
- 假设STINGY SAT的实例是(f, n),那么(f, n)的一个真值指派,也一定是SAT函数f的一个真值指派,即f是SAT的实例
以上可把SAT规约到STINGY SAT,由于SAT是NP完全问题,我们可以吧STINGY SAT问题转换成一个SAT问题,所以STINGY SAT也是NP完全问题。