第9章 NP完全理论

合集下载

第9章 NP完全问题研究

第9章 NP完全问题研究

P类
NP类
2015-6-19
计算机算法设计与分析
12
问题的变换及时间等价性
若问题A的求解能够变换成问题B的求解且变 换的时间为O(τ(n)),则称A是τ(n)时间变换为B, 简记为A∝τ(n)B,其中n为问题A的规模。 若A∝τ(n)B,当τ(n)为多项式时,称A可多项式 归结为问题B,记为A∝B 。 一般来说,可变换性不是对称的。 若A∝τ(n)B且B∝τ(n)A,则称A和B是τ(n)时间 等价的。特别当τ(n)为线性时,称A和B等价。 这时A和B具有相同的时间复杂性。

2015-6-19 计算机算法设计与分析 13
多项式归结与NP困难
多项式归结显然有如下两个性质: (1) A∝B且B∈P,则A∈P。 (2) 若A∝B且B∝C,则A∝C。 定义:对于问题Q,如果任意问题Qi∈NP,都 有Qi∝Q,则称问题Q是NP困难的。 所谓NP困难的问题,是指该问题不会比NP中 的任何问题容易,至少是同样难或更难。
计算机算法设计与分析 9
2015-6-19
确定的图灵机与不确定图灵机
NDTM是一种并行的工作方式,它可以用交叉 串行的确定方式来模拟。因此任何NDTM都可 以用DTM来模拟实现,但其复杂性却不相同。 对于一台复杂性为T(n)的NDTM,可用一台复 杂性为O(CT(n))的DTM来模拟,这里C为常数。 实际上可以将NDTM的运行方式看作并行的, 而DTM是串行的。并行运行可用串行来模拟, 但并行的效率要高于串行的效率。 而并行计算机的运行方式本质是确定的。
P
NP
NPC
2015-6-19
计算机算法设计与分析
16
第一个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 问题。 憾的是,这个猜测迄今仍然还只是个猜测。

第9章 近似算法24页PPT

第9章 近似算法24页PPT
e1=g.e; while (e1 != ) {
从e1中任取一条边(u,v); cset=cset∪{u,v}; 从e1中删去与u和v相关联的所有边; } return c }2020/5/24
Cset用来存储顶点 覆盖中的各顶点。初 始为空,不断从边集 e1中选取一边(u,v), 将边的端点加入cset 中,并将e1中已被u 和v覆盖的边删去, 直至cset已覆盖所有 边。即e1为空。
2020/5/24
3
9.1 近似算法的性能
有许多问题的近似算法具有固定的性能比或相对误差界,即 ρ(n)和ε(n)是不随n的变化而变化的。
还有一些问题没有固定的性能比的多项式时间算法,其性能 比只能随着输入规模n的增长而增长。
理想情况:若ε减少某一常数倍,近似格式的 计算时间增长也不超过某一常数倍。
2020/5/24
8
9.3 旅行售货员问题近似算法
具有三角不等式性质的旅行售货员问题仍 然是NP完全问题。不太可能找到解此问题的 多项式时间算法。转而寻求解此问题的有效地 近似算法。
当费用函数c具有三角不等式性质时,可 以设计出一个近似算法,其性能比为2。而对 于一般情况下的旅行售货员问题则不肯能设计 出具有常数性能比得近似算法。
当费用函数满足三角不等式时,算法找出的旅行售货员回路的
费用不会超过最优旅行售货员回路费用的2倍。
2020/5/24
10
9.3.1 具有三角不等式性质的 旅行售货员问题举例
2020/5/24
(b)表示找到的最小生成 树T;(c)表示对T作前序 遍历的次序;(d)表示L产 生的哈密顿回路H; (e)是G的一个最小费用 旅行售货员回路。
第9章 近似算法
迄今为止,所有的NP完全问题都还没有多 项式时间算法。对于这类问题,通常可采取以 下几种解题策略。

第9章 NP完全性理论

第9章 NP完全性理论
教学进度
P = NP无法证明
计算机科学与工程系
P
NP
教学进度
计算机科学与工程系
• 多数人相信,存在至少一个不可能有多 项式级复杂度的算法的NP问题,即 P≠NP
教学进度
计算机科学与工程系
• 约化:一个问题A可以约化为问题B的含 义即是,可以用问题B的解法解决问题A, 或者说,问题A可以“变成”问题 B。
教学进度
计算机科学与工程系
• 比如说,现在有两个问题:求解一个一元一次方程和 求解一个一元二次方程。 • 前者可以约化为后者,即知道如何解一个一元二次方 程那么一定能解出一元一次方程。 • 可以写出两个程序分别对应两个问题,那么能找到一 个“规则”,按照这个规则把解一元一次方程 程序 的输入数据变一下,用在解一元二次方程的程序上, 两个程序总能得到一样的结果。这个规则即是:两个 方程的对应项系数不变,一元二次方程的二次项系数 为 0。按照这个规则把前一个问题转换成后一个问题, 两个问题就等价了。
教学进度
计算机科学与工程系
• 所说的“可约化”是指的可“多项式地” 约化(Polynomial-time Reducible),即变 换输入的方法是能在多项式的时间里完 成的。 • 约化的过程只有用多项式的时间完成才 有意义。
教学进度
计算机科学与工程系
• “问题A可约化为问题B”有一个重要的直 观意义:B的时间复杂度高于或者等于A 的时间复杂度。也就是说,问题A不比 问题B难。
教学进度
计算机科学与工程系
教学进度
计算机科学与工程系
• 根据有限状态控制器的当前状态及每个读写 头读到的带符号,图灵机的一个计算步可实 现下面3个操作之一或全部。 • (1)改变有限状态控制器中的状态。 • (2)清除当前读写头下的方格中原有带符号并 写上新的带符号。 • (3)独立地将任何一个或所有读写头,向左移 动一个方格(L)或向右移动一个方格(R)或停在 当前单元不动(S)。

