算法设计与分析什么是P问题NP问题与NPC问题22页PPT

合集下载

NP完全问题详解PPT课件

NP完全问题详解PPT课件
' p ,就说判定问题是一个 NP 难题。 2、 NP 完全问题
定义 12.7 令是一个判定问题,如果: (1) NP,并且: (2) 对 NP 中的所有问题' NP,都有' p ; 则称判定问题是 NP 完全的。
3、 NP 难题和 NP 完全问题的差别 是 NP 完全问题,'是 NP 难题, 则必定在 NP 类中,而'不一定在 NP 类中。
第16页/共53页
例 已知哈密尔顿回路问题 HAMILTONIAN CYCLE 是一个 NP 完全问题,证明货郎担
问题 TRAVELING SALESMAN 也是一个 NP 完全问题。
哈密尔顿回路问题:给定无向图G (V , E ),是否存在一条回路,使得图中每个顶点在
回路中出现一次且仅一次。
货郎担问题:给定n个城市和最短距离l ,是否存在从某个城市出发、经过每个城市一
第9页/共53页
12.1.2 NP类问题
二、 NP 类判定问题 1、定义: 定义 12.5 如果对某个判定问题,存在着一个非负整数k ,对输入规模 为n的实例,能够以O ( nk )的时间运行一个非确定性的算法,得到 yes 或no的答案,则该判定问题是一个 NP 类判定问题。 2、特性: 存在确定性的算法,能够以多项式时间,来检查和验证在推测阶段产 生的答案。
第12页/共53页
12.1.2 NP类问题
3、P类问题和 NP 类问题的差别: P 类问题可以用多项式时间的确定性算法来进行判定或求解; NP 类问题可以用多项式时间的确定性算法来检查和验证它的解。 P,必然有 NP ,所以,P NP。 猜测 NP P。该不等式是否成立、至今还没有得到证明。
第13页/共53页
12.2 NP完全问题

算法分析设计NP完全问题PPT课件

算法分析设计NP完全问题PPT课件

