NP完全性精讲

合集下载

NP完全问题 ppt课件

NP完全问题 ppt课件
❖判定问题举例:给定一个带整数权的有向图G和一 个正整数k,是否存在着一条长度小于k的哈密尔顿回 路?
❖优化问题举例:给定一个带整数权的有向图G,其 最短路径长度的哈密尔顿长度是多少?
NP完全问题
1.3 优化问题向判定问题的转换
判定问题举例:给定一个带整数权的有向图G和一个正整数k, 是否存在着一条长度小于k的哈密尔顿回路? 优化问题举例:给定一个带整数权的有向图G,其最短路径 长度的哈密尔顿长度是多少?
for (int j=0; j<n; j++)
if (a[i] == a[j])
return yes; //修改为no
return no; //修改为yes
}
NP完全问题
2.1.5 判定问题规约的定义
❖定义:令和是两个判定问题,如果存在一个 具有如下性能的算法A,可以用多项式的时间,把 问题的实例I转换为问题的实例I,使得I与I的 答案一致,就称以多项式时间规约于,记为 p
❖定理:P类问题在补集下是封闭的
❖证明:对于P类问题中的任意问题,只要修 改相应的多项式级别算法A的代码,把返回yes的 改为返回no,把返回no的改为返回yes即可
boolean judgeEqual(int n, Elem[] a, Elem[] b){
for (int i=0; i<n; i++)
第12章 NP完全问题
1. NP完全问题概述 2. P类和NP类问题 3. NP完全问题 4. co_NP类和NPI类问题
NP完全问题
1. NP完全问题概述
1.1 Church-Turing论题和Cook-Karp论题 1.2 问题分类 1.3 优化问题向判定问题的转换

清华大学算法分析与设计课件第10讲_NP完全性理论

清华大学算法分析与设计课件第10讲_NP完全性理论

Lecture 10. NP完全性理论清华大学软件学院清华大学 1内容提要•计算模型与计算复杂度关系•问题分类:【P】与【NP】类•NP-难【hard】问题,NP完全集•第一个NPC问题和NPC问题集•如何证明一个问题是NPC问题涉及到的算法理论基础•原则上是否存在一般数学问题的解题步骤的判决问题【希尔波特第十问题】•图灵机的停机问题:是否存在一个图灵机,他可以回答其它图灵机是否停机【既算法是有界的】•图灵公理:凡是可计算的函数都可以用一台图灵机来计算•P-NP-NPC问题定义及其猜想:NPC是一类不可以在多项式时间内计算的问题。

清华大学 3明代数学家程大位著《算法统宗》中关于珠算的插图机械式手动计算机清华大学 5机械计算机•法国数学家、哲学家帕斯卡在1642年发明了一种机械计算机,并与1649年取得专利。

帕斯卡的计算机采用一种齿轮系统,其中一小轮转十个数字,下一个小轮便转动一个数字,通过齿轮系的联动,可以进行加法和减法的运算.图灵•大半个世纪以来,数学家、计算机科学家提出了各种各样的计算模型都被证明是同图灵机器等价的。

这一理论已被当成公理,它不仅是计算机科学的基础,也是数学的基础之一。

为纪念英国数学家Turing(1912-1954) 而设立的图灵奖成为计算机界的诺贝尔奖.清华大学7图灵机模型图灵机定义•一个图灵机是一个7元组(Q,∑,Γ,δ,q0,q1,q2), 其中Q,∑,Γ都是有穷集合,并且•1) •2) •3) 集. •4) •5) •6) •7) Q 是状态集.∑是输入字母表,不包括特殊空白符号︺. Γ是带字母表,其中: ︺∈Γ,∑是Γ的子δ: Q×Γ→Q×Γ×{L,R}是转移函数. q0∈Q是起始状态.q1∈Q是接受状态.q2∈Q是拒绝状态,且q2≠q1图灵机模型•图灵机模型用一个无限长的带子作为无限存储, 它还有一个读写头,这个读写头能在带子上读, 写和移动: 开始时,带子上只有输入串,其它地方都是空的.当它需要保存信息时,读写头就把信息写在带子上.为了读某个输入或写下的信息,带子可能将读写头往回移动到这个信息所在的地方.这样读,写和移动,机器不停的计算, 直到产生输出为止.机器实现设置了两种状态: 接受或拒绝清华大学9多带图灵机,•和普通图灵机相似,只是有多个带子,每个带子都有自己的读写头,用于读和写.如图清华大学11非确定性的图灵机•非常容易理解,在计算的任何时刻,机器可以在多种可能性中选择一种继续进行.它的计算是一课树,不同的分枝对应着机器不同的可能性.如果某个计算分枝导致接受状态,则接受该输入.与多带图灵机相同的是,它的计算能力与普通图灵机也是一样的.当然他的计算能力就不一样了。

