第八章 NP完全问题

合集下载

第八章NP完全性理论

第八章NP完全性理论

显 是然 否, 有因 P≠为NPD?真TM的即这N是如D否个T此M有尚吗,未Q所?解N以决P,P的且问NQP题。。P?
5/6/2020
计算机算法设计与分析
17
问题的变换及时间等价性
若问题A的求解能够变换成问题B的求解且变 换的时间为O(τ(n)),则称A是τ(n)时间变换为B, 简记为A∝τ(n)B,其中n为问题A的规模。
通这用个图三林带机图将林某机个就图被林称机为M通i的用编图码林存机储。在编码 带上;工作带上初始时为初始状态q0;然后依 据状态及现行扫描的符号选择并执行编码。
5/6/2020
计算机算法设计与分析
10
用RAM模拟TM
定理8-3:设算法A,对于任何长度为n的输入, 在图林机TM下的时间复杂性为T(n),则A在 RAM下的时间复杂性为O(T2(n))。
的任何问题容易,至少是同样难或更难。
5/6/2020
计算机算法设计与分析
20
NP完全性
定义:对于问题Q,若满足Q∈NP且Q是NP困 难的,则称Q是NP完全的。
所有NP完全的问题记为NPC。 定理:设Q∈NPC,P=NP当且仅当Q∈P。 如果P≠NP,则P,NP与NPC或许如下图所示:
P NP NPC
…… 输入带
磁头
有限 控制器
输入带被视为右无穷,并被划分为一个个 单元用于存放符号(带符号)。 有限控制器由有限个状态构成。
磁头可左右移动,读写带符号。
5/6/2020
计算机算法设计与分析
7
TM的数学描述
M = (Q, T, I, δ, b, q0, qf )
其中: Q是有限状态的集合; T是有限个带符号的集合; I T,是输入符号的集合; δ:Q×T→Q×T×{L, R}为转移函数; b是唯一的空白符,b∈T – I; q0和qf分别为初始状态和终止状态。

第八章NP完全性理论

第八章NP完全性理论
第八章
NP完全性理论
2019/8/11
计算机算法设计与分析
1
随机存取机RAM的构造
指令 计数器
2019/8/11
… 只读输入带
程序存储部件
r0 r1 r2

累加器
内存储器
… 只写输出带
计算机算法设计与分析
2
随机存取机RAM的指令集
操作码 ⑴LOAD ⑵STORE ⑶ADD ⑷SUB ⑸MULT ⑹DIV ⑺READ ⑻WRITE ⑼JUMP ⑽JGTZ ⑾JZERO ⑿HALT
16
P类与NP类语言/问题
P = {L | L在多项式时间被DTM接受}
NP = {L | L在多项式时间被NDTM接受}
这 若里 Q∈也N可P用,R则A可M以等用其一它个的D机T器M来模模型拟来接定受义Q。的但 它 ND们T都M,是所等需价要的时。间复杂性为O(CT(n))。
这使人们认为NP类问题要比P类问题更难。
证明:每个寄存器放输入带一个单元的内容, 这样RAM就可以模拟TM的工作。
均匀耗费标准下,模拟TM一个动作,RAM需 常数时间。A在RAM下时间复杂性为O(T(n))。
对数耗费标准下,RAM模拟TM的时间复杂性 为O(T(n)logT(n)) =O(T2(n))。 。
2019/8/11
计算机算法设计与分析
表 可 是 列这 憾达 满 一 转一 的式 足 个 换事 是A的 构 为实 ,i都。 造 一, 这为证个增个真S明强猜A,了测T问则即人迄题称将们今。布接对仍尔受然P≠表L还N的达P只的N式是D猜AT个测1M,猜…。的测,但瞬A。遗象m是序
2019/8/11
计算机算法设计与分析
22

如何用整数规划求解NP完全问题

如何用整数规划求解NP完全问题

