课后练习8.3证明

来源:互联网 发布:国美集团美信网络诈骗 编辑:程序博客网 时间:2024/06/04 17:43

题目描述:

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的定义,即给定一组子句(每个子句都是其中文字的析取)和整数k, 求一个最多有k个变量为true的可满足赋值(若该赋值存在)。需要证明STINGY SAT是NP-完全问题。


证明如下:

先证明STINGY SAT是NP问题。给定STINGY SAT的实例 I' 。 则在多项式时间内,可以验证最多有k个变量为true的赋值是否能使得实例为真。故STINGY SAT是NP问题。

接下来再证明STINGY SAT是NP完全问题。我们知道SAT是NP-完全的,为了证明STINGY SAT是NP-完全问题,可以将SAT归约到STINGY SAT。给定SAT的实例 I (有k个变量)和 STINGY SAT的实例 I' (也有k个变量), 则需要证明一组变量的赋值X是I 的解,当且仅当X也是I’ 的解。

先证明充分性:设X是SAT的有k个变量的实例I 的解,则该解中最多有k个变量可以赋值为true,  故也满足最多有k个变量为true的STINGY SAT的实例 I’ ,则充分性得证。

再证明必要性:设X是最多有k个变量为true的赋值的STINGY SAT的实例I’ 的解,则易得X也是SAT的实例I 的解(其中变量个数为k个)。则必要性得证。

充分性、必要性均得证。所以STINGY SAT是NP-完全问题。

证明完毕。



通过证明本题,我进一步感受了NP-完全问题的证明思路,对课堂上没能完全消化的内容加深了理解,收获良多。

原创粉丝点击