NPC问题证明

来源:互联网 发布:nginx 模块 编辑:程序博客网 时间:2024/05/18 13:24

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个变量为真的赋值,如果赋值存在。证明STINGY SAT是NP完全问题。

证明:

设SAT一个有k个变量的实例f,(f,k)为STINGY SAT的一个实例,x为一组赋值
由于可以在多项式时间内验证x是否可以使(f,k)为真,所以STINGY SAT是NP问题
目标:SAT规约到STINGY SAT,即x是f的解当且仅当x是(f,k)的解
充分性:假设x是f的解,则至多有k个变量为真,x赋给(f,k)也为真,所以x是(f,k)的解
必要性:假设x是(f,k)的解,显然x也是f的解
所以STINGY SAT也是一个NPC问题

原创粉丝点击