如何⽤整数规划求解NP完全问题如何⽤整数规划求解NP完全问题⼀、NP完全问题NP完全问题是⼀类具有⾮常⾼难度的组合最优化问题,所有NP完全问题都是NP难问题。

虽然P问题是⽐较容易的问题,NP问题却不⼀定是困难问题,必须看见NP完全或者NP难这样的字才能说这个问题求解起来很困难。

经常听砖家说,NP完全/NP难问题不能⽤整数规划求解。

实际情况怎样?实事证明砖家的话只能信⼀半:)。

这⾥咱就看看⽤整数规划求解⼀个NP完全问题⾏也不⾏。

这⾥有⼀个货真价实的整数规划问题——划分问题(The partition problem)。

问题是:给定⼀个⼤⼩不等的整数集合,问是否可以把这些整数划分成两个集合,任何⼀个整数或者在集合S1中或者在S2中,但不能同时在两个集合中;对任意给的⼀个整数集合,请设计算法,解决是否存在⼀个划分,使得S1种整数之和恰好等于S2集合的整数之和。

⼆、建⽴整数规划模型对每个整数定义⼀个0-1变量xi, xi=1 表⽰第i个整数位于集合S1中, xi=0表⽰第i个整数位于S2中。

⽤s1表⽰第⼀集合的整数之和,⽤s2表⽰第⼆个集合⾥的整数之和。

即:设d是s1和s2之间差的绝对值。

于是:我们只要极⼩化d就可以了,即:完整模型:三、上⾯的模型的⽂本表达上⾯的模型不只是⽤来摆摆看的,还可以真的被求解哈。

我们需要把模型写成⽂本格式(Leapms建模语⾔格式),让计算机理解。

⽬标函数就写成min d加上其余约束部分(注意西格玛符合的写法)subject tos1=sum{i=1,...,n}x[i]S[i]s2=sum{i=1,...,n}((1-x[i])S[i])d>=s1-s2d>=s2-s1加上符号说明(符号必须说明,不然计算机不知道哪些是常数,哪些是变量)wheren is an integerS is a sets1,s2,d are variables of numberx[i] is a variable of binary|i=1,...,n加上数据(注意整数个数是从集合S上⾃⼰数出来的)data_relationn=_$(S)dataS={11,47,159,137,85,47,142,35,119,61,88,175,13,96,-11,176,126,15,98,46,163}四、求解把如下完整模型贴到记事本上,保存为 partition.leap⽂件。

算法设计与分析_08一些NP完全问题

算法设计与分析_08一些NP完全问题

2016/2/10
算法设计与分析演示稿 纪玉波制 作(C)
33
33.纵横字谜结构:字的有限集WΣ *及0和1的 n×n矩阵A。 问:由W中的字和对应于A中的0的那些空格,能 否建立起一个n×n纵横字谜,即如果E是使得 Aij=0的有序对(i,j)的集合,那末是否有一个 赋值f:E→Σ ,使得赋予E中元素所组成的任一 最大的横的或纵的连续序列的字母都能按序排 成W中的字? 注释:即使A中所有元素全部为0,也仍是NP完全 的。
2016/2/10
算法设计与分析演示稿 纪玉波制 作(C)
4
4.划分成完美匹配:图G=(V,E),正整数K≤|V|。 问:G的顶点是否能划分成k≤K个不相交的集合 V1,V2,…,Vk, 使得对于1≤i≤k,由Vi诱导的子图是一个完美匹 配(全部由1度的顶点组成)? 注释:对于K=2,仍然是NP完全的。
注释:问题的变形一一如果要求由V’所导出的子图是连通 的——甚至对于顶点度数不超过4的平面图,也是NP完全的。 相关的边覆盖问题一一即求最小的集使得所有v∈V’都至 少属于一个e∈E’——能通过图的匹配在多项式时间内得到 解决。
2016/2/10 算法设计与分析演示稿 纪玉波制 作(C) 2
2.图的可着K色性:图G=(V,E),正整数 K≤|V|。 问:G是否可着K色,即是否存在函数 f:V→{1,2,…,K}, 使得只要{u,v}∈E,就有f(u)≠f(v)? 注释:对于K=2,是多项式时间内可解的,但 对于所有固定的K≥3,和对于K=3而且不含4度 以上顶点的平面图,仍是NP完全的。
2016/2/10
算法设计与分析演示稿 纪玉波制 作(C)
16
2016/2/10
算法设计与分析演示稿 纪玉波制 作(C)

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完全性理论

