计算方法讲义课件 二 算法与可计算性.docVIP

计算方法讲义课件 二 算法与可计算性.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 1 PAGE 4 第二章 算法与可计算性理论 2.1 算法 算法是信息科学的基础理论。70年代Knuth出版了《The Art of Computer Programming》, 以各种算法研究为主线,确立了算法的重要性。1974年获得图灵奖。 如同建筑设计、产品设计,总需要一些工程图一样,在生成实际中常需要进行算法设计。解决计算问题过程:可计算否→算法设计→编程实现→软件系统。那么什么是算法?很难给出一个完整的、明确的关于算法的定义。 算法(algorithm)这个词最早出现于12世纪,指用数字实现计算的过程,现在是指用计算机解决问题的程序或步骤。计算方法与算法是密不可分的。算法一般没有明确的定义,下面几个问题是算法要重点考虑的: 计算速度。 存储量。 数值稳定性。 先不给具体定义,只举例说明。平面区域的三角剖分问题,看其来简单,但实际算法比较复杂。Delaunay剖分:给定平面上一个点集,存在一种三角剖分,使三角形的最小角达到最大。 算法的定义:是满足下列条件的一系列计算步骤: 有限性:有限步内必须停止。 确定性:每一步都是严格定义和确定的动作。 可行性:每一个动作都能够被精确地机械执行。 输入:有一个满足给定约束条件的输入。 输出:满足给定约束条件的结果。 算法的分析: 1.正确性。一个算法是正确的,如果它对于每一个输入都最终停止,而且产生正确的输出。调试程序?程序正确性证明。程序调试只能证明程序有错误,不能证明程序无错误。 2.复杂性。预测算法对不同输入所需要的资源量。复杂性测度:时间,空间,I/O。用途:为求解一个问题选择最佳算法。时间:输入产生结果需要的原子操作或步骤数。空间:输入产生结果所需要的存储空间大小。复杂性可以分:最坏,最好和平均。 3.稳定性。 4.可读性。 如何定性地分析算法的复杂性?这里需要用到下面几个概念: 1.同阶函数集。 ?(f(n))={g(n)|?c1,c20,n0 ,当n? n0 , c1f(n) ? g(n) ? c2f(n)}称为与f(n)同阶的函数集合,注意当n充分大以后,f(n)是非负的。如果g(n)??(f(n)),称g(n)与f(n)同阶。 【例1】 证明 。设 ,令c1=a/4, c2=7a/4,则,令。当时成立。 【例2】 证明 。如果存在c1、c2 0,n0使得当n?n0时,c1 n2?6n3?c2n2。于是,当nc2/6时,n?c2/6,矛盾。 2.低阶函数集。O(f(n))={g(n)|?c0,n0 ,当n? n0 ,0?g(n)?cf(n)}称为比f(n)低阶的函数集合。如果g(n)?O(f(n)),称f(n)是g(n)的上界。 例 证明 。令c=1,n0=1,则当时,。 3.高阶函数集。?(f(n))={g(n)| ?c0, n0 ,当n? n0 ,0?cf(n)?g(n)}称为比f(n)高阶的函数集合。如果g(n)? ?(f(n)),称f(n)是g(n)的下界。 定理:对于任意f(n)和g(n), iff 而且f(n)=?(g(n)). 当n很大时,。多项式级的复杂性,指数级复杂性。 【例3】 分析时间复杂性。两个N阶矩阵求积。 算法的表示:流程图 图形 名称 含义 开始框 表示开始或数据准备等 数据框 表示输入、输出的数据 处理框 表示处理过程 判断框 表示判断过程 流程线 表述流程连接关系 终止框 表述过程终止 算法就是一系列的计算步骤,具体表现出来可以是一段自然语言,或伪代码,或一段程序。简单算法只有几行代码,复杂算法可能需要调用其它上万个子算法。算法类似于控制论中的黑箱子(black box),或数学中的变换,或C语言中的函数,见下图: 输入 输入 算法 输出 2.2 图灵机与可计算函数集 图灵机是解决计算问题的一个抽象模型。可用算法方法解决的问题等价于能用图灵机解决。 希尔伯特在1900年提出的著名的“23个数学难题”,其中第10个问题涉及逻辑完备性,即是不是所有数学问题在逻辑上都可以解的。图灵(Alan Turing)在1936年写论文,给出结论:不是所有数学问题在逻辑上都可解。哪些问题是可解的呢?他给出了一个图灵机模型。核心思路:将计算(推理)看做一系列简单的机械动作。 Turing Machines由一根两端可无限延长的纸带和一个有读写头的控制器组成。纸带分成相同方格,方格上可由读写头书写一个符号。这些符号构成有穷字母表:{S0,S1,S2,…,Sp}。机器的控制状态表为:{q1,q2,…,qm}。指令=五元组(qi,Sj,Sk,R(或L或N),ql): (1)qi=机器目前所处的状态; (2)Sj=机器从方格中读入的符号; (3)Sk=机器用来代替Sj写入方格中的符号; (4)R、L、N分别=向右移一

文档评论(0)

卖报的小行家 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档