您的位置:首页 > 其它

8.8 精确4SAT问题证明

2017-06-13 17:18 267 查看
思路:

若一个问题为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问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: