老师课上布置的证明题

题目8.3

STINGY SAT is the following problem: given a set of clauses(each a disjunction of literals) ans 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 的解在多项式时间内是可以验证的。接下来只需要证明NP-complete SAT是归约到STINGY SAT的即可,即x是f的解当且仅当x是(f,k)的解。 
对于充分性方向, 
因为x是f的解,所以最多有k个变量为true,则x对于(f,k)也为真,所以充分性得证。 
对于必要性方向, 
因为x是(f,k)的解,x也是f的解。故必要性得证。 
综上所述,STINGY SAT是NP-complete问题

题目8.8

In theEXACT4SATproblem, 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 EXACT4SATis NP-complete.

解答过程:

首先,因为3SAT是NP-complete问题,下面只需要把3SAT问题在多项式时间内规约到4SAT问题上,即可证明4SAT问题是NP-complete问题。因为(a1∪a2∪a3)==(a1∪a2∪a3∪a4)∩(a1∪a2∪a3∪~a4),当a1∪a2∪a3为真时,(a1∪a2∪a3∪a4)∩(a1∪a2∪a3∪~a4)必为真,且a4和~a4必有一个是假的。假的语句对应的前面的a1∪a2∪a3必为真。同理,对于(a1∪a2),可以转为(a1∪a2∪a3∪a4)∩(a1∪a2∪a3∪~a4)∩(a1∪a2∪~a3∪a4)∩(a1∪a2∪~a3∪~a4)。当a1∪a2为真时,后面部分a3和a4不管怎么搭配,必为3个true,1个false,对于false的那个,其前面a1∪a2必为true。对于a1同理。 
故综上所述,EXACT4SATis NP-complete

题目8.10

Proving NP-completeness by generalization. For each of the problems below, prove that it is NP-complete by showing that it is a generalization of some NP-complete problem we have seen in this chapter.

  (a) SUBGRAPH ISOMORPHISM: Given as input two undirected graphs G and H, determine whether G is a subgraph of H (that is, whether by deleting certain vertices and edges of H we obtain a graph that is, up to renaming of vertices, identical to G), and if so, return the corresponding mapping of V (G) into V (H).

  (b) LONGEST PATH: Given a graph G and an integer g, find in G a simple path of length g.

  (c) MAX SAT: Given a CNF formula and an integer g, find a truth assignment that satisfies at least g clauses.

  (d) DENSE SUBGRAPH: Given a graph and two integers a and b, find a set of a vertices of G such that there are at least b edges between them.

  (e) SPARSE SUBGRAPH: Given a graph and two integers a and b, find a set of a vertices of G such that there are atmost b edges between them.

(f) SET COVER. (This problem generalizes two known NP-complete problems.)

  (g) RELIABLE NETWORK: We are given two n×n matrices,a distance matrix dij and a connectivity requirement matrix rij, as well as a budget b; we must find a graph G = ({1,2,…,n},E) such that (1) the total cost of all edges is b or less and (2)between any two distinct vertices i and j there are rij vertex-disjoint paths. (Hint: Suppose that all dij’s are 1 or 2, b = n,and all rij’s are 2. Which well known NP-complete problem is this ?)

问题解答

(a) 
这道题我们只需要把CLIQUE问题规约到子图同构问题即可。不失一般性,我们给定G和一个完全图K,下面只需要证明(K,G)的实例的解是正确的当且仅当G有一个g个顶点的团,即去证明K是不是G的子图的问题。若K是G的子图,即给出(K,G)的一个肯定解,G有一个g个顶点的团。故必要性得证。若G 有一个g个顶点的团,g个顶点的完全图也是G的子图,故综上所述,得证。

(b) 
其实就相当于找一条顶点数为g+1的哈密顿路,二者是对应的关系。

(c) 
g表示句子的总数,显然MAX SAT和这个SAT是对应的关系

(d) 
这道题其实是把CLIQUE规约成稠密子图的问题。令b=a(a-1)/2,由(a)显然(K,a,b)是稠密子图的一个实例解,当且仅当G中有一个g个顶点构成的团,且这个g个顶点是一个完全图,边数为a(a-1)/2。

(e) 
这道题其实是把独立集规约成稀疏子图的问题。对于独立集问题(G,k),可以令a=k, b=0,于是任意两个顶点之间没有边,规约成功。

(f) 
这道题其实是从点覆盖规约成集合覆盖。不失一般性,对于点覆盖问题(V, E),令集合覆盖问题中的K(最多可选的集合数),为点覆盖问题中最多可选边数,令所有集合元素的并集是点覆盖问题中的边集,令S(v)为和顶点v相邻的边的集合,故找点覆盖可以规约到找S(v)集合的集合覆盖。

(g) 
这道题其实是TSP问题规约到可靠网络问题。即它是TSP问题的推广,可知它也是NPC的。

题目8.12

The k-SPANNING TREE problem is the following. 
Input: An undirected graph G = (V,E) 
Output: Aspanningtreeof G in which each node has degree≤ k, if such a tree exists. 
Show that fo rany k ≥2: 
(a) k-SPANNING TREE is a search problem. 
(b) k-SPANNING TREE is NP-complete. (Hint: Start with k = 2 and consider the relation between this problem and RUDRATA PATH.)

问题解答

(a) 
确定生成树是否存在的问题,其实就是在看这个树中是否能包含这个图G的所有顶点,以及这个树中的所有顶点的度是否小于等于k,通过对G或者生成树实施搜索算法可以在多项式时间内解决上述问题,所以是搜索问题,也是NP问题。

