《算法概论》习题8.3证明

Exercise 8.3

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.

Proof

可以通过把 STINGY SAT 问题归约成 SAT 问题来进行求解:
假设现在有一个 SAT 问题的实例 I ,令 k=|I| 表示实例 I 中变量的个数,则 (I,k) 就是 STINGY SAT 问题的一个实例。我们需要证明的是,当实例 I 有解时,实例 (I,k) 也有解,当实例 I 无解时,实例 (I,k) 也必定无解。

  1. 假设实例 I 有一个解 S ,令 s 表示 S 中赋值为 true 的元素的数目,则必然有 sk ,因为 k 是实例 I 中的所有变量的总数。此时, S 显然是实例 (I,k) 的一个解。

  2. 假设实例 I 无解,此时可以使用反证法来证明实例 (I,k) 也必定无解。假设实例 (I,k) 有一个解 S ,由于 k 是实例 I 中的所有变量的总数,当 S 能够满足实例 (I,k) 时,它也一定能够满足实例 I ,因此 S 也是实例 I 的一个解,这与 实例 I 无解 矛盾。因此当实例 I 无解时,实例 (I,k) 也必定无解。

由此我们证明了:STINGY SAT 问题可以归约成 SAT 问题,而由于 SAT 问题是一个 NP-complete 问题,则STINGY SAT 问题也是一个 NP-complete 问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值