NP完全性理论

NP完全性理论

2018/10/13 计算机算法设计与分析 11
TM模型与RAM模型的关系

定理8-5:在对数耗费标准下,对于同一个算法, 采用RAM模型和TM模型的时间复杂性是多项 式相关的。对空间复杂性亦如此。 注意在均匀耗费标准下这个关系不成立。TM 模拟RAM的时间复杂性可能是指数的关系。 因为TM模型比较原始,所以在大多数情况下 采用RAM模型。 若算法在RAM模型下的复杂性为多项式,则也 就认为其在TM模型下的复杂性为多项式。
计算机算法设计与分析 6
2018/10/13
TM的数学描述
其中: Q是有限状态的集合; T是有限个带符号的集合; I T,是输入符号的集合; δ:Q×T→Q×T×{L, R}为转移函数; b是唯一的空白符,b∈T – I; q0和qf分别为初始状态和终止状态。
2018/10/13 计算机算法设计与分析 7

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

2018/10/13 计算机算法设计与分析 10
用TM模拟RAM
定理8-4:设算法A,对于任何长度为n的输入, 按对数耗费标准在RAM下的时间复杂性为T(n), 则A在TM下的时间复杂性为O(T2(n))。 证明:用一个五带TM模拟RAM的工作, TM 其中: 模拟RAM除乘/除法外的指令的时间为常数, 查找寄存器的时间为 带1用<地址, 内容 n> ,整个时间为 的形式存放寄存器; O(T2(n))。 带2的乘除法, 存放累加器内容;带 3作为暂存工作带; 对RAM TM用加减法模拟的耗费不 带4和带5作为输入带和输出带; 会超过乘除法耗费的平方。 用TM的状态对应RAM的一步程序。

Chapter-9_NP完全问题

Chapter-9_NP完全问题
南京理工大学
9 NP完全问题 NP Complete Problem
南京理工大学
本章内容提要
• • • • • • • 易解问题与难解问题 P类问题和 类问题 类问题和NP类问题 类问题和 NP完全问题 完全问题 co-NP类问题 类问题 NPI类问题 类问题 P、NP、co-NP、NPI类之间的区别与联系 、 、 、 类之间的区别与联系 NP完全问题的计算机处理技术简介 完全问题的计算机处理技术简介
南京理工大学
9.1.2 易解问题与难解问题的主要区别
在学术界已达成这样的共识: 在学术界已达成这样的共识:把多项式时间复杂性作为 易解问题与难解问题的分界线,主要原因有: 易解问题与难解问题的分界线,主要原因有: 1) 多项式函数与指数函数的增长率有本质差别
问题规模 n logn n
1 10 20 50 100 0 3.3 4.3 5.6 6.6 1 10 20 50 100
特点:对同一输入实例,运行算法 ,所得结果是一样的。 特点:对同一输入实例,运行算法A,所得结果是一样的。
• 定义 定义9.2(P类问题 如果对于某个判定问题 ,存在一个非 类问题): 类问题 如果对于某个判定问题∏, 负整数k,对于输入规模为n的实例 能够以O(nk)的时间运 的实例, 负整数 ,对于输入规模为 的实例,能够以 的时间运 行一个确定性算法,得到yes或no的答案,则称该判定问题 的答案, 行一个确定性算法,得到 或 的答案 ∏是一个 是一个P(Polynomial)类问题。 类问题。 是一个 类问题
3) 多项式时间复杂性忽略了系数,不影响易解问题与难解 多项式时间复杂性忽略了系数,
问题的划分
问题规模n 问题规模 5 10 100 1000 多项式函数 n8 390625 108 1016 1024 108n 5×108 × 109 1010 1011 n1000 51000 101000 102000 103000 1.1n 1.611 2.594 13780.6 指数函数 20.01n 1.035 1.072 2

《算法设计与分析》(全)