第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完全性理论ppt课件

NP完全性理论ppt课件

2
8.1.1 随机存取机RAM
1. RAM的结构 2. RAM程序
• 一个RAM程序定义了从输入带到输出带的一个映射。 可以对这种映射关系作2种不同的解释。
精选版课件ppt
3
解释一:把RAM程序看成是计算一个函数 若一个RAM程序P总是从输入带前n个方格中读入n个整数
x1,x2,…,xn,并且在输出带的第一个方格上输出一个整数y 后停机,那么就说程序P计算了函数f(x1,x2,…,xn)=y
fv o pfv1 或f v 2 opfv 或c f v1
fv fv1
其中,f v1和 f分v 2 别是结点v在树T中的祖先结点v1和v2处得到
的结果值,或是x的分量;op∈{+,-,×,/};c是一个常数。
(3)每个有2个儿子的内部结点(分支结点)v,表示下列形式的
测试指令:
f >v1 0或 ≥f v01 或 =f0v1
精选版课件ppt
22
8.2.1 非确定性图灵机
在图灵机计算模型中,移动函数δ是单值的,即对于QTk中的 每一个值,当它属于δ的定义域时,Q(T{L,R,S})k中只有惟 一的值与之对应,称这种图灵机为确定性图灵机,简记为
DTM(Deterministic Turing Machine)。
非确定性图灵机( NDTM ):一个k带的非确定性图灵机M 是一个7元组:(Q,T,I,δ,b,q0,qf)。与确定性图灵机不同 的是非确定性图灵机允许移动函数δ具有不确定性,即对于QTk 中的每一个值(q;x1,x2,…,xk),当它属于δ的定义域时,Q(T{L, R,S})k中有惟一的一个子集δ(q;x1,x2,…,xk)与之对应。可以在 δ(q;x1,x2,…,xk)中随意选定一个值作为它的函数值。

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的一步程序。

NP完全性证明(2)

NP完全性证明(2)

