课后习题8.8

8.8.证明 Exact 4 SAT是一个NP完全问题。

通过把3sat reduce到4sat实现

首先设想有3SAT实例 f1 = (x1 ∨ x2 ∨ x3) ∧(x4 ∨ x5 ∨ x6) .......(xn ∨ xn+1 ∨ xn+2)

其中x1~xn+2都是不同的变量,现在我们加入一个新变量a

通过这个变量的加入,对f1中的子句进行变形:

例如对于第一个子句(x1 ∨ x2 ∨ x3)  =>(x1 ∨ x2 ∨ x3 ∨ a )   ∧(x1 ∨ x2 ∨ x3 ∨ ¬a ) 


之后f1就转化为一个符合Exact 4 SAT要求的实力,命名为f2,该操作可以在多项式时间内完成


首先证明f1满足,f2必满足,如果存在一个赋值,使得f1为真,那么每个子句都为真,以第一个子句举例:(x1 ∨ x2 ∨ x3)  为真

其在f2对应的部分(x1 ∨ x2 ∨ x3 ∨ a )   ∧(x1 ∨ x2 ∨ x3 ∨ ¬a ) 为真,变量a可以任意取值,无论取什么值,都不影响。

同理f2中其他子句也都是为真,由此可以证明如存在一个赋值可以满足f1,那么一定有一个赋值可以满足f2



反过来,如果f2是真的话,那么(x1 ∨ x2 ∨ x3 ∨ a )   ∧(x1 ∨ x2 ∨ x3 ∨ ¬a ) 一定为真,而这两个子句中存在两个相反的变量a和¬a ,由此可知x1 ∨ x2 ∨ x3一定为真

同理,对于其他所有子句这么处理就能得到子句(x1 ∨ x2 ∨ x3) ,(x4 ∨ x5 ∨ x6) .......(xn ∨ xn+1 ∨ xn+2)皆为真,所以f2满足,f1也能满足


3SAT问题可以转化为4SAT问题,所以4SAT是一个NP完全问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值