《算法设计与分析》(全)
巢湖学院计算机科学与技术系
1.1、算法与程序
程序:是算法用某种程序设计语言的具体实现。 程序可以不满足算法的性质(4)。 例如操作系统,是一个在无限循环中执行的程序, 因而不是一个算法。 操作系统的各种任务可看成是单独的问题,每一个 问题由操作系统中的一个子程序通过特定的算法来实 现。该子程序得到输出结果后便终止。
渐近分析记号的若干性质
(1)传递性: ➢ f(n)= (g(n)), g(n)= (h(n)) f(n)= (h(n)); ➢ f(n)= O(g(n)), g(n)= O (h(n)) f(n)= O (h(n)); ➢ f(n)= (g(n)), g(n)= (h(n)) f(n)= (h(n)); ➢ f(n)= o(g(n)), g(n)= o(h(n)) f(n)= o(h(n)); ➢ f(n)= (g(n)), g(n)= (h(n)) f(n)= (h(n)); (2)反身性: ➢ f(n)= (f(n));f(n)= O(f(n));f(n)= (f(n)). (3)对称性: ➢ f(n)= (g(n)) g(n)= (f(n)) . (4)互对称性: ➢ f(n)= O(g(n)) g(n)= (f(n)) ; ➢ f(n)= o(g(n)) g(n)= (f(n)) ;
巢湖学院计算机科学与技术系
渐近分析记号的若干性质
规则O(f(n))+O(g(n)) = O(max{f(n),g(n)}) 的证明: ➢ 对于任意f1(n) O(f(n)) ,存在正常数c1和自然数n1,使得对
所有n n1,有f1(n) c1f(n) 。 ➢ 类似地,对于任意g1(n) O(g(n)) ,存在正常数c2和自然数
巢湖学院计算机科学与技术系
第1章 算法引论

第10章NP完全问题(自己写的)

第10章NP完全问题(自己写的)
第10章 NP完全问题
主讲:王培崇
对一个已确定是可计算的问题,人们总试图寻求实现它的最优算法。然而 对有些问题,这个工作难度很大,目前还不能做到这点。
1、P类问题:问题的时间复杂性是多项式阶的,这只须设 计一个实现它的时间复杂性是多项式阶的算法即可,例如分类 (又称排序)问题。 2、顽型问题:人们已经设计出实现它的时间复杂性为指数阶 的算法,并且已证明该问题不存在多项式阶的算法,例如梵塔 问题;但是有这样一类问题, 3、NP问题:人们目前已设计的实现它的算法其时间复杂性 为指数阶的,但还不能肯定它有或没有多项式阶的算法。
如果是,则停机回答yes,如果不是则停 机回答no。
(上述是以图灵机计算模型实现的。)
• 定义10.3
NP类问题由下面的判定问题组成,对 于它们存在着多项式时间内运行的不确定性 算法。
例子10.4
coloring问题:
(1)设I是coloring的一个实例,s宣称是I的 解。容易建立一个确定性算法验证s选择、送餐车辆指派问题、车 间调度问题等。
见表1.1,现存的求解方法,中等输入也 需要几百年时间才能求解成功。
4、NP问题的描述转换 转换为判定问题。
两种答案:yes或no。 最优化问题:关心的是某个量的最大化或 最小化问题。
5、问题转化举例: 10.1设s是一个实数序列,EU问题是:是否S 中的所有的数都不相同。
判定问题:
输入:一个整数序列S; 问题:在S中存在两个数据相等吗。 10.2 给出一个无向图G=(V,E),用k种颜色对G 着色.......,使得图中没有两个邻接点有相同的 颜色。
• 判定问题: 输入:一个无向图G=(V,E)和一个正整数k>=1; 问题:G可以k着色吗?即G最多可以用k种颜 色着色吗?

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课件

2020/11/27
计算机算法设计与分析
11
δ的进一步说明
• δ操作可以表示为δ(q,a1,…ak)=(q’,(a1’,d1),…,(ak’,dk)) • 当图灵机处于状态q且对一切i,1<=i<=k,第i条带的
读写头扫描着的当前方格中的符号为ai时,图灵机就 按这个δ操作进行工作:
1. q变为q’ 2. a变为a’ 3. 左移或者右移
2020/11/27
操作数
指令含义
=i / i / *i
取操作数入累加器
i / *i
将累加器中数存入内存
=i / i / *i
加法运算
=i / i / *i
减法运算
=i / i / *i
乘法运算
=i / i / *i
除法运算
i / *i
读入
=i / i / *i
输出
标号
无条件转移到标号语句
标号
正转移到标号语句
第九章
NP完全性理论
2020/11/27
计算机算法设计与分析
1
难?易?
• 可在多项式时间内解决的问题看作是 “易”解问题。
• 将需要指数函数时间解决的问题看作是 “难”问题。
• 这里所说的时间是针对问题规模n的多项 式还是指数函数。
2020/11/27
计算机算法设计与分析
2
内容
• 两部分:
– 三种机器(RAM, RASP, TM) – NP完全理论
2020/11/27
计算机算法设计与分析
12
图灵机的语言
• 当 进且入仅终当止从状指态q定f时的,初称始图状灵态机q0接开受始这,个经输过入一符系号列串计。算步后,最终 • 所有这台图灵机能接受的输入符号串的集合就是这台图灵机识别

NP完全问题(纯理论)

NP完全问题(纯理论)

