第八章NP完全问题

合集下载

算法分析设计NP完全问题PPT课件

算法分析设计NP完全问题PPT课件

if(a[j]==x) { cout<<j;
Success();
执行时间都为O(1) //不确定算法成功终止
}
cout<<-1; Failure(); }
若算法执行中需作出一系列的Choice函 数//不选确择定,算当法且失仅败当终C止hoice的任何一组选 择都不会导致成功信号时,算法在O(1)时 间不成功终止。
在不不确确定定搜机索上算执法行:的算法称为不确定算法(non
dveotiedrSmeianricsht(iicntaal[g],oTrxit)hm如)果。一个判定问题实例的解为真,
Hale Waihona Puke {Choice函数每一次总能在O(1)时间
int j=Choice(0,n-1); 内//从做{出0,1导,.致..,n成-1功}中的任正意确选选取择一。个值
即: ✓求解Q1的确定算法是通过调用求解Q2的确定算法完 成的, ✓对Q2算法实施的调用过程所需的时间是多项式时间 的。 那么:只要对问题Q2存在多项式时间求解算法,问题 Q1就能在多项式时间内得以求解。
第15页/共29页
约化存在以下性质: 性质10-1 若Q1∈P,Q2∝Q1,则有Q2 ∈P。 性质10-2 (传递性) 若Q1∝Q2,Q2∝Q3,则Q1∝Q3。
因为:对n个布尔变量赋值需要O(n)时间,计算公式 E(x,n)的时间为O(e),e是公式长度。
所以,可满足性问题的不确定算法时间为O(n+e)。
第13页/共29页
10.1.3 P类和NP类问题
P类问题:可在多项式时间内用确定算法求解的判定 问题。 NP类问题:可在多项式时间内用不确定算法求解的 判定问题。(多项式时间内可验证问题的解。)

参考资料NP完全问题-一些重要的概念.ppt

参考资料NP完全问题-一些重要的概念.ppt
2019/3/20 8
第一个难解的“可判定”问题是在六十年代初获 得的,它是Hartmanis和Stearns[1965]的复杂性 “谱系”工作的一部分,但是,这些结果只包括一些 “人工制造的”问题,它们被专门构造成具有所需要 的性质。直到七十年代初,Meyer和 Stockmeyer[1972],Fischer和Rabin[1974]以及 其他人终于成功地证明某些“自然的”可判定问题是 难解的,这些问题包括自动机理论、形式语言理论以 及数理逻辑中以前研究过的各种问题。实际上,他们 的证明表明甚至用“非确定型” (nondeterministic)计算机模型也不可能在多项式 时间内解这些问题,这种“非确定型”计算机模型具 有执行无限多个独立的并行计算序列的能力。这种 “不合理的”计算机模型在NP完全性理论中起着重要 的作用。 2019/3/20 9
2019/3/20
10
3、NP完全问题
• 可以用“非确定型”计算机通过多项式时间算法求解 的问题称为“NP类”问题。理论工作者们一方面继续 寻找更有力的方法来证明问题的难解性,同时又在努 力研究就难度而言各种问题相互联系的方式。发现问 题之间的这种相互联系常常可以给算法设计人员提供 有用的信息。证明两个问题相关的基本方法是通过给 出一个构造性变换把第一个问题的任一实例映射到第 二个问题的一个等价的实例,从而把第一个问题“归 约”为第二个问题。这样的变换提供了一个手段,把 解第二个问题的任何算法转变成解第一个问题的相应 的算法。
2019/3/20
16
实用中,知道一个问题是NP完全的就给我们提供 了有价值的信息,告诉我们采用什么样的途径可以是 最富有成效的。一定不要去优先寻找有效的、精确的 算法。现在比较适当的途径是集中精力致力于其他较 低目标的方法。例如,你可以寻找解决这个问题的各 种特殊情况的有效算法。寻找在大多数情况下看来能 快速运算的算法,虽然不能保证它在任何情况下都能 快速地运算。或者你甚至可以放松问题的某些方面, 寻找一个只能给出满足大部分要求的快速算法。简言 之,NP完全性理论的初步应用是帮助算法设计人员找 到最有可能得到有用的算法的努力方向。

NP完全问题(上课)选读

NP完全问题(上课)选读

NP类问题
NP类: 由具有多项式时间的非确定性算法求解的判 定问题形成的一个计算复杂类,记为NP类。
NP—难解的问题 NP—Nondeterministic Polynomial
NP类问题举例—货郎担问题
例:货郎担的判定问题:给定n个城市、正常数k及城 市之间的费用矩阵C,判定是否存在一条经过所有 城市一次且仅一次,最后返回初始出发城市且费用 小于常数k的回路。
NP完全问题
1 什么是好算法?
算法的种类和数量积累到一定程度时,需要对 算法进行比较和分类。 什么是好算法?Edmonds,1975年提出了一个被 沿用至今的标准。
Edmonds算法标准
Edmonds算法标准指出具有多项式时间的算法为好 算法。 多项式时间算法:如果П 是任意一个问题,对П 存 在着一个算法,它的时间复杂性为O(nk),其中n为输 入规模,k为非负整数,就认为存在着一个解问题П 的多项式时间算法。
算法A用非确定算法在多项式时间内推测一条回路 A用确定算法在多项式时间内判定回路是否是哈密 尔顿回路,是否费用和小于k,返回yes或no。

NP类问题举例—求真因子问题
例:有一个国王向邻国公主求婚。公主出了一道题: 求出48 770 428 433 377 171的一个真因子。若 国王能在一天之内求出答案,公主便接受他的求 婚。 国王,顺序除,一天未算出。 223 092 827 宰相,给全国百姓编号,用自己的编号去除公主 给的数,除尽的报数,领赏。
T(n) 10n 20n 5nlogn 2n2 2n n 1000 500 250 70 13 n′ 10000 5000 1842 223 16
10
变化 n′=10n n′=10n 10 n<n′<10n n n′=n+log10≈n+3

NP完全的问题

NP完全的问题

NP完全的问题一个NP-完全的问题具有如下性质:它可以在多项式时间内求解,当且仅当所有的其他的NP-完全问题也可以在多项式时间内求解。

P是所有可在多项式时间内用确定算法求解的判定问题的集合。

NP 问题是所有可用多项式时间算法验证其猜测准确性的问题的集合。

令L1和L2是两个问题,如果有一确定的多项式时间算法求解L1,而这个算法使用了一个在多项式时间内求解L2的确定算法,则称L1约化为L2。

如果可满足性约化为一个问题L,则称L问题是NP-难度的。

如果L是NP难度的且L(-NP,则称L是NP-完全的。

NP并不是NON-POL YNOMIAL,把NP说成是NON-POL YNOMIAL,是望文生义,读书不求甚解。

事实上,如果你能够证明某个NP问题是个NON-POL YNOMIAL的问题,你就可以去领那七个百万美元数学大奖中间的一个了。

数学上著名的NP问题,完整的叫法是NP完全问题,也即“NP COMPLETE”问题,简单的写法,是NP=P?的问题。

问题就在这个问号上,到底是NP等于P,还是NP不等于P。

证明其中之一,便可以拿百万美元大奖。

这个奖还没有人拿到,也就是说,NP 问题到底是Polynomial,还是Non-Polynomial,尚无定论。

NP里面的N,不是Non-Polynomial的N,是Non- Deterministic,P代表Polynomial倒是对的。

NP就是Non-deterministic Polynomial的问题,也即是多项式复杂程度的非确定性问题。

如果一个判定性问题的复杂度是该问题的一个实例规模n的多项式函数,则这种可以在多项式时间内解决的判定性问题属于P类问题。

P类问题就是所有复杂度为多项式时间的问题的集合。

通俗地称所有复杂度为多项式时间的问题为易解的问题类,否则为难解的问题。

有些问题很难找到多项式时间的算法(或许根本不存在),例如“找出无向图中哈米尔顿回路”问题。

但如果给了该问题的一个答案,可以在多项式时间内判断这个答案是否正确。

NP完全问题证明PPT幻灯片

NP完全问题证明PPT幻灯片

aA
i 1
k
k
k
s(ai ) 2 s(ai ) B s(ai ) B
i 1
i 1
i 1
k
4 s(ai ) i 1
假设A’ A使得A’和A-A’的元素大小之和相等,即
k
s(a) s(a) 2 s(ai )
aA'
aA A'
i 1
由于
k
s(b1 ) s(b2 ) 3 s(ai )
设V’是V中不超过K的顶点覆盖, 则V’中必包含Ti中的一个顶点 和每个Ej’中的两个顶点, 至少要n+2m个顶点. 而K=n+2m, 故V’中一 定只包含每个Ti中的一个顶点和每个Ej’中的两个顶点.
如下得到赋值 uiV’ t(ui)=T
ūiV’ t(ui)=F
Ej’’中的三条边有两条被Vj’V’中的顶点覆盖, 第三条必被 V’Vi中的顶点覆盖. 这表示在Vi中的这个顶点对应的文字取真. 所以子句cj被满足. 从而C被满足.
(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
问题描述:给定一个3元合取范式α,判定它是否可 满足。
证明思路: 3-SAT∈NP是显而易见的。为了证明3-
SAT∈NPC,只要证明CNF-SAT∝p 3-SAT,即合取 范式的可满足性问题可在多项式时间内变换为3-SAT。

NP-完全问题(NP

NP-完全问题(NP

不确定的算法:伪代码


Void nondetA(String input) String s=genCertif(); boolean checkOK=verifyA(input,s) if (checkOK) Output “yes“ return checOK为false时不作反应.
类NP:几点说明
1 2 3 4 5
P=NP?


类NP:由不确定的多项式界算法的判定问题 构成的类称为类NP。 P=NP?是计算机科学中最大的问题之一
输入尺寸(the size of input)(1)



是否存在j, k>1使得n= jk?即n 是否为一合数? factor=0; for (j=2;j<n;j++) if ((n mod j)==0) factor=j; break; return factor (n mod j)计算时间为Θ(log2n)(bit级运算). 算法的复杂度为Θ(nlog2n).但n是输入长度m=log2n 的指数函数.所 以它是指数复杂度算法. Manindra Agrawal 等证明了: ”n是否为一素数?” 属于P

它是NP问题, 同时它还是NP-难度问题. 所有NP-完全问题,相对于多项式约化关系,是自反, 对称,传递的,即构成一个闭类. 如果能找到一个NP完全问题的多项式算法则P=NP 有NP-难度问题但不知它是否在NP类内(第kth重子 集问题)

NP-完全问题的性质


Problems-unknown in NP
宫秀军
天津大学计算机科学与技术学院 gongxj@
主要内容

NP-完全问题:一些典型的例子 NP-完全问题:相关定义 近似算法 两种新的计算模型

计算的复杂性 第八章 NP完全性证明

计算的复杂性 第八章 NP完全性证明

2019/11/22
电子科技大学计算机学院 顾小丰
99 - 13
计算的复杂性
第8章 NP完全性证明
8.1.2 三维匹配
三维匹配问题是经典的“婚姻问题”的推广,“婚姻问题” 的提法是:有几个未婚男子和几个未婚女子以及一张列出所有双 方都表示愿意结合在一起的一对对男子和女子的表格,问是否能 安排几对婚姻使得每个人都与自己愿意接受的配偶结婚并且不出 现重婚?类似地,在三维匹配问题中,集合W,X和Y对应于三个不 同的性别,而M中的每一个三元组对应一对这三个成员都能接受的 三方婚姻。和前一个问题类似,普通的婚姻问题可以在多项式时 间内解决,而3DM是NP完全的。
问:M是否包含一个匹配,即是否有子集M’M使得 |M|’=q且M'中任何两个元素的任何坐标都不相同?
2019/11/22
电子科技大学计算机学院 顾小丰
99 - 3
计算的复杂性
第8章 NP完全性证明
3. 节点覆盖(VC)
实例:图G=(V,E)和正整数k≤|v|。 问:G是否有大小不超过k的节点覆盖,即是否有子集 V’ V使得|V’|≤k并且对每一条边(u,v)∈E,u 和v中至少有一个属于V'?
中,我们已知的NP完全问题会不断地增加,并且在证明问题Π 的
NP完全性时可以利用所有在Π 之前证明了NP完全性的问题。图8-1
说明我们把哪个问题变换到这六个基本问题中的每一个。如果把
一个问题变换到另一个问题,这里就画一个箭头从第一个问题指
向第二个问题。即使当他的顺序和我们的一样精炼时,为了说明
某些一般性的证明方法,我们有时还是修改或替换了原来的变换
Tit {(ui[j], ai[j], bi[j]) : 1 j m)}

NP完全问题证明

NP完全问题证明

几个NP完全问题什么是NP完全问题NP完全问题,是世界七大数学难题之一。

NP 的英文全称是Non-deterministic Polynomial的问题,即多项式复杂程度的非确定性问题。

简单的写法是NP=P?,问题就在这个问号上,到底是NP等于P,还是NP不等于P七大数学难题这七个“千年大奖问题”是:NP完全问题、霍奇猜想、庞加莱猜想、黎曼假设、杨-米尔斯理论、纳卫尔-斯托可方程、BSD猜想千年大奖问题美国麻州的克雷(Clay)数学研究所于2000年5月24日在巴黎法兰西学院宣布了一件被媒体炒得火热的大事:对七个“千年数学难题”的每一个悬赏一百万美元。

其中有一个已被解决(庞加莱猜想),还剩六个.(庞加莱猜想,已由俄罗斯数学家格里戈里·佩雷尔曼破解。

我国中山大学朱熹平教授和旅美数学家、清华大学兼职教授曹怀东做了证明的封顶工作。

)什么是NP完全问题NP完全问题排在百万美元大奖的首位,足见他的显赫地位和无穷魅力。

在一个周六的晚上,你参加了一个盛大的晚会。

由于感到局促不安,你想知道这一大厅中是否有你已经认识的人。

你的主人向你提议说,你一定认识那位正在甜点盘附近角落的女士罗丝。

不费一秒钟,你就能向那里扫视,并且发现你的主人是正确的。

然而,如果没有这样的暗示,你就必须环顾整个大厅,一个个地审视每一个人,看是否有你认识的人。

生成问题的一个解通常比验证一个给定的解时间花费要多得多。

这是这种一般现象的一个例子。

与此类似的是,如果某人告诉你,数13,717,421可以写成两个较小的数的乘积,你可能不知道是否应该相信他,但是如果他告诉你它可以因式分解为3607乘上3803,那么你就可以用一个袖珍计算器容易验证这是对的。

人们发现,所有的完全多项式非确定性问题,都可以转换为一类叫做满足性问题的逻辑运算问题。

既然这类问题的所有可能答案,都可以在多项式时间内计算,人们于是就猜想,是否这类问题,存在一个确定性算法,可以在多项式时间内,直接算出或是搜寻出正确的答案呢?这就是著名的NP=P?的猜想。

第八章 N完全问题

第八章 N完全问题

第八章 NP-完全问题§1 关于问题及算法的描述为了应用算法复杂性理论,首先要对问题、问题的一般描述、计算模型、算法、算法的复杂性给出严格的定义。

但在给出精确定义之前,我们先回顾一下有关概念的粗略解释。

所谓一个问题(problem)是指一个有待回答、通常含有几个取值还未确定的自由变量的一个一般性提问(question)。

它由两部分构成:一是对其关于参数的一般性描述;二是对该问题的答案所应满足的某些特性的说明。

而一个问题的某个实例则可通过指定问题中所有参数的具体取值来得到。

以下用∏表示某个问题,用I 表示其实例。

旅行商问题的参数是由所需访问城市的一个有限集合},,,{11m C C C C Λ=和C 中每对城市j i C C ,之间的距离),(j i C C d 所组成。

它的一个解是对所给城市的一个排序(1)(2)(),,,m C C C πππL使得该排序极小化下面表达式(目标函数)的值),(),()1()()1(11)(ππππC C d C C d m i m i i ++-=∑旅行商问题的一个实例是通过指定城市的数目,并指定每两个城市之间的具体距离而得到的。

例如:{}4321,,,C C C C C =,3),(,9),(,6),(,9),(,5),(,10),(434232413121======C C d C C d C C d C C d C C d C C d就是旅行商问题的一个实例,这个实例的一个最优解是排序1342,,,C C C C ,因为四个城市的这个排序所对应旅行路线是所有可能环游路线中长度最小的,其长度为27。

目前广泛采用的描述问题的方法主要有两种:一是将任一问题转化为所谓的可行性检验问题(feasibility problem);二是把问题转化为判定问题(decision problem)。

实际中几乎所有问题都可直接或间接地转述为判定问题。

判定问题是答案只有“是”与“非”两种可能的问题。

第8章_NP完全性理论

第8章_NP完全性理论
➢ 注意:NP类问题是对于判定问题定义的。事实上,可以在多项式时 间内由非确定性算法解决的所有问题都属于NP类问题。
13
8.2 P类问题和NP类问题
P类语言与NP类语言:
❖ P={L|L是一个能在多项式时间内被一台DTM所接受的语言} ❖ NP={L|L是一个能在多项式时间内被一台NDTM所接受的语言}
21
8.3 NP完全问题
NP完全问题:
令P1是一个判定问题,如果问题P1属于NP类问题,并 且对NP类问题中的每一个问题P2,在P2∝pP1,则称判 定问题P1是一个NP完全(NP Complete, NPC)问题。
NP类问题
NP完全(NPC) 问题
22
8.3 NP完全问题
对于“NPC问题”的论述:
12
8.2 P类问题和NP类问题
NP(Non-deterministic Polynomial)类问题:
➢ 如对于某个判定问题,存在一个非负整数k,对于输入规模为n的实 例,能以O(nk)的时间运行一个非确定性算法得到是或否的答案。 • 能用非确定算法在多项式时间内求解的判定问题。如哈密尔顿回 路问题。 • NP类问题是难解问题的一个子类。 • NP类问题并不要求给出一个算法来求解问题本身,而只要求给 出一个确定性算法在多项式时间验证它。
➢ 求解配对问题,需要进行三次变换: • 将配对问题的输入X,Y变成排序问题的两个输入I1′, I2′; • 应用算法A对I1′, I2′分别排序,得到两个排序输出O1′, O2′; • 将两个排序输出O1′, O2′转换成配对问题的输出O。 • 以上操作可在多项式时间内完成,因此该变换为多项式时间变换
• STEP3:确定性地检查V’的团性质。若V’是一个团则接受输入,

算法设计与分析课件--NP完全性理论-NP完全问题及近似算法

算法设计与分析课件--NP完全性理论-NP完全问题及近似算法
算法设计与分析
1
第八章 NP完全性理论
目录
8.1 异解问题和难解问题
8.2 P类问题和NP类问题
8.3
NP完全问题
8.4 NP完全问题的近似算法
2
8.3 NP完全问题
问题变换:
➢ NP类问题在最坏情况下的时间复杂性一般都是快速增长的指数函 数。希望能够在NP类问题内部找到一种方法,比较两个问题的计 算复杂性。
❖该近似算法的相对误差定义为=
cc* c*
。若对问题的输
入规模n,有一函数ε(n)使得 c c* ≤ε(n),则称ε(n)
c*
为该近似算法的相对误差界。
13
8.4 NP完全问题的近似算法
NPC问题的近似算法示例 - TSP:
➢ 给定一个完全无向图G=(V,E),其每一条边(u,v)∈E有一非 负整数费用c(u,v)。要找出G的最小费用哈密顿回路。如果 TSP满足三角不等式性质,即对于任意3个顶点u,v,w∈V有 :c(u,w)≤c(u,v)+c(v,w),则称该TSP为欧几里得TSP,否 则称为一般TSP。
12
8.4 NP完全问题的近似算法
NPC问题的近似算法的性能:
❖若一个最优化问题的最优值为c*,求解该问题的一个近 似算法求得近似最优解相应的目标函数值为c,则将该近 似近≤似算ρ比法(是n的)问。近题ρ似输(比n入)定为规义1模时为n,的求=一m得a个x的c函c*近, c数c*似 ρ。解(在为n)通最,常优即情解m况a。x 下cc* ,,cc*该
➢ 传递性:设P1、P2和P3是3个判定问题。若P1∝τ(n)P2,且P2∝τ(n)P3 ,则P1∝τ(n)P3。
4
8.3 NP完全问题
多项式时间变换示例:

算法分析与设计课件NP完全问题

算法分析与设计课件NP完全问题

17
近似算法的性能
若一个最优化问题的最优值为c*,求解该问题的一个 近似算法求得的近似最优解相应的目标函数值为c,则将 c * c max , 该近似算法的性能比定义为= c 。在通常情况 c* 下,该性能比是问题输入规模n的一个函数ρ(n),即 c * c max , ≤ρ(n)。 c c* 该近似算法的相对误差定义为= c * 。若对问题 cc* 的输入规模n,有一函数ε(n)使得 c * ≤ε(n),则称 ε(n)为该近似算法的相对误差界。近似算法的性能比 ρ(n)与相对误差界ε(n)之间显然有如下关系: ε(n)≤ρ(n)-1。
4
这种问题的答案,是无法直接计算得到的,只能通过间 接的“猜算”来得到结果。这也就是非确定性问题。而这些 问题的通常有个算法,它不能直接告诉你答案是什么,但可 以告诉你,某个可能的结果是正确的答案还是错误的。这个 可以告诉你“猜算”的答案正确与否的算法,假如可以在多 项式时间内算出来,就叫做多项式非确定性问题。而如果这 个问题的所有可能答案,都是可以在多项式时间内进行正确 与否的验算的话,就叫完全多项式非确定问题。
2
10
接受该语言CLIQUE的非确定性算法:用非确定性选择指令选 出包含k个顶点的候选顶点子集V,然后确定性地检查该子集是否 是团问题的一个解。算法分为3个阶段: 算法的第一阶段将输入串w#v分解,并计算出n= | w | ,以及 用v表示的整数k。若输入不具有形式w#v或|w|不是一个平方数就 2 拒绝该输入。显而易见,第一阶段可 O ( n ) 在时间内完成。 算法的第三阶段是确定性地检查V’的团性质。若V’是一个团 则接受输入,否则拒绝输入。这显然可以在 O ( n 4 ) 时间内完成。 4 因此,整个算法的时间复杂性为O ( n ) 。

NP完全问题证明

NP完全问题证明
10
8.5.4 顶点覆盖问题 (VERTEX-COVER)
证 3SAT变换到 变换到VC. 将3SAT变换到VC. 设U={u1,u2,...,un}, C={c1,c2,...,cm}
3SAT的实例 如下构造图G, 分量设计法. 的实例. 是3SAT的实例. 如下构造图G, 分量设计法. 真值安排分量: 真值安排分量: =(V 1≤ 其中V ={u ={{u Ti=(Vi,Ei), 1≤i≤n, 其中Vi={ui,ūi}, Ei={{ui,ūi}} 任意覆盖必至少包含u 中的一个,否则不能覆盖边{ 任意覆盖必至少包含ui或ūi中的一个,否则不能覆盖边{ui或ūi}. 满足性检验分量: 满足性检验分量: =(V ,E ), 1≤ Sj=(Vj’,Ej’), 1≤ j≤ m, 其中 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’中的三角形
B = ∑ 2 pj = 2 p( 3q −1) + 2 p( 3q − 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ūi∈V’ ⇔ Nhomakorabea(ui)=F

NP-完全问题:一些典型的例子

NP-完全问题:一些典型的例子

P-Polynomial (time)
算法复杂性
Computable
Polynomial time is assumed the lowest complexity
Complete
Reducible
变换/封闭性
NP-完全问题:一些典型的例子
NP-C:典型的问题(1)
问题1 图着色问题
判定问题:是否存在不超过k种颜色的着色方案? 优化问题:求图的最小着色数和着色方案
NP-完全问题:一些典型的例子
Problems-unknown in NP
Kth重子集问题:任给定n+2 个正整数 c1,┅cn, k, L; 是 否存在{1,2,┅,n} 的k 个不同子集S1,┅Sk 使得对所有 i=1,┅,k 有
cj L
jSi
Σ部分称为子集的重量, 重量排序第k的子集. 当k=2n-1时,表示可行解的字符串的长度有指数的长度.
该可行调度的执行时间ti之和≤C(可行性) 又因ti=pi=si,所以该可行调度对应罚款额=S-Σpi =S-Σti≥S-
C=k 所以其罚款额=k,而且被调度的作业的时间之和=C
NP-完全问题:一些典型的例子
NP-难度和NP-完全问题
问题Q是NP-难度问题,如果:
每个NP问题都可多项式地约化为问题 Q.
我们不知道该问题是否在NP中. 图G的最大集团的节点数是否=k? 上述问题是否在
NP?也是未知的! (验证最大集团,不能在多项式时间内 做到)
NP-完全问题:一些典型的例子
CNF-satisfiablity问题是NP-完全问题
定理13.5 CNF-satisfiablity问题是NP-完全问题 这是著名的Cook定理 Cook 定理的推论:如果CNF-可满足问题有多

第八章 NP完全问题

第八章 NP完全问题

第八章 NP-完全问题§1 关于问题及算法的描述为了应用算法复杂性理论,首先要对问题、问题的一般描述、计算模型、算法、算法的复杂性给出严格的定义。

但在给出精确定义之前,我们先回顾一下有关概念的粗略解释。

所谓一个问题(problem)是指一个有待回答、通常含有几个取值还未确定的自由变量的一个一般性提问(question)。

它由两部分构成:一是对其关于参数的一般性描述;二是对该问题的答案所应满足的某些特性的说明。

而一个问题的某个实例则可通过指定问题中所有参数的具体取值来得到。

以下用∏表示某个问题,用I 表示其实例。

旅行商问题的参数是由所需访问城市的一个有限集合},,,{11m C C C C =和C 中每对城市j i C C ,之间的距离),(j i C C d 所组成。

它的一个解是对所给城市的一个排序(1)(2)(),,,m C C C πππ使得该排序极小化下面表达式(目标函数)的值),(),()1()()1(11)(ππππC C d C C d m i m i i ++-=∑旅行商问题的一个实例是通过指定城市的数目,并指定每两个城市之间的具体距离而得到的。

例如:{}4321,,,C C C C C =,3),(,9),(,6),(,9),(,5),(,10),(434232413121======C C d C C d C C d C C d C C d C C d就是旅行商问题的一个实例,这个实例的一个最优解是排序1342,,,C C C C ,因为四个城市的这个排序所对应旅行路线是所有可能环游路线中长度最小的,其长度为27。

目前广泛采用的描述问题的方法主要有两种:一是将任一问题转化为所谓的可行性检验问题(feasibility problem);二是把问题转化为判定问题(decision problem)。

实际中几乎所有问题都可直接或间接地转述为判定问题。

判定问题是答案只有“是”与“非”两种可能的问题。

第08章 NP完全问题

第08章 NP完全问题

问题列表 哈密尔顿回路 旅行商问题 背包问题 划分问题 装箱问题 图的着色问题 整数线性划分问题



判定问题:可以回答是与否的问题。 不可判定问题:不能用任何算法求解的 判定问题,如停机问题。 目前,对于左侧问题没有找到多项式时 间的算法,也无法证明此类算法不存在。 共同点:
◦ 存在指数增长的候选项,且为输入规模的函 数 ◦ 在计算求解上比较困难,但是对于待定解的 验证比较简单(多项式时间)
11
2015-1-5

不确定算法:是一个两阶段的过程,它把一个判 定问题的实例l作为他的输入,并进行以下操作:
◦ 非确定(猜测)阶段:生成一个任意串S,把它当作给 定实例l的一个候选解 ◦ 确定(验证)阶段:确定算法把l和S都作为它的输入, 如果S的确是l的一个解的话,就输出“是”


当且仅当对于问题的每一个真实例,不确定算法 都会在某次执行中返回“是”的时候,则它可以 求解这个判定问题 如果不确定算法在验证阶段的时间效率是多项式 级的,则称它为不确定多项式类型的。
5
2015-1-5

线性规划:存在多项式时间算法 整数线性规划:保持线性目标函数和约束条件不变 的情况下,求解的数值都必须是整数。

A hypergraph G is a pair (V,E), where V is a set E is a subset of P(V)\{} . The elements in V are called vertices. The elements in E are called hyperedges or links.
说明:TSP的优化问题和搜索问题时归约关系
给定一个图,寻找一条恰 好包含每条边一次的路径 复杂度:多项式时间
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机算法设计与分析 4
2019/3/11
可计算性问题的层次

若某问题存在求解的算法,则称其为可计算的; 若不存在算法但是存在求解的过程,则称其为 半可计算的;若连过程也不存在,则称其为完 全不可计算的。
可计算的问题的集合称为递归集;半可计算的 完全不可计算 半可计算 称为递归可枚举集;完全不可计算的称为非递 归可枚举集。 可计算 可计算的问题的计算复杂性是不是都相同呢?
2019/3/11 计算机算法设计与分析 8
P与NP的关系

若Q∈NP,则可以用一个DTM来模拟接受Q的NDTM, 所需要时间复杂性为O( CT(n) )。C是一个常数。 这使人们认为NP类问题要比P类问题更难。 真的如此吗? 显然,因为DTM NDTM,所以PNP。 这是个尚未解决的问题。 QNP,且QP? 是否有P≠NP? 即是否有 关于P和NP的关系, 暂且假定如图所示。 阴影部分是否非空, 还不能确定!
P
NP
NPC
2019/3/11
计算机算法设计与分析
12
第一个NP完全的问题
Cook在1971年证明了第一个NP完全的问题。 Cook定理:布尔表达式的可满足性SAT是NP完 全的。 所谓可满足性 定理的证明由两个部分构成,第一部分是 SAT是这样的问题:给定 k个布尔 Cook 自从Cook 证明了第一个 NP完全的问题后,迄 变量 SAT ∈ x1NP , …x ,这基本是显然的。第二部分是任意 A多个 Am ,若存 今为止,已经发现了至少有 300 完全的 k的m个布尔表达式 1, …,NP 在对各个布尔变量 L ∈NP,可在多项式时间内转换为 xi的0, 1赋值,使得每个布尔 SAT问题。这 问题,但尚未证明其中任何一个是属于 P的。 表达式Ai都为真,则称布尔表达式 是一个构造证明,即将接受 L的的猜测。但遗 NDTM A1, …, 的瞬象序 Am是 这一事实,增强了人们对 P≠NP 可满足的。 列转换为一个 SAT 问题。 憾的是,这个猜测迄今仍然还只是个猜测。
计算机算法设计与分析 14
2019/3/11
课后作业
1. 2.
3.
4. 5.
问题的可计算性具有哪些层次? 什么是NP问题?什么是NP完全问题?二者 有何关系? 设Q∈NPC,试证明定理:P=NP成立当且 仅当Q∈P 用动态规划求旅行商问题是不是一个有效的 算法?为什么? 旅行商的判定问题与最优问题有何区别联系? 0-1背包问题呢?

2019/3/11 计算机算法设计与分析 7
P类与NP类语言/问题

P = {L | L在多项式时间被DTM接受} NP = {L | L在多项式时间被NDTM接受}
通常,验证一个答案是否为问题的解比求 得问题的解要容易些。如:哈密尔顿(经过所 有顶点)回路问题。 因此,也可将NP类问题定义成“对解进行 验证可在多项式时间内完成的一类问题”

2019/3/11 计算机算法设计与分析 5
判定与求解
人们通常认为,判定一个问题要比求解一个问 题容易些。 但是也并非完全如此。例如TSP问题。要验证 一条周游路线是否最小和求一条最小周游路线 实际上是一样的难。 可见,“判定问题”可能跟相应问题的“求解” 有同样的难度,但不会比“求解”更难。
M = (Q, T, I, δ, b, q0, qf )
图林机的变形



多道图林机(输入带上有多个道)。 双向图林机 (输入带被视为左右均是无穷的)。 多带图林机(具有多条输入带)。 多头图林机 (具有多个磁头)。 多维图林机(输入带是多维的)。 不确定的图林机(有限控制器是不确定的)。 不确定的图林机类似于不确定的自动机,即 将图林机的原型称为确定的,记为DTM;而 已经证明各类变形图林机在可计算的能力上等 δ:Q×T→ρ(Q× T×{L, R, S}) 价于原型图林机。但是在复杂性是有区别的。 将不确定的图林机记为 NDTM ,
计算机算法设计与分析 2
2019/3/11
TM的数学描述
其中: Q是有限状态的集合; T是有限个带符号的集合; I T,是输入符号的集合; δ:Q×T→Q×T×{L,R,S}为转移函数; b是唯一的空白符,b∈T – I; q0和qf分别为初始状态和终止状态。
2019/3/11 计算机算法设计与分析 3
P类
NP类
2019/3/11
计算机算法设计与分析
9
问题的变换及时间等价性
若问题A的求解能够变换成问题B的求解且变 换的时间为O(τ(n)),则称A是τ(n)时间变换为B, 简记为A∝τ(n)B,其中n为问式 归结为问题B,记为A∝B 。 一般来说,可变换性不是对称的。 若A∝τ(n)B且B∝τ(n)A,则称A和B是τ(n)时间 等价的。特别当τ(n)为线性时,称A和B等价。 这时A和B具有相同的时间复杂性。

2019/3/11
计算机算法设计与分析
6
确定的图林机与不确定图林机
NDTM是一种并行的工作方式,它可以用交叉 串行的确定方式来模拟。因此任何NDTM都可 以用DTM来模拟实现,但其复杂性却不相同。 对于一台复杂性为T(n)的NDTM,可用一台复 杂性为O(CT(n))的DTM来模拟,这里C为常数。 实际上可以将NDTM的运行方式看作并行的, 而DTM是串行的。并行运行可用串行来模拟, 但并行的效率要高于串行的效率。 而并行计算机的运行方式本质是确定的。

2019/3/11 计算机算法设计与分析 10
多项式归结与NP困难
多项式归结显然有如下两个性质: (1) A∝B且B∈P,则A∈P。 (2) 若A∝B且B∝C,则A∝C。 定义:对于问题Q,如果任意问题Qi∈NP,都 有Qi∝Q,则称问题Q是NP困难的。 所谓NP困难的问题,是指该问题不会比NP中 的任何问题容易,至少是同样难或更难。

2019/3/11
计算机算法设计与分析
11
NP完全性

定义:对于问题Q,若满足Q∈NP且Q是NP困难的,则 称Q是NP完全的。 所有NP完全的问题记为NPC。 问题Q属于NPC,则它必是NP困难的;反之,存在问 题S,它是NP困难的但不属于NP,S不是NPC问题。 定理:设Q∈NPC,P=NP当且仅当Q∈P。 如果P≠NP,则P,NP与NPC或许如下图所示:
第八章 NP完全问题
2019/3/11 计算机算法设计与分析 1
图林机的构造

图林机(Turing Machine)是英国数学家Turing在 1936年提出的计算模型,被认为是当今计算机 的理论模型。下面是图林机(TM)原型的构造:
…… 输入带
磁头
有限 控制器
输入带被视为右无穷,并被划分为一个个 单元用于存放符号(带符号)。 有限控制器由有限个状态构成。 磁头可左右移动,读写带符号。
计算机算法设计与分析 15
2019/3/11

2019/3/11 计算机算法设计与分析 13
若干NP完全问题



合取范式的可满足性问题CNF-SAT 三元合取范式的可满足性3-SAT 团问题CLIQUE 顶点覆盖问题VERTEX-COVER 子集和问题SUBST-SUM 哈密顿回路问题HAM-CYCLE 旅行售货员问题TSP
相关文档
最新文档