算法分析设计NP完全性理论

8.1.3 RAM模型的变形与简化
1. 实随机存取机 RRAM
在RRAM模型下,一个存储单元可以存放一个实数。下列的各 运算为基本运算且每个运算只耗费单位时间。
(1)算术运算+,-,×,/。 (2)2个实数间的比较(<,≤,=,≠,≥,>)。 (3)间接寻址(整数地址)。 (4)常见函数的计算,如三角函数,指数函数, 对数函数等。
8.1.3 RAM模型的变形与简化
RAM和RASP是在现实计算机原型上抽象出来的计算模型。 在许多场合下直接使用这两种计算模型太复杂。因此,在 不影响复杂性阶的情况下,人们从时间需要出发提出了一 些简化的计算模型,如实随机存取机(RRAM),直线式 程序(SLP),位计算(BC),位向量运算(BVO),判 定树(DT),代数计算树(ACT)和代数判定树(ADT) 等。
8.1.4 图灵机
1. 多带图灵机
图灵机是一个结构简单且计算能力很强的计算模型。 一台多带图灵机由一个有限状态控制器和k条读写带组成。 这些读写带的右端无限,每条带从左到右划分为方格,每个 方格可以存放一个带符号。带符号的总数是有限的。每条带 上都有一个由有限状态控制器操纵的读写头,它可以对这k 条带进行读写操作。有限状态控制器在某一时刻处于某种 状态,且状态的总数是有限的。
8.1.4 图灵机
与RAM模型类似,图灵机既可作为语言接受器,也可 作为计算函数的装置。
图灵机M的时间复杂性T(n)是它处理所有长度为n的输 入所需的最大计算步数。如果对某个长度为n的输入,图灵 机不停机,T(n)对这个n值无定义。 图灵机的空间复杂性S(n)是它处理所有长度为n的输 入时,在k条带上所使用过的方格数的总和。如果某个读写 头无限地向右移动而不停机,S(n)也无定义。

第八章NP完全性理论

第八章NP完全性理论
计算机算法设计与分析 9
2019/4/9
通用图林机
输入带 不失一般性,任何图林机的T = {0, 1}; δ:Q×T→Q×T×{L, R}的每个动作由五个部 有限 code #code 1 2#…#coden 编码带 分构成 ( 五字诀 ) , δ 含有有限个五字诀。 控制器 于是,任一图林机都可写成一个二进制编码。 qi 工作带 所以任一图林机可用一个三带图林机来模拟。 通用图林机将某个图林机 这个三带图林机就被称为通用图林机。 M 的编码存储在编码

2019/4/9 计算机算法设计与分析 11
用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的一步程序。
…… 输入带
磁头
有限 控制器
输入带被视为右无穷,并被划分为一个个 单元用于存放符号(带符号)。 有限控制器由有限个状态构成。 磁头可左右移动,读写带符号。
计算机算法设计与分析 7
2019/4/9
TM的数学描述
其中: Q是有限状态的集合; T是有限个带符号的集合; I T,是输入符号的集合; δ:Q×T→Q×T×{L, R}为转移函数; b是唯一的空白符,b∈T – I; q0和qf分别为初始状态和终止状态。

第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’是一个团则接受输入,
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2017/6/19 计算机算法设计与分析 8
P与NP的关系

