《算法概论》8.3

题目:

STINGY SET 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 SET is NP-complete.

解答:

**【翻译过来】:**STINGY SET问题是如下的问题:提供了一个clauses集合以及一个整数k,寻找到一个答案使得至多k个变量都是true,如果这样的答案存在。证明STINGY SET是NP完全问题。
解答:

1. 首先,可以依次判断每一个clauses里面的变量数是否小于等于k,这个操作是需要通过多项式计算次数完成的,因此可属于NP完全问题;

2. 其次,可以考虑将SAT规约到STINGY SET问题。

  • 给出一个SAT的实例I。那么当k是SAT实例I中所有变量总数的时候,(I, k)是STINGY SAT的一个问题实例。那么我们需要证明:I是SAT的一个实例当且仅当(I, k)是STINGY SAT的一个实例。
  • 假设I有一个答案S,那么S中不超过k个变量是true,因为变量的总数是k,因此S对于(I, k)同样成立。
  • 当(I, k)有一个答案S的时候,显然S也是I的的答案。

因此,可以将SAT规约到STINGY SAT,因此STINGY SAT问题是一个NP完全问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值