NP类问题举例—求真因子问题
国王: 顺序算法 宰相: 并行算法
是否所有的难解问题通过并行计算使其在多项式内可 解?
关于并行算法:当将一个问题分解到多个处理器上解 决时,由于算法中不可避免地存在必须串行执行的操 作,从而大大地限制了并行计算机系统的加速能力。
NP类问题举例—求真因子问题
阿达尔定律:串行执行操作仅占全部操作1%,解 题速度最多也只能提高一百倍。
以多项式作为分界函数?
原因有两个: 一、常见算法大致分为两类: 一类是多项式时间内可实现的 另一类需要指数时间(O(cn))
多项式时间算法的可实现性远大于指数时间算法。 (参见P8,表1.2)
以多项式作为分界函数?
二、多项式时间算法与计算模型无关 算法的研究依赖于计算模型。在不同类型计算模型 上实现算法,计算时间不同。
SATISFIABILITY∝p3-SATISFIABILITY
几个典型的NPC问题

图的着色问题(COLORING) 判定问题:COLORING 输入:无向图G=(V,E) 问题:是否可用k种颜色为图G的顶点着色,使 得相邻顶点不会有相同颜色。
3-SATISFIABILITY∝pCOLORING
定义12.3 令П 是一个判定问题,如果: (1) П ∈NP; (2) 对NP中的所有问题П ′∈NP,都有 П ′∝pП ; 则称判定问题П 是NP完全 (NPC)的。
P类、NP类、NPC类问题关系
根据定义,可用如下图表示三者之间的关系:
NP

NPC
P类、NP类、NPC类问题关系

对NPC问题,有个重要性质 对NPC类中的一个问题,如果能够证明用多项式 时间的确定性算法来进行求解或判定,那么, NP中的所有问题都可以通过多项式时间的确定性 算法来进行求解或判定。

第九章 NP完全理论

第九章 NP完全理论

9.2.1 P 类问题
★定义 1 设 A 是问题 的一个算法。如果在处理问题 的实例时,在算法的执行过 程中,每一步只有一个确定的选择,则称算法 A 是确定性算法。因此,确定性算法对于同 样的输入实例一遍又一遍地执行,其输出从不改变。通常在写程序时,用到的都是一些确定 性算法,比如说排序算法和查找算法等。 ★定义 2 如果对于某个判定问题 ’,存在一个非负整数 k,对于输入规模为 n 的实 例,能够以 O(nk)的时间运行一个确定性算法,得到是或否的答案,则该判定问题 ’是一个 P(polynomial)类问题。
9.1 易解问题和难解问题
无论是计算机专业人士还是计算机科学家, 在研究问题的计算复杂性时, 它们首先考虑 的都是一个给定的问题是不是能够用某些算法在多项式时间内求解, 即算法的时间复杂性是 k 不是 O(n ),其中,n 是问题规模,k 是一个非负整数。Ednonds 于 1965 年指出只有多项式 时间算法才称得上是 “好”算法,他还认为有的问题可能不存在求解它们的这种“好”算法。 其实,多项式时间复杂性并不一定就意味着较低的时间要求,例如:1099n8 和 n100 都是 多项式函数,但它们的值却大得惊人。既然如此,为什么科学家还要用它作标准去定义问题 呢?原因可能有以下几条: (1) 这样做可以为有过多时间要求的那类问题提供一个很好的标准。 (2) 多项式函数在加、乘运算下是自封闭的,并且在那些可以作为有用的分析算法 复杂性的函数类中,多项式函数是具有这种性质的最小函数类。 (3) 多项式时间复杂性的分析结果,对于常用的各种计算机形式模型,具有不变性。 应该说明,对于能找到多项式时间算法的实际问题,它们的多项式时间复杂性函数,一 般都不含有特大系数或较高幂指数的项。
9.2 P 类和 NP 类问题

第9章NP完全理论

第9章NP完全理论

P类问题和NP类问题的关系
• (1)P类问题可以用多项式时间的确定性 算法来进行判定或求解。
• (2)NP类问题可以用多项式时间的不确定 性算法来进行判定或求解,关键是存在一个 确定算法,能够以多项式的时间来验证在猜 测阶段所产生的答案。
• 大多数研究者相信NP类是比P类要大得多的 集合
NP完全问题
也就是说,在图灵机计算模型下,这类问题 的计算复杂性至今未知。为了研究这类问题,人 们提出了另一个能力更强的计算模型——非确定 性图灵机计算模型,简记NDTM。在这个计算模 型下,许多问题就可以在多项式时间内求解。
P类问题
• ★定义2 如果对于某个判定问题 ‘,存在一个非负整数k,
对于输入规模为n的实例,能够以O(nk)的时间运行一个确定 性算法,得到是或否的答案,则该判定问题 ’是一个P类问 题。 • 从定义2可以看出,P类问题是一类能够用确定性算法在多项 式时间内求解的判断问题。事实上,所有易解问题都属于P 类问题。例如最短路径判定问题(SHORTEST PATH)就属于 P类问题。
通常,用来衡量精度的标准有近似比和相对误差。
近似算法
迄今为止,所有的NP完全问题都还没有多 项式时间算法。对于这类问题,通常可采取以 下几种解题策略。
(1)只对问题的特殊实例求解 (2)用动态规划法或分支限界法求解 (3)用概率算法求解 (4)只求近似解 (5)用启发式方法求解 本章主要讨论解NP完全问题的近似算法。
• NP完全问题是NP类问题的一个子类,是 更为复杂的问题。
• 该类问题有一种奇特的性质:如果一个NP 完全问题能在多项式时间内得到解决,那 么NP类中的每个问题都可以在多项式时间 内得到解决,即P=NP成立!。
• 这是因为,任何一个NP问题均可以在多项 式时间内变换成NP完全问题。

