第9章NP完全性理论与近似算法.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 NP完全性理论与近似算法 学习要点 理解RAM,RASP和图灵机计算模型 理解非确定性图灵机的概念 理解P类与NP类语言的概念 理解NP完全问题的概念 引言 问题的计算复杂性可以通过解决问题所需计算量的多少来度量。 易:可在多项式时间(O(nk))内解决的问题 难:需要指数函数(O(kn))时间解决的问题 9.1 计算模型 在进行问题的计算复杂性分析之前,首先必须建立求解问题所用的计算模型,包括定义该计算模型中所用的基本运算。 建立计算模型的目的是为了使问题的计算复杂性分析有一个共同的客观尺度。 3个基本计算模型: 随机存取机RAM(Random Access Machine); 随机存取存储程序机RASP(Random Access Stored Program Machine) 图灵机(Turing Machine)。 9.1.1 随机存取机RAM 9.1.1 随机存取机RAM 9.1.1 随机存取机RAM 9.1.2 随机存取存储程序机RASP 9.1.3 图灵机 图灵最大的贡献就是把算法这样一个基本的、深刻的概念用他的图灵机模型讲清楚了。正是因为图灵奠定的理论基础,人们才有可能发明20世纪以来甚至是人类有史以来最伟大的发明:计算机。因此人们称图灵为:计算机理论之父。 图灵在二战期间他曾经为英国政府效力成功破译了德国的密码,因而为英国做出了突出贡献。 为了纪念这个伟大的学者,计算机界设立了最高荣誉奖:ACM图灵奖。 9.1.3 图灵机 9.1.3 图灵机 9.1.3 图灵机 9.1.3 图灵机 9.1.3 图灵机 例1、设计一台可以计算“x+1”的图灵机。 根据图灵机的原理,利用二进制来设计一个专门计算“x+1”的图灵机,要求计算完成时读写头要回归原位。于是我们设计的图灵机为: 状态集合K:{start, add ,carry, noncarry, overflow, return, halt} 字母表∑:{0,1,*} 初始状态s:start 停机状态H:halt 规则集合δ:(见下页表) 9.1.3 图灵机 9.1.3 图灵机 该图灵机是如何具体进行计算动作的:假定x=5,则图灵机的初始状态如图2.2所示,箭头表示读写头当前的位置。 9.1.3 图灵机 从规则表2.1可知,当前状态为“add”,当前符号为“1”时,读写头的响应为:改写当前符号为“0”,并向左移动一格,内部状态改变为“carry”表示有进位,如图2.4所示: 9.1.3 图灵机 接下来从规则表2.1可知,读写头应改写当前符号为“1”,并向左移动一格,进入“noncarry”状态,表明没有进位,如图2.5所示 9.1.3 图灵机 此时,从规则表2.1知道:读写头不改写当前符号,只是继续向左移动一格,指向“*”,如图2.6所示: 9.1.3 图灵机 9.1.3 图灵机 从读写头状态可知,图灵机这时还处在运行状态,从规则表中可知,当读写头状态为“return”且当前符号为“*”时,则应进入“halt”状态,由于“halt”状态是该图灵机的停机状态,所以,图灵机停止运行,圆满地完成了计算要求,如图2.8所示: 9.1.3 图灵机 图灵停机问题 存在不存在一个程序比如说P,能够判断出任意一个程序X是否会在输入Y的情况下陷入死循环? 不妨设P(X,Y)表示P判断程序是X,数据是Y的结果。如果存在死循环,那么P(X,Y)就输出一个yes。如果不存在死循环,那么P(X,Y)就输出一个no。这样的P(X,Y)存在么?这就是停机问题。 所谓的某个程序X在输入Y上停机就是说X不存在着死循环,反过来如果不停机就是存在着死循环,因而这里停机和死循环是一回事儿。那么,这种判断停机问题的程序P存在么?答案是不存在的。 9.2 P类与NP类问题 一般地说,将可由多项式时间算法求解的问题看作是易处理的问题,而将需要超多项式时间才能求解的问题看作是难处理的问题。 有许多问题,从表面上看似乎并不比排序或图的搜索等问题更困难,然而至今人们还没有找到解决这些问题的多项式时间算法,也没有人能够证明这些问题需要超多项式时间下界。 在图灵机计算模型下,这类问题的计算复杂性至今未知。 为了研究这类问题的计算复杂性,人们提出了另一个能力更强的计算模型,即非确定性图灵机计算模型,简记为NDTM(Nondeterministic Turing Machine)。 在非确定性图灵机计算模型下,许多问题可以在多项式时间内求解。 9.2.1 非确定性图灵机 9.2.2 P类与NP类语言 9.2.2 P类与NP类语言 P就是Polynomial的问题,也即是多项式复杂程度的问题。 NP就是Non-deterministic?Polynomial 的问题,也即是多项式复杂

文档评论(0)

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

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

1亿VIP精品文档

相关文档