NP完全问题分析

合集下载

算法设计与分析-05NP完全问题-一些重要的概念..复习课程

算法设计与分析-05NP完全问题-一些重要的概念..复习课程

2020/7/2
算法设计与分析演示稿 纪玉波制
8
作(C)
迄今为止我们已经知道的所有可证的难解问题 分成刚才叙述的两种类型,它们或者是“不可判定 的”,或者是“非确定型”难解的。但是,大多数在 实际中遇到的在表面上看来难解的问题是可判定的, 并且可以用非确定型计算机在多项式时间内求解。因 此,要证明这些问题的表面上的难解性,至今所研究 过的证明方法都还不够有力。
2020/7/2
算法设计与分析演示稿 纪玉波制
2020/7/2
算法设计与分析演示稿 纪玉波制
6
作()
2、可证的难解问题
• 最早证出的难解性问题结果是经典的图灵不可判定性。 四十多年前,图灵证明某些问题困难到“不可判定的” 程度,即根本不可能给出解这些问题的算法。例如, 他证明不可能给出一个算法,当任意给定一个计算机 程序和这个程序的输入时,该算法可以判定当把这个 程序应用于这个输入时最终是否停机[Turing,1936]。 现在已经知道还有各种其它问题也是不可判定的,这 些问题包括有限表示群的平凡问题[Rabin,1958],希 尔伯特第十问题(整数多项式的可解性) [Matijasevic,1970]等。因为不可能用任何算法, 当然更不可能用多项式时间算法解这些不可判定问题, 所以它们的确是在特别强的意义下难解的。
2020/7/2
算法设计与分析演示稿 纪玉波制
4
作(C)
关于计算机模型的选择可以作类似的注释。至今 研究过的所有实际的计算机模型,例如单带图灵机, 多带图灵机以及随机存取机(RAM)都是相对于多项式 时间复杂性等价的,人们可以指望任何其它“合理的” 模型都享有这种等价性。这里所说的“合理的”概念 在本质上是指在单位时间内可以完成的工作量有一个 多项式界限。例如,不能认为具有完成任意多道并行 运算能力的模型是“合理的“,而且也确实不存在一 合计算机具有这种能力。无论如何,只要我们规定只 采用实际的计算机标准模型,难解的问题类就不受使 用的具体模型的影响。因而我们可以根据方便与否来 选择计算机模型,而不会妨碍结果的使用。 “合理的” 计算机模型也称为是“确定型”(deterministic)的 计算机模型。

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

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

NP 完全问题研究P=NP 的问题有两条基本思路:1.证明NP 类中的某些问题是难解的,从而得到NP ≠P 。

但是要证明这一点几乎同证明P=NP 一样困难。

2.考察NP 类中问题之间的关系,从中找到一些具有特殊性质的、与P 类问题显著不同的问题。

沿着这一路线人们已经证明了在NP 类中存在被称为NP 完全的子类,简称NPC 问题,并由此发展了一套著名的NP 完全理论。

本节简要先介绍NP 完全性理论。

为此,首先给出各语言之间的多项式变换的概念。

定义 1 所谓从一个语言*11∑⊆L 到另一个语言*22∑⊆L 的多项式变换是指满足下面两个条件的函数*2*1:∑→∑f ,(1) 存在计算f 的一个多项式时间DTM 程序;(2) 对于所有的*1∑∈x 有:1L x ∈当且仅当2)(L x f ∈。

用21L L ∝表示存在一个从语言1L 到语言2L 的多项式变换。

相应地,对于判定问题21,∏∏,设e 1和e 2是相应的编码策略。

若],[],[2211e L e L ∏∝∏,则记为21∏∝∏。

也可以从问题的层次来叙述:由判定问题1∏到判定问题2∏的多项式变换是满足下列条件的函数21:∏∏→D D f ,(1) f 可由一个多项式时间的确定性算法来计算;(2) 对于所有的1∏∈I D 有:1∏∈I D 当且仅当2)(∏∈I Y f 。

定义2 称一个语言L (判定问题∏)为NP 完全的(NPC ),如果)(NP NP L ∈∏∈,且对于所有别的语言NP L ∈'(判定问题NP ∈∏')均有)'('∏∝∏∝L L 。

按照定义2,要证明问题∏是NP 完全的,需要证明所有的NP 问题均能够经多项式变换变成∏。