算法设计与分析课件--NP完全性理论-P类和NP类问题

算法设计与分析课件--NP完全性理论-P类和NP类问题
➢ 若用邻接矩阵C表示图G,使用二进制串表示C和k,则
团问题的一个实例可以用长度为n2 + log k + 1 的二
进位串表示。
➢ 无向图的团问题可表示为语言:
• CLIQUE = {w#v|w,v∈{0,1}*,以w为邻接矩阵的图G有一个k 顶点的团。其中,w是C的二进制表示,v是k的二进制表示。}
• STEP3:确定性地检查V’的团性质。若V’是一个团则接受输入,
否则拒绝输入。时间复杂度为O(n 4 ) 。 • 因此,整个算法的时间复杂性为:O(n 4 ) 。
❖非确定性算法在多项式时间内接受语言CLIQUE,故CLIQUE∈NP。
16
8.2 P类问题和NP类问题
◼ P类问题和NP类问题的关系:
算法设计与分析
1
第八章 NP完全性理论
目录
8.1 易解问题和难解问题
8.2 P类问题和NP类问题
8.3
NP完全问题
8.4 NP完全问题的近似算法
2
8.1 易解问题和难解问题
◼ 常见的几类算法复杂性:
➢ O(1):常数阶; ➢ O(log2n), O(nlog2n):对数阶; ➢ O(n), O(n2), O(n3), …, O(nk): 多项式阶。多项式时间算法; ➢ O(2n), O(n!), O(nn):指数阶。指数时间算法。
12
8.2 P类问题和NP类问题
◼ NP(Non-deterministic Polynomial)类问题:
➢ 如对于某个判定问题,存在一个非负整数k,对于输入规模为n的实 例,能以O(nk)的时间运行一个非确定性算法得到是或否的答案。 • 能用非确定算法在多项式时间内求解的判定问题。如哈密尔顿回 路问题。 • NP类问题是难解问题的一个子类。 • NP类问题并不要求给出一个算法来求解问题本身,而只要求给 出一个确定性算法在多项式时间验证它。

NP完全理论

NP完全理论
判定问题的重要特性——证比求易 证比求易 判定问题的重要特性 判定问题→语言的识别问题 计算模型 判定问题 语言的识别问题→计算模型 语言的识别问题
清华大学出版社
算法设计与分析
2.3.2 确定性算法与 类问题 确定性算法与P类问题
定义2.1 设A是求解问题 的一个算法,如果在算法 是求解问题Π的一个算法 定义 是求解问题 的一个算法, 的整个执行过程中,每一步只有一个确定的选择, 的整个执行过程中,每一步只有一个确定的选择, 则称算法A是确定性(Determinism)算法。 则称算法A是确定性(Determinism)算法。 定义2.2 如果对于某个判定问题Π,存在一个非负 如果对于某个判定问题Π 定义 整数k,对于输入规模为n的实例 能够以O(nk)的 的实例, 整数 ,对于输入规模为 的实例,能够以 的 时间运行一个确定性算法,得到yes或 的答案 的答案, 时间运行一个确定性算法,得到 或no的答案, 则该判定问题Π是一个 P 类(Polynomial)问题。 则该判定问题Π )问题。 所有易解问题都是P类问题 所有易解问题都是 类问题
清华大学出版社
算法设计与分析
定义2.4 如果对于某个判定问题Π,存在一个非 如果对于某个判定问题Π 定义 负整数k,对于输入规模为n的实例 能够以O(nk)的 的实例, 负整数 ,对于输入规模为 的实例,能够以 的 时间运行一个非确定性算法,得到yes或no的答案, 时间运行一个非确定性算法,得到 或 的答案, 的答案 则该判定问题Π 则该判定问题Π是一个 NP 类(Nondeterministic Polynomial)问题。 )问题。
清华大学出版社
算法设计与分析
第2章 NP完全理论 章 完全理论
2.1 2.2 2.3 2.4 2.5 下界 算法的极限 P类问题和 类问题 类问题和NP类问题 类问题和 NP完全问题 完全问题 实验项目——SAT问题 实验项目 问题

参数计算简介(NP-难问题的算法设计与分析)

