收藏 分享(赏)

计算学科的形成及其基本问题.ppt

上传人:dreamzhangning 文档编号:3371244 上传时间:2018-10-20 格式:PPT 页数:116 大小:2.99MB
下载 相关 举报
计算学科的形成及其基本问题.ppt_第1页
第1页 / 共116页
计算学科的形成及其基本问题.ppt_第2页
第2页 / 共116页
计算学科的形成及其基本问题.ppt_第3页
第3页 / 共116页
计算学科的形成及其基本问题.ppt_第4页
第4页 / 共116页
计算学科的形成及其基本问题.ppt_第5页
第5页 / 共116页
点击查看更多>>
资源描述

1、第 4 课 计算学科的形成及其基本问题,http:/ 计算学科的形成 4.2 计算学科的基本问题,2,4.1 计算学科的形成,4.1.1 计算教育面临的三个重大问题 4.1.2 计算学科的形成过程 4.1.3 计算机科学催生者艾伦.佩利,3,4.1.1 计算教育面临的三个重大问题,第一个重大问题:计算作为一门学科的存在性证明 解决难点:选择什么证明方式? 第二个重大问题:整个学科核心课程的详细设计 解决难点:计算机专业本科阶段必须学习哪些内容? 第三个重大问题:整个学科综述性导引(导论)课程的构建 解决难点:如何用公理化方法来概括学科?学科各主领域中要提出哪些科学问题?,4,解决3个重大问题的

2、意义,计算作为一门学科的地位的确定,对学科的发展至关重要 确定一个公认的本科生必须掌握的核心内容,将为高校制定计算机教学计划奠定基础 对计算学科的认知能建立在公理化的基础上,将使人们对整个计算学科的认知科学化、系统化和逻辑化,5,4.1.2 计算学科的形成过程,1989年ACM和IEEE-CS联合攻关组在计算作为一门学科报告指出:计算学科是对描述和变换信息的算法过程进行的系统研究,包括理论、分析、设计、效率、实现和应用等。 该报告第一次给出了计算学科一个透彻的定义,给出了计算学科二维定义矩阵的概念,完成了计算学科的“存在性”证明(Existence Proof ) 并将当时的计算机科学、计算机

3、工程、计算机科学和工程、计算机信息学以及其他类似名称的专业及其研究范畴统称为计算学科。 在计算教育史上具有里程碑意义。,6,计算学科二维定义矩阵,7,计算学科二维定义矩阵剖析,计算学科二维定义矩阵是对计算学科的一个高度概括,可以将把握计算学科的本质问题归约为把握计算学科二维定义矩阵的本质问题 横向关系的内容,即抽象、理论和设计3个过程的内在联系与发展规律的内容,横向关系蕴含着学科中的科学问题,科学问题与3个过程共同构成了计算机科学与技术方法论中最重要的内容 纵向关系的内容,即各分支领域中所具有的共同的能反映学科某一方面本质特征的内容。各分支领域之间主要存在以下两个方面的联系: 各分支领域中的某

4、些研究内容是一致的 计算学科中具有方法论性质的核心概念、数学方法、系统科学方法、形式化技术、社会和职业的问题贯穿于各分支领域之中,揭示了计算学科各分支领域的内在联系,使计算学科各分支领域结合成一个完整的体系,而不是一些互不相关的领域。,8,计算学科的形成过程,随后,于2001至2005年, IEEE-CS和ACM任务组分别提交了计算机科学(Computer Science,CS)、信息系统(Information System,IS)、软件工程(Software Engineering,SE)、计算机工程(Computer Engineering,CE)、信息技术(Information Te

5、chnology,IT)等5个分支学科(专业)的教程以及相应的总报告,给出了5个分支学科的知识体以及相应的核心课程,为各专业教学计划的设计奠定了基础。,9,Computing Curricula 2005,10,我国计算学科专业名称,根据我国高等学校的情况,教育部高等学校计算机科学与技术教学指导委员会(简称“计算机教指委”)制定的高等学校计算机科学与技术发展战略研究报告暨专业规范(试行)(高等教育出版社2006年9月出版,简称“计算机专业规范”)采纳了CC2005报告中的4个分支学科,并以专业方向的形式进行规范,它们分别是:计算机科学、计算机工程、软件工程和信息技术。,11,有关“计算机科学导

