算法_NP_证明

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.

证明:

由于可以在多项式时间内验证STINGY SAT的解,所以该问题属于NP问题。而将k设为所有变量的总数

时,就可以将SAT规约到STINGY SAT,因此该问题为NP完全问题。

 


8.8

In the EXACT 4SAT problem, the input is a set of clauses, each of which is a disjunction of exactly

four literals, and such that each variable occurs at most once in each clause. The goal is to find a

satisfying assignment, if one exists. Prove that EXACT 4SAT is NP-complete.

证明:

由于可以在多项式时间内验证EXACT 4SAT的解,因此该问题属于NP问题。为证明其NP完全性,考虑

通过将3SAT规约到EXACT 4SAT。对于任意一个3SAT实例,如果其中某个子句中包含同一个literal多次,

那么可以把这个多次出现的literal缩减为一次;如果同时包含某个literal的肯定和否定,则可以去掉它。另

外,可以在每个子句中添加一些哑变量(辅助变量,没有实际用处),这样就可以将每个子句中包含的

literal的数目增加到四个。因此,该3SAT实例可以转化为一个EXACT 4SAT问题。因此,可以证明该问

题是NP完全的。

 

posted @ 2017-07-04 16:24  陆离可  阅读(415)  评论(0编辑  收藏  举报