参数计算简介(NP-难问题的算法设计与分析)
参数计算简介
(NP-难问题的算法设计与分析)
冯启龙 csufeng@
提纲
NP完全理论
参数计算理论
分支界定 彩色编码
核心化
第2页
NP完全理论
NP完全理论
各领域中的 可计算问题
多项式可解 P
最小生成树 最短路径 最大流问题 最大匹配问题 ……
NP难解问题
xk=xk-1+xk-2
2. 解特征方程
x2-x-1=0 x2=(1-squrt(5))/2
x1=(1+squrt(5))/2
3. 基于方程根得分支复杂度 T(k) ≤x1k
第20页
彩色编码(Color-Coding)
k-(s, t)-路径问题
给定图G=(V, E),正整数k,点s, t,寻找G中一条从s到t且含有k个中间 点的简单路径,或返回G中不存在这样的简单路径。
第4页
NP完全理论
旅行商问题
给定完全图G=(V, E),其中每条边赋有一定的权值,并给定参数K, 问G中是否存在一条权值小于等于K且包括图中所有点的圈。
给定G中的任意一个圈S, 可在多项式时间内判定S是否为 旅行商问题的解。
第5 页
NP完全理论 多项式规约
Q1 x 多项式时间 Q2 r(x) Yes
第29页
彩色编码(Color-Coding)
动态规划 对于图中的任一点v,需要记录从s出发到达v的彩色路径的 可能颜色集。 v1
s t
v2
{{蓝,紫, 绿}, {蓝, 黄, 绿}} v1点记录的信息: {{蓝,紫, 绿, 黄, 红}, {蓝, 黄, 红}} v2点记录的信息:
第30页
彩色编码(Color-Coding)

NP完全理论_2

NP完全理论_2

归约举例
VC X1 =(G,k)
5 1 1
IS X2 =(G,n-k)
3
5
3
4 2 4
2
1
3
2
VC 归约为子集和数问题
1、描述顶点覆盖问题:
对于n个顶点,m条边的图,用n*m的矩阵G表 示。G[i,j]=1表示vi是ej的一个顶点。 1)第j列不会超过两个1,即ej只有两个端点。 2)任意取k行,则得到k个顶点的子集。 3)如果这k个顶点是一个顶点覆盖(覆盖了所有 的边),则这k行的各列至少有一个1。 4)如果k行各列相加,结果形如kx1,x2,…,xm ,xi≤2。
当选择的k个顶点构成点覆盖为真, 对应的子集的和数=M也为真;当选择的k 个顶点构成点覆盖为假,对应的子集的和 数=M也为假。
NP中的任一问题Q都可归约为可满足性问 题 SAT。 如果SAT可在多项式时间内可解,NP的所 有问题都可在多项式时间内可解。
CNF(合取范式)-可满足问题SAT是NP完全问 题。
判定问题:是否存在变量的真假赋值使得该 CNF为真
如果一个布尔表达式是一些因子和之积,则称之为合取范 式,简称CNF(Conjunctive Normal Form)。这里的因子是变量 或 。例如:( x1 x2 )(x2 x3 )(x1 x 2 x3 ) 就是一个合取范 式,而 x1 x2 x3 就不是合取范式。
3、NP完全问题的特征
1)decision问题,对于一个实例,需回答 “Yes”或“No” 2) 在现有的计算机上用确定性算法求解,还 不能做到多项式时间; 3)用不确定算法求解,则可在多项式时间内给出判
定。
一些问题是无法直接计算得到的,只能通过间接的“猜算”来得到结果。这也 就是非确定性问题。 而这些问题的通常有个算法,它不能直接告诉你答案是什么,但可以告诉 你,某个可能的结果是正确的答案还是错误的。这就是非确定算法。

算法设计与分析课件--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完全问题

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

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

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

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

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

以下用二表示某个问题,用〔表示其实例。

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

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

例如:C「GGGS,d(C l,C2)"°,d(C l,C3)2d(C l,C4)Td(C2,C3)=6,d(C2,C4)=9,d(C3,C4)=3就是旅行商问题的一个实例,这个实例的一个最优解是排序G,C3,C4,C2,因为四个城市的这个排序所对应旅行路线是所有可能环游路线中长度最小的,其长度为27。

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

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

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

一个判定问题二可简单地由其所有例子的集合D二与答案为“是”的例子所构成的子集Y D二来刻画。

不过,为了反映实际问题所具有的特性,通常所采用的描述方法由两部分组成。

第9章-计算机领域的典型问题-计算机导论(第4版)(微课版)-袁方-清华大学出版社

第9章-计算机领域的典型问题-计算机导论(第4版)(微课版)-袁方-清华大学出版社
计算机导论
汉诺塔问题
➢ 用递归方法求解
➢移动n个盘子的汉诺塔问题,需要移动盘子的次数是n-1个 盘子的汉诺塔问题需要移动盘子次数的2倍加1。
计算机导论
汉诺塔问题
➢ 用递归方法求解
h(n) =2h(n-1 )+1 =2(2h(n-2)+1)+1 =22h(n-2)+2+1 =23h(n-3)+22+2+1 =…… =2nh(0)+2n-1+…+22+2+1 =2n-1+…+22+2+1 =2n-1
➢ NP类问题
➢ 将所有在多项式时间内可以验证的问题称为NP类问题。
➢ NP完全问题
➢ 在NP类问题中,某些问题的复杂性与整个类的复杂性有关,如果 这些问题中的任意一个能在多项式的时间内求解,则所有NP类问 题都能在多项式时间内求解,这些NP类问题称为NP完全问题。
计算机导论
9.3 并发控制问题
01 生 产 者 - 消 费 者 问 题 02 哲 学 家 共 餐 问 题
生产者-消费者问题
➢ 问题描述
➢有 n 个 生 产 者 和 m 个 消 费 者 , 在 生 产 者 和 消 费 者 之 间 设置了一个能存放k个产品的货架。
➢只 要 货 架 未 满 , 生 产 者 p i生 产 的 产 品 就 可 以 放 入 货 架 , 每次放入一个产品;
➢只 要 货 架 非 空 , 消 费 者 c j就 可 以 货 架 取 走 产 品 消 费 , 每次取走一个。
计算机导论
袁方/王兵编写 清华大学出版社出版 《 计算机导论(第4版)》 配 套 课 件
计算机导论
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Machine)
1、RASP的结构 RASP的整体结构类似于RAM,所不同的是RASP的程序 是存储在寄存器中且能修改自身。每条RASP指令占据2 个连续的寄存器。第一个寄存器存放操作码的编码,第 二个寄存器存放地址。 2、RASP程序的复杂性 不管是在均匀耗费标准下,还是在对数耗费标准下, RAM程序和RASP程序的复杂性只差一个常数因子。 即T(n)与KT(n)
1. 顶点覆盖问题
问题描述:无向图 G=(V,E)的顶点覆盖是它的顶点集 V的一个子集 V’ ,使得若 (u,v) 是 G 的一条边,则 v∈V’ 或 u∈V’ 。顶点覆盖 V’ 的 大小是它所包含的顶点个数|V’|。 算法描述