6、论”课程构建问题,“计算作为一门学科”报告认为,“计算机导论课程的构建是计算教育面临的一个重大问题。 报告认为,该课程要培养学生面向学科的思维能力,使学生领会学科的力量以及从事本学科工作的价值所在。 报告希望该课程用类似数学那样严密的方式将学生引入计算学科各个富有挑战性的领域之中 CC2001报告介绍了该课程的构建问题,并认为这是一个引起类似宗教战争那样激烈争论的问题。 报告认为,不管怎样设计,这门课程都应该讲授学科中那些富有智慧的核心思想。,12,有关“计算机科学导论”课程构建问题,CC2004和CC2005则进一步指出,该课程的关键是课程的结构设计问题,现有的浓缩结构显然不是一种好的课程结

7、构,报告期待人们在该课程的结构设计上有所突破。,13,“计算机科学导论”课程结构的确定,计算学科二维定义矩阵为构建“计算机导论”课程提供了思路。 计算学科二维定义矩阵中的科学问题,抽象、理论和设计3个过程(“横向”关系)与计算学科中的核心概念、数学方法、系统科学方法、形式化技术、社会和职业的问题(“纵向”关系)构成了计算学科方法论的主要内容 自此,计算机科学与技术方法论已经建立,从而“计算机科学导论”课程结构也就确定了,14,4.1.3 计算机科学催生者艾伦.佩利,(19221990),15,佩利简介,1966年图灵奖获得者 在ALGOL语言定义和扩充上做出了重大贡献 创始计算机科学教育,使计

8、算机科学成为一门独立的学科 1922年4月1日出生于美国宾夕法尼亚州的匹兹堡。 1942年于卡内基-梅隆大学取得化学学士学位 1947年于加州理工学院取得数学硕士学位 1950年于麻省理工学院(MIT)取得博士学位。,16,佩利简介,1952年加入“旋风(Whirlwind)”计算机计划,为“旋风”编写程序,研究“旋风”的军事应用 “旋风”是世界上第一台存储程序式并行计算机,是与通信第一次结合的计算机 之后,到普渡大学、卡内基理工学院创建计算中心,开创了在大学中建立计算中心的先河。为此,设计了称为IT (Internal Translator)的语言,并开发了IT的编译器。在此基础上,与Smi

9、th、Zoren、Evans等人一起设计并开发了新的代数语言和汇编语言,之后演变成算法语言ALGOL 60.,17,佩利简介,ALGOL60的意义: ALGOL60是程序设计语言发展史上的一个里程碑,它标志着程序设计语言由一种“技艺”转而成为一门“科学”,开拓了程序设计语言的研究领域,又为后来软件自动化的工作以及软件可靠性问题的发展奠定了基础。 而后像1967年出现的首次引进”类型”的概念,把数据和被允许施行于这些数据之上的运算结合为一个统一体,因而成为现代抽象数据类型的开端以及第一个面向对象的语言SIMULA67,1971年出现的著名的PASCAL等语言,也都是在ALGOL60的基础上加以扩

10、充而形成的。,18,佩利简介,与此同时,在佩利的积极组织下,卡内基理工学院事先在大学生中开设程序设计课程。 在此之前,有关程序设计的知识是作为”数值分析”课程内容的一部分予以介绍的。 程序设计课的开设是计算机科学教育的开端。 之后,在卡内基理工学院、斯坦福大学、MIT等少数几个大学建立起了计算机科学系和计算机科学研究生院,使计算机科学脱离电气工程、数学等学科而成为一门独立的学科。 美国的第一批计算机科学博士生,绝大部分都是佩利的弟子。,19,佩利简介,佩利的至理名言: “任何名词都可以变为动词”(any noun can be verbed )。 他的意思是说,任何远大的理想、志向、抱负和对新

11、事物的追求,通过努力和不懈的实践,都是可以实现的。,20,佩利简介,佩利的主要著作: 对程序设计语言的思考(A View of Programming Languages,Addison-Wesley, 1970)。 计算机科学导论(Introduction to Computer Science,Harper Row,1972,1975) 软件可重用性(Software Reusability,ACM Press,1989),21,讨论,“任何名词都可以变为动词”,你如何理解? 计算教育面临哪3个重大问题?,22,4.2 计算学科的基本问题,4.2.1 哥尼斯堡七桥问题与图论 4.2.2 可

