370 likes | 473 Views
第 1 章 绪论. 本章内容. 1. 什么是计算 2. 计算工具的发展和电子计算机 3. 计算科学 4. 计算科学的应用. 2. 教学目标. 掌握如下概念和知识点 什么是计算? 什么是可计算的,什么是不可计算的? 如何衡量问题的复杂性? 历史上的计算工具与电子计算机有哪些共同的思想 ? 计算科学的根本问题有哪些? 了解计算科学的应用. 3. 1.1 什么是计算. 【 课堂练习 】 什么是计算? 1. 求 x 2 +2x-3=0 的根(解)? 2. 已知绳子的承重,悬挂位置(角度)问重物的重量最大值?. A. B. 53. 37. C. 4.
E N D
本章内容 • 1.什么是计算 • 2.计算工具的发展和电子计算机 • 3.计算科学 • 4.计算科学的应用 2 西安交通大学计算机教学实验中心
教学目标 • 掌握如下概念和知识点 • 什么是计算? • 什么是可计算的,什么是不可计算的? • 如何衡量问题的复杂性? • 历史上的计算工具与电子计算机有哪些共同的思想? • 计算科学的根本问题有哪些? • 了解计算科学的应用 3 西安交通大学计算机教学实验中心
1.1什么是计算 • 【课堂练习】什么是计算? 1.求x2+2x-3=0的根(解)? 2.已知绳子的承重,悬挂位置(角度)问重物的重量最大值? A B 53 37 C 4 西安交通大学计算机教学实验中心
1.计算 • 计算(computation)是算法的执行, • 算法(algorithm)是由若干条指令组成的有穷序列。 • 指令:表示某种动作的符号(或语言)。 • 计算:从包含算法和输入数据的初始状态开始,经过一系列的中间状态,直到达到最终的目标状态的过程。 5 西安交通大学计算机教学实验中心
计算与产品的加工/生产过程有什么可比之处?计算与产品的加工/生产过程有什么可比之处? 西安交通大学计算机教学实验中心
一组可能的输入值和一组可能的输出值之间的映射关系称为函数(function)。一组可能的输入值和一组可能的输出值之间的映射关系称为函数(function)。 • 它使每个可能的输入被赋予单一的输出。 • 计算机科学的一个基本问题就是找到一种技术,并用其来计算用于求解问题的函数。 y=f(x) • 对于一个给定的输入,确定其具体输出的值,这一过程称为函数的计算。 • 通过对函数的计算,解决问题。 • 能不能确定,怎样确定加工过程,如何实现加工过程? 7 西安交通大学计算机教学实验中心
1.2 计算工具的发展和电子计算机的诞生 1.手工计算工具 • 算筹 • 算盘 • 计算尺 • 纳皮尔筹 8 西安交通大学计算机教学实验中心
2.机械式计算工具 • 盘式计算机 • 莱布尼茨计算机 • 巴贝奇的差分机和分析机 9 西安交通大学计算机教学实验中心
巴贝奇的差分机和分析机 把多项式数值表的复杂算式转化为差分运算,用简单的加法代替平方运算。 • 差分机 • 三个寄存器 • 每个寄存器六位(10万) • 自动计算 • 分析机 • 存储器 • 运算室 • 操作控制器 • 条件转移 • 卡片输入 • 打印、制版、卡片 10 西安交通大学计算机教学实验中心
3.电子计算机的诞生 • 1945年年底 • “电子数值积分机和计算机”( Electronic Numerical Integrator and Computer) , 简称ENIAC。 • 标志人类计算工具历史性变革的巨型机器宣告峻工。 • 正式的揭幕典礼于1946年2月15日举行,这一天被人们认为是ENIAC的诞生日。 11 西安交通大学计算机教学实验中心
ENIAC的最大特点就是采用电子线路来执行算术运算、逻辑运算和储存信息ENIAC的最大特点就是采用电子线路来执行算术运算、逻辑运算和储存信息 • ENIAC有如下的缺陷: • 第一, 它按照十进制工作而非二进制 • 第二,它最初是为弹道计算而设计的专用计算机 • 第三, 它的存储容量太小,至多只能存20个字长10位的十进制数 12 西安交通大学计算机教学实验中心
EDVAC • 在ENIAC还没有完成时,1944年,它的设计者们就开始了新的计算机的设计 • 1945年,冯•诺依曼提给出了“EDVAC报告的第一份草案”(First Draft of a Report on the EDVAC)。 13 西安交通大学计算机教学实验中心
冯诺依曼思想: • (1)采用了二进制; • (2)二是实现了存储程序, • 可以自动地从一个程序指令执行到下一个程序指令, 其作业顺序可以通过一种称为“条件转移”的指令而自动完成。 • (3)确定了新机器有五个构成部分: • 运算器、 • 控制器、 • 存储器、 • 输入和输出装置, • 这一结构被称为冯•诺依曼结构,有此结构的计算机统称为冯•诺依曼计算机。 西安交通大学计算机教学实验中心
【课堂练习】生活中的冯.诺依曼结构? 15 西安交通大学计算机教学实验中心
计算机的发展 • ENIAC诞生以来,随着组成逻辑电路的电子元件的发展,将电子计算机的发展划分为: • 第一代电子管时代, • 第二代晶体管时代, • 第三代集成电路时代, • 第四代超大规模集成电路时代。 • 以后的发展从功能上描述, • 第五代是智能计算机, • 第六代是模仿人类大脑功能的计算机。 • 如今,计算机从体积上趋于小型化,性能上趋于巨型化,功能上趋于网络化、使用智能化(和综合化)。 16 西安交通大学计算机教学实验中心
计算设备的模型之一——图灵机 • 1936年,图灵(Alan Turing)提出一种计算机模型 • 用机器来模拟人们用纸笔进行数学运算的过程 • 是计算工具的一种抽象 • 图灵机的组成: • 一个控制单元 • 一个读/写磁头 • 一条两端无线延伸的纸带 18 西安交通大学计算机教学实验中心
图灵机的工作过程 • 任何时刻,机器处在有限个状态之一; • 开始于特定的状态,称为初始状态, • 停止于另一特定状态,称为停止状态。 • 图灵机的计算由机器的控制单元执行一系列步骤。 • 每一步:观察当前磁带单元中的符号,然后将符号写进这个单元,改变状态,将读/写磁头左移或右移一个单元,再读取磁带单元中的符号。 • 要执行的确切活动是由程序所决定的,程序通过机器的状态、磁带当前单元的内容和规则来告诉控制单元做什么。 西安交通大学计算机教学实验中心
图灵认为这样的一台机器能模拟人类所能进行的任何计算过程。图灵认为这样的一台机器能模拟人类所能进行的任何计算过程。 • 所有的问题都可用计算机求解吗? • 计算机能解哪些问题?不能解哪些问题呢? • 可计算性 20 西安交通大学计算机教学实验中心
2.可计算和不可计算 • 如果一个函数,可以依据输入值和一定的计算步骤,来确定其输出值,则称其为可计算的(computable); • 而如果根据其输入找不到定义好的、一步一步的过程来确定其输出值,这样的函数称为不可计算的(uncomputable) • 图灵可计算 • 如果把二进制形式表示的输入值放在机器的磁带上,运行机器,直至停止,然后就可以从磁带上读取输出值。这种由图灵机以这种方式计算的函数称为图灵可计算的。 • 如果一个问题是可计算的,不管它有多复杂,总能制造出一种机器对其进行求解。 • 而如果问题是不可计算的,意味着它超出了机器的能力范围。 21 西安交通大学计算机教学实验中心
停机问题 • 停机函数是不是可计算的? • 停机函数 • 这个函数的输入是一个程序,如果输入的程序是自终止的,则结果为1,如果输入的程序不是自终止的,则结果为0。这个函数称为停机函数(halting function) • 自终止程序 • 如果程序中所有的变量都用程序自身的编码形式来进行初始化,且这个程序的执行能够导致一个终止的过程,那么这个程序 就是自终止的(self-terminating)。 22 西安交通大学计算机教学实验中心
自终止程序 • x=0; • while x not 0 do • x=x+1; • endwhile • stop • x=1; • while x not 0 do • x=x+1; • endwhile • stop • 不是自终止的程序 西安交通大学计算机教学实验中心
停机 函数 判定 程序 1 程序 0 • 现在假设停机函数是可计算的, • 意味着,可以找到一个程序,其输入是程序, • 如果输入的程序是终止的,则结果为x=1, • 如果输入的程序不是自终止的,则结果为x=0。 • 设这个程序为“停机函数判定程序”。 24 西安交通大学计算机教学实验中心
构造另一个新程序,称为“停机函数判定扩展程序”构造另一个新程序,称为“停机函数判定扩展程序” 停机函数判定程序 x=停机函数判定程序的结果 while x not 0 do x=x+1; endwhile stop 停机函数判定扩展程序 停机函数判定程序 X=判定结果 While x not 0 do x=x+1; endwhile stop 其输入也是程序。 • 这个程序是不是自终止的呢? • 以它自己作为自己的输入 • 停机函数在图灵机模型下是不可计算的。 25 西安交通大学计算机教学实验中心
其他计算模型——生命游戏 • 生命游戏(Came of Life)是J. H. Conway在20世纪60年代末设计的一种单人玩的计算机游戏(Garclner,M.,1970、1971)。 26 西安交通大学计算机教学实验中心
下面介绍生命游戏的构成及规则: • (1)元胞分布在规则划分的网格上; • (2)元胞具有0,1两种状态,0代表"死",1代表"生"; • (3)元胞以相邻的8个元胞为邻居。即Moore邻居形式; • (4)一个元胞的生死由其在该时刻本身的生死状态和周围八个邻居的状态 (确切讲是状态的和)决定: • 周围有3个细胞,当前细胞状态: 生 • 周围有2个细胞,当前细胞状态: 保持 • 其他:当前细胞状态: 死 27 西安交通大学计算机教学实验中心
产生丰富的、有趣的图案。 • 给定初始状态分布。经过若干步的运算: • 有的图案会很快消失。 • 有的图案则固定不动, • 有的周而复始重复两个或几个图案, • 有的婉蜒而行。有的则保持图案定向移动,形似阅兵阵…… • http://www.swarmagents.cn/complex/models/gameoflife.htm • 演示 28 西安交通大学计算机教学实验中心
3.问题的复杂性 • 即使是可计算的,都容易计算吗? • 求解两个问题 • 将{5,2,8,1,6,3,10,7,4,9}从小到大排序; • 计算 3.1x2+6.2x+8.9=0的根。 • 哪个简单? • 上一个,约45次比较 • 第2题,6次乘除,4次加减,1次开方 29 西安交通大学计算机教学实验中心
时间复杂性(时间复杂度) • 对问题的求解关键是看在计算机上求解所花的时间,从这个角度上考察的复杂性称为时间复杂性(time complexity)。 • 算法的时间复杂度常是看算法中需要的主要运算的次数和问题规模的关系。 T=f(n) • 同一个问题可以有不同的算法,用其中时间复杂度最小的作为问题的时间复杂性。 30 西安交通大学计算机教学实验中心
空间复杂性 • 计算机中的内存资源是有限的,而节省内存的算法对较大的问题就很重要。通过度量程序执行时所需的存储空间来衡量复杂性称为空间复杂性(space complexity)。 • 空间复杂性也是用问题规模的数量级来表示的。 S=f(n) • 空间复杂性和时间复杂性可能常常是矛盾的,在设计算法时需要做出折中。 31 西安交通大学计算机教学实验中心
下列算法的时间复杂度 算法1: 输入正整数n k=1 Sum=0; While k<=n do sum=sum+1 Endwhile 输出 sum 结束 算法2: 输入正整数n k=1 Sum=(1+n)*n/2; 输出 sum 结束 求:1+2+…+n 西安交通大学计算机教学实验中心
如果算法在最坏情况下的时间复杂度是O(nk),其中n表示问题的规模,k是一个确定的常数,则称该算法的时间复杂度是多项式时间。如果算法在最坏情况下的时间复杂度是O(nk),其中n表示问题的规模,k是一个确定的常数,则称该算法的时间复杂度是多项式时间。 • 一般地,将可由多项式时间算法求解的问题看作易处理的问题,称为P问题。 • 1002 =? 2100=? • 将需要超出多项式时间才能求解的问题看做难处理的问题。 33 西安交通大学计算机教学实验中心
例如,从n个人的群体中列出所有可能的不同的小组的组合是2n-1,它的时间复杂度至少是O(2n-1),是指数时间复杂性的问题。例如,从n个人的群体中列出所有可能的不同的小组的组合是2n-1,它的时间复杂度至少是O(2n-1),是指数时间复杂性的问题。 • 还有一类问题,人们已经设计出它的时间复杂性为指数阶的算法,并且已证明该问题不存在多项式阶的算法,例如梵塔问题。这样一类问题人们称之为顽型问题。 • 但是有这样一类问题,人们目前已设计出它的时间复杂性为指数阶的算法,但还不能肯定它有或没有多项式阶的算法,例如当m>2时任意图的m-可着色问题。 • 人们称这类问题为NP问题,NP是Nondeterministic Polynomial的缩写,即非确定的多项式的意思。 34 西安交通大学计算机教学实验中心
本章要点 • 计算、算法、函数 • 可计算的、不可计算的 • 图灵机的组成和工作过程 • 图灵可计算的、丘奇——图灵论题 • 是否有不可计算的函数 • 停机函数 • 程序自终止的,举例 • 停机判定函数 • 时间复杂性/度(算法、问题) • 空间复杂性/度 • 多项式时间复杂度、指数阶时间复杂度 35 西安交通大学计算机教学实验中心
计算工具 • 算筹、算盘、纳皮尔筹、计算尺 • 盘式计算机、莱布尼茨计算机、巴贝奇差分机和分析机 • ENIAC、EDVAC、区别? • 计算科学的概念、形态、基本概念 • 计算科学的研究与应用 • 人工智能、网格计算、云计算、普适计算 • 应掌握的技能: • 通过网络获取有价值的知识 36 西安交通大学计算机教学实验中心
本章作业 • 1.画出本章的概念图 • 2.写出在N个数(设为a1,a2,a3,a4,..,an)中查找最大数的计算步骤(下周课上检查) 37 西安交通大学计算机教学实验中心