算法设计8.3

来源:互联网 发布:高仿人民币淘宝支付 编辑:程序博客网 时间:2024/05/21 08:50

题目:

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

解答:

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

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

  2. 证明吝啬SAT为NP-完全问题。 
    SAT -> 吝啬SAT 
    令SAT问题中变量个数为k即得到吝啬SAT问题,此归约过程需要多项式时间。又因为SAT问题为已知的NP-完全问题,则吝啬SAT问题亦为NP-完全问题。