8.8 精确4SAT问题证明
来源:互联网 发布:周琦体测数据 编辑:程序博客网 时间:2024/05/18 17:39
思路:
若一个问题为NP问题,要证明该问题是NPC问题,只需要将一个已知的NPC问题规约为该问题即可。
规约过程分两步:
- 将已知的NPC问题的实例转化为该问题的实例。
- 将该问题的解映射到NPC问题的解。
- 若该问题无解,则NPC问题也无解。
已知3SAT问题是NPC问题,所以 利用3SAT问题进行规约证明。
证明过程:
精确4SAT问题跟3SAT问题都是NP问题
规约过程:
给定一个3SAT问题的实例:X={x1,x2,...,xn} ,C={C1,C2,...,Cm} ,Ct=zt,1∨zt,2∨zt,3 ,然后将该问题的实例转换为4精确SAT问题的实例X′,C′ 。证明该规约是多项式时间的:
对于每个子句C′ 比C 多了1个变量,因此总体问题实例多了m个子句和m个变量,因此该规约仍是多项式时间的。对于3SAT问题,如果存在一个真值赋值
t ,那么其中的Ct 必为真,也就是其中必有一个文字为真值赋值,即Ct=zt,1∨zt,2∨zt,3 中必有一个变量为真值,那么对应于C′t=(zt,1∨zt,2∨zt,3∨yt,4)∧(zt,1∨zt,2∨zt,3∨¬yt,4) 也必为真,因此对应于4精确SAT问题也真值赋值t′ 。对于真值赋值
t′ ,我们可以知道其中的C′t=(zt,1∨zt,2∨zt,3∨yt,4)∧(zt,1∨zt,2∨zt,3∨¬yt,4) 为真。分两种情况对其中的赋值进行考虑,
case 1 : 设yt,4 为false值,则由(zt,1∨zt,2∨zt,3∨yt,4) 可知,(zt,1∨zt,2∨zt,3) 为真,此赋值即t 的赋值。
case 2 : 设yt,4 为true值,则由(zt,1∨zt,2∨zt,3∨¬yt,4) 可知,(zt,1∨zt,2∨zt,3) 为真,此赋值即t 的赋值。
所以由t′ 赋值可以得到t 的赋值。若真值赋值
t′ 不存在,也就是所有的C′t 不能同时为真,同样使用第五步的方法即可证明,此时所有的Ct 不能同时为真,所以当X′ 无解时,X 也无解。
综上所述,精确4SAT问题是NPC问题。
- 8.8 精确4SAT问题证明
- 8.8 精确的4SAT问题的NP-完全性证明
- 证明精确4SAT问题是NPC问题
- 精确4SAT问题np完全性证明
- 证明精确4SAT问题为NP完全问题
- 证明精确的4SAT是NP_完全问题
- 证明精确的4SAT是NP-完全问题
- 8.8 精确4SAT问题
- 【算法概论习题解答】8.8证明精确的4SAT是NP-完全问题
- 算法概论习题8.8——证明精确的4SAT是NP-完全问题
- 算法概论习题8.8 证明精确的4SAT问题是NP完全问题
- [NPC] 证明EXACT 4SAT问题是NPC问题
- 证明EXACT 4SAT问题为NP-complete
- EXACT 4SAT问题是NP完全问题的证明
- 证明题-算法概论8.3吝啬SAT问题证明
- 证明题-算法概论8.3证明吝啬SAT问题
- NP完全问题——证明EXACT 4SAT是NP完全问题
- 证明:EXACT 4SAT is NP-complete
- 新版本JQuery中toggle被淘汰后的替代方法
- Zlib库对网页中deflate压缩数据的解压
- 浏览器兼容问题汇总
- 编程之美2.12 快速寻找满足条件的两个数
- 数据库中筛选两个字段都等于一的数据
- 8.8 精确4SAT问题证明
- C++算法学习——经典的抽象设计——基于栈实现的buffer
- 用Object获取sql语句返回结果
- jsp
- angularJS $q $http 与promise对象的关系
- 日志文件切割服务logrotate配置及crontab定时任务的使用
- jquery 添加<table> 再添加鼠标点击事件
- git部分常用命令
- 面试题6:重建二叉树