【算法概论】习题8.3答案

【算法概论】习题8.3答案

题目

8.3 吝啬SAT问题是这样的:给定一组子句(每个子句都是其中文字的析取)和整数k,求一个最多有k个变量为true的满足赋值——如果该赋值存在。证明吝啬SAT是NP-完全问题。

解答

要证明一个问题是NP-完全问题,需要证明以下两点:
1. 它是一个NP问题,且
2. 其他属于NP的问题都可归约成它。

第一点的证明很简单:为了找到一个最多有k个变量为true的满足赋值,可以依次判断每个子句中的变量个数是否最多为k,这个判断可以在多项式时间内完成。因此,吝啬SAT是一个NP问题。

对于第二点,由于已知所有的NP问题都可以被归约为SAT问题,因此我们只需要证明SAT问题可以被归约为吝啬SAT问题即可得证。

假设I是SAT的一个实例,若I中变量的总数为k,则(I, K)是吝啬SAT问题的一个实例。给定(I, K)的一个解S,则若S中至多有k个变量为true,则S也是I的解。因此,吝啬SAT的解也是SAT的解。从而,SAT问题归约为吝啬SAT问题。最终,证明吝啬SAT问题是一个NP完全问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值