赞
踩
证明方法:
问题描述:
给定一个电路图,如果存在一组输入信号,使输出为"1",那么此电路使可满足的。
证明过程暂略。
问题描述:
由 N个布尔变元X1,X2,X3…Xn,和M个布尔连接符(如:与、或、非、蕴含、等价…)构成的布尔表达式F,如果存在一组布尔变元和布尔连接符实例,判别F输出为1,则为可满足。
证明过程:
1. 证明SAT属于NP问题:
给定一组布尔变元和布尔连接符的实例,即一个证书y,显然可以在多项式时间类判定是否F的输出为1 。即证SAT属于NP问题。
2. 证明CirsuitSAT问题可以在多项式时间内约简到SAT问题:
问题描述:由 3n个布尔变元X1(1)…Xn(1)…X1(2)…Xn(2)…X1(3)…Xn(3),构成的n个子句C1C2C3…Cn-1Cn,每个子句为Ci = (X1(i)或X2(i)或X3(i)),布尔表达式F=C1且C2且C3…且Cn-1且Cn,如果存在一组布尔变元赋值,可以判别F输出为1,则为3-CNF-SAT是可满足的。
证明过程暂略。
提示:SAT是可以通过公式构造,转化成3-CNF-SAT的。
如a+c*b 等价于(y2且 y2等价于c且b) 且 (y1且 y1等价于a且y2)
问题描述:
给定义一个无向图G = <V,E>和一个正整数k,是否可以在图G中找出一个大小为k的完全子图(一个团)。
证明过程:
1. 团问题是NP问题。
对于一个给定的无向图G和整数k,以顶点集V的一个子集V’做证书,只需要验证V’是否是G中的一个大小为k的团。显然,只需要检查V’中的任意两个点u,v,是否有(u,v)属于G,可以知道这能在多项式时间内完成。所以团问题是NP问题。
2. 一个3-CNF可满足性问题可以在多项式时间内约简成一个团问题。
约简算法构造:对于3-CNF-SAT的一个实例 F = C1 C2…C3…Cn-1Cn ,子句 Ci有三个不同的文字l1(i),l2(i),l3(i),对于两个子句中的两个文字 la(i)和 lb(j),如果满足
(1)i != j
(2)la(i)不是 lb(j)的非
那么在图G中可以用一条边连接 la(i)和 lb(j)
证明F是可满足的当且仅当G有一个大小为k的团。
a. 假定F是可满足的,那么每个子句中都可以给一个文字赋值为1,那么根据约简算法的构造,图G中一定有一个大小为k的团
b. 假定图G有一个大小为k的团,那么依据对应关系,团中的 k个点对应的 k个文字可以赋值为1,而这 k个文字属于 F中不同的子句,可以知道 F必然是可满足的。
问题描述:
给定一个无向图G<V,E>,和一个整数k,求是否存在一个点集V’,使得所有的(u,v)属于E,都有u属于V’或者v属于V’(或者u和v都属于V’),且V’的大小为k。
证明过程:
1. 证明VertexCover属于NP问题:
给定一个点集V’(即一个证书y),只需要遍历G中所有的边,判断其是否在点集V’上满足“顶点覆盖”的条件,易知这可以在多项式时间内判断,即VertexCover问题,可以在多项式时间内验证。所以VertexCover属于NP问题。
2. 证明一个Clique问题可以在多项式时间内约简到一个VertexCover问题:
只需要证明,团问题<G,k>图G有一个大小为k的团当且仅当顶点覆盖问题<!G, |V| - k>图!G有一个大小为|V| - k的顶点覆盖。(其中!G是G的补图)
团问题<G,k>可以推导顶点覆盖问题<!G, |V| - k>
设G有一个团V’且其大小为k,只需要证明V-V’是!G的顶点覆盖。
因为对于任意的(u,v)属于!E,有(u,v)不属于E,而团V’中的点任意两点都构成G中的边,所以u或者v至少一个属于V-V’。即任意的(u,v)属于!E,有u或者v属于V-V’。
顶点覆盖问题<!G, k>可以推导团问题<G,|V| - k>
设!G有一个顶点覆盖V’且其大小为k,只需要证明V-V’是G的团。 如果(u,v)属于!E,u或者v至少一个属于V’,反过来,u且v都不属于V’,那么(u,v)不属于!E,即(u,v)属于E,即V-V’构成G的一个完全子图。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。