算法设计大作业 8章第3题

来源:互联网 发布:物理模拟实验室软件 编辑:程序博客网 时间:2024/05/16 00:45


题目

STINGY SAT is the following problem: given a set of clauses (each a disjunction of literals) and an integer k, find a satisfying assignment in which at most k variables are true, if such an assignment exists. Prove that STINGY SAT is NP-complete


大意:

定义一个STINGY SAT问题:给定一组子句(由文字通过逻辑或连接起来)和一个整数k,是否存在一个真值指派使得最多只有k个变量为真。证明这个问题是NP完全问题。


证明

  1. 首先说明一下SAT,SAT又叫可满足性问题,描述的是给定一个合取范式(CNF),要么给出它的一个真值指派,要么报告它不存在真值指派。
  2. 另外,给定一组解{x1, x2, …, xn},我们是可以在多项式时间内验证其正确性的,因此STINGY SAT属于NP问题。
  3. 接下来我们把SAT规约到STINGY SAT: 
    i) SAT是STINGY SAT的一个特例,假设SAT的函数为f,给定n个变量x1, x2, …, xn,最多有n个变量为真,那么(f, n)可以看成是STINGY SAT的实例。 
    ii) 假设STINGY SAT的实例是(f, n),那么(f, n)的一个真值指派,也一定是SAT函数f的一个真值指派,即f是SAT的实例

       以上可把SAT规约到STINGY SAT,由于SAT是NP完全问题,所以STINGY SAT也是NP完全问题。


原创粉丝点击