第八章 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’是一个团则接受输入,

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

算法设计与分析课件--NP完全性理论-NP完全问题及近似算法
算法设计与分析
1
第八章 NP完全性理论
目录
8.1 异解问题和难解问题
8.2 P类问题和NP类问题
8.3
NP完全问题
8.4 NP完全问题的近似算法
2
8.3 NP完全问题
◼ 问题变换:
➢ NP类问题在最坏情况下的时间复杂性一般都是快速增长的指数函 数。希望能够在NP类问题内部找到一种方法,比较两个问题的计 算复杂性。
12
8.4 NP完全问题的近似算法
◼ NPC问题的近似算法的性能:
❖若一个最优化问题的最优值为c*,求解该问题的一个近 似算法求得近似最优解相应的目标函数值为c,则将该近 似近≤似算ρ比法(是n的)问。近题ρ似输(比n入)定为规义1模时为n,的求=一m得a个x的c函c*近, c数c*似 ρ。解(在为n)通最,常优即情解m况a。x下cc* ,,cc*该
➢ NPC问题是NP类问题中最难的一类问题。至今已经发现 了几千个,但一个也没有找到多项式时间算法。
➢ 如某一个NPC问题能在多项式时间内解决,则每一个 NPC问题都能在多项式时间内解决。
➢ 这些问题也许存在多项式时间算法。因为计算机科学是 相对较为新生的科学,肯定还有新的算法设计技术有待 发现;
➢ 这些问题也许不存在多项式时间算法。但目前缺乏足够 的依据来证明这一点。
➢ 比较两个问题的计算复杂性的可行方法之一是问题变换。
问题∏ I 输入转换
问题∏′
I′
算法A ′
O′ 输出转换 O
3
8.3 NP完全问题
◼ 多项式时间变换:
➢ 若在O(τ(n))时间内完成上述输入/输出转换,则称问题P1以τ(n)时间 变换到问题P2,记为P1∝τ(n) P2。其中,n为问题规模。

NP完全问题

NP完全问题

模拟退火算法(Simulated Annealing)来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加 温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最 后在常温时达到基态,内能减为最小。根据Metropolis准则,粒子在温度T时趋于平衡的概率为e-ΔE/(kT), 其中E为温度T时的内能,ΔE为其改变量,k为Boltzmann常数。用固体退火模拟组合优化问题,将内能E模拟为目 标函数值f,温度T演化成控制参数t,即得到解组合优化问题的模拟退火算法:由初始解i和控制参数初值t开始, 对当前解重复“产生新解→计算目标函数差→接受或舍弃”的迭代,并逐步衰减t值,算法终止时的当前解即为所 得近似最优解。
遗传算法是仿真生物遗传学和自然选择机理,通过人工方式所构造的一类搜索算法,从某种程度上说遗传算 法是对生物进化过程进行的数学方式仿真。生物种群的生存过程普遍遵循达尔文进化准则,群体中的个体根据对 环境的适应能力而被大自然所选择或淘汰。进化过程的结果反映在个体的结构上,其染色体包含若干基因,相应 的表现型和基因型的体现了个体的外部特性与内部机理间逻辑关系。通过个体之间的交叉、变异来适应大自然环 境。生物染色体用数学方式或计算机方式来体现就是一串数码,仍叫染色体,有时也叫个体;适应能力是对应着 一个染色体的一个数值来衡量;染色体的选择或淘汰则按所面对的问题是求最大还是最小来进行。
如果这还不算太糟的话,1993年Razborov和Rudich证明的一个结果表明,给定一个特定的可信的假设,在 某种意义下“自然”的证明不能解决P = NP问题。这表明一些现在似乎最有希望的方法不太可能成功。随着更多 这类的定理得到证明,该定理的可能证明有越来越多的陷阱要规避。这实际上也是为什么NP完全问题有用的原因: 若有一个多项式时间算法,或者没有一个这样的算法,对于NP完全问题存在,这将用一种相信不被上述结果排除 在外的方法来解决P = NP问题。P=NP问题可以用逻辑命题的特定类的可表达性的术语来重新表述。所有P中的语 言可以用一阶逻辑加上最小不动点操作(实际上,这允许了递归函数的定义)来表达。类似地,NP是可以用存在 性二阶逻辑来表达—也就是,在关系、函数、和子集上排除了全域量词的二阶逻辑。多项式等级,PH中的语言对 应与所有的二阶逻辑。这样,“P是NP的真子集吗”这样的问题可以表述为“是否存在性二阶逻辑能够表达带最 小不动点操作的一阶逻辑的所不能表达的语言?”

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完全问题

第八章 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的优化问题和搜索问题时归约关系
给定一个图,寻找一条恰 好包含每条边一次的路径 复杂度:多项式时间

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?的猜想。

相关主题
  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
相关文档
最新文档