8.3 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是一个NP完全问题。STINGY SAT问题为:给定一组子句和一个整数k,如果存在的话,找到一个最多有k个变量为true的真值指派。
这个问题可以由SAT问题归约得到,事实上n个变量SAT问题就相当于k = n的STINGY SAT问题。
设x为一组赋值,若x是n个变量SAT问题的解,则显然x中值为true的变量数不会超过n,即最多只有k个变量为true,因此x也为k = n的STINGY SAT问题的解。同样的,若x为STINGY SAT问题的解,则其显然也为SAT问题的解。
可见SAT问题是很容易归约到STINGY SAT问题的,而且规约的时间复杂度为O(1),是多项式复杂度的。我们都知道SAT问题是NP完全问题,因此可知STINGY SAT问题也是一个NP完全问题。