(b) 
2-SPANNING TREE是一个Rudrata-PATH问题,Rudrata-PATH问题规约到2-SPANNING TREE上,如果G有2-SPANNING TREE,那么它存在Rudrata-PATH,故K-SPANNING TREE问题可以被Rudrata-PATH问题规约,又因为Rudrata-PATH是NPC问题,所以K-SPANNING TREE问题也是NPC问题。

题目8.14

Prove that the following problem is NP-complete: given an undirected graph G = (V, E) and an integer k, return a clique of size k as weill as an independent set of size k, provided both exist.

问题解答

这个问题可以被最大独立集问题规约,也就是说,令G1=G(V,E),再去掉G1的所有的边,得到G2,这个时候G1和G2有大小为D的集,当且仅当G存在大小为D的独立集。所以团和独立集的问题是等价的,所以这个问题是一个NPC问题。

题目8.15

Show that the following problem is NP-complete. 
MAXIMUM COMMON SUBGRAPH 
Input: Two graphs G1=(V1,E1) and G2=(V2,E2);a budget b. 
Output: Two set of nodes V1’属于V1, and V2’属于V2 whose deletion leaves at least b nodes in each graph, and makes the two graphs identical.

问题解答

最大独立集问题可以规约到最大公共子图的问题。即证G存在大小为D的独立集当且仅当存在G1=(V,E),G2=(V,空集),G1和G2有节点数大小为D的最大公共子图。对于必要性,当G 有大小为D的独立集时,图G中存在D个两两不相连的节点,所以G1和G2存在大小为D的最大公共子图。对于充分性,现在是G1和G2存在节点数为D的公共子图,则G1存在22不相连的D个点,所以G中存在大小为D的独立集。综上所述,最大独立集问题可以规约到最大公共子图的问题,最大公共子图问题是NPC问题。

题目8.16

菜谱和3SAT问题 
Input: n, the number of ingredients to choose from: D,the n*n “discord” matrix; some number p >= 0 
Output: The maximum number of ingredients we can choose with penalty <= p. 
Show that if EXPERIMENTAL CUISINE is solvable in polynomial time, then so is 3SAT.

问题解答 (不会做,这道题参考了网上的答案)

这道题其实就是把3SAT问题规约到菜谱问题,证明菜谱问题可以在多项式时间内解决。那么3SAT问题也能在多项式时间内解决。 
对于3SAT问题,假设其中一个语句是A,orBorC,那么,可以得出7种情况使这个语句成立。若~ABC为真,其中BC为真,那么A为假,他们之间不能成立。置K(~A,B)=1,K(~A,C)=1,K(B,C)1=,如果成立2个菜之间的K值为0,这样把一个菜谱中所有矛盾的菜的K值都置为1,那么得到的最后的3SAT问题中的总子句数就是菜谱中的最大材料的数量。因此若菜谱问题在多项式时间内得到解决,3SAT可以规约成一个菜谱问题。3SAT问题也可以在多项式时间内得到解决。

题目8.22

在任务调度,常常会用到图。其中节点应用于任务,任务i到j的有向边表示i是j的先期条件。这样的图描述了调度问题中的任务先后关系(约束) 。显然,一个调度是可行的当且仅当该图无环;如果调度不可行,我们需要使其无环所需的最小约束数量。 
给定一个有向图G =(V,E),子集E’⊆E称为一个反馈弧集,反馈弧集是指将其移除后,将使得G无环。 
反馈弧集(FAS):给定一个有向图G =(V,E)和预算b,求包含不超过b条边的反馈弧集合——如果这样的集合存在。 
(a)证明 FAS是NP的 
(b)证明,如果G包含一个大小B顶点覆盖,然后G’ 包含反馈弧集尺寸B. 
(c)证明如果G’ 包含反馈弧集大小B,则G包含一个大小为顶点覆盖(最多)B(提示:给出一个反馈弧在G0,大小B组你可能需要fiRST稍微修改一下获得另一个人这是一个更方便的形式,但该相同或更小的尺寸。然后,认为G必须包含一个顶点覆盖的大小相同的莫迪fiED反馈弧集。)

问题解答

(a) 
下面举个例子,有顶点覆盖(G,b),G是一个无向图。如果G=(V,E) 
有n个顶点v1,v2,……,vn, 令G0=(V0,E0)是一个有向图,有2n个顶点W1,W’1,W2,W’2……WN,W’N。有N+2|E|条有向边。(WI,i)所有i=1,2,…,n(W’i,Wj)和(W’j,Wj)(vi,vj)属于E。显然FAS可以在多项式时间内得到验证,故该问题是NP问题。

(b) 
给出2个图G和G’,G’中任意一顶点wi的出度为1,唯一的出边指向wi’,而对于wi’, 其入度为1,其唯一的入边来自于wi。假设现在C是G的一个规模为b的顶点覆盖集,任意的vi属于C,将边(wi,wi’)添加到E’,那么E’就是所要找的G的一个规模是b 的FAS,当我们将(wi,wi’)去掉后,wi不再有出边,wi’不再有入边。所以wi和wi’的出度是0,不可能存在一个环中,故得证,即若G包含规模为b的顶点覆盖,则G’有规模为b的反馈弧集合。

(c) 
取G的任意一条边(vi,vj),设边中顶点在G中对应着wi,wi’,wj,wj’,相对应的边就是(wi,wi’)和(wj,wj’),若E’是G’的一个大小是s的FAS,那么这3条边中一定有一条属于E’,否则会形成环,所以边e一定有一个端点属于(wi,wj),若wi是e的端点。那么将vi加入到集合C中,那么这样下去,我们得到的C就是G 的一个大小为s 的顶点覆盖,得证。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值