- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 * 页 第七章 计算与计算科学 问题导入:邱奇-图灵论题的焦点是什么? 如果解决问题的算法无法构建,则表明该问题一定是不可解的; 任何在算法上可计算的问题同样可由图灵机计算 ——所有计算或算法都可以由一台图灵机来执行。 计算思维是人的思维,而不是计算机的思维 7.1 计算的本质 7.2 关于计算学科 7.3 普适计算及其应用 第1章 基于计算机的问题求解 第七章 计算与计算科学 7.1 计算的本质 7.1.1 什么是计算 1.关于计算 计算是构建在一套公理体系上的、不断向上演化的规则。比如我们日常的四则运算,它的公理体系应该是由三部分组成:数字、基本运算符、组合规则。那么,抽象地描述计算应该是: 基于规则的符号集合的变换过程,即从一个按规则组织的符号集合开始,再按照既定的规则一步步地改变这些符号集合,经过有限步骤之后得到一个确定的结果。 2.计算的分类 计算理论的研究,侧重于从数学角度证明表达能力和正确性,比较典型的图灵机、lambda演算、pi演算这些都属于这个范畴; 计算模型的研究,侧重于对真实系统的建模和刻画,比如冯诺伊曼模型、BSP模型、LogP模型等等。 在计算这个问题上的两种范式 7.1 计算的本质 3.计算的本质 在图灵机中,计算就是计算者对一条无限长的纸带上的符号串执行指令,一步一步地改变纸带上某个位置的符号,经过有限步骤,最后得到一个满足预先规定的符号串的变换过程。 这个模型的关键是形式化方法。用“纸带符号串→控制有限步骤→读/写头→结果”这一形式表述计算过程的本质。 7.1 计算的本质 以计算机下棋为例:一个简单的井字棋盘如图7-1所示,计算机的计算主要是建立在一个状态空间树(博奕树)的搜索方式上。计算机需要操作的数据对象是每走一步棋后形成的新的棋盘状态(格局)。 图7-1 井子棋示意图 图7-2 计算解释器 解释器 棋盘状态 行动决策 7.1 计算的本质 不同的解释器对应着不同的计算模型,比如我们常说的符号计算和数值计算,其实就是指我们输入的数据是数值或是符号,然后各自对应一个自己的解释器,通过不同的计算模型得出各自需要的结果。它们是不同的计算模型,但是本质都是相同的:计算过程符号化。 对各种不同计算的实现,首先是人的计算思维活动,是计算的过程化、形式化思维活动的表达,体现为算法、程序或软件。 计算的本质就是通过演化产生新的信息 7.1 计算的本质 7.1.2 可计算与不可计算 1.什么问题不可计算 图灵论题 一个可计算问题是“当且仅当它在图灵机上经过有限步骤之后可以得到正确的结果” 根据这一论题,通常人们把所面临的问题分为可计算问题与不可计算问题两大类 7.1 计算的本质 那么什么问题不可计算? 例如,一直被关注的图灵“停机问题”就是不可计算的,因为他无法用数学的方式证明,这是不可计算的典型问题。事实上,如果该问题可计算,那么编译程序就可以在运行程序之前判断该程序是否存在死循环。而实际中死循环程序和一个只是“运行很慢”的程序是无法得以明确区分的。 证明一个问题不可计算:证明它如果可以计算,那么停机问题就可以计算 7.1 计算的本质 首先,判定一个程序是否会停机,是指:对于其的任意一个输入,可判定其是否停机。那么假定这样的图灵机存在,设为H。其工作过程不妨设为:若对于任意一个程序M可停机则输出1,反之输出0(由于其是可判定的)。那么可以构造另一程序D,其工作过程为:以H输出为输入,若输入为1则不停机,反之停机。 由于H可判定所有程序,那么其也可判定D,若其判定D输入1时不停机,则其输出0,而由于D的定义知它是可停机的,反之亦然。故停机问题无算法解。 7.1 计算的本质 2.问题的可计算判断 “能行过程”:针对所要解决的问题是否存在能行方法,以此来判断可计算问题是否实际可解。 无论是数学还是工程,解决问题的过程就是问题状态发生变化的过程。如果我们以参数形式来描述问题状态,那么解决问题的过程就可以看作是一个参数变化的过程,如表7-1所示。这个过程中如果输入参数和输出参数的对应关系是明确的,则说明这个过程是能行的,也就是说这个问题是可计算的。 过程时间 问题状态 参数形式 开始 初始状态 输入参数 结束 结果状态 输出结果 表7-1 解决问题的参数变化过程 7.1 计算的本质 例7-1 设m和n是两个正整数,且mn。求m和n的最大公因子的欧几里得算法,可以通过下列过程表示: 步骤1:以n除m得余数r. //求余数 步骤2:若r=0, 则输出答案n,过程终止; 否则转到步骤3. //判断余数是否为0 步骤3:把m的值变为n, n的值变为r,重复上述步骤. //变换参数值
原创力文档


文档评论(0)