8.3 STINGY SAT is the following problem: given a set of clauses(each a disjunction of literals) and an integer k, find a satifying assignment in which at most k variables are true, if such an assignment exists, prove that STINGY SAT is NP-complete.
证明:
证明STINGY SAT是一个NPC问题,需证STINGY SAT是一个NP问题以及将SAT规约到STINGY SAT问题
①证明STINGY SAT是一个NP问题
STINGY SAT是SAT问题的延伸.设一个有k个变量的SAT实例F,且(F,k)是STINGY SET的一个实例,由于可在多项式时间内验证一组赋值是否使F为真,则同样可在多项式时间内验证该赋值是否使(F,k)为真.所以STINGY SAT是NP问题.
②将SAT规约到STINGY SAT
将SAT规约到STINGY SAT,即需证明SAT问题满足当且仅当STINGY SAT满足,即在上一小点的实例中,需证明一组赋值x是F的解当且仅当x是(F,k)的解.假设x是F的解,由于F有k个变量,所以x中最多k个变量为真,所以(F,k)也为真.当x是(F,k)的解时,即x使F为真且x中有小于或等于k个变量为真,所以x是F的解.
由于SAT是一个NPC问题,所以STINGY SAT是一个NPC问题得证.