NP完全问题证明1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
几个NP完全问题
什么是NP完全问题
NP完全问题,是世界七大数学难题之一。 NP 的英文全称是Non-deterministic Polynomial的 问题,即多项式复杂程度的非确定性问题。简 单的写法是 NP=P?,问题就在这个问号上, 到底是NP等于P,还是NP不等于P
七大数学难题
这七个“千年大奖问题”是: NP完全问题、霍奇猜想、 庞加莱猜想、黎曼假设、杨-米尔斯理论、纳卫尔- 斯托可方程、BSD猜想 千年大奖问题 美国麻州的克雷(Clay)数学研究所于2000年5月 24日在巴黎法兰西学院宣布了一件被媒体炒得火热的 大事:对七个“千年数学难题”的每一个悬赏一百万 美元。 其中有一个已被解决(庞加莱猜想),还剩六个.(庞 加莱猜想,已由俄罗斯数学家格里戈里·佩雷尔曼破解。 我国中山大学朱熹平教授和旅美数学家、清华大学兼 职教授曹怀东做了证明的封顶工作。)
均分∈ 8.5.5. 均分∈NPC 子集A :1≤ 子集A’ = {ai:1≤i≤k} 满足
a∈ A'
∑ s( a ) = B
当且仅当 M’ = {mi: ai∈A’}是M的匹配 } A的最后两个元素b1,b2 的最后两个元素b
s ( b1 ) = 2 ∑ s ( a i ) − B
i =1
k
s ( b2 ) = ∑ s ( a i ) + B
10
8.5.4 顶点覆盖问题 (VERTEX-COVER)
证 3SAT变换到 变换到VC. 将3SAT变换到VC. 设U={u1,u2,...,un}, C={c1,c2,...,cm}
是3SAT的实例. 如下构造图G, 分量设计法. 3SAT的实例. 如下构造图G, 分量设计法. 的实例 真值安排分量: 真值安排分量: 1≤ 其中V Ti=(Vi,Ei), 1≤i≤n, 其中Vi={ui,ūi}, Ei={{ui,ūi}} 任意覆盖必至少包含u 中的一个,否则不能覆盖边{u 任意覆盖必至少包含ui或ūi中的一个,否则不能覆盖边{ui或ūi}. 满足性检验分量: 满足性检验分量: Sj=(Vj’,Ej’), 1≤ j≤ m, ,E ), 1≤ 其中 Vj’={a1[j],a2[j],a3[j]} ={a Ej’={{a1[j],a2[j]},{a1[j],a3[j]},{a2[j],a3[j]}} ={{a 覆盖至少包含V 中的两个顶点 否则不能覆盖E 中的三角形 中的两个顶点, 覆盖至少包含Vj’中的两个顶点,否则不能覆盖Ej’中的三角形
均分∈ 8.5.5. 均分∈NPC
实例:有穷集A s(a)∈ 实例:有穷集A,∀a∈A, s(a)∈Z+. 问:是否存在A’⊆A,使得 是否存在A ⊆
a∈ A'
∑ s( a ) =
a∈ A− A'
∑ s( a )
证:显然均分是NP类问题。下面将3DM变换到均分问题 显然均分是NP类问题。下面将3DM变换到均分问题 NP类问题 3DM 3DM的实例 的实例, 设W,X,Y,M ⊆ W×X×Y 是3DM的实例, 其中|W| q, 其中|W| = |X| = |Y| = q, W = {w1,w2,… ,wq} X = {x1,x2,… ,xq} Y = {y1,y2,… ,yq} M = {m1,m2,… ,mk}
i =1
k
均分∈ 8.5.5. 均分∈NPC
a∈ A
∑ s(a ) = ∑ s(a i ) + s(b1 ) + s(b2 )
i =1 k
k
= ∑ s( a i ) + 2 ∑ s ( a i ) − B + ∑ s ( a i ) + B
6
8.5.2 3元合取范式的可满足性问题 (3-SAT)
问题描述: 问题描述:给定一个3元合取范式α,判定它是否 可满足。 证明思路: 证明思路: 3-SAT∈NP是显而易见的。为了证明3-SAT∈NPC, 只要证明CNF-SAT∝p 3-SAT,即合取范式的可满足性 问题可在多项式时间内变换为3-SAT。
8.5.4 顶点覆盖问题 (VERTEX-COVER) 联络边: 联络边: 沟通分量之间的关系 对于每个子句c 对于每个子句cj, 设cj = {xj,yj,zj}, 则 Ej’’={{a1[j],xj},{a2[j],yj},{a3[j],zj}} ={{a G = (V,E) ...∪ V = (V1∪V2∪...∪Vn)∪(V1’∪V2’∪...∪Vm’) ∪ ∪...∪ ) ...∪ E = E1∪E2∪...∪En)∪(E1’∪E2’∪...∪Em’) ∪ ∪...∪ ) ∪(E1’’∪E2’’∪...∪Em’’) ∪ ∪...∪ ) K = n +2m 显然构造可在多项式时间完成
8.5.4 顶点覆盖问题 (VERTEX-COVER) 例如 U = {u1,u2,u3,u4}, C = {{u1,ū3,ū4},{ū1,u2,ū4}}, 2× 则G如下,K = 4 + 2×2 = 8 如下,
8.5.4 顶点覆盖问题 (VERTEX-COVER)
中必包含T 设V’是V中不超过K的顶点覆盖, 则V’中必包含Ti中的一个顶点 是 中不超过K的顶点覆盖, 中必包含 和每个E 中的两个顶点 至少要n+2m个顶点. 中的两个顶点, n+2m个顶点 和每个Ej’中的两个顶点, 至少要n+2m个顶点. 而K=n+2m, 故V’中一 中一 定只包含每个T 中的一个顶点和每个E 中的两个顶点 中的两个顶点. 定只包含每个Ti中的一个顶点和每个Ej’中的两个顶点. 如下得到赋值 ui∈V’ ⇔ t(ui)=T
ūi∈V’ ⇔ t(ui)=F
中的三条边有两条被V 中的顶点覆盖, Ej’’中的三条边有两条被Vj’∩V’中的顶点覆盖, 第三条必被 中的三条边有两条被 ∩ 中的顶点覆盖 V’∩Vi中的顶点覆盖. 这表示在Vi中的这个顶点对应的文字取真. ∩ 中的顶点覆盖. 这表示在V 中的这个顶点对应的文字取真. 所以子句c 被满足. 从而C被满足. 所以子句cj被满足. 从而C被满足. U→{T,F}是满足 的一组赋值. 是满足C 则在T 设t: U→{T,F}是满足C的一组赋值. 若t(ui)=T, 则在Ti中取 顶点u 否则取ū 因为t满足子句c 顶点ui, 否则取ūi. 因为t满足子句cj, 在Ej’’中的三条联络边中至 中的三条联络边中至 少有一条被覆盖, 那么取E 中的另两条边的端点作为 中的端点 中的另两条边的端点作为V 少有一条被覆盖, 那么取Ej’’中的另两条边的端点作为V’中的端点 即可. 即可.
9
8.5.4 顶点覆盖问题 (VERTEX-COVER)
问题描述: 问题描述:给定一个无向图G=(V,E)和一个正整数k,判 定是否存在V’⊆V,|V’|=k,使得对于任意(u,v)∈E有u∈V’或 v∈V’。如果存在这样的V’,就称V’为图G的一个大小为k顶点覆 盖。 证明思路: 证明思路: 首先,VERTEX-COVER∈NP。因为对于给定的图G和正整数k 以及一个“证书”V’,验证|V’|=k,然后对每条边(u,v)∈E, 检查是否有u∈V’或v∈V’,显然可在多项式时间内完成。 其次,通过CLIQUE∝pVERTEX-COVER来证明顶点覆盖问题 是NP难的。
s( a i ) = 2 p ( 3 q − f ( i )) + 2 p ( 2 q − g ( i )) + 2 p ( q − h( i ))
w1 w2 … wq x1 x2 … xq y1 y2 … yq log(k+1), 注:p≥log(k+1),2p ≥k+1,k≤ 2p−1 , k+1, 当 k个1相加时不会产生段之间的进位 令
什么是NP完全问题
NP完全问题排在百万美元大奖的首位,足见他的显赫地位和无穷魅力。 在一个周六的晚上,你参加了一个盛大的晚会。由于感到局促不安,你想知道这 一大厅中是否有你已经认识的人。你的主人向你提议说,你一定认识那位正在甜 点盘附近角落的女士罗丝。不费一秒钟,你就能向那里扫视,并且发现你的主人 是正确的。然而,如果没有这样的暗示,你就必须环顾整个大厅,一个个地审视 每一个人,看是否有你认识的人。生成问题的一个解通常比验证一个给定的解时 间花费要多得多。这是这种一般现象的一个例子。与此类似的是,如果某人告诉 你,数13,717,421可以写成两个较小的数的乘积,你可能不知道是否 应该相信他,但是如果他告诉你它可以因式分解为3607乘上3803,那么 你就可以用一个袖珍计算器容易验证这是对的。人们发现,所有的完全多项式非 确定性问题,都可以转换为一类叫做满足性问题的逻辑运算问题。既然这类问题 的所有可能答案,都可以在多项式时间内计算,人们于是就猜想,是否这类问题, 存在一个确定性算法,可以在多项式时间内,直接算出或是搜寻出正确的答案呢? 这就是著名的NP=P?的猜想。 不管我们编写程序是否灵巧,判定一个答案是可以 很快利用内部知识来验证,还是没有这样的提示而需要花费大量时间来求解,被 看作逻辑和计算机科学中最突出的问题之一(斯蒂文·考克于1971年陈述)
8.5 一些典型的NP完全问题
部分NP完全问题树
5
8.5.1 合取范式的可满足性问题 (CNF-SAT)
问题描述:给定一个合取范式α,判定它是否可满足。 问题描述: 如果一个布尔表达式是一些因子和之积,则称之为合取范 式,简称CNF(Conjunctive Normal Form)。这里的因子是变量 x 或 x 。例如:( x 1 + x 2 )( x 2 + x 3 )( x 1 + x 2 + x 3 ) 就是一个合取范 式,而 x 1 x 2 + x 3 就不是合取范式。 要证明CNF-SAT∈NPC,只要证明在Cook定理中定义的布尔表 达式A,…,G或者已是合取范式,或者有的虽然不是合取范式, 但可以用布尔代数中的变换方法将它们化成合取范式,而且合取 范式的长度与原表达式的长度只差一个常数因子。
B = ∑ 2 pj = 2 p( 3q −1) + 2 p( 3Βιβλιοθήκη Baidu − 2 ) + ... + 2 2 p + 2 p + 20
j =0
3 q −1
B的段数与s(ai)一样,每段的最右位为1,其它为0 的段数与s(a 一样,每段的最右位为1 其它为0
均分∈ 8.5.5. 均分∈NPC
例如: 例如: W={w1,w2},X={x1,x2},Y={y1,y2}, M={(w1,x2,y2),(w1,x2,y1),(w2,x1,y1)} p=log(3+1)=2 p= og(3+1) 元素a1,a2,a3分别对应 元素a (w1,x2,y2),(w1,x2,y1),(w2,x1,y1) s(a1) = 01 00 00 01 00 01 = 210 + 24 + 20 s(a2) = 01 00 00 01 01 00 = 210 + 24 + 22 s(a3) = 00 01 01 00 01 00 = 28 + 26 + 22 B = 01 01 01 01 01 01
均分∈ 8.5.5. 均分∈NPC
构造A 构造A,|A| = k +2 对应于每个m 对应于每个mi = (wf(i),xg(i),yh(i)) 有ai. 为二进制数,分成3q 3q段 每段有p log(k+1) s(ai)为二进制数,分成3q段,每段有p = log(k+1)位,共计 3pq位 每段对应一个W 3pq位,每段对应一个W∪X∪Y中的元素. Wf(i),xg(i),yh(i) 所代 中的元素. 表的段的最右位为1 其它为0. 表的段的最右位为1,其它为0.
7
对于一个合取范式, 若每个子句有且仅有3个变元 时, 它的可满足性问题便称为3SAT问题。 定理 3SAT问题属于NPC。下证
8.5.3 团问题CLIQUE
问题描述: 问题描述:给定一个无向图G=(V,E)和一个正整 数k,判定图G是否包含一个k团,即是否存在,V’⊆V, |V’|=k,且对任意u,w∈V’有(u,w)∈E。 证明思路: 证明思路: 已经知道CLIQUE∈NP。通过3-SAT∝pCLIQUE来证 明CLIQUE是NP难的,从而证明团问题是NP完全的。
相关文档
最新文档