这几乎是很难做到的。

如果NP 完全问题比较多,我们也不能对每一个这样的问题都这样验证。

为此我们讨论一些NPC 问题的有用的性质。

性质1 如果L L ∝',则P L ∈意味着P L ∈'。

如何用整数规划求解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⽂件。

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

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完全问题(纯理论)

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完全理论_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)用不确定算法求解,则可在多项式时间内给出判
定。
一些问题是无法直接计算得到的,只能通过间接的“猜算”来得到结果。这也 就是非确定性问题。 而这些问题的通常有个算法,它不能直接告诉你答案是什么,但可以告诉 你,某个可能的结果是正确的答案还是错误的。这就是非确定算法。

10第十章 NP完全问题

10第十章 NP完全问题

2可满足问题:给出一个合取范式(CNF)形 式的布尔表达式f,这里每个字句恰好由两 个文字组成,问f是可满足的吗?
如果对于任意问题c,Π的补也在c中,我 们说问题类Π∈c在补运算下是封闭的。例如, 2着色问题的补可以陈述如下:给出一个图G, 它是2不可着色的吗?我们称这个问题为NOT2-COLOR问题。
还有很多计算模型,此处略。
量子计算模型是什么样子呢? 本章的讲解是初步入门,不讨论建立在相应计算模型上的 算法讨论。
10.1 引 言 前面所有的算法的运行时间可以用低次 多项式表示。现在有这样一类问题,这些问 题至今还没有找到有效的算法,而且在将来 也不大可能发现它们的有效算法。
设Π是任意问题,如果对问题Π存在 一个算法,它的时间复杂性是O(nk),其中n 是输入大小,k是非负整数,我们说存在求 解问题Π的多项式时间算法。
下面证明它是属于P类的。 由于2着色问题在P中,存在一个确定性 算法A,当展示一个2可着色图时,它停机 并回答yes,在展示一个图不是2可着色图 时,它停机并回答no。通过在算法A中简单 的交换yes和no,能够得出问题NOT-2COLOR的一个确定性算法。这样有如下定 理。
定理 10.1 P类问题在补运算下是封闭的
10.3 NP类(Nondeterministic Polynomial) NP类由这样的问题Π组成,对于这些问题 存在一个确定性算法A,该算法在对Π的一个 实例展示一个断言解时,它能在多项式时间 内验证解的正确性。即如果断言解导致答案 是yes,就存在一种方法可以在多项式时间内 验证这个解。
为了较形式地定义这个类,必须首先定义不 确定性算法的概念。对于输入x,一个不确 定性算法由下列两个阶段组成。 (a) 猜测阶段 在这个阶段产生一个任意字 符串y,它可能对应于输入实例的一个解, 也可以不对应解。事实上,它甚至可能不 是所求解的合适形式,它可能在不确定性 算法的不同次运行中不同。它仅仅要求在 多项式步数内产生这个串,即在O(ni)时间 内,这里n=|x|, i是非负整数。对于许多问 题,这一阶段可以在线性时间内完成。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Cook-Karp论题:一个问题是实际可计算的当且仅当它 在图灵机上经过多项式时间(步数)计算得到正确的结果。 Cook-Karp论题将可计算问题类进一步划分成两类:一类 是实际可计算的,另一类是实际不可计算的
1.2 问题分类
有两类问题,一类是判定问题,另一类是优化问题 判定问题的解只涉及两种情况:yes或no;优化问题 则涉及极值问题 判定问题举例:给定一个带整数权的有向图G和一 个正整数k,是否存在着一条长度小于k的哈密尔顿回 路? 优化问题举例:给定一个带整数权的有向图G,其 最短路径长度的哈密尔顿长度是多少?
2.1.6 判定问题规约的定理
2.1.7 判定问题规约定理示例
2.1.1 确定性算法
定义:假设A是问题的一个算法。如果 算法在处理实例的执行过程中每一个步骤 都有一个确定的选择,则称算法A是确定性 算法 对于问题的确定性算法A,每一个实例 执行多次的结果是严格一致的
2.1.2 P类判定问题
return no; //修改为yes
}
2.1.5 判定问题规约的定义
定义:令和是两个判定问题,如果存在一个 具有如下性能的算法A,可以用多项式的时间,把 问题的实例I转换为问题的实例I,使得I与I的 答案一致,就称以多项式时间规约于,记为 p
举例:问题是:给定一个长度为n整数数组D 和一个整数k判断是否存在D中的一个元素和k相等。 问题是:给定一个长度为m整数数组E和一个整 数k判断是否存在E中的两个元素,其和与k相等。 用于的实例I向的实例I转换的多项式算法A
第12章 NP完全问题
1. NP完全问题概述 2. P类和NP类问题
3. NP完全问题
4. co_NP类和NPI类问题
1. NP完全问题概述
1.1 Church-Turing论题和Cook-Karp论题 1.2 问题分类 1.3 优化问题向判定问题的转换
1.1 Church-Turing论题和CookKarp论题
1.3 优化问题向判定问题的转换
判定问题举例:给定一个带整数权的有向图G和一个正整数k, 是否存在着一条长度小于k的哈密尔顿回路? 优化问题举例:给定一个带整数权的有向图G,其最短路径 长度的哈密尔顿长度是多少?
如果上述判定问题用下面函数解决: boolean Hamilton(Graph g, int k); 则上述优化问题可以用二分的方式在下面的函数中解 决:
证明:对于P类问题中的任意问题,只要修 改相应的多项式级别算法A的代码,把返回yes的 改为返回no,把返回no的改为返回yes即可
boolean judgeEqual(int n, Elem[] a, Elem[] b){ for (int i=0; i<n; i++) for (int j=0; j<n; j++) if (a[i] == a[j]) return yes; //修改为no
函数transfer输出一个数组{6, 1, 3, 10, 12, 7},规模是n的多项式 级别。它含有3,因此原问题结果是yes,否则原问题结果为no
可以把前述判定问题的提法改变:给定两个大 小均为n的集合A和B,判断这两个集合中是否不 存在着相同的元素? 这个问题是前述问题的补 定义:令C是一类问题,如果对C中的任何问 题C,如果的补也在C中,则称C类问题在 补集下封闭
2.1.4 P类问题在不集下封闭定 理
定理:P类问题在补集下是封闭的
2.1.6 判定问题规约的定理
定理:令和是两个判定问题,如果P,并 且 p ,那么P
证明:根据和 的规约特性,存在着多项式 算法A,把的实例I转换为的实例I,并且二者 运算结果一致。由于A是多项式的,因此,其输出 也是多项式的。A的运算结果(就是I)是一个多 项式规模的结果。而的实例可以用多项式规模的 时间运算得到结果。处理的实例I所需时间是: I向I转换所需时间 + 处理I所需时间,这两个时间 都是多项式级别的,因此处理的实例I是多项式 级别的
2.1.7 判定问题规约定理示例
问题是:给定一个长度为n整数数组D和一个整数k判断是否存 在D中的一个元素和k相等。 问题是:给定一个长度为m整数 数组E和一个整数k判断是否存在E中的两个元素,其和与k相等 假设问题的输入实例I是一个长度为n=4的数组{2, 4, -1, 8}, 和一个整数3,转换算法A如下: int[] transfer(int n, int[] inst_ba){ int[] inst = new int [n*(n-1)/2]; int count = 0; for (int i=0; i<n; i++) for (int j=0; j<i; j++){ inst[count] = inst_bar[i] + inst_bar[j]; count++; } }
定义:如果对某个判定问题,存在着一个非 负整数k,对输入规模为n的实例,能够以O(nk) 的时间运行一个确定的算法,得到yes或no的答 案,则称该判定问题是一个P(Polynomial)类 判定问题 举例:给定两个大小均为n的集合A和B,判断 这两个集合中是否存在着相同的元素?
2.1.3 在补集下封闭的定义
int minHamilton(Graph); //二分查找中调用Hamilton函数
2. P类和NP类问题
2.1 P类问题 2.2 NP类问题
2.1 P类问题
2.1.1 确定性算法 2.1.2 P类判定问题
2.1.3 在补集下封闭的定义
2.1.4 P类问题在不集下封闭定理
2.1.5 判定问题规约的定义
计算复杂性理论有两个基本论题:Church-Turing论题和 Cook-Karp论题 Church-Turing论题:一个问题时可计算的当且仅当它在 图灵机上经过有限次计算得到正确的结果。这个论题把人 类所面临的问题分为两类:一类是可计算的,另一类是不 可计算的。但“有限次计算”是一个宽松的条件
相关文档
最新文档