若Q∈NP,则可以用一个DTM来模拟接受Q的NDTM, 所需要时间复杂性为O( CT(n) )。C是一个常数。 这使人们认为NP类问题要比P类问题更难。 真的如此吗? 显然,因为DTM NDTM,所以PNP。 这是个尚未解决的问题。 QNP,且QP? 是否有P≠NP? 即是否有 关于N和NP的关系, 暂且假定如图所示。 阴影部分是否非空, 还不能确定!
计算机算法设计与分析 2
2017/6/19
TM的数学描述
其中: Q是有限状态的集合; T是有限个带符号的集合; I T,是输入符号的集合; δ:Q×T→Q×T×{L, R,S}为转移函数; b是唯一的空白符,b∈T – I; q0和qf分别为初始状态和终止状态。
2017/6/19 计算机算法设计与分析 3
P
NP
NPC
2017/6/19
计算机算法设计与分析
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 问题。 憾的是,这个猜测迄今仍然还只是个猜测。
第八章 NP完全问题
2017/6/19 计算机算法设计与分析 1
图林机的构造

图林机(Turing Machine)是英国数学家Turing在 1936年提出的计算模型,被认为是当今计算机 的理论模型。下面是图林机(TM)原型的构造:
…… 输入带
磁头
有限 控制器
输入带被视为右无穷,并被划分为一个个 单元用于存放符号(带符号)。 有限控制器由有限个状态构成。 磁头可左右移动,读写带符号。
M = (Q, T, I, δ, b, q0, qf )
图林机的变形



多道图林机(输入带上有多个道)。 双向图林机 (输入带被视为左右均是无穷的)。 多带图林机(具有多条输入带)。 多头图林机 (具有多个磁头)。 多维图林机(输入带是多维的)。 不确定的图林机(有限控制器是不确定的)。 不确定的图林机类似于不确定的自动机,即 将图林机的原型称为确定的,记为DTM;而 已经证明各类变形图林机在可计算的能力上等 δ:Q×T→ρ(Q× T×{L, R, S}) 价于原型图林机。但是在复杂性是有区别的。 将不确定的图林机记为 NDTM ,
计算机算法设计与分析 14
2017/6/19

2017/6/19 计算机算法设计与分析 7
P类与NP类语言/问题

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

2017/6/19
计算机算法设计与分析
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或许如下图所示:
计算机算法设计与分析 4
2017/6/19
可计算性问题的层次

若某问题存在求解的算法,则称其为可计算的; 若不存在算法但是存在求解的过程,则称其为 半可计算的;若连过程也不存在,则称其为完 全不可计算的。
可计算的问题的集合称为递归集;半可计算的 完全不可计算 半可计算 称为递归可枚举集;完全不可计算的称为非递 归可枚举集。 可计算 可计算的问题的计算复杂性是不是都相同呢?

2017/6/19 计算机算法设计与分析 5
判定与求解
人们通常认为,判定一个问题要比求解一个问 题容易些。 但是也并非完全如此。例如TSP问题。要验证 一条周游路线是否最小和求一条最小周游路线 实际上是一样的难。 可见,“判定问题”可能跟相应问题的“求解” 有同样的难度,但不会
6
确定的图林机与不确定图林机
NDTM是一种并行的工作方式,它可以用交叉 串行的确定方式来模拟。因此任何NDTM都可 以用DTM来模拟实现,但其复杂性却不相同。 对于一台复杂性为T(n)的NDTM,可用一台复 杂性为O(CT(n))的DTM来模拟,这里C为常数。 实际上可以将NDTM的运行方式看作并行的, 而DTM是串行的。并行运行可用串行来模拟, 但并行的效率要高于串行的效率。 而并行计算机的运行方式本质是确定的。

2017/6/19 计算机算法设计与分析 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中 的任何问题容易,至少是同样难或更难。
P类
NP类
2017/6/19
计算机算法设计与分析
9
问题的变换及时间等价性
若问题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具有相同的时间复杂性。

2017/6/19 计算机算法设计与分析 13
若干NP完全问题



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