第9章NP完全理论.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 NP完全理论 第九章 NP完全理论 目录 易解问题和难解问题 P类和NP类问题 NP完全问题 NP完全问题的近似算法 教学目标 理解易解问题和难解问题 理解P类与NP类的概念 理解NP完全问题的概念 理解近似算法的性能比及相对误差的概念 通过实例理解NP完全问题的近似算法 在计算机算法理论中,最深刻的问题之一是:从计算的观点来看,我们要解决的问题的内在复杂性如何,它是“易”计算的还是“难”计算的。如果我们知道一个问题的计算时间下界,我们就可以较正确地评价解决该问题的各种算法的效率,进而确定对已有算法还有多少改进的余地。 在许多情况下,要确定一个问题的内在计算复杂性是很困难的。 问题的计算复杂性可以通过解决问题所需计算量的多少来度量。 如何区分一个问题是“易”还是“难”呢?人们通常将可以在多项式时间内解决的问题看作是“易”解问题,而将需要指数函数时间解决的问题看作是“难”问题。这里所说的多项式时间和指数函数时间是针对问题的规模而言的,即解决问题所需的时间是问题规模的多项式还是指数函数。 为什么科学家要用多项式函数作为标准定义问题的难易程度? (1)为有过多时间要求的问题提供一个好的标准; (2)多项式函数在加、乘运算下是自封闭的,并且在那些有用的分析算法复杂性函数类中,多项式函数是最小函数类; (3)多项式时间复杂性的分析结果,对于常用的各种计算机模型,具有不变性。 存在多项式时间算法的问题称为易解问题, 需要在指数时间内解决的问题称为难解问题。 计算模型 在进行问题的计算复杂性分析之前,首先必须建立求解问题所用的计算模型,包括定义该计算模型中所用的基本运算,其目的是为了使问题的计算复杂性分析有一个共同的客观尺度。 三种主要的计算模型: 随机存取机RAM (Random Access Machine) 随机存取存储程序机RASP (Random Access Stored Program Machine) 图灵机(Turing Machine) 这三个计算模型在计算能力上是等价的,但计算速度不同。 随机存取机RAM 随机存取机所描述的形式计算机是一台单累加器计算机。它不允许程序修改其自身。其结构如下: 随机存取机RAM 随机存取机: 由只读输入带、只写输出带、程序存储部件、内存储器、指令计数器组成。 注:输入带、输出带可无限长; 内存储器由一系列寄存器组成,并且可存放任意大小的整数,寄存器个数无限。 随机存取机RAM RAM的程序不是存放在内存储器中,程序是一个带标号的指令序列。 RAM设有:算术运算指令、输入输出指令、存取指令、转移指令。 RAM的寻址方式:直接寻址和间接寻址。 RAM的指令由操作码和操作数组成。 操作数有三种形式: =i(直接数), i(直接地址), *i(间接地址) RAM的基本指令集(略) 随机存取机RAM 2. RAM程序 随机存取机RAM 3. RAM程序的耗费标准 随机存取存储程序机RASP 1. RASP的结构 RASP的整体结构类似于RAM,所不同的是RASP的程序是存储在寄存器中的。每条RASP指令占据2个连续的寄存器。第一个寄存器存放操作码的编码,第二个寄存器存放地址。RASP指令用整数进行编码。 RASP指令集中不需要间接寻址,其余指令与RAM指令集一样。 随机存取存储程序机RASP 2. RASP程序的复杂性 不管是在均匀耗费标准下,还是在对数耗费标准下,RAM程序和RASP程序的复杂性只差一个常数因子。在一个计算模型下T(n)时间内完成的输入-输出映射可在另一个计算模型下模拟,并在kT(n)时间内完成。其中k是一个常数因子。空间复杂性的情况也是类似的。 图灵机 1. 多带图灵机 图灵机 图灵机 图灵机 非确定性图灵机 非确定性图灵机 确定性和非确定性图灵机的区别在于:确定性图灵机的每一步只有一种选择,而非确定性图灵机却可以有多种选择。由此可见,非确定性图灵机的计算能力比确定性图灵机的计算能力强的多。 对于一台时间复杂性为T(n)的非确定性图灵机,可以用一台时间复杂性为O(C T(n) )的确定性图灵机来模拟,其中C为一常数。如果T(n)是一个合理的时间复杂性函数,M是一台时间复杂性为T(n)的非确定性图灵机,可以找到一个常数C和一台确定性图灵机M’,使得它们可接受的语言相同,且M’的时间复杂性为O(C T(n) ) 9.2 P类与NP类问题 本书的许多算法都是多项式

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档