算法概论 8.3习题证明

算法概论 习题 8.3



题目描述:

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



什么是SAT问题?

SAT问题也称为合取范式的可满足问题,一个合取范式形如:A1∧A2∧…∧An,子句Ai(1≤i≤n)形如:a1∨a2∨…∨ak,其中ai为文字,为某一布尔变量或该布尔变量的非。

SAT问题是指:是否存在一组对所有布尔变量的赋值(TRUE或FALSE),使得整个合取范式取指为真。



证明:

我们如果要证明吝啬SAT问题是NP-完全问题,我们首先要证明吝啬SAT问题是NP问题,之后,如果能把SAT问题规约到吝啬SAT问题,那么就能证明吝啬SAT问题是NP-完全问题

首先,吝啬SAT问题是NP问题 ,因为若已知某个与吝啬SAT问题变量对应的真值集合,可在多项式时间内将该集合带入吝啬SAT问题验证是否为解。故吝啬SAT问题为NP问题。

现在证明SAT问题可以规约到吝啬SAT问题,如果我们把吝啬SAT问题中的k设置为输入的数目,那么SAT问题就可以规约到吝啬SAT问题,所以吝啬SAT问题是NP-完全问题。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值