VertexSet approxVertexCover ( Graph g ) { cset= ; e1=g.e; while (e1 != ) { 从e1中任取一条边(u,v); cset=cset∪{u,v}; 从e1中删去与u和v相关联的所有边; } return c }
P类问题和NP类问题的关系
(1)P类问题可以用多项式时间的确定性算法来进行判定
或求解。 (2)NP类问题可以用多项式时间的不确定性算法来进行 判定或求解,关键是存在一个确定算法,能够以多项式的 时间来验证在猜测阶段所产生的答案。
问题求解难于问题验证,故大多数研究者相信 显然,因为DTMNDTM(是一个特例),所以 NP P 类是比 NP。
P=NP ?这至今仍然是一个悬而未决的问题 P 类要大得多的集合,故 P≠NP 是否有P=NP? 但是,时至今日,还没有任何人能证明:在NP类中有哪 个问题不属于P类 目前也没有任何人能为NP类中的众多难题里面的哪怕是 一个难题,找到一个多项式时间算法。
9.3 NP完全问题(NPC)
NP完全问题是NP类问题的一个子类,是更 为复杂的问题。 奇特的性质

为什么把多项式时间复杂性作为易解问题和难解问题的分界线?
1.多项式时间与指数时间随问题规模增长的增
长率有本质的差别 2.计算机性能的提高对多项式时间算法和指数 时间算法的影响不同 3.多项式时间复杂性忽略了系数,但不影响易 解问题和难解问题的划分 4.多项式时间复杂性的闭包性 5.多项式时间复杂性的分析结果,对于常用的 各种计算机形式模型具有不变性。

