8.3 STINGY SAT
题目重述
STINGY SAT问题,是指:给定一组字句(每个都是文字的析取)和整数k,求一个最多有k个变量为真的满足赋值(若这样的赋值存在)。
证明STINGY SAT问题是NP完全问题。
证明步骤
首先,容易知道得到了STINGY SAT问题的一个解,要验证该解成立,则需要一个个带入子句赋值验证,所需为多项式时间,因而STINGY SAT问题是NP问题。
要证明STINGY SAT是NP完全问题,可由SAT问题归约得到 STINGY SAT即可证明。若STINGY SAT 问题中k恰为SAT问题总变量数,则此时的STINGY SAT即可转为SAT问题,已知SAT问题是NP完全问题则STINGY SAT问题是NP完全问题
8.8 EXACT 4SAT
题目重述
EXACT 4SAT是指:输入为一个子句集(每一个子句恰好由4个文字的析取组成,且每个变量在每个子句中最多出现一次)目标为找到其满足的赋值(如果这样的赋值存在)。证明EXACT 4SAT问题是NP完全问题
证明步骤
要证明EXACT 4SAT是NP完全问题,可以由3SAT问题归约得到。 对3SAT中每个子句进行变量去重:
- 若子句中同时出现p与~p,则消去该文字
- 若子句中出现多个相同文字,则仅保留为1个
变量去重后,则给每个子句添加哑变量使其变量个数达到4个,则3SAT归约成了EXACT 4SAT问题。因为3SAT是NP完全问题可得EXACT 4SAT也是NP完全问题
8.9 HITTING SET碰撞集
问题重述
在碰撞集问题中,给定一组集合 S1,S2...,Sn 和预算b, 我们希望求一个所有 Si 相交且大小不超过b的集合H(如果这样的H存在),即 H∩Si=ϕ
证明步骤
可利用最小顶点覆盖归约到碰撞集问题,最小顶点覆盖问题中的图G的每条边表示 Si,Si是一个二维向量 ,则最小顶点覆盖就是找与所有点相连的最小的边集,也就是与所有边相交的最小的边集。若最小边集的元素个数小于等于b,则碰撞集问题的H存在,反之则不存在。
由此最小顶点覆盖问题归约成了碰撞集问题,则碰撞集问题也是NP完全问题。