3.4 NP完全性的证明一、六个基本的NPC问题三元可满足性问题(3SAT)三维匹配问题(3DM)顶点覆盖问题(VC)团的问题哈密顿回路(HC)均分问题二、基本NP完全问题的证明三、NP完全问题的证明方法一、六个基本NP完全问题3SAT实例: 有穷布尔变量集U 和U上的子句集C={c1,c2,...,cm},其中|ci|=3, 1≤i≤m.问: 对于U是否存在满足C中所有子句的真值赋值?3DM实例: 集合M ⊆W×X×Y, 其中W,X,Y互不相交, 且|W|=|X|=|Y|=q.问: M是否包含一个匹配, 即是否存在子集M’⊆M使得|M’|= q且M’中任意两个元素的三个坐标都不相同?肯定实例:W={a1,a2,a3,a4},X={b1,b2,b3,b4},Y={c1,c2,c3,c4}M={(a1,b2,c1),(a1,b1,c1),(a2,b1,c2),(a2,b2,c1), (a3,b3,c3),(a4,b4,c4),(a4,b2,c1)}VC实例: 图G=(V,E), 正整数k≤|V|.问: G中是否存在大小不超过k的顶点覆盖, 即是否存在子集V’⊆V,使得|V’|=k, 且对每条边{u,v}∈E都有u∈V’或v∈V’?团实例: 图G=(V,E), 正整数J≤|V|.问: G是否包含大小不小于J的团, 即是否存在子集V’⊆V,使得|V’|≥J, 且V’中每两个顶点都由E中的一条边连接?独立集实例:图G=(V,E),正整数J≤|V|问:G中是否包含大小不小于J的独立集,即是否存在V’⊆V, 使得|V’|≥J,且∀u,v∈V’,{u,v}∉E?HC实例: 图G=(V,E),|V|=n.问: G 中是否包含一条哈密顿回路, 即是否有G 的顶点排列><n j j j v v v ,...,,21?},{,1,},{11E v v n i E v v j j j i j n i ∈<≤∈+∑=∑-∈∈'')()(A A a A a a S a S 使得均分实例: 有穷集合A, ∀a ∈A 有”大小”S(a)∈Z +问: 是否存在子集A ’⊆ A 使得证明顺序均分HC 团(独立集)1.3SAT∈NPC证明思路证3SAT∈NP将SAT的实例变换成3SAT的实例:根据子句中的文字个数k 分别处理1个子句转变成多个子句保证每个子句含有3个文字转变前与转变后的真值不变证显然3SAT属于NP.设U={u1,u2,...,un}, C={c1,c2,...,cm}是SAT的任何实例.对于C中任意子句c j ={z1,z2,...,zk},构造新增的变量集Uj ’和子句集Cj’.}},,}{,,{},,,{},,,{{'},{'21121121121121j j j j j j j j j j j j y y z y y z y y z y y z C y y U ==C j ’被满足⇔c j 被满足.若k=2, c j ={z 1,z 2}, 则}},,{},,,{{'}{'1211211j j j j j y z z y z z C y U ==C j ’被满足⇔z 1+z 2为真⇔c j 被满足.若k=3, 则U j ’= ∅C j ’= {c j }若k=1, c j ={z 1}, 则},,{},,,{},,,{{'},{'54223112121z z y y z y y z z C y y U j j j j j j j j ==c j 可满足⇔z 1+z 2+...+z 5为真⇒C j ’可满足如z 1+z 2为真, 则y j 1= y j 2 = F ;如z 3为真, 则y j 1= T,y j 2 = F ;如z 4+z 5为真, 则y j 1= T,y j 2 = T .反之, 若C j ’可满足而c j 不满足, 则z 1+z 2+...+z 5为假, 即z 1,z 2,...,z 5全为假, 必须y j 1=T,y j 2 =T, 最后的子句不满足.若k>3, 例如c j = {z 1,z 2,...,z 5}, 则一般若c j ={z 1,z 2,...,z k }, k>3}},,{{}41:},,{{}},,{{'}31:{'1312121k k k ji ji i j j j i j j z z y k i y z y y z z C k i y U --++⋃-≤≤⋃=-≤≤=令U ’= U ⋃U 1’⋃U 2’⋃...⋃U m ’C ’= C 1’⋃C 2’⋃...⋃C m ’下面证明f是多项式变换.易见若t满足C’, 则t满足C. 假若t不满足cj,则z 1,z2,…,zk全为假,只能有Tyyy k jjj====-321...C’的最后一个字句不满足.反之,设t:U→{T,F}是满足C的真值赋值, 将U’-U的变量分成U1’, U2’, ..., Um’, 且Uj’的变量只出现于子句Cj ’中。

第九章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完全性理论与近似计算培训课件

寄存器可存放一个任意大小的整数。因此若设l(i)是整数i所
占的二进制位数,则
l(i)lo1g|i|
i 0 i 0
9.1.2 随机存取存储程序机P
1、RASP的结构
❖ RASP的整体结构类似于RAM,所不同的是RASP 的程序是存储在寄存器中的。每条RASP指令占据2 个连续的寄存器。第一个寄存器存放操作码的编码, 第二个寄存器存放地址。RASP指令用整数(1~18) 进行编码。
解释二:把RAM程序当作一个语言接受器。 将字符串S=a1a2…an放在输入带上。在输入带的第一个,
第二个,…,第n个方格中依次放入符号a1,a2,…,an。然 后在第n+1个方格中放入0,作为输入串的结束标志符。如果 一个RAM程序P读了字符串S及结束标志符0后,在输出带的第 一格输出一个1并停机,就说程序P接受字符串S。
0、有穷自动机(补充)
确定型有穷自动机的定义:
一台确定型有穷自动机是一个五元组(Q,
, , S, F)。其中, Q, , 都是有穷集合。 • Q:有穷状态集合 • :字母表
• S: 初始状态, S Q • F: 终止状态集合,F Q • : 转移函数, : Q Q
确定性有穷自动机举例
例:一台确定型有穷自动机,它接受这样的语言:由a,b 字符构成、不含3个连续b字符的有限长度的字符串。
2、RASP程序的复杂性
不管是在均匀耗费标准下,还是在对数耗费标准 下,RAM程序和RASP程序的复杂性只差一个常 数因子。在一个计算模型下T(n)时间内完成的输 入-输出映射可在另一个计算模型下模拟,并在 kT(n)时间内完成。其中k是一个常数因子。空 间复杂性的情况也是类似的。
9.1.3 图灵机
• 大多数指数时间算法只是穷举搜索法的变种 • 多项式时间算法通常只有在对问题的结构有了某些比
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SHORTEST-PATH要优化的值:路径长度 给定图G,顶点u和v,限界:非负整数 N是自然数集。
kN
最短路径问题SHORTEST-PATH相关联的判 定问题PATH:给定一个图G,顶点u和v及非 负整数k,问是否有u到v的包含边数至多是k的 路径?
优化问题与其相关联的判定问题的难易程度: 如果一个优化问题是容易的,那么其相关联的 判定问题也是容易的。反过来,如果优化问题 的相关联的判定问题是难的,那么优化问题本 身一定是难的是。 SHORTEST-PATH是容易的,因此PATH是容 易的。(为什么?)
NP-完全性简介
NP-完全性
● 有的问题是难解的(
intractable):
当问题规模变得越来越大时,我们不能在合 理的时间内求得问题的解. ● 什么才算是合理时间? 标准定义: 多项式时间(polynomial time)
■ 对于规模为 n的输入, 最坏情况时间复杂度为
O(nk) ,其中k是某一常数. ■ 多项式时间: O(n2), O(n3), O(1), O(n lg n) ■ 非多项式时间: O(2n), O(nn), O(n!)
第五章 NP-完全性 NP Completeness
内容提要
•多项式时间,多项式时间归约,多项
式时间可验证算法,多项式时间可判 定算法 •优化问题及其相关的判定问题 •P,NP,NP-难,NP-完全,CO-P,CO-NP •电路可满足性问题是NP-完全问题 •若干NP-完全性问题的证明
重点与难点
归约
设A,B是两个不同的判定问题。
A 是问题A的一个实例,
l1
ll2 l1 l2 l1
结论 2-CNF公式可满足当且仅当其关联有向图中 任一强连通分支上不出现互为否定的文字。
C D与(C x) (x D)有相同的可满足性。
l1 l2 lm1 lm 与 (l1 l2 x1 ) (x1 l3 x2 ) (x2 l4 x3 ) (xm4 lm4 xm3 ) (xm3 lm1 lm ) m3
NP-完全问题
● NP-完全问题是这样一个其求解难度未知的
问题类:
■ 至今还没有发现有多项式时间算法来求解
■ 也没有给出其求解时间以超多项式为下界
● 我们把它叫做 P = NP 问题
■ 该问题是计算机科学领域中最大问题。也是一
个21世纪的难题。
NP 是Non-deterministic Polynomial 的缩写
NP-完全理论
概述 问题Q的多项式时间算法:最坏情况时间复 杂度f(n)=O(nk),k是某一常数。
易解问题:有多项式时间算法;
难解问题:需要超多项式时间。
有些问题描述相似但其求解难度有本质不同:
•最短路径问题 V.S. 最长路径问题 •Eular回路问题 V.S. Hamilton回路问题
•2-CNF可满足性问题 V.S. 3-CNF可满足性
判定问题与优化问题
优化问题:有若干个可行解,每个可行解有一个 值与它相关联,求有最优值的可行解。 如最短路径问题SHORTEST-PATH.
判定问题:只要求回答“是”或“不是(YES/NO)
每个优化问题都有其关联的判定问题 (判定问题与优化问题的关系)。 对于一个给定的优化问题,通常对进行优 化的值作限界后可得到关联的判定问题。
具有相同的可满足性。
K-CNF:一个布尔公式称为k-CNF公式,如果 它是一个CNF公式且它的每个子句恰有k个 变元或变元的负出现。
可满足公式:一个布尔公式称为可满足的,如 果存在对该公式中的变量的一种赋值,使 得布尔公式取值为真。
k-CNF可满足问题:任给定一个k-CNF公式 F,问F是否可满足? 2-CNF可满足问题――多项式时间可判定 k-CNF可满足问题――NP-完全(k 3)。
重点: •多项式时间归约 •P,NP,NP-难,NP-完全,CO-P,CO-NP •电路可满足性问题是NP-完全问题 难点:若干NP-完全性问题的证明
学习目的与要求
理解多项式时间 , 多项式时间归约 , 多项式时间可验证算法,多项式时间 可判定算法,优化问题及其相关的判 定 问 题 ,P,NP,NP- 难 ,NP- 完 全 ,COP,CO-NP,电路可满足性问题是NP-完 全问题.掌握若干NP-完全性问题的 证明方法.
问题
NP-完全性及P类、NP类简介
P类:多项式时间可解的问题类。
NP类:多项式时间可验证的问题类。 P
NP, NPC
NP.
注意:P类问题、NP类问题都是指判定问题
2-CNF可满足问题是P问题。
xy
x y,
y x
例如,F (l1 l2 ) (l1 l2 ) (l1 l2 ) (l1 l2 )
多项式时间算法
● 多项式时间可解问题 ■ P表示多项式时间可解的问题类.
● 所有问题都能在多项式时间内可解?
■ 图灵机“停机问题”是不可解问题。不管用多
长时间、多大规模的计算机。 ■ 波斯特(POST)对应问题是不可解问题。 ■ 这些问题是难解问题, 且没有多项式时间算法
POST 对应问题
给定两个有序表A {s1,s2 , ,sk}, B {t1,t2 , ,tk }.A B k.sj,tj 都是二进制代码串。且 |sj | 0, | tj | 0.(j 1,2,,k).问:是否有下 标序列i1, i2 , , in(n 1)使得 si1si2 sin ti1 ti2 tin ?
波斯特对应问题实例: Σ={0,1} 例1. A={1,10,011}, B={101,00,11} 其解为:(1,3,2,3) 1011 10 011 例2. A={1,10111,10},B={111,10,0} 其解为(2,1,1,3)或(2,1,1,3,2,1,1,3) 例3.A={10,011,101},B={101,11,011} 这个PCP问题实例无解。
相关文档
最新文档