吝啬SAT问题是这样的:给定一组子句(每个子句都是其中文字的析取)和整数k,求一个最多有k个变量为true的满足赋值安排——如果该赋值安排存在的话。要求证明吝啬SAT问题是NP-完全问题。
证明:
首先,我们容易知道吝啬SAT问题的解是可以在多项式时间内验证的。因为它的验证步骤只是在SAT问题解的验证步骤之后再加一步——判断该解中值为true的变量的数量与k的大小关系。因此,吝啬SAT问题属于NP问题。
对于任意一个SAT问题,我们都可以将其归约为一个在原SAT问题基础上加一个等于原问题中变量个数的k值的吝啬SAT问题。这两个问题是等价的。只要我们能够在多项式时间内解决后者,其实我们也就同时解决了前者。由于前者目前还是一个NP-完全问题,所以吝啬SAT问题也是NP-完全问题。证毕。