NP完全问题

来源:互联网 发布:视频dvd刻录软件 编辑:程序博客网 时间:2024/05/23 16:38

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.

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

证明:我们要证明吝啬SAT问题是NP完全问题,首先要证明吝啬SAT问题是NP问题,然后把SAT问题归约到吝啬SAT问题。吝啬SAT问题是SAT问题的一个变种,任何一个解都可以在多项式时间内验证,因此属于NP问题。另外,如果我们将k设为所有变量的总数,归约过程的时间复杂度为O(1),是多项式时间复杂度,就可以将SAT问题归约到吝啬SAT问题,已知SAT问题是NP完全问题,于是吝啬SAT问题也是NP完全问题。

8.8

In the EXACT 4 SAT 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 4 SAT is NP-complete.

在精确的4SAT(EXACT 4SAT)问题中,输入为一组字句,每个子句都是恰好4个文字的析取,且每个变量最多在每个子句中出现一次。目标是求它的满足赋值——如果该赋值存在。证明精确的4SAT问题是NP完全问题。

证明:已知3SAT是NP完全问题,我们只需将3SAT问题归约到EXACT 4SAT问题,便可以证明它是NP完全问题。

首先EXACT 4SAT的解是可以在多项式时间内验证的,属于NP问题。

对于任意一个3SAT实例,如果其中某个子句中包含了同一个文字多次,那么可以缩减为一次,如果同时包含了某个变量的肯定以及否定,那么可以去掉这个变量。然后,在每个子句中添加一些哑变量(即没有用的辅助变量),这样就可以将每个子句所包含的文字数目扩充到4个。如此,便将3SAT问题归约到了EXACT 4SAT问题,于是它是一个NP完全问题。

原创粉丝点击