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.

在进行证明之前首先给出几个相关定义:

P类问题:在一个由问题构成的集合中,如果每个问题都存在多项式级复杂度的算法,这个集合就是 P 类问题

NP 类问题:能在多项式时间内检验一个解是否正确的问题。NP
类问题也等价为能在多项式时间内猜出一个解的问题。这里的“猜”指的是如果有解,那每次都能在很多种可能的选择中运气极佳地选择正确的一步。

NPC问题:不同的 NP 问题之间也会出现可归约的关系,甚至存在这么一类(不只是一个)问题,使得任何其它的 NP
问题都能归约到它们上。也就是说,能够解决它们的算法就能够解决所有其它的 NP 问题。这一类问题就是 NPC 问题。

我们已知SAT问题是NPC问题,那么要证明Stingy SAT是NPC问题,只需要将SAT问题归约到Stingy SAT问题,也就是说,证明解决了Stingy SAT问题就可以解决SAT问题,证明如下:

给定一个SAT的问题实例I,令(I, k)为有k个变量的STINGY SAT问题实例。我们可以证明,一组赋值S是I的解当且仅当S也是(I, k)的解。

必要性:假设S为I的解,那么因为一共只有k个变量,所以S中也有不超过k个变量可为真。所以S也是(I, k)的解。
充分性:假设S是(I, k)的解,那么显然它也是对应I的解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值