12、计算问题与不可计算问题 4.2.3 GOTO语句问题与程序设计方法学 4.2.4 哲学家共餐问题与计算机资源管理 4.2.5 两军问题与计算机网络 4.2.6 人工智能中的若干哲学问题,23,4.2.1 哥尼斯堡七桥问题与图论,哥尼斯堡七桥问题 寻找“走遍7座桥,且只许走过每座桥一次,最后又回到原出发点”的路径,哥尼斯堡地图,24,欧拉对哥尼斯堡七桥问题的抽象,将哥尼斯堡七桥问题抽象为一个数学问题, 即寻找“经过图中每边一次且仅一次”的回路,25,欧拉的结论,欧拉的结论: 任一连通无向图存在欧拉回路的充要条件是图的所有顶点均有偶数度。 任一连通无向图存在欧拉路径的充要条件是图中只有两个顶点为奇

13、数度。 此外,既不存在欧拉路径也不存在欧拉回路。 因此,哥尼斯堡七桥问题中的回路是不存在的。 欧拉的论文为计算学科中图论的形成奠定了基础。 今天,图论已广泛地应用于计算学科、运筹学、信息论、控制论等学科之中,并已成为我们对现实问题进行抽象的一个强有力的数学工具。,26,图论中的哈密尔顿回路问题,哈密尔顿回路问题:在某个图G中能否找到这样的路径,即从一点出发不重复地走过所有的结点,最后又回到原出发点。 但至今仍未找到满足该问题的充分必要条件,27,相关图灵奖获得者,伊万萨瑟兰 1988年图灵奖获得者,计算机图形学之父,28,伊万萨瑟兰,(1938?),29,4.2.2 可计算问题与不可计算问题,

14、1 梵天塔问题以及复杂性理论 2 证比求易算法 3 旅行商问题与组合爆炸问题 4 找零问题、背包问题与贪婪算法 5 一个不可计算问题:停机问题,30,1 梵天塔问题以及复杂性理论,梵天塔问题 复杂性理论,31,梵天塔问题,将A柱子上的n个盘子借助B柱子全部移到C柱子上,并且移动时必须同时满足以下规则: 每次只能移动一个盘子 盘子只能在三根柱子上来回移动不能放在他处 在移动过程中三根柱子上的盘子必须始终保持大盘在下小盘在上,32,梵天塔,33,梵天塔问题的求解,用计算机求解一个实际问题,首先要从这个实际问题中抽象出一个数学模型,然后设计一个解此数学模型的算法,最后根据算法编写程序,经过调试、编译

15、、连接和运行,从而完成该问题的求解 梵天塔问题是一个典型的只有用递归方法(而不能用其他方法)来解决的问题 所谓递归,就是将一个较大的问题归约为一个或多个子问题的求解方法,并且这些子问题比原问题简单,且在结构上与原问题相同,34,算法描述(Java语言版),public class HanoiTower / 将n个盘从left柱移到right柱,以middle柱为辅助柱public static void move(int n, char left, char right, char middle)if (n = 1) / 仅有一个盘时,直接从left柱移到right柱System.out.pr