if(a[j]==x) { cout<<j;
Success();
执行时间都为O(1) //不确定算法成功终止
}
cout<<-1; Failure(); }
若算法执行中需作出一系列的Choice函 数//不选确择定,算当法且失仅败当终C止hoice的任何一组选 择都不会导致成功信号时,算法在O(1)时 间不成功终止。
在不不确确定定搜机索上算执法行:的算法称为不确定算法(non
dveotiedrSmeianricsht(iicntaal[g],oTrxit)hm如)果。一个判定问题实例的解为真,
Hale Waihona Puke {Choice函数每一次总能在O(1)时间
int j=Choice(0,n-1); 内//从做{出0,1导,.致..,n成-1功}中的任正意确选选取择一。个值
即: ✓求解Q1的确定算法是通过调用求解Q2的确定算法完 成的, ✓对Q2算法实施的调用过程所需的时间是多项式时间 的。 那么:只要对问题Q2存在多项式时间求解算法,问题 Q1就能在多项式时间内得以求解。
第15页/共29页
约化存在以下性质: 性质10-1 若Q1∈P,Q2∝Q1,则有Q2 ∈P。 性质10-2 (传递性) 若Q1∝Q2,Q2∝Q3,则Q1∝Q3。
因为:对n个布尔变量赋值需要O(n)时间,计算公式 E(x,n)的时间为O(e),e是公式长度。
所以,可满足性问题的不确定算法时间为O(n+e)。
第13页/共29页
10.1.3 P类和NP类问题
P类问题:可在多项式时间内用确定算法求解的判定 问题。 NP类问题:可在多项式时间内用不确定算法求解的 判定问题。(多项式时间内可验证问题的解。)

什么是P问题、NP问题和NPC问题PPT课件

什么是P问题、NP问题和NPC问题PPT课件
解的问题。NP问题的另一个定义是,可以在 多项式的时间里猜出一个解的问题。
比方说,我RP很好,在程序中需要枚举时,我可 以一猜一个准。
现在某人拿到了一个求最短路径的问题,问从起点 到终点是否有一条小于100个单位长度的路线。它 根据数据画好了图,但怎么也算不出来,于是来问 我:你看怎么选条路走得最少?
2020/10/13
12
NPC问题
人们如此坚信P≠NP是有原因的,就是在研究 NP问题的过程中找出了一类非常特殊的NP问 题叫做NP-完全问题,也即所谓的 NPC问题。 C是英文单词“完全”的第一个字母。正是 NPC问题的存在,使人们相信P≠NP。
2020/10/13
8
NP问题
我说,我RP很好,肯定能随便给你指条很短的路出来。然后 我就胡乱画了几条线,说就这条吧。那人按我指的这条把权 值加起来一看,嘿,神了,路径长度98,比100小。于是答 案出来了,存在比100小的路径。
别人会问他这题怎么做出来的,他就可以说,因为我找到了 一个比100 小的解。
因此,我们会说,一个O(0.01*n^3)的程序的效率 比O(100*n^2)的效率低,尽管在n很小的时候,前 者优于后者,但后者时间随数据规模增长得慢,最 终O(n^3)的复杂度将远远超过O(n^2)。我们也说, O(n^100)的复杂度小于O(1.01^n)的复杂度。
2020/10/13
4
先用几句话简单说明一下时间复杂度
2020/10/13
10
NP问题
之所以要定义NP问题,是因为通常只有NP问 题才可能找到多项式的算法。
我们不会指望一个连多项式地验证一个解都不 行的问题存在一个解决它的多项式级的算法。
很显然,所有的P类问题都是NP问题。也就是 说,能多项式地解决一个问题,必然能多项式 地验证一个问题的解——既然正解都出来了, 验证任意给定的解也只需要比较一下就可以了。

算法设计与分析-第2章-算法分析基础PPT课件

算法设计与分析-第2章-算法分析基础PPT课件

2k
1 5(
n 2k 1
)2
L 2×5´( 2n)2
5n2
T (n)
7n
k 1 5
i0
n 2i
2
7n
5n2 (2
2
1
k 1
)
10 n2 3n 10 n2 O (n2 )
• 例: Merge-sort排序算法的复杂性递归方程为
T(n)=(1)
if n=1
T(n)=2T(n/2)+(n) if n>1
T(n) = ?
.
27
2.5 递归算法的分析
三、递推关系式的求解-- 扩展递归技术
步骤: 循环地展开递推关系式, 把递推关系式转化为求和表达式, 然后可使用求和技术解之。
能解决输入规模为多大的问题?
设在新机器上用 t 秒时间能解决输入规模为 N 的问题,则
由于此时
f (N)
N,2 新机器的运行速度/每语句为: t新
t0 , 64
代入关系式
f (N ) *t新 t ,得
N2
*
t0 64
t
n2
* t0
解,得
N 8n
思考:以上说明了什么问题?
.
14
2.2 算法的渐进分析
.
28
2.5 递归算法的分析
求以下递推式的时间复杂性
7
T (n)
2T (n
2)
5n2
解:设 n=2k
T (n) 2T (n 2) 5n2
n1 n>1
2(2T (n 4)( n 4)2 ) 5(n 2)2 ) 5n2
2k T (1)
间就一个常因子范围内而言是相同的。

《算法设计与分析》课件

《算法设计与分析》课件

