算法分析与设计_第9章.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法分析与设计_第9章

第9章 NP完全性理论简介 学习要点 理解RAM,RASP和图灵机计算模型 理解非确定性图灵机的概念 理解P类与NP类语言的概念 理解NP完全问题的概念 理解近似算法的性能比及多项式时间近似格式的概念 通过范例学习NP完全问题的近似算法 (1)顶点覆盖问题; (2)旅行售货员问题; (3)集合覆盖问题; (4)子集和问题。 9.1 计算模型 在进行问题的计算复杂性分析之前,首先必须建立求解问题所用的计算模型,包括定义该计算模型中所用的基本运算。 建立计算模型的目的是为了使问题的计算复杂性分析有一个共同的客观尺度。 3个基本计算模型: 随机存取机RAM(Random Access Machine); 随机存取存储程序机RASP(Random Access Stored Program Machine) 图灵机(Turing Machine)。 这3个计算模型在计算能力上是等价的,但在计算速度上是不同的。 9.1.1 随机存取机RAM 9.1.1 随机存取机RAM 9.1.1 随机存取机RAM 9.1.2 随机存取存储程序机RASP 9.1.3 图灵机 9.1.3 图灵机 9.1.3 图灵机 9.2 P类与NP类问题 1.确定性算法:所采用的算法的每种运算结果都是唯一确定的,而且是直接给出问题的解。 2.非确定性算法:并不直接给出问题的解,但该算法可以验证是否是问题的解。 3.P类问题:所有可以在多项式时间内用确定性算法求解问题解的算法的集合。 4.NP类问题:所有可以在多项式时间内用非确定性算法求解问题解的算法的集合。 9.2 P类与NP类问题 5.NP难度问题:若对于NP中任何一个问题∏’,都有∏’ ∝poly∏,则称∏为NP难度问题。 6.NP完全问题:设有问题∏满足: (1)∏∈NP; (2)∏是NP难度的。 则问题∏ 是NP完全的。 9.2 P类与NP类问题 规约: 1.定义:若有问题∏’和∏ ,如果存在一个确定性算法A,当任取∏’的一个实例I’,A都可以再多项式时间内将其变换为的∏一个实例I,使得当且仅当I为真(或假)时, I‘为真(或假)。则称∏’可在多项式时间内规约为∏。记做:∏’ ∝poly∏。 2.规约的实质:将一个不好解的问题转换为一个好解的问题,间接求得问题的解。 3.规约的传递性: ∏∝poly∏’, ∏’∝poly∏’‘,则∏∝poly∏’‘。 9.2 P类与NP类问题 9.2 P类与NP类问题 * * 2、RAM程序 一个RAM程序定义了从输入带到输出带的一个映射。可以对 这种映射关系作2种不同的解释。 解释一:把RAM程序看成是计算一个函数 若一个RAM程序P总是从输入带前n个方格中读入n个整数 x1,x2,…,xn,并且在输出带的第一个方格上输出一个整数y 后停机,那么就说程序P计算了函数f(x1,x2,…,xn)=y 解释二:把RAM程序当作一个语言接受器。 将字符串S=a1a2…an放在输入带上。在输入带的第一个方 格中放入符号a1,第二个方格中放入符号a2,…,第n个方格中 放入符号an。然后在第n+1个方格中放入0,作为输入串的结束标 志符。如果一个RAM程序P读了字符串S及结束标志符0后,在输出 带的第一格输出一个1并停机,就说程序P接受字符串S。 1、RAM的结构 3、 RAM程序的耗费标准 标准一:均匀耗费标准 在均匀耗费标准下,每条RAM指令需要一个单位时间;每 个寄存器占用一个单位空间。以后除特别注明,RAM程序的复杂 性将按照均匀耗费标准衡量。 标准二:对数耗费标准 对数耗费标准是基于这样的假定,即执行一条指令的耗费 与以二进制表示的指令的操作数长度成比例。在RAM计算模型下, 假定一个寄存器可存放一个任意大小的整数。因此若设l(i)是整 数i所占的二进制位数,则 1、RASP的结构 RASP的整体结构类似于RAM,所不同的是RASP的程序是存 储在寄存器中的。每条RASP指令占据2个连续的寄存器。第一个 寄存器存放操作码的编码,第二个寄存器存放地址。RASP指令用 整数进行编码。 2、RASP程序的复杂性 不管是在均匀耗费标准下,还是在对数耗费标准下,RAM 程序和RASP程序的复杂性只差一个常数因子。在一个计算模型下 T(n)时间内完成的输入-输出映射可在另一个计算模型下模拟, 并在kT(n)时间内完成。其中k是一个常数因子。空间复杂性的情 况也是类似的。 根据有限状态控制器的当前状态及每个读写头读到的带符号,图灵机的一个计算步可实现下面3个操作之一或全部。 (1)改变有限状态控制器中的状态。 (2)清除当前读写头下的方格中原有带符号并写上新的带符号。 (3)独立地将任何一个或所有读写

文档评论(0)

tiangou + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档