16、intln(“将#1盘从“+left+“移到“+right); else / 将n - 1个盘从left柱移到middle柱,以right柱为辅助柱move(n - 1, left, middle, right);/ 将最下的圆盘从left柱移到right柱System.out.println(“将#“+n+“盘从“+left+“移到“+right);/ 将n - 1个盘从middle柱移到right柱,以left柱为辅助柱move(n - 1, middle, right, left);public static void main(String args)/ 将4个圆盘从A柱移到C柱,移动

17、时利用B柱为辅助柱move(4, A, C, B); ,35,运行结果示例,E:APPTESTjavac HanoiTower.java E:APPTESTjava HanoiTower 将#1盘从A移到B 将#2盘从A移到C 将#1盘从B移到C 将#3盘从A移到B 将#1盘从C移到A 将#2盘从C移到B 将#1盘从A移到B 将#4盘从A移到C 将#1盘从B移到C 将#2盘从B移到A 将#1盘从C移到A 将#3盘从B移到C 将#1盘从A移到B 将#2盘从A移到C 将#1盘从B移到C,36,算法的复杂性,按照上面的算法,n个盘子的梵天塔问题需要移动的盘子数是n-1个盘子的梵天塔问题需要移动的盘子

18、数的 2 倍加 1。于是 h(n)=2h(n-1)+1=2(2h(n-2)+1)+1=22h(n-2)+2+1=23h(n-3)+22+2+1=2nh(0)+2n-1+22+2+1=2n-1+22+2+1=2n-1 启示:理论上可以计算的问题,实际上并不一定能行(称为“难解问题”),37,复杂性理论,复杂性理论主要指算法与问题复杂性理论 2个基本概念: 问题:指需要回答的一般性提问 算法:指求解某个问题的一系列具体步骤 如果一个算法能解答一个问题的任何实例,那么就说这个算法能解答这个问题 如果针对一个问题至少存在一个算法可解答这个问题,那么就说这个问题是可解的(resolvable),否则就说

19、这个问题是不可解的(unresolvable),38,算法复杂性,一个算法复杂性通常用称之为“大O”的符号来表示,它表示了算法复杂性的数量级 f(n)=O(g(n)意味着存在一个常数c和n0使得对一切nn0,有f(n)c|g(n)| 如:若f(n)=17n+10,则f(n)=O(n),因为存在c=18,n0=10,39,算法复杂性分类,算法复杂性分类 多项式的(polynomial): 复杂性为O(nc)(c为常数) 若c=0,就称它是常量(constant)的,复杂性为O(1) 若c=1,就称它是线性(linear)的,复杂性为O(n) 若c=2,就称它是二次(quadratic)的,复杂性

20、为O(n2) 指数的(exponential): 复杂性为O(ch(n)(c为常数,h(n)为多项式) 当h(n)大于常数而低于线性函数时,如h(n)=log2n,就称它是超多项式(superpolynomial)的,40,问题复杂性,在问题复杂性理论中,重要的是关于NP与NP完全问题的理论 一个问题的复杂性可理解为由解该问题的最有效的算法所需的时间与空间来度量,41,问题的分类,问题的分类 P类问题: 在多项式时间内可以解决的问题 P类问题的全体,记为P NP类问题:在多项式时间内可以验证的问题 NP类问题的全体,记为NP,显然P NP,但还未证明PNP 如:大整数的素因子分解问题、背包问题

21、、可满足性问题、离散对数问题 NP-完全类问题 所谓一个NP问题是NP完全的,如果NP中的任何一个问题都可以通过多项式时间转换为该问题 如:背包问题、可满足性问题、离散对数问题、旅行商问题、哈密尔顿回路问题 NP-完全类问题的全体,记为NPC 若NPC中的任何一个问题属于P,则所有的NP问题都属于P,且P=NP,42,2 证比求易算法,“证比求易算法”童话:从前,有一个酷爱数学的年轻国王向邻国一位聪明美丽的公主求婚。公主出了这样一道题:求出48 770 428 433 377 171的一个真因子。若国王能在一天之内求出答案,公主便接受他的求婚。 办法1:国王回去后立即开始逐个数地进行计算,他从

22、早到晚,共算了三万多个数,最终还是没有结果。国王向公主求情,公主将答案相告:223 092 827是它的一个真因子。国王很快就验证了这个数的确能除尽48 770 428 433 377 171 办法2:由于对一个17位的数,其最小的一个真因子不会超过9位,于是按自然数的顺序给全国的老百姓每人编一个号发下去,等公主给出数目后,立即将它们通报全国,让每个老百姓用自己的编号去除这个数,除尽了立即上报,赏金万两,43,问题的实质,该问题实质上是一个素因子分解问题,分别用顺序算法和并行算法进行求解 顺序算法其复杂性表现在时间方面 并行算法其复杂性表现在空间方面,44,阿达尔定律,设f为求解某个问题的计算

23、存在的必须串行执行的操作占整个计算的百分比,p为处理器的数目,Sp为并行计算机系统最大的加速能力(单位:倍),则设f=1%,p则Sp=100 启示:对难解性问题而言,单纯的提高计算机系统的速度是远远不够的,而降低算法复杂度的数量级才是最关键的问题,45,3 旅行商问题与组合爆炸问题,旅行商问题:有若干个城市,任何两个城市之间的距离都是确定的,现要求一旅行商从某城市出发,必须经过每一个城市且只能在每个城市逗留一次,最后回到原出发城市。问如何事先确定好一条最短的路线,使其旅行的费用最少 原始办法:列出每一条可供选择的路线(即对给定的城市进行排列组合),计算出每条路线的总里程,最后从中选出一条最短的

24、路线 若设城市数目为n时,那么组合路径数则为(n-1)!,46,组合路径图,47,组合爆炸问题,随着城市数目的不断增大,组合路线数将呈指数级数规律急剧增长,以至达到无法计算的地步 解决组合爆炸问题一个合理的办法是寻找其启发式算法、近似算法、概率算法等,48,判为素数的概率算法,若Miller-Rabin算法返回 “composite” ,则该数一定不是素数 否则,该数是素数或伪素数。可以证明,此时是伪素数的概率小于 因此若反复用不同随机数a测试,则通过连续t次测试均是返回 “maybe prime”后,n是素数的概率至少就是: Pr = 1-4-t 如: 对于t=10, n是素数的概率大于0.

25、999999,49,4 找零问题、背包问题与贪婪算法,找零问题 背包问题 贪婪算法,50,找零问题,设有不同面值的钞票,要求用最小数量的钞票给顾客找某数额的零钱,这就是通常说的找零问题。 例如,有一个顾客拿一张面值100元的钞票(人民币)在超市买了5元钱的商品,收银员需找给他95元零钱。售货员在找零钱时可有多种选择: 9张10元的、1张5元的 95张1元的 950张1角的 1张50元、2张20元和1张5元的,51,贪婪算法,贪婪算法是一种传统的启发式算法,它采用逐步构造最优解的方法,即在算法的每个阶段都做出在当时看上去最好的决策,以获得最大的“好处”,换言之,就是在每一个决策过程中都要尽可能的

26、“贪”,直到算法中的某一步不能继续前进时,算法才停止。 在算法的过程中,“贪”的决策一旦做出,就不可再更改,做出“贪”的决策的依据称为贪婪准则。 贪婪算法是从局部的最优考虑问题的解决方案,它简单而又快捷,因此常被人们所使用。但是,这种从局部,而不是从整体最优上考虑问题的算法,并不能保证求得的最后解为最优解。,52,背包问题,给定n种物品和一个背包,设Wi为物品i的重量,Vi为其价值,C为背包的重量容量,要求在重量容量的限制下,尽可能使装入的物品总价最大,这就是背包问题。 例如,假设n=3:W1=100,V1=60;W2=20,V2=40;W3=20,V3=40;C=110。 贪婪准则1:每次都

27、选择价值最大的物品装包。此时,选物品1,这种方案的总价值为60。而最优解选物品为2和3,总价值为80 贪婪准则2:每次都选择Vi/Wi值(价值密度)最大的物品装包。此时,选择物品2和3,总价值为80,结果为最优解,53,类似的问题与求解算法,与找零问题、背包问题等类似的可以用贪婪算法求解的问题还有货箱装船问题、拓扑排序问题、二分覆盖问题、最短路径问题、最小代价生成树等。 贪婪算法是一种传统的启发式算法,用于求解一类问题的启发式算法还有分而治之法、动态规划法、分支限界法、A*算法、遗传算法、蚂蚁算法以及演化算法等。,54,5 一个不可计算问题:停机问题,停机问题:能否找到这样一个测试程序,它能判

28、断出任意的程序在接收了某个输入并执行后能否终止。若能找到,则停机问题可解;否则,不可解。,55,停机问题的反证,结论是:若S终止,则S不终止;若S不终止,则S终止。结论矛盾,故可以确定这样的测试程序是不存在的,从而证明停机问题的不可解。,已知:若P可终止,则x=1;否则x=0,56,可计算问题与不可计算问题的启示,启示:对于问题而言,并不都是可以计算的,即使是可以计算的问题,也存在是多项式时间内可以计算的,还是非多项式时间内可以计算的,当然,还存在着神秘的NP问题。,57,相关图灵奖获得者,米凯尔拉宾和达纳斯科特 1976年图灵奖获得者,非确定性有限状态自动机理论的开创者 斯蒂芬库克 1982

29、年图灵奖获得者,NP完全性理论奠基人 理查德卡普 1985年图灵奖获得者,发明“分枝限界法”的三栖学者 尤里斯哈特马尼斯和理查德斯特恩施 1993年图灵奖获得者,计算复杂性理论的主要奠基人,58,相关图灵奖获得者,曼纽尔布卢姆 1995年图灵奖获得者,计算复杂性理论的奠基人之一 约翰霍普克洛夫和罗伯特陶尔扬 1986年图灵奖获得者,硕果累累的算法设计大师 姚期智 2000年图灵奖获得者,计算理论领域卓越的开拓者 利维斯、沙米尔和阿德勒曼 2002年图灵奖获得者,最具影响力的公钥密码算法RSA的发明人,59,米凯尔拉宾和达纳斯科特,(1931?),(1932?),60,斯蒂芬库克,(1939?)

30、,61,理查德卡普,(1935?),62,尤里斯哈特马尼斯和理查德斯特恩施,(1928?),(1936?),63,曼纽尔布卢姆,(1938?),64,约翰霍普克洛夫和罗伯特陶尔扬,(1939?),(1948?),65,姚期智,(1946?),66,利维斯、沙米尔和阿德勒曼,(1947?),(1945?),(1952?),67,4.2.3 GOTO语句问题及程序设计方法学,程序的 3 种基本结构 “GOTO语句”问题的争论,68,程序的 3 种基本结构,1966年C.Bhm和G.Jacopini发表了关于“程序结构”的重要论文,指出:任何程序的逻辑结构都可以用3种最基本的结构,即顺序结构、选择结

31、构和循环结构来表示,69,“GOTO语句”问题的争论,1968年,首次提出了“GOTO语句是有害的”问题,引发了激烈的争论 公正的论述:滥用GOTO语句是有害的,完全禁止也不明智,在不破坏程序良好结构的前提下,有控制地使用一些GOTO语句,就有可能使程序更清晰,效率也更高 关于“GOTO语句”问题的争论直接导致了一个新的学科分支领域,即程序设计方法学的产生 程序设计方法学是对程序的性质及其设计的理论和方法进行研究的学科,70,相关图灵奖获得者,埃德斯加狄克斯特拉 1972年图灵奖获得者,最先察觉”goto有害”的计算机科学大师 唐纳德克努特 1974年图灵奖获得者,经典巨著计算机程序设计的艺术

32、的年轻作者 罗伯特弗洛伊德 1978年图灵奖获得者,前后断言法的创始人,71,相关图灵奖获得者,尼克劳斯沃思 1984年图灵奖获得者,PASCAL之父及结构化程序设计的首创者 阿米尔伯努利 1996午图灵奖获得者,把时态逻辑引入计算机科学 奥尔约翰戴尔和克利斯登奈加特 2001年图灵奖获得者,挪威计算机科学家,面向对象技术奠基人,72,埃德斯加狄克斯特拉,(19302002),73,唐纳德克努特,(1938?),74,罗伯特弗洛伊德,(19362001),75,尼克劳斯沃思,(1934?),76,阿米尔伯努利,(1941?),77,奥尔约翰戴尔和克利斯登奈加特,(19302002),(1926

33、2002),78,4.2.4 哲学家共餐问题与计算机资源管理,生产者-消费者问题 哲学家共餐问题,79,生产者-消费者问题与哲学家共餐问题,都是并发程序设计中有关进程同步的问题,即如何协调多个进程互斥地访问有限资源 n个进程 m个共享资源,80,生产者-消费者问题,所谓消费者是指使用某一软硬件资源时的进程;而生产者是指提供或释放某一软硬件资源时的进程 借用了火车信号系统中的信号灯来表示进程之间的互斥,81,“哲学家共餐”问题,5个哲学家围坐在一张圆桌旁,每个人的面前摆有一碗面条,碗的两旁各摆有一只筷子。哲学家的生活除了吃饭就是思考问题,其生活进程表示为: (1)思考问题 (2)饿了停止思考,左

34、手拿一只筷子(如果左侧哲学家已持有它,则需等待) (3)右手拿一只筷子(如果右侧哲学家已持有它,则需等待) (4)进餐 (5)放右手筷子 (6)放左手筷子 (7)重新回到思考问题状态(1) 问题:如何协调5个哲学家的生活进程,使得每一个哲学家最终都可以进餐?,82,可能出现的两种情况,(1)所有的哲学家都同时拿起左手筷子,并等待拿右手筷子。(死锁Deadlock) (2)所有的哲学家都同时拿起左手筷子,然后同时放下左手的筷子,等一会又同时拿起左手的筷子,如此这样永远重复下去。(饥饿Starvation) 可利用Petri网、并发程序语言等工具解决这类问题,83,相关图灵奖获得者,肯尼思汤普森和

35、丹尼斯里奇 1983年图灵奖获得者,C和UNIX的发明者 费尔南多考巴脱 1990年图灵奖获得者,实现分时系统的功臣 巴特勒兰普森 1992年图灵艾获得者,从Alto系统的首席科学家到微软的首席技术宫 艾伦凯 2003年图灵奖获得者,“个人计算机之父”及Smalltalk语言发明人,84,肯尼思汤普森和丹尼斯里奇,(1943?),(1941?),85,费尔南多考巴脱,(1926?),86,巴特勒兰普森,(1943?),87,艾伦凯,(1940?),88,4.2.5 两军问题与计算机网络,两军问题 互联网软件的分层结构,89,两军问题,两军问题可以这样描述: 一支白军被围困在一个山谷中,山谷的两

36、侧是蓝军。 困在山谷中的白军人数多于山谷两侧的任一支蓝军,而少于两支蓝军的总和。 若一支蓝军对白军单独发起进攻,则必败无疑;但若两支蓝军同时发起进攻,则可取胜。 两支蓝军希望同时发起进攻,这样他们就要传递信息,以确定发起攻击的具体时间。 假设他们只能派遣士兵穿越白军所在的山谷(唯一的通信信道)来传递信息,那么在穿越山谷时,士兵有可能被俘,从而造成消息的丢失。 问题是:如何通信,以便蓝军必胜?,90,两军问题,91,两军问题,两军问题通信协议设计: 两步握手协议: 一支蓝军指挥官发出消息:“我建议在明天拂晓发起进攻,请确认”,另一支蓝军指挥官同意这一建议。 三步握手协议: 一支蓝军指挥官发出消息

37、:“我建议在明天拂晓发起进攻,请确认”,另一支蓝军指挥官同意这一建议,最初提出建议的指挥官将收到的确认信息告诉对方。 四步握手协议:结论是:不存在使蓝军必胜的通信约定(协议)。,92,TCP三向握手过程,93,互联网软件的分层结构,网络协议(简称协议)是为网络中的数据交换而建立的规则、标准或约定的集合。 在Internet上,就是通过一个分层的具有不同功能的软件来实现数据交换的。这就像邮寄一个包裹的过程。,94,包裹邮寄的层次结构,95,Internet软件的层次结构,Internet软件有4个层次,即应用层、传输层、网络层和链路层,每层均有相应的协议进行支撑,每台Internet上的机器都具

38、有这样的软件及层次结构。 一条信息在应用层产生,向下通过传输层和网络层的处理,然后通过链路层被传递。这个信息由目的地的链路层接收,通过网络层和传输层的逆操作,最后将信息送到应用层。 为了确保网络协议的安全,研究人员提出了一系列新的理论(如BAN类逻辑、Kailar逻辑、串空间理论等),研制了不少用于形式化验证的工具(如SMV、SPIN、Athena等),开辟了一个薪的研究领域:安全协议工程。,96,Internet软件的层次结构,97,在协议栈中数据封装过程,98,相关图灵奖获得者,理查德哈明 1968年图灵奖获得者,发明纠错码的大数学家和信息学专家 文登塞夫和罗们特凯恩 2004年图灵奖获得

39、者,Internet基础通信协议TCPIP之父,99,理查德哈明,(19151998),100,文登塞夫和罗们特凯恩,(1943?),(1938?),101,4.2.6 人工智能中的若干哲学问题,1 图灵测试 2 西尔勒的“中文屋子” 3 计算机中的博弈问题,102,1 图灵测试,测试机器是否能思维从功能的角度来判定机器是否能思维 做法: 提问者(C)提出问题让一个男人(A)或一个女人(B)回答,从中鉴别哪个是男人,哪个是女人 把上面这个游戏中的男人(A)换成一部机器来扮演 如果提问者在与机器、女人的游戏中作出的错误判断与在男人、女人之间的游戏中作出错误判断的次数是相同的,那么,就可以判定这部

40、机器是能够思维的,103,“图灵测试”的意义,“图灵测试”标志着人工智能领域研究的开始 其哲学基础:思维就是计算(认知就是计算) 但由于人们对心理学和生物学的认识还很不成熟,要对人类思维的本质进行描述,还是相当遥远的事情,因此,到目前为止,人们对人工智能的研究并无实质性的突破,104,2 西尔勒的“中文屋子”,西尔勒将自己比作一台机器,被单独关在一个屋子里。他对中文一窍不通,但很擅长按照指令娴熟地处理一些汉字符号。 为此,他按照屋外人编制的规则指令将递进来的一串汉语字符进行一番搬弄,之后将一串新组成的字符送出屋外。结果与一个地道的中国人作出的答案没什么不同。但是我们能说西尔勒真的懂中文吗? 启

41、示: 形式化的计算机仅有语法,没有语义。 机器永远也不可能代替人脑,105,3 计算机中的博弈问题,从广义上讲,博弈就是对策或斗智,是人工智能领域研究的重点内容之一 北京时间1997年5月初,在美国纽约公平大厦,“深蓝”计算机与国际象棋冠军卡斯帕罗夫交战,前者以两胜一负三平战胜后者 “深蓝”计算机中的关键技术:博弈树搜索 博弈树类似于状态图和问题求解搜索中使用的搜索树 搜索树上的每一个结点对应一个棋局,一般博弈树非常大 如何将搜索树修改到一个合理的范围,是一个值得研究的问题,106,“深蓝与卡斯帕罗夫之战”启示,就计算而言,人要在计算能力上超过机器是不现实的 计算机具有超强的运算速度 计算机具

42、有超强的记忆功能 但不要认为机器的智力已超越人类,人的智力与机器的智力根本就是两回事 计算机是一种用严密的数学语言来描述的计算机器 而对人脑思维至今还无法建立完整的数学模型 我们应当自觉地将计算机应用于人类社会的进步和发展之中,107,相关图灵奖获得者,马文明斯基 1969年图灵奖获得者,“人工智能之父”和框架理论的创立者 约翰麦卡锡 1971年图灵奖获得者,“人工智能之父”和LISP语言的发明人 赫伯特西蒙和艾伦纽厄尔 1975年图灵奖获得者,人工智能符号主义学派的创始人 爱德华费根鲍姆和劳伊雷迪 1994年图灵奖获得者,大型人工智能系统的开拓者,108,马文明斯基,(1927?),109,

43、约翰麦卡锡,(1927?),110,赫伯特西蒙和艾伦纽厄尔,(19162001),(19271992),111,爱德华费根鲍姆和劳伊雷迪,(1936?),(1937?),112,思考题,为什么说科学研究是从问题开始的? 欧拉是如何对“哥尼斯堡七桥问题”进行抽象的? 简述“欧拉回路”与“哈密尔顿回路”的区别。 判断图1中哪个存在欧拉路径,哪个存在欧拉回路。 判断图2中,哪个存在哈密尔顿回路。,图1,图2,113,思考题,赛纳河流经巴黎的这一段河中有两个岛,河岸与岛间架设了15座桥,如图3所示。问: (1)能否从某地出发,经过这15座桥各一次后再回到出发点? (2)若不要求回到出发点,能否在一次散步中穿过所有的桥各一次?若可以,把路径写出来。,图3,114,思考题,以“梵天塔问题”为例,说明理论上可行的计算问题实际上并不一定能行。 什么是NP类问题?请举例说明。 “生产者-消费者问题”和“哲学家共餐问题”反映的是计算学科中的什么问题? “GOTO语句问题”的提出直接导致了计算学科哪一个分支领域的产生? “图灵测试”和“中文屋子”是如何从哲学的角度反映人工智能本质特征的? 为什么说人要在计算能力上超过计算机是不现实的?,115,END,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报