常见的贪心算法包括最小生成树算法 、Prim算法、Dijkstra算法和拓扑排 序等。
贪心算法的时间复杂度和空间复杂度 通常都比较优秀,但在某些情况下可 能需要额外的空间来保存状态。
动态规划
常见的动态规划算法包括斐波那契数列、背包 问题、最长公共子序列和矩阵链乘法等。
动态规划的时间复杂度和空间复杂度通常较高,但通 过优化状态转移方程和状态空间可以显著提高效率。
动态规划算法的时间和空间复杂度分析
动态规划算法的时间复杂度通常为O(n^2),空间复杂度为O(n)。
04 经典问题与算法实现
排序问题
冒泡排序
通过重复地遍历待排序序列,比较相邻元素的大小,交换 位置,使得较大的元素逐渐往后移动,最终达到排序的目 的。
快速排序
采用分治策略,选取一个基准元素,将比基准元素小的元 素移到其左边,比基准元素大的元素移到其右边,然后对 左右两边的子序列递归进行此操作。
动态规划是一种通过将原问题分解为若干个子 问题,并从子问题的最优解推导出原问题的最 优解的算法设计方法。
动态规划的关键在于状态转移方程的建立和状态 空间的优化,以减少不必要的重复计算。
回溯算法
01
回溯算法是一种通过穷举所有可能情况来求解问题的算法设计方法。
02
常见的回溯算法包括排列组合、八皇后问题和图的着色问题等。
空间换时间 分治策略 贪心算法 动态规划
通过增加存储空间来减少计算时间,例如使用哈希表解决查找 问题。
将问题分解为若干个子问题,递归地解决子问题,最终合并子 问题的解以得到原问题的解。
在每一步选择中都采取当前状态下最好或最优(即最有利)的 选择,从而希望导致结果是最好或最优的。
通过将问题分解为相互重叠的子问题,并保存子问题的解,避 免重复计算,提高算法效率。

算法设计与分析课件--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类问题并不要求给出一个算法来求解问题本身,而只要求给 出一个确定性算法在多项式时间验证它。

P问题、NP问题、NP完全问题和NP难问题

P问题、NP问题、NP完全问题和NP难问题

P问题、NP问题、NP完全问题和NP难问题在讲P类问题之前先介绍两个个概念:多项式,时间复杂度。

(知道这两概念的可以⾃动跳过这部分)1、多项式:axn-bxn-1+c恩....就是长这个样⼦的,叫x最⾼次为n的多项式....咳咳,别嫌我啰嗦。

有些⼈说不定还真忘了啥是多项式了。

例如第⼀次看到的鄙⼈→_→2、时间复杂度我们知道在计算机算法求解问题当中,经常⽤时间复杂度和空间复杂度来表⽰⼀个算法的运⾏效率。

空间复杂度表⽰⼀个算法在计算过程当中要占⽤的内存空间⼤⼩,这⾥暂不讨论。

时间复杂度则表⽰这个算法运⾏得到想要的解所需的计算⼯作量,他探讨的是当输⼊值接近⽆穷时,算法所需⼯作量的变化快慢程度。

举个例⼦:冒泡排序。

在计算机当中,排序问题是最基础的,将输⼊按照⼤⼩或其他规则排好序,有利于后期运⽤数据进⾏其他运算。

冒泡排序就是其中的⼀种排序算法。

假设⼿上现在有n个⽆序的数,利⽤冒泡排序对其进⾏排序,①⾸先⽐较第1个数和第2个数,如果后者>前者,就对调他们的位置,否则不变②接着⽐较第2个数和第3个数,如果后者>前者,就对调他们的位置,否则不变③⼀直向下⽐较直到第n-1和第n个数⽐较完,第⼀轮结束。

(这时候最⼤的数移动到了第n个数的位置)④重复前三步,但是只⽐较到第n-1个数(将第⼆⼤的数移动到第n-1个数位置)⑤持续每次对越来越少的元素重复上⾯的步骤,直到没有任何⼀对数字需要⽐较。

举个实例:5,4,3,2,1,对其进⾏排序,先是⽐较5跟4变成4,5,3,2,1,第⼀轮结束后变成43215,可以计算,当对其排序完正好要经过4+3+2+1=10次⽐较,当然这是最复杂的情况,即完全反序。

可以知道对于n个数,⾄多要经过1+2+...+n-1即(n^2-n)/2次⽐较才能排好序。

这个式⼦⾥n的最⾼次阶是2,可知道当n→∞时,⼀次性对其⽐较次数影响很⼩,所以我们把这个算法的时间复杂度⽐作:o(n^2)。

取其最⾼次,可以看出,这是⼀个时间复杂度为多项式的表⽰⽅式。

对p和np问题的介绍ppt课件

对p和np问题的介绍ppt课件

