Algorithm 10

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Algorithm 10 as PDF for free.

More details

  • Words: 457
  • Pages: 21
第10章 算法能力的极限 Limitations of Algorithm Power 杨春明 © School of Computer Science and Technology, SWUST

算法能力的极限 Limitations of Algorithm Power „

教学内容 „ „ „ „

„

算法下界 决策树 P,NP和NP完全问题 数值算法的挑战

教学要求 „

了解求算法下界的方法,了解NP问题

http://mryang.stumental.com/

© School of Computer Science and Technology, SWUST

2

算法的下界 „

„

算法下界指的是求解某一问题的任意算 法可能具有的最佳效率。 平凡下界 „

„ „ „

对所求解问题的输入和输出中必须要处理的 项进行计数,所产生的结果就是平凡下界。 如:任何生成n个不同项的所有排列的算法 计算给定点x的n次多项式 计算两个n阶矩阵乘积的算法

http://mryang.stumental.com/

© School of Computer Science and Technology, SWUST

3

算法的下界 „

信息论下界 „ „

„

敌手下界 „

„

根据算法必须处理的信息量来建立效率下界。 如:“猜”数字游戏,排序和查找 不断把算法推向最消耗时间的路径。

问题化简 „

已知问题Q的下界,求未知问题P的下界,可将问题 Q在任意实例下转化为P,则说明Q的下界将会是P 的下界。

http://mryang.stumental.com/

© School of Computer Science and Technology, SWUST

4

决策树(Decision Trees) „

许多以输入项作比较的算法,都可以用 一种称为决策树的结构来研究它们的性 能。

求三个数中最 小数的决策树 h≥[log2l]

http://mryang.stumental.com/

© School of Computer Science and Technology, SWUST

5

排序算法的决策树

三元素的选择排序 http://mryang.stumental.com/

Cworst(n) ≥[log2n!]

© School of Computer Science and Technology, SWUST

6

排序算法的决策树

三元素的插入排序 http://mryang.stumental.com/

Cavg(n) ≥log2n!

© School of Computer Science and Technology, SWUST

7

查找有序数组的决策树

四元素折半查找的三叉决策树 http://mryang.stumental.com/

Cworst(n) ≥[log3(2n+1)]

© School of Computer Science and Technology, SWUST

8

查找有序数组的决策树

四元素折半查找的二叉决策树 http://mryang.stumental.com/

Cworst(n) ≥[log2(n+1)]

© School of Computer Science and Technology, SWUST

9

计算模型 „

„

算法是理论计算机的灵魂。在理论计算 机中,算法已不限于只是上面定义中的 计算机程序。 确定型图灵机模型。 „

„

给出固定的程序,模型按照程序和输入完全 确定性地运行。

非确定型图灵机。 „

它在进行计算的时候,会自动选择最优路径 进行计算。通俗地说,它有预测能力。

http://mryang.stumental.com/

© School of Computer Science and Technology, SWUST

10

P和NP问题 P=NP? „ „

„

理论计算机科学的核心问题 它是Clay研究所的七个百万美元大奖问 题之一 在2006国际数学家大会上,它是某个1小 时讲座的主题。

注:这里面的两个P都是指Polynomial(多项式) http://mryang.stumental.com/

© School of Computer Science and Technology, SWUST

11

P类 „

„

„

如果一个算法,它能在以输入规模为参 变量的某个多项式的时间内给出答案, 则称它为多项式时间算法。 P类问题是一类用(确定性) 算法在多项式 的时间内求解的判定问题。 P类问题指在确定型图灵机上的具有多项 式算法的问题集合。

http://mryang.stumental.com/

© School of Computer Science and Technology, SWUST

12

NP类 „

不确定算法是一个两个阶段的过程,它 把一个判定问题的实例l作为它的输入, 并做以下操作: „ „

„

非确定性(猜测)阶段:生成任意一个S。 确定(验证)阶段:验证S是否是l的一个解。

如果一个不确定算法在验证阶段的时间 效率是多项式级的,这个算法就是不确 定多项式类型的。

