吝啬SAT问题是NP完全问题的证明
算法概论,第八章课后习题8.3
吝啬SAT问题是这样的:给定一组子句(每个子句都是其中文字的析取)和整数k,求一个最多有k个变量为true的满足赋值——如果该赋值存在。证明吝啬SAT问题为NP完全问题。
首先,证明吝啬SAT问题是NP问题:对于吝啬SAT问题的一个可能解,只需要把解中的每个变量的值带入原子句中,化简后判断其是否为true;另外还需要额外的判断这个解中变量为true的个数是否不大于k。根据这两个条件就可以得出结果了,而这两个步骤都可以在多项式时间内完成,所以吝啬SAT问题是NP问题。
接下来,证明吝啬SAT问题是NP完全的。已知SAT问题是NP完全问题,那么如果可以证明SAT问题可以归约为吝啬SAT问题,那么吝啬SAT问题也是NP完全的。
对于一个含有n个变量的SAT问题,构造一个吝啬SAT问题,并令k=n,其中每个子句都相同。这样就从SAT问题转换到了吝啬SAT问题。接下来就是证明这个归约是正确有效的。
如果吝啬SAT问题有解,那么这个解必然也是SAT问题的解,因为两者的子句是一样的。
如果吝啬SAT问题无解,那么SAT问题也必定无解。因为两个子句是一样的,如果SAT问题有解,那么这个解必然也能够成为吝啬SAT问题的解,又因为k=n,所以绝对不会有超过k个变量的值为true,所以如果吝啬SAT问题无解,那么SAT问题也必定无解。
那么,对于两个问题的转化,因为实际上并没有牵扯到具体的变化,所以时间复杂度是O(1)的,满足条件。
所以,SAT问题可以归约为吝啬SAT问题,所以吝啬SAT问题是NP完全的。
吝啬SAT问题是NP完全问题的证明相关推荐
- 8.3 证明STINGY SAT是NP完全问题
题目 STINGY SAT is the following problem: given a set of clauses(each a disjunction of literals) and a ...
- 什么是NP问题,什么是NP hard问题,什么是NP完全问题。
http://www.cs.pitt.edu/~ztliu/wordpress/2011/05/np-problem/ 首先解释一下什么是NP问题,什么是NP hard问题,什么是NP完全问题. 看下 ...
- 8.3 吝啬SAT问题
8.3 吝啬SAT问题是这样的:给定一组子句(每个子句都是其中文字的析取)和整数k,求一个最多有k个变量为true的满足赋值--如果该赋值存在.证明吝啬SAT是NP-完全问题. 解答: 若已知某个 ...
- 【计算理论】计算复杂性 ( 3-SAT 是 NP 完全问题 | 团问题是 NP 完全问题 | 团问题是 NP 完全问题证明思路 )
文章目录 一.3-SAT 是 NP 完全问题 二.团问题是 NP 完全问题 三.团问题是 NP 完全问题 证明思路 一.3-SAT 是 NP 完全问题 布尔可满足性问题 ( Boolean Satis ...
- 【计算理论】计算复杂性 ( NP 完全问题 - 布尔可满足性问题 ★ | 布尔可满足性问题是 NP 完全问题证明思路 ) ★
文章目录 一.NP 完全问题 - 布尔可满足性问题 ★ 二.布尔可满足性问题是 NP 完全问题证明思路 一.NP 完全问题 - 布尔可满足性问题 ★ 布尔可满足性问题 ( Boolean Satisf ...
- 【计算理论】计算复杂性 ( 无向图独立集问题 | 独立集问题是 NP 完全问题证明思路 | 证明独立集问题是 NP 完全问题 )
文章目录 一.独立集问题 二.独立集问题是 NP 完全问题证明思路 二.证明独立集问题是 NP 完全问题 一.独立集问题 无向图的独立集 , 指的是在无向图中找到点集的子集 , 使得它们两两之间 , ...
- 【计算理论】计算复杂性 ( 证明团问题是 NP 完全问题 )
文章目录 一.团问题是 NP 完全问题 证明思路 二.证明团问题是 NP 完全问题 一.团问题是 NP 完全问题 证明思路 证明一个命题是 NP\rm NPNP 完全问题 : ① 证明是 NP\rm ...
- 证明:hitting set是NP完全问题
<算法概论>P266 8.9 首先证明hitting set(我暂且翻译为击中集)是一个NP问题.给定该问题的一个实例,包括一组集合{S1,S2,...,Sn},大小限制b,再给定问题的一 ...
- 证明碰撞集(HITTING SET)问题是NP完全问题
问题描述: 给定一组集合{S1,S2,S3,-,Sn}和预算b,求一个集合H,其中H和所有Si相交且H的规模不超过b.求证该问题是NP完全问题 证明: (1)先证该问题是一个NP问题. 假设给出集合H ...
- 算法:NP问题,NP完全问题(NPC),NPhard问题
在做计算机算法关于NP完全问题这一章的作业的时候,发现有很多概念理解的不是很透彻,然后就反复看老师的讲义,在网上查阅各种资料,花了很多时间来弄懂这块的内容.发现书上的概念太正式,定义太标准,不容易很快 ...
最新文章
- 微软热门知识点之------c#3.0新特性【转】
- 一句话回复:关于'SqlMembershipProvider' requires a database schema compatible with schema version '1'...
- Hadoop之MapReduce程序应用一读取专利引用数据集并对它进行倒排
- .NET Core 和 DevOps
- 我的docker随笔14:MySQL操作实例
- Linux常用命令(二)——超详版
- python手机版-手机版python
- drds节点异常处理,docker节点进程一直重启
- 小学-综合素质【5】
- ecshop后台首页mysql_ecshop商城后台使用手册
- 【keil5调试】warning:enumerated type mixed with another type
- gpio_desc()的分析
- oa系统服务器地址怎么查找,oa系统的服务器地址怎么看
- 用 CPU 烤出来的肉,会特别香吗?
- 年度大促将至,企业如何进行性能压测
- 2019 年值得学习的顶级 JavaScript 框架与主题
- PC1 ping PC2 步骤
- 不用找,你想要的CAD图纸素材都在这里
- 图像兴趣点检测与描述 的深度学习方法总结
- CentOS7:内网中两台机器不能连接的问题(Destination Host Unreachable),实际为AP隔离问题