如果一个NP完全问题能在多项式时间内得到解
决,那么NP类中的每个问题都可以在多项式时 间内得到解决,即P=NP成立!。 思考:为什么一个NP完全问题能在多项式时间 内解决,NP类中的每一个问题都可以在多项式 时间内解决?
多项式变换技术(问题的变换)
若问题Q1的求解能够变换成问题Q2的求解且 变换的时间为O(τ(n)),则称Q1是τ(n)时间变换为 Q2,简记为Q1 ∝τ(n) Q2 ,其中n为问题Q1的规 模。 若Q1 ∝τ(n) Q2 ,当τ(n)为多项式时,称Q1可 多项式变换为问题Q2 ,记为Q1∝p Q2
非确定性算法与NP类问题
★定义4 如果对于某个判定问题,存在一个非
负整数k,对于输入规模为n的实例,能够以 O(nk)的时间运行一个不确定算法,得到是或 否的答案,则该判定问题是一个NP类问题。 NP类问题是一类能够用不确定算法在多项式 时间内求解的判定问题。 对于NP类判定问题,它必须存在一个确定算 法,能够以多项式时间来检查和验证在猜测阶 段所产生的答案。 思考:哈密顿回路判定问题是不是NP类问题? 汉诺塔问题是不是NP类问题?
一系列计算步后,最终进入终止状态qf时,称图灵机接受 这个输入符号串。图灵机识别的一个语言:所有这台图 灵机能接受的输入符号串的集合 计算函数的装置:函数的自变量可编码成一字符串输入 到一条输入带上,用一特殊符号#隔开。若图灵机经过 有限步后,在一条指定的带上输出整数y并停机,则可以 说图灵机计算出了f(x)=y。 图灵机的复杂性 时间复杂性T(n)是输入规模为n时所需的最大计算步数。 如果图灵机不停机,T(n)对这个n值无定义。 空间复杂性S(n)是输入规模为n时,在输入带上所使用过 的方格数的总和。如果某个读写头无限地向右移动而不 停机,S(n)无定义
RAM的复杂性标准
标准一:均匀耗费标准 在均匀耗费标准下,每条RAM指令需要一个单位时间; 每个寄存器占用一个单位空间。 标准二:对数耗费标准
对数耗费标准是执行一条指令的耗费与以二进制表示
的指令的操作数长度成比例。
随机存取存储程序机RASP
随机存取存储程序机RASP(Random Access Stored Program
多项式变换的两个性质: (1) A∝pB且B∈P,则A∈P。 (2) 若A∝pB且B∝pC,则A∝pC
NPC与NP困难
定义5 令Q是一个判定问题,如果:
(1)Q∈NP,即问题Q属于NP类问题 (2)对NP中的所有问题Q’,都有Q’∝pQ则
称判定问题Q是一个NP完全问题(NP complete problem),简记为NPC。 定义6:对于问题Q,如果任意问题Q’∈NP, 都有Q’∝pQ,则称问题Q是NP困难的。
近似算法所适应的问题是最优化问题。 对于一个规模为n的问题,近似算法应该满足下
面两个基本的要求:
(1)算法的时间复杂性:要求算法能在n的多项式时
间内完成。 (2)解的近似程度:算法的近似解应满足一定的精度。
衡量精度的标准 近似比 相对误差
NP完全问题的近似解法
(1)近似比
若一个最优化问题的最优值为C,求解该问题的一个近似




算法求得的近似最优解相应的目标函数值为c,则将该近似 C c max , 算法的近似比定义为 c C 在通常情况下,该近似比是问题输入规模n的一个函数ρ(n), C c max , n 即 c C (2)相对误差 c C 该近似算法的相对误差定义为 C c C n C 若对问题的输入规模n,有一函数ε(n)使得 则称ε(n)为该近似算法的相对误差界。近似算法的近似比 ρ(n)与相对误差界ε(n)之间显然有如下关系: ε(n) ≥ρ(n)-1。
第九章 NP完全理论
目录
易解问题和难解问题 三种计算模型
P类和NP类问题
NP完全问题 NP完全问题的近似算法
教学目标
理解易解问题和难解问题 了解三种计算模型 理解P类与NP类的概念 (重点) 理解NP完全问题的概念(重点) 理解近似算法的近似比及相对误差的概念
通过实例掌握部分NP完全问题的近似算法
非确定性算法与NP类问题
定义3 设A是求解问题Π的一个算法,如果算法A以如下猜



测并验证的方式工作,就称算法A非确定性算法: (1)猜测阶段:在这个阶段,对问题的输入实例产生一个 任意字符串y,在算法的每一次运行时,串y的值可能不同, 因此,猜测以一种非确定的形式工作。 (2)验证阶段:在这个阶段,用一个确定性算法验证: ① 检查在猜测阶段产生的串y是否是合适的形式,如果不 是,则算法停下来并得到no; ② 如果串y是合适的形式,则验证它是否是问题的解,如 果是,则算法停下来并得到yes,否则算法停下来并得到no。 如旅行商问题,最大团问题,图的m可着色判定问题。
补:三种计算模型(RAM, RASP, TM)
随机存取机RAM(Random Access Machine)的构造
… 只读输入带
指令 计数器 程序存储部件 r0 r1 r2 累加器
RAM定义了输入带到 输出带的映射: (1)计算函数装置

内存储器
(2)语言接受器
… 只写输出带
随机存取机RAM
(重点)
9.1 易解问题和难解问题

易解问题:在多项式时间内解决的问题

排序(冒泡排序、合并排序、快速排序) 会场安排问题 单源最短路径问题 哈夫曼编码 最小生成树 二分查找 矩阵连乘问题

难解问题:在指数时间内解决的问题
不可判定问题(太难了,不存在任何算法求解) 图灵机停机问题(1936年被证明是不可判定问题) 希尔伯特第十问题(整数多项式方程的可解性问题在1970年由苏、美数学家证明 Hilbert所期望的一般算法是不存在的,是不可判定问题) 非决定的难处理问题 旅行商问题 汉诺塔
图灵机(Turing Machine)
图灵机(Turing Machine )的构造
图灵机原型
……
磁头 有限 状态控 制器
输入带
1.改变有限状态控制器的状态 2.清除读写头下方的原有符号, 并写上新的符号 3.读写头向左或者向右移动一 个方格,或不动
TM的数学描述
M = (Q, T, I, δ, b, q0, qf )
P 类问题和 NP 类问题是针对语言识别问题基
于图灵机计算模型给出的。
确定性算法与P类问题
定义1 设A是求解问题Π的一个算法,如果在算法
的整个执行过程中,每一步只有一个确定的选择, 则称算法A是确定性(Determinism)算法。 定义2 如果对于某个判定问题Π,存在一个非负整 数k,对于输入规模为n的实例,能够以O(nk)的时 间运行一个确定性算法,得到yes或no的答案,则 该判定问题Π是一个 P 类(Polynomial)问题。 所有易解问题的判定问题都是P类问题 如最短路径的判定问题属于P类问题
Q:有限状态的集合; T:有限个带符号的集合;
其中:
I T:是输入符号的集合;
δ:Q×Tk→Q×(T×{L,R,S})k为转移函数; B:唯一的空白符,b∈T – I; q0:初始状态 qf:终止状态。
图灵机的语言
图灵机的解释 语言接受器:当且仅当从指定的初始状态q0开始,经过
9.2 P类和NP类问题
判定问题
是仅仅要求回答“yes”或“no”的问题
相关文档
最新文档