NPC问题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问题是这样的一个问题:给定一组字句(每个字句都是其中文字的析取)和整数k,求一个最多有k个变量为true的满足赋值——如果该赋值存在。证明STINGY SAT问题是NP完全问题

证明:

首先要证明STINGY SAT是一个NP问题,也即STINGY SAT问题的解可以在多项式时间内验证,设SAT一个有k个变量的实例f,(f,k)为STINGY SAT的一个实例,给定一组赋值,可以在多项式时间内验证这组赋值是否使(f,k)为真,所以STINGY SAT是NP问题

然后要证明SAT可以归约到STINGY SAT,如果这组赋值使f为真,则最多有k个变量为真,这组赋值赋给(f,k)也为真;如果这组赋值使(f,k)为真,显然也让f为真,因此f的解当且仅当这个也是(f,k)的解,因此SAT可以归约到STINGY SAT

又因为SAT问题是NP完全问题,于是STINGY SAT问题也是NP完全问题

你可能感兴趣的:(算法分析与设计习题)