http://mryang.stumental.com/

© School of Computer Science and Technology, SWUST

13

NP类 „

„

„

NP类问题是一类可以用不确定多项式算 法求解的判定问题。 NP类问题指非确定型图灵机上具有多项 式算法的问题集合,这里N是NonDeterministic的意思。 在一般看来,P问题是指能够在多项式时 间求解的判定问题,而NP问题则是指那 些肯定解能够在给定正确信息下在多项 式时间内验证的判定问题。

http://mryang.stumental.com/

© School of Computer Science and Technology, SWUST

14

NP问题 P⊆NP „

„

P=NP?

P vs NP问题指P是否完全等于NP,即确 定型图灵机和非确定图灵机的性能是否 一样。 人们为何要提出NP问题?因为,大多数 遇到的自然的难解问题,最后都发现它 们是NP问题。如果我们能证明NP跟P的 关系,则解决了无数问题的算法复杂度 问题。

http://mryang.stumental.com/

© School of Computer Science and Technology, SWUST

15

NP完全问题 „

„

NP里面有无数个不同的问题,我们是否要一个 一个地判定它们是否属于P呢? NP完全(NP Complete,简记为NPC)问题,指 的是那些NP中最难的那些问题:所有其它的 NP问题都可以归约到这些NP完全问题。也就 是说,只要这些NP完全问题的某一个到解决, 无论是证明其存在多项式算法,还是不存在, 都意味着P vs NP问题的解决。

http://mryang.stumental.com/

© School of Computer Science and Technology, SWUST

16

NP完全问题 „

„

„

几乎所有NP里面无法确定是否属于P的问 题最后都被证明为NP完全。正因为如 此,多数理论计算机学家都猜测P≠NP。 如果NP≠P,那么NP-P中存在非NP完全 问题。 当然,这种问题具体是什么样子,是无 法用直观的语言表示出来,它纯粹是一 个数学上的构造性证明。

http://mryang.stumental.com/

© School of Computer Science and Technology, SWUST

17

相关资源 „

NP完全问题的不完全列表 „

„

Clay Mathematics Institute „

„

http://www.nada.kth.se/~viggo/problemlis t/compendium.html http://www.claymath.org/millennium/P_vs _NP/

图灵机- Wikipedia „

http://zh.wikipedia.org/wiki/图灵机

http://mryang.stumental.com/

© School of Computer Science and Technology, SWUST

18

数值算法的挑战 Challenges of Numerical Algorithms „

数值分析是指关心那些求解数学问题的算 法。这里指的问题是“连续”的数学问题。

http://mryang.stumental.com/

© School of Computer Science and Technology, SWUST

19

数值算法的挑战 Challenges of Numerical Algorithms „

数值算法的挑战来自于: „ „ „ „

在求解问题时不能得到精确的解。 这种不精确解的误差有两种: 截断误差:用有限来逼近无穷所造成的。 舍入误差:由于计算机在表示数字时的不精 确性造成的。

http://mryang.stumental.com/

© School of Computer Science and Technology, SWUST

20

算法能力的极限小结 „

„

„

„

„

„

下界指出了任何属于这个类型的算法能构具有的最佳 效率。 P是所有能够在多项式时间内求解的判定问题所构成的 类型。 NP是那些随意生成的解能够在多项式时间内得到验证 的问题所构成的类型。 对于P=NP是否成立,或P仅仅是NP的一个真子集,仍 然是计算机科学理论中最终要的一个待解决问题。 数值分析是计算机科学的一个分支,处理求解连续的 数学问题。 数值算法的挑战来自于:在求解问题时不能得到精确 的解。这种不精确解的误差有两种:截断误差和舍入 误差。

http://mryang.stumental.com/

© School of Computer Science and Technology, SWUST

21

Related Documents

Algorithm 10
November 2019 36
Algorithm
October 2019 95
Algorithm
November 2019 83
Algorithm
May 2020 56
Algorithm
November 2019 82
Algorithm Making
May 2020 9