倾向P≠NP的主要论据是在穷尽搜索的领域完全没有本质 进展。也就是说,以我的观点,一个很弱的论据。算法的空间 是很大的,而我们只是在开始探索的起点
—摩西· 瓦迪(Moshe Vardi),莱斯大学 过分依赖某种投机的猜测不是规划研究的一个好的导引。 我们必须总是尝试每个问题的两个方向。偏见可能导致著名的 数学家无法解决答案和他们的预计相反的著名问题,虽然他们 发展了所有所需的方法。 —Anil Nerode, 康奈尔大学
2 NP问题(Non-deterministic Polynomial ) NP是一个判定问题类,这些问题可以用一个确定算法在多项式 时间内检查或验证出它们的解 ,也可以说是这些问题可以在非确定 性多项式时间内解决,它并不要求给出一个算法来求解问题本身,而 只是要求给出一个确定性算法在多项式时间内验证它的解。显然, 所有的P类问题都是属于NP问题的,但是现在的问题是,P是否等 于NP?这个问题至今还未解决 。
• 类似地,所有人工智能问题都将得到解决。我们只需要向计算机提交 足够多的情境以及与之对应的正常人反应,计算机就可以找出一种能 正确生成出这些反应的最简算法,完全模仿人类的行为。
• 数学证明可以完全交给计算机来处理。寻找一个反例和验证一个反例 变得同样简单,一切错误的猜想都将瞬间被推翻。事实上,寻找一个 数学证明和验证一个证明的正确性也变得同样简单,因此一切正确的 命题也能够瞬间找到一个最简的证明。 • 发明任何新的密码算法都是徒劳 。计算机可以根据一大批明文密文样 )。现有的密码 学体系彻底崩溃。
假如P=NP,世界将会怎样?
P是否等于NP是计算机科学领域中最突出的问题, 在千禧年七大难题中排在首位。虽然人们大多相信P问 题不等于NP问题,但人们目前既不能证明它,也不能推 翻它。科学家们普遍认为P≠NP是有原因的,让我们来看 一看,如果哪一天科学家证明了P=NP,那这个世界将会 变得怎样?

算法设计与分析 NP类问题

算法设计与分析 NP类问题

NP 类问题不难看出,上面定义的P 类语言只能用来描述那些存在有效算法(多项式时间)的问题。

然而,在实际中存在许多别的重要问题,对于它们,至今尚未找到有效的求解算法。

其中有一大类这样的问题,虽然不知道求解它们的有效算法,但是,一旦通过某种办法给出了其答案的一个猜测或估计,就能设计出一个多项式时间算法来验证其真实性(称为多项式时间可验证性)。

这类问题的分析和描述需要借助另一类图灵机作为计算模型。

非确定性单带图灵机(non-deterministic one-tape Turing machine),简记为NDTM ,是一种假想的机器。

通常有两种方式描述它:多值模型和猜想模块模型。

多值模型认为它和确定性图灵机的共同之处是也包括:(a).带中字符集Γ,使得Γ⊂∑,且 ∑-Γ∈b ;(b).有限状态集},,{0q q q Q N Y ⊇;不同之处在于(c).多值转移函数},{2}),{\(:r l Q N Y q q Q ⨯Γ⨯→Γ⨯δ,},{),(r l Q S s q ⨯Γ⨯⊆ ,确定性图灵机在任一状态只能做一种运算,而非确定性图灵机在同一时刻可以独立、并行地完成(无限)多种运算(表现在转移函数的多值性),这显然是不现实的。

猜想模块模型是一种更形象、直观的描述方法。

可将NDTM 描述成:除多了一个猜想模块(guessing module )外,NDTM 与DTM 有着完全相同的结构,而这个猜想模块带有自己的仅可对带写操作的猜想头,它提供写下猜想的方法,仅此而已。

非确定性图灵机(NDTM )示意图基于这一模型,一个NDTM 程序可以类同于一个DTM 程序的方式来进行定义,并用相同的记号(包括带中字符集Γ,输入字符表∑,空白符号b ,状态集Q ,初始状态0q ,两个停机状态Y q 和N q ,以及状态转移函数},{}),{\(:r l Q q q Q N Y ⨯Γ⨯→Γ⨯δ猜想模块 有限状态控制器 … -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 … 猜想头 读写头但对于一个输入*∑∈x ,NDTM 程序的计算却与DTM 程序的不同,它把计算分为两个阶段:猜想阶段和检验阶段。

图论中P、NP、NPC和NP难问题详解

图论中P、NP、NPC和NP难问题详解
注:我们所说的“可约化”是指的可“多项式地”约化 (Polynomial-time Reducible),即变换输入的方法是能在 多项式的时间里完成的。约化的过程只有用多项式的时 间完成才有意义。

NPC问题(三)
NPC问题
约化
NP问题
约化
p问题
p问题
P问题
NPC问题(四)
总结:
定义:同时满足下面两个条件的问题就是NPC问题。 首先,它得是一个NP问题;然后,所有的NP问题都 可以约化到它。
时间复杂度
时间复杂度
多项式级的复杂 度。 如 O(1),
O(log(n)),O(n^a) 等 ——因为它的 规模n出现在底 数的位置 !
非多项式级的
如:O(a^n)和 O(n!)等!
P (Polynomial,多项式)问题
P问题是可以在多项式时间内被确定机(通常意义的计算 机)解决的问题.
如果一个问题可以找到一个能在多项式的时间里解决它 的算法,那么这个问题就属于P问题。
当然有不是NP问题的问题,即咱猜到了解但是没用,因为咱不能在多项式的时 间里去验证它。 如下面这个:
我们已经知道Hamilton回路是NP问题,因为验证一条路是否恰好经过了每 一个顶点非常容易。但我们把问题换成这样:试问一个图中是否不存在 Hamilton回路。这样问题就没法在多项式的时间里进行验证了,因为除非你试 过所有的路,否则你不敢断定它“没有Hamilton回路”。
逻辑电路问题属于NPC问题——它显然属于NP问题, 并且可以证明所有的NP问题都可以约化到它 。
NPC问题(补充)
NPC问题存在吗?


NPC问题(补充)
逻辑电路问题: 给定一个逻辑电路,问是否存在一种输入使 输出为True。

算法设计与分析PPT课件

算法设计与分析PPT课件

数组
输出
1 0,0,2 1 2 3
2
1,1,2 0,0,2
123
,2,2
3 1,1,2 1 2 3 1 2 3
0,0,2
2
2,1,2 0,0,2 1 3 2
,2,2
3 2,1,2 1 3 2 1 3 2
0,0,2
2
2,1,2 0,0,2
123
1 1,0,2 2 1 3
层次 栈状态 (i, k, m)
个函数是双递归函数。 Ackerman函数A(n,m)定义如下:
A(1,0)2
A(0,m)1
A(n,0)n2
m0 n2
A(n,m)A(A(n1,m),m1) n,m1
Ackerman函数无法找到非递归的定义。
28
Ackerman函数
A(1,0)2
A(0,m)1
A(n,0)n2
m0 n2
A(n,m)A(A(n1,m),m1) n,m1
P n ( x ) ( ( ( a n x ( a n 1 ) ( a n 2 ) x a n 3 ) ) x a 1 ) x a 0
T(n)n
Horner(int a[n+1],real x) { int p= a[n];
for (i=1;i<=n;i++) p=p*x+a[n-i]; return p; }
算法复杂性是算法运行所需要的计算机资源的量, 需要时间资源的量称为时间复杂性,需要的空间资源的 量称为空间复杂性。这个量应该只依赖于算法要解的问 题的规模、算法的输入和算法本身的函数。如果分别用 n、I和A表示算法要解问题的规模、算法的输入和算法 本身,而且用C表示复杂性,那么,应该有C=F(n,I,A)。 一般把时间复杂性和空间复杂性分开,并分别用T和S来 表示,则有: T=T(n,I)和S=S(n,I) 。

P-NP-NPC三者问题阐述

P-NP-NPC三者问题阐述

P NP NPC三者问题阐述1)"P对NP问题"是什么意思?首先说明一下问题的复杂性和算法的复杂性的区别,下面只考虑时间复杂性。

算法的复杂性是指解决问题的一个具体的算法的执行时间,这是算法的性质;问题的复杂性是指这个问题本身的复杂程度,是问题的性质。

比如对于排序问题,如果我们只能通过元素间的相互比较来确定元素间的相互位置,而没有其他的附加可用信息,则排序问题的复杂性是O(nlgn),但是排序算法有很多,冒泡法是O(n^2),快速排序平均情况下是O(nlgn)等等,排序问题的复杂性是指在所有的解决该问题的算法中最好算法的复杂性。

问题的复杂性不可能通过枚举各种可能算法来得到,一般都是预先估计一个值,然后从理论上证明。

为了研究问题的复杂性,我们必须将问题抽象,为了简化问题,我们只考虑一类简单的问题,判定性问题,即提出一个问题,只需要回答yes或者no的问题。

任何一般的最优化问题都可以转化为一系列判定性问题,比如求图中从A到B的最短路径,可以转化成:从A 到B是否有长度为1的路径?从A到B是否有长度为2的路径?…从A到B是否有长度为k 的路径?如果问到了k的时候回答了yes,则停止发问,我们可以说从A到B的最短路径就是k。

如果一个判定性问题的复杂度是该问题的一个实例的规模n的多项式函数,则我们说这种可以在多项式时间内解决的判定性问题属于P类问题。

P类问题就是所有复杂度为多项式时间的问题的集合。

然而有些问题很难找到多项式时间的算法(或许根本不存在),比如找出无向图中的哈米尔顿回路问题,但是我们发现如果给了我们该问题的一个答案,我们可以在多项式时间内判断这个答案是否正确。

比如说对于哈米尔顿回路问题,给一个任意的回路,我们很容易判断他是否是哈米尔顿回路(只要看是不是所有的顶点都在回路中就可以了)。

这种可以在多项式时间内验证一个解是否正确的问题称为NP问题。

显然,所有的P 类问题都是属于NP问题的,但是现在的问题是,P是否等于NP?这个问题至今还未解决。

什么是P问题、NP问题和NPC问题PPT课件

什么是P问题、NP问题和NPC问题PPT课件
不管数据有多大,程序处理花的时间始终是那么多的,我们 就说这个程序很好,具有O(1)的时间复杂度,也称常数级复 杂度;
2020/10/13
2
先用几句话简单说明一下时间复杂度
数据规模变得有多大,花的时间也跟着变得有多长, 这个程序的时间复杂度就是O(n),比如找n个数中 的最大值;
而像冒泡排序、插入排序等,数据扩大2倍,时间 变慢4倍的,属于O(n^2)的复杂度。
因此,我们会说,一个O(0.01*n^3)的程序的效率 比O(100*n^2)的效率低,尽管在n很小的时候,前 者优于后者,但后者时间随数据规模增长得慢,最 终O(n^3)的复杂度将远远超过O(n^2)。我们也说, O(n^100)的复杂度小于O(1.01^n)的复杂度。
2020/10/13
4
先用几句话简单说明一下时间复杂度
2020/10/13
8
NP问题
我说,我RP很好,肯定能随便给你指条很短的路出来。然后 我就胡乱画了几条线,说就这条吧。那人按我指的这条把权 值加起来一看,嘿,神了,路径长度98,比100小。于是答 案出来了,存在比100小的路径。
别人会问他这题怎么做出来的,他就可以说,因为我找到了 一个比100 小的解。
2020/10/13
5
不可解问题
自然地,人们会想到一个问题:会不会所有的问题都 可以找到复杂度为多项式级的算法呢?
答案是否定的。有些问题甚至根本不可能找到一个正 确的算法来,这称之为“不可解问 题”(Undecidable Decision Problem)。
例如:
Hamilton回路。
问题是这样的:给你一个图,问你能否找到一条经过每个顶 点一次且恰好一次(不遗漏也不重复)最后又走回来的路 (满足这个条件的路径叫做Hamilton回路)。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档