《算法概论》8.8

题目:
在精确的4SAT(EXACT 4SAT)问题中,输入为一组自居,每个字句都是恰好4个文字的析取,且每个变量最多在每个字句中出现一次。目标是求它的满足赋值——如果该赋值存在。证明精确的4SAT是NP完全问题。

证明:
用归约来证明:如果问题A可以归约到问题B,记作A->B,如果A是NP完全问题,则通过归约证明B也是NP完全问题。即问题的难度是通过箭头的方向传递的。

现在要证明EXACT 4SAT问题是NP完全问题,8.3节已经证明3SAT问题是NP完全问题,则:只要证明3SAT问题可以归约到EXACT 4SAT问题,就能通过归约公式证明EXACT 4SAT问题也是NP完全问题。

下面将3SAT问题归约到EXACT 4SAT问题:
给定3SAT的实例I,对I中的每个字句,包含的文字不超过3个,假设I=(a1∨a2∨a3)(a4∨a5∨a6)…(ak-2∨ak-1∨ak)。由于EXACT 4SAT要求每个变量最多在每个字句中出现一次,先对I中的字句去重(保证每个变量在字句中只出现一次)。对I中的字句i,如果i中存在相等的变量:

  1. i中存在s和t,使得as=at,则原字句i=(as∨at∨aw)=(as∨aw)。
  2. i中存在s和t,使得as等于at的反相,则原字句i=(as∨at∨aw)=true,对I的可满足性,可直接不考虑i,相当于将i消去。

去重后,对I中的每个字句,每个变量只在字句中出现一次,但是,每个字句的变量都不超过3,为每个字句增加不同的变量,添加变量x使字句(a1∨a2∨a3)变成(a1∨a2∨a3∨x),添加变量x,y使字句(a1∨a2)变成(a1∨a2∨x∨y)……逐个对每个字句添加变量使得它们都拥有不同的4个变量。这样,3SAT问题就归约为EXACT 4SAT问题。去重和添加变量的过程能在多项式时间内完成。因此,3SAT问题可以在多项式时间内归约为EXACT 4SAT问题,由于3SAT问题是NP完全问题,所以EXACT 4SAT问题也是NP完全问题。

以上,证明完毕。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值