1、图灵系列讲座,东南大学 邓建明,简单介绍以下内容: 一、图灵、图灵奖及 图灵奖获得者 二、计算模型图灵机等 三、算法基本概念与NP完全性理论,一、图灵、图灵奖及 图灵奖获得者简介,1912年6月23日,出生于英国伦敦。 1931年-1934年,在英国剑桥大学国王学院学习。 1932年-1935年,研究量子力学、概率论和逻辑学。 1935年,由于独立发现中心极限定理,获Smith奖年仅23岁被选为剑桥大学国王学院院士。 1936年,研究可计算性理论,提出“图灵机”构想。,1936年-1938年,主要在美国普林斯顿大学做博士研究,研究内容涉及逻辑学、代数和数论等领域。 1938年-1939年,返回
2、剑桥从事研究工作,并应邀加入英国政府破译二战德军密码的工作。 1940年-1942年,作为主要参与者和贡献者之一,在破译纳粹德国通讯密码的工作上成就杰出,并成功破译了德军U-潜艇密码,为扭转二战盟军的大西洋战场战局立下汗马功劳。,Alan Turing生平简介,1943年-1945年,担任英美密码破译部门的总顾问。 1945年, 应邀在英国国家物理实验室从事计算机理论研究工作。 1946年,此时图灵在计算机和程序设计原始理论上的构思和成果,已经确定了他的理论开创者的地位。由于图灵的杰出贡献,他被英国皇室授予OBE爵士勋衔。 1947年-1948年,主要从事计算机程序理论的研究,并同时在神经网络
3、和人工智能领域做出开创性的理论研究。 1948年,应邀加入英国曼彻斯特大学从事研究工作,担任曼彻斯特大学计算实验室副主任。 1949年,成为世上第一位把计算机实际用于数学研究的科学家。 1950年,发表论文“计算机器与智能”提出著名的“图灵测试”理论,为后来的人工智能科学提供了开创性的构思。,Alan Turing生平简介,1951年,提出生物增长的非线性理论,年仅39岁即被选为英国皇家学会会员。 1952年,保守愚昧和冷战的时代,警察得知图灵与同性朋友密切交往的消息之后,有同性恋倾向的图灵被逮捕入狱。在法庭审判过程中,图灵明确告知人们,自己没有做错什么事。当时为了避免被判刑入狱,图灵被迫选择
4、了为期一年的雌性激素注射的所谓“治疗”,才得以重新返回研究工作。 1953年-1954年,继续在生物和物理学等方面的研究。被迫承受对同性恋倾向的“治疗”,致使原本热爱体育运动的图灵在身心上受到极大的伤害。 1954年6月7日,42岁的图灵死在床上,床头有一个咬了一半的、在氰化物溶液中浸泡过的苹果,警方调查结论是自杀。一代英灵,就此过早离去,成为人类科学史上的一大遗憾。,Alan Turing生平简介,Alan Turing,1912 (23 June): Birth, Paddington (near Westminster Cathedral), London 1931-34: Underg
5、raduate at Kings College, Cambridge University 1932-35: Study: Quantum mechanics, probability, logic 1936: The Turing machine, computability, universal machine 1936-38: Princeton University. Ph.D. Logic, algebra, number theory 1938-39: Return to Cambridge. Introduced to German Enigma cipher machine
6、1939-40: The Bombe, machine for Enigma decryption 1939-42: Breaking of U-boat Enigma, saving battle of the Atlantic,Alan Turing,1943-45: Chief Anglo-American crypto consultant. Electronic work. 1945: National Physical Laboratory, London 1946: Computer and software design leading the world. 1947-48:
7、Programming, neural nets, and artificial intelligence 1948: Manchester University 1949: First serious mathematical use of a computer 1950: The Turing Test for machine intelligence 1951: Elected FRS. Non-linear theory of biological growth 1952: Arrested as a homosexual, loss of security clearance 195
8、3-54: Unfinished work in biology and physics 1954 (7 June): Death (suicide) by cyanide poisoning, Wilmslow, Cheshire.,有关Turing的一些佚事,两次报考剑桥三圣学院(Trinity College,最负盛名)未被录取,只好进了剑桥国王学院(Kings College),攻读数学。 不善言辞,有些木讷害羞,常咬指甲。在剑桥大学是一个衣着随便、不打领带的著名教授,妇孺皆知的怪才。 患过敏性鼻炎,遇花粉流鼻涕不止所以戴防毒面具骑车上班,招摇过市,成为剑桥大学的一大奇观。 自行车掉链
9、不修理发现链条总是踏到一定的圈数时下滑,骑车时特别留心计算,能做到在链条下滑前一刹那戛然停车。 后来在脚踏板旁装了一个小巧的机械计数器,到圈数时就停,歇口气换换脑子,再重新运动起来。 怕英国失败把积蓄换成银子埋藏起来,二战后却忘了埋藏处。 40岁时因同性恋被法院传讯,“gross indecency”。,Alan Turing的主要贡献,24岁提出了图灵机理论 31岁参与Colossus的研制(二战时英国破解德国通讯密码的计算机,核心成员) 33岁时构思了仿真系统 35岁提出了自动程序设计的概念 38岁设计了“图灵测试” 39岁提出了关于生物增长的非线性理论 有“计算机之父”、“人工智能之父”
10、、 “破译之父”等美誉。有人甚至认为 他的贡献及对未来世界的影响几乎可 与牛顿、爱因斯坦等巨人比肩。,Alan Turing纪念馆 Enigma,Turing Test 人工智能的试金石,1950年图灵提出用来判断计算机是否能够思考的方案。 该年,图灵发表了里程碑式的论文计算机能思考吗?,第一次提出“机器思维”的概念。他逐条反驳了机器不能思维的各种论点,并做出了肯定的回答。他指出,最好的人工智能研究应该着眼于为机器编制程序,而不是制造机器。 图灵测试的方法:提问人通过一种特殊的方式,提出各种问题,分别由一个人或一台机器进行回答(与提问人隔绝)。 如果经过相当多次数的提问,提问人辨别不出与他交流
11、的对象是人还是机器, 则可认为这部机器有智能。 有科学家认为,20年后计算机能够轻松有效的通过各种形式的图灵测试;25年之内就会宣布计算机拥有了意识。,Turing Award,目前由Intel公司和Google公司赞助, 奖金为250,000美元。,Turing Award,被公认为是计算机科学界的诺贝尔奖 最高奖项 奖励在计算机科学技术研究中做出了创造性贡献、 推动了计算机科学技术发展的杰出科学家 1966年开始由ACM设立(美国计算机协会,1947年成立, 与IEEE Computer Society并列为计算机界最著名的两大国际学术组织),用Turing的名字来命名该奖,以纪念伟人对于
12、计算机科学技术发展的功绩。通常每年1名获奖者, 偶尔2名(同方向),02年3名(RSA),07年3名(设计错误自动化发现方法) 虽未明确规定, 但授奖较偏重于计算机科学理论和软件技术方面作出贡献的杰出科学家 截止到2010年共发奖45届,共有57位科学家获奖 唯一华人获奖者是姚期智(Andrew Yao, 美籍, 2000年),Turing奖获得者的领域分布,姚期智在家中,2000年图灵奖获得者姚期智,祖藉湖北孝感,1946年12月24日出生于上海 幼年随父母移居台湾,1967年毕业于台湾大学 之后赴美国深造,1972年获哈佛大学物理学博士学位 1975年获UIUC(伊利诺大学香槟分校)计算机
13、科学博士学位(物理师从Sheldon Lee Glashow,计算机师从C.L.Liu) 曾先后在麻省理工学院、斯坦福大学、加州大学伯克利分校等美国高等学府从事教学和研究 1986年至2004年6月任普林斯顿大学计算机科学系教授 2004年9月正式加盟清华大学高等研究中心任全职教授 他是美国国家科学院院士、中国科学院外籍院士、 美国人文及科学院院士,1966-1970图灵奖获得者,1966 A. J. Perlis - PhD, MIT; Prof, Yale (was Prof at CMU) (deceased) 因在新一代编程技术和编译架构方面的贡献而获奖。ALGOL语言和计算机科学的“
14、催生者”。 1967 Maurice V. Wilkes - PhD, Cambridge; Prof, Cambridge 因设计、研制出世界上第一台程序实现完全在内存的存储程序式计算机EDSAC而获奖。 1968 Richard W. Hamming - PhD, UIUC; Prof, Naval Postgraduate School (was at Bell) (deceased) 因在计数方法、自动编码系统、检测及纠正错码方面的贡献而获奖。 1969 Marvin Minsky - PhD, Princeton, Prof, MIT 因对人工智能的贡献被授予图灵奖。创立了框架理论。
15、 有“人工智能之父”之誉。 1970 J.H. Wilkinson - BS, Cambridge; staff, National Physical Laboratory, London 因在利用数值分析方法来促进高速数字计算机(ACE计算机)的应用方面的研究而获奖。,1971 John McCarthy - PhD, Princeton; Prof, Stanford 因对人工智能的贡献被授予图灵奖。LISP语言的发明人。 亦有“人工智能之父”之誉。 1972 Edsger W. Dijkstra - PhD, U Amsterdam; Prof, UT Austin 因在算法、编程语言方
16、面的出众表现而获奖。 1973 Charles W. Bachman - staff, Honeywell 因在数据库方面的杰出贡献而获奖。有“网状数据库之父”之誉。 1974 Donald E. Knuth - PhD, Caltech; Prof, Stanford 因设计和完成TEX(一种创新的具有很高排版质量的文档制作工具)而被授予该奖。经典巨著计算机程序设计的艺术作者。 1975 Allen Newell - PhD, Stanford; Prof, CMU (deceased) 和Herbert A. Simon - PhD, Chicago; Prof, CMU (decease
17、d) 因在人工智能、人类识别心理和表处理的基础研究而获奖。 人工智能符号主义学派的创始人。,1971-1975图灵奖获得者,1976-1980图灵奖获得者,1976 Michael O. Rabin - PhD, Princeton; Prof, Harvard 和Dana S. Scott - PhD, Princeton; Prof, CMU 因他们的论文“有穷自动机与它们的决策问题”中所提出的非确定性有穷自动机这一很有价值的概念而获奖。 1977 John Backus - BS, Columbia; staff, IBM 因对可用的高级编程系统设计有深远和重大的影响而获奖。FORTRA
18、N和BNF的发明者。 1978 Robert W. Floyd - BS, Chicago; Prof, Stanford 因其在软件编程的算法方面的影响,并开创了包括剖析理论、编程语言的语义、自动程序检验、自动程序合成和算法分析在内的多项计算机子学科而获奖。前后断言法的创始人。 1979 Kenneth E. Iverson 因对程序设计语言理论、互动式系统及发明APL的贡献而获奖. 1980 C. Anthony R. Hoare - Prof, Oxford(now at Microsoft) 因对程序设计语言的定义和设计所做的贡献而获奖。,1981-1985图灵奖获得者,1981 Ed
19、gar F. Codd - PhD, Michigan; staff, IBM 因在数椐库管理系统理论和实践方面的贡献而获奖。“关系数据库之父”。 1982 Steven A. Cook - PhD, Harvard; Prof, U Toronto 因奠定了NP-Completeness理论的基础而获奖。 1983 Ken Thompson - MS, Berkeley; staff, Bell-Labs 和Dennis M. Ritchie - PhD, Harvard; staff, Bell-Labs 在类属操作系统理论,特别是发明C和UNIX操作系统并推广而获奖。 1984 Nikl
20、aus Wirth - PhD, Berkeley; Prof, ETH Zurich 因开发了EULER、 ALGOL-W、 MODULA和PASCAL一系列崭新的计算语言而获奖。 “结构化程序设计之父”。 1985 Richard M. Karp - PhD, Harvard; Prof, Berkeley 因对算法理论的贡献而获奖. “三栖学者”,分枝限界法的创始人。,1986-1990图灵奖获得者,1986 John E. Hopcroft - PhD, Stanford; Prof, Cornell and Robert E. Tarjan - PhD, Stanford; Prof
21、, Princeton 算法及数据结构的设计和分析中所取得的决定性成果而获奖。 1987 John Cocke - staff, IBM RISC概念的首创者。 因在面向对象的编程语言和相关编程技巧方面的贡献而获奖。 1988 Ivan E. Sutherland - PhD, MIT; staff, Sun 因在计算机图形学方面的贡献而获奖。有“计算机图形学之父”之美誉。 1989 William V. Kahan - PhD, U Toronto; Prof, Berkeley 因在数值分析方面的贡献而获奖,他是浮点计算领域的专家。 1990 Fernando J. Corbato - P
22、hD, MIT; Prof, MIT 因在开发大型多功能、可实现时间和资源共享的计算系统,如CTSS和Multics方面的贡献而获奖。分时系统实现的核心人物。,1991-1994图灵奖获得者,1991 Robin Milner - Prof, Cambridge (was at U Edinburgh) 因在可计算的函数的逻辑(LCF)、标准元语言ML和并行理论(CCS)这三个方面的贡献而获奖。 1992 Butler Lampson - PhD, Berkeley; staff, Microsoft 因在个人分布式计算机系统(包括操作系统)方面的贡献而获奖。 1993 Juris Hartm
23、anis - PhD, Caltech; Prof, Cornell 和 Richard E. Stearns - PhD, Princeton; Prof, SUNY Albany 因奠定了计算复杂性理论的基础而获奖. 1994 Raj Reddy - PhD, Stanford; Prof, CMU 和 Edward Feigenbaum (PhD, CMU; Prof, Stanford) 因对大型人工智能系统的开拓性研究而获奖.,1995-1999图灵奖获得者,1995 Manuel Blum - PhD, MIT; Prof, Berkeley 因奠定了计算复杂性理论的基础和在密码术
24、及程序校验方面的贡献而获奖. 1996 Amir Pnueli - PhD, Weizmann Institute; Prof, NYU 计算中引入Temporal逻辑和对程序及系统检验的贡献被获奖. 1997 Douglas Engelbart - PhD, Berkeley; staff, SRI 提出互动式计算概念并创造出实现该概念的重要技术而获奖. 1998 James Gray - PhD, Berkeley; staff, Microsoft 因在数据库和事务处理方面的突出贡献而获奖. 1999 Frederick P. Brooks, Jr.- PhD, Harvard; Pro
25、f, UNC 因对计算机体系结构和操作系统以及软件工程 做出了里程碑式的贡献.,2000-2002图灵奖获得者,2000 Andrew Chi-Chih Yao - PhD, UIUC; Prof, Princeton 因对计算理论做出了诸多根本性的重大贡献. (图灵奖自创立以来获得该奖项的首位华裔学者,全球华人的骄傲) 2001 Ole-Johan Dahl, and Kristen Nygaard - Profs, U Oslo 因他们在设计编程语言SIMULA I 和SIMULA 67时产生的基础性想法,这些想法是面向对象技术的肇始. 2002 Ronald L. Rivest: PhD
26、, Stanford; MIT;Adi Shamir: PhD, Weizmann; Leonard M. Adelman : PhD, Berkeley; USC 他们在公共密匙算法上所做杰出贡献(RSA算法是当前在互联网传输、银行以及信用卡产业中被广泛使用的安全基本机制),2003-2005图灵奖获得者,2003 Alan Kay - PhD, Utah; HP Labs (was at Xerox PARC) 发明第一个完全面向对象的动态计算机程序设计语言Smalltalk. 2004 Vinton G. Cerf & Robert E. Kahn :For pioneering wor
27、k on internetworking, including the design and implementation of the Internets basic communications protocols, TCP/IP, and for inspired leadership in networking(由于在互联网方面开创性的工作,这包括设计和实现了互联网的基础通讯协议,TCP/IP,以及在网络方面卓越的领导。) 2005 Peter Naur 由于在设计Algol60程序设计语言上的贡献。Algol60语言定义清晰,是许多现代程序设计语言的原型,2006-2007图灵奖获得
28、者,2006 Frances Elizabeth Allen 对于优化编译器技术的理论和实践做出的先驱性贡献,这些技术为现代优化编译器和自动并行执行打下了基础。有史以来第一位获得图灵奖的女性。 2007 Edmund M. Clarke,E Allen Emerson & Joseph Sifakis由于他们开发模型检测技术,并使之成为一个广泛应用在硬件和软件工业中非常有效的算法验证技术所做的奠基性贡献。DDJ则将三人的贡献称为“在发现计算机硬件和软件中设计错误的自动化方法方面的工作”。,2008-2009图灵奖获得者,2008 Barbara LiskovFor contributions
29、to practical and theoretical foundations of programming language and system design, especially related to data abstraction, fault tolerance, and distributed computing. (对编程语言和系统设计的实践与理论基础,尤其是数据抽象、容错和分布式计算方面的贡献。)有史以来第二位女性图灵奖得主。 2009 Charles Thacker For the pioneering design andrealization of the firs
30、t modern personal computer the Alto at Xerox PARC and seminal invention and contributions to local area networks (including the Ethernet), multiprocessor workstations, snooping cache coherence protocols, and tablet personal computers.,与计算理论有关的图灵奖获得者(1),1972,E.W.Dijkstra(美Burroughs公司):求最短路径的Dijkstra算
31、法,PV操作,结构化程序设计,“goto有害”等。 1974,D.E.Knuth(stanford):算法最早的奠基人之一, 现代“算法”与“数据结构”等名词及内涵的提出,KMP算法, 多卷算法巨著的作者, LR(k)文法,Tex编辑器等。 1976,M.O.Rabin(以色列人) D.S.Scott(英国人)师兄弟(导师A.Church):非确定有穷自动机的提出、判定问题等。 Rabin:计算复杂性概念的雏形、随机算法的思想奠定、 寻找及判定素数算法、单向函数等。 Scott: 语义学等。 1978,R.W.Floyd(Stanford): Heap-sort算法、求最短路径的Floyd动态
32、规划算法等,编译及优化(优先文法等), 程序正确性证明等。,与计算理论有关的图灵奖获得者(2),1980,C.A.R.Hoare (Oxford (now at Microsoft):程序设计(发明CASE、While语句等), Quick-sort算法,数据通信等。 1983年ACM评出的1/4世纪中最有影响的25篇论文:Hoare与Dijkstra有两篇入选(其余人只有一篇)。 1982,S.A.Cook(加Toronto大学):“NP-完全”概念的提出与理论的奠定,算法复杂性等。 1984,N.Wirth(瑞士苏黎世高工):“程序=算法+数据结构”,结构化程序设计分、创始人,Extend
33、ed BNF等, “Pascal之父” 。 1985,R.M.Karp(UC-Berkeley):计算机系、数学系、工业工程运筹学系“三栖教授”,哈佛文学士、理学硕士、数学博士。分枝限界法的创始人(与Held),Rabin-Karp子串匹配算法,求网络最大流的Edmonds-Karp算法,NP-完全理论(Karp规约等),随机算法,并行算法等。,与计算理论有关的图灵奖获得者(3),1986,J.E.Hopcroft (Cornell) R.E.Tarjan(Princeton): 图论算法(e.g. 深度优先算法,连通性、平面图判定), 数据结构Hopcroft:形式语言与自动机名著作者(与U
34、llman), 算法名著作者(与Aho 、Ullman), 算法好坏的衡量尺度(渐进时间复杂性),2-3树,机器人等。 Tarjan:D.E.Knuth的博士生,集合的Union-find算法, 平摊分析,持久性数据结构及各种数据结构 (e.g. 动态树、”八字型”树,自调整结构) 1993,J.Hartmanis (Cornell) & R.E.Stearns (Albany):计算复杂性理论的主要奠基人:系统化的理论体系及命名。Hartmanis:Hartmanis矩阵乘法,Hartmanis快速离散傅立叶变换。Stearns:首先提出将上下文无关文法理论应用于编译器设计等。,与计算理论有
35、关的图灵奖获得者(4),1995,M.Blum(UC-Berkeley):计算复杂性理论 (受M.O.Rabin 到MIT演讲的启发),e.g. Blum测度等; 复杂性理论应用(e.g. 密码学、软件工程)。 2000,Andrew Yao(姚期智, Princeton,现在清华):计算复杂性,量子计算,密码学(e.g. 单向函数)、通信理论等。 2002,Ronald L. Rivest, Adi Shamir, Leonard M. Adelman:公共密钥算法(RSA算法是当前在互联网传输、银行以及信用卡产业中被广泛使用的安全基本机制). 到目前为止的56位获奖者中至少有19位主要或曾
36、经从事与计算理论有关的研究,与计算理论有关的图灵奖获得者(5),Edsger Wybe Dijkstra,Richard Wesley Hamming,34,34,与计算理论有关的图灵奖获得者(6),35,35,与计算理论有关的图灵奖获得者(7),Niklaus Wirth,Stephen A. Cook,未来计算 James Gray的12个目标,1.可伸缩性: 创造一种软件和硬件的体系结构,可以扩展一百万倍。即:某个具体应用的存储和处理能力可以通过添加资源而自动地提高一百万倍,也就是说处理同一问题速度提高一百万倍或用同样的时间可以处理规模扩大一百万倍的问题。(这里,“自动地”是指:除了加入
37、资源,用户用不着做任何其他干预 如重新编程,对系统配置进行调整) 2.通过图灵测试能力: 建造计算机系统,其通过图灵测试的概率至少为30%。 3.听写能力:机器的听写水平应能达到或相当于使用母语的人的听写水平。 4.诵读能力:机器的文本诵读水平应能达到或相当于用母语的人的诵读水平。 5.视觉能力:能够像人那样识别目标和运动状态。 6.记忆能力:能够像人那样记录下他所看到和听到的一切,而且在需要时能够迅速提取任何一个纪录。 7.智能资料存储处理系统:建立一个系统,对于一个给定的文本语料库,关于所存储的文本的任何问题都能够回答,可以对库中任一段文本做出摘要,回答和摘要的准确程度和速度相当于该领域的
38、专家水平。对于音乐、图像、艺术作品及视频节目也能达到同样的水准。,未来计算 James Gray的12个目标,8.远程临场感:模拟一个地方的场景,使你感觉就好像是在现场听见和看见所发生的一切(远程观察);模拟某人出席另一地点的活动,就好像某人在现场一样,与在现场的人士互相交流(远程参与)。 9.无故障系统:建造一个系统,每天可供上百万人使用,而管理它只需要一个非全时工作人员。 10.具有安全性的系统:保证第9项的系统只向得到授权的人士提供服务;任何未得到授权的人都无法使该系统中断业务;存储于系统中的信息也不会被窃取(而且必须严格证明确实获得了以上各项性能)。 11.随时可用性:保证该系统在每一
39、百年内中断工作的时间不超过1秒即可用度达到99.999999%(而且必须严格证明确实达到了这一指标)。 12.自动编程工具:建造一种需求描述语言或用户界面,具有如下功能:(a) 使人可以很容易地表述其设计(比现有语言容易1000倍);(b) 计算机可以直接进行编译;(c) 可以描述任何应用(具有完备性) 系统应该能对具体应用需求进行推理,对例外情况和不完备需求能提出疑问。但不能因此而导致其使用变得困难起来。,二、计算模型简介,Turing Machine (1),1936年,Alan Turing提出一个问题:什么是计算?什么问题是可计算的?Turing 认为 计算是一个人拿一支笔在一张纸上进
40、行的操作, 输入是眼睛看到的符号, 根据脑中的规则在纸上擦掉或写上一些符号; 再用眼睛看下面的符号,根据规则进行擦写的工作; 重复上述工作,直到这个人认为可以结束为止。此时,最后写下的符号就是所要的结果。 特点:在这个(计算)过程中,只用到了有穷多个符号。,Turing Machine (2),Turing希望有这样一种机器,通过某种一般的机械步骤,在原则上能够一个接一个地解决所有的数学问题。 Turing 根据前述的过程构造出了一个理想化的计算装置,该计算模型可用来计算所有能够想象得到的可以计算的函数。,Turing Machine (3),这个计算模型有一条带子(带子相当于一张纸), 带子
41、上有无穷多个方格, 每个方格中可以写给定有穷符号表中的一个字符。 有一个读写头 (读相当于用眼睛来看,写相当于擦或写)。 还有一个有穷状态控制器FSC(相当于人脑), FSC根据当前读到的符号(相当于眼睛看到的)和 自己当前的状态(相当于人脑的决策)决定三件事:,Turing Machine (4),FSC根据当前读到的符号(相当于眼睛看到的)和 自己当前的状态(相当于人脑的决策)决定三件事: 改变读写头当前所指的字母(相当于在纸上改写一些符号), 改变(或不改变)自己当前的状态(准备下一步的计算), 使读写头左移或右移或不动(相当于改变眼睛看到的范围)。 (注意如何把一般问题抽象成为数学模型
42、的过程。),Turing Machine (5),Turing发现该模型可以实现非常复杂的计算。 Turing称:凡是Turing机可以计算的问题就是可计算的,否则就是不可计算的。 此断言是否过于武断? 是否有其它计算模型的计算范围比Turing机的计算范围更大? 由此引出可计算性理论的深入研究,丘奇-图灵论题 (1),Church-Turing Thesis:任何合理的计算模型都是相互等价的(计算范围相同)。 讨论是由Turing引出的,结论是由Church下的。 合理:单位时间内可以完成的工作量,有一个多项式的上限。 不合理举例:任意多道的并行计算。 由于有“任何”二字,故无法进行证明。
43、但迄今为止所有被提出的合理计算模型均满足该论题。,丘奇-图灵论题 (2),Church最初认为,直觉上的可计算应该是递归函数可计算, 但后来发现递归函数可计算的范围与Turing可计算的范围相同, 后经研究又发现Post系统、-演算等计算模型的计算范围也相同, 由此推想其它合理的计算模型的计算范围也是相同的。 Church-Turing Thesis 更严格一些应为:合理的计算模型均等价于Turing机的计算范围或其子集。,丘奇-图灵论题 (3),Church-Turing Thesis说明了可计算性本身是不依赖于具体模型的客观存在。 由于Turing最先揭示了计算的本质,故计算机科学的最高奖
44、被命名为Turing奖。 Turing机的形式有多种:除单带双向Turing机之外,还有 单带单向Turing机、多带双向Turing机、多带单向Turing机等。 已经证明, 这些Turing机模型的计算能力(在多项式意义下)相同。,图例:k带单向Turing机,多带Turing机在讨论问题时方便一些(相当于有多行)。 单带机相当于只有一行:e.g. 325*678= 40+160+2400+350+1400+2100+3000+12000+180000=,k带单向Turing机的转移函数,与单带双向Turing机类似,有一个有穷状态控制器FSC, FSC根据当前读到的符号和自己当前的状态决
45、定三件事: 1)改变(或不改变)自己当前的状态, 2)改变(或不改变)任一个或全部的读写头当前所指的字母, 3)使任一个或全部的读写头左移或右移或不动。 (若状态、读写头当前所指字母、读写头位置均不改变,则Turing机自动停机,故通常3项中至少有1项改变) 以上动作的内容均由 转移函数决定,k带单向Turing机的形式描述,七元组(Q, T, I, , b, q0, qf)Q:由有穷多个状态的构成集合(状态通常用小写q表示)。T:带符号的集合(有限个带符号)。I:输入符号的集合(包含在带符号集合T中)。b:表示空白的特殊符号,在T中而不在I中。q0:表示初始状态。qf:表示最后的(或接受)状
46、态。(转移函数):QTk Q(TL,R,S)k 各种Turing机的主要的区别就在于它的转移函数。,k带Turing机的转移函数形式,各种Turing机的主要的区别就在于它的转移函数。 (但不同的Turing机(函数不同)实现的功能有可能会相同。),识别回文(正反读均相同的01串)的双带Turing机转移函数的图表示,输入串为01110时的部分执行情况,该双带Turing机的执行(1),在 转移函数d的图表示中,”/”左面括号中的两个字符分别代表第一和第二条带上读写头当前所注视的字符;”/”右面括号中的前两个字符分别代表要在两条带上写的新字符;后两个字符分别代表两个读写头是否要左移、右移还是保
47、持不动(”L”代表左移,”R”代表右移,”S”代表保持不动)。 该双带Turing机的执行情况: 在初始状态q0,带2最左边格子中应为空白”b”,如带1当前是0或1,则带1头不动, 带2最左边格子打上”X”后右移一格,进入q1状态准备复写; 若如带1当前是空白”b”,则进入q5状态接受。 若如带1当前是其它符号,则停机,不接受。,该双带Turing机的执行(2),在q1状态(主要是执行将带1内容复写到带2上的操作) 如带1当前是0或1,则将其复写到带2上,带1、带2头右移一格,仍停留在q1状态(不断执行复写); 如带1当前是空白”b”(输入串读完),则带1头不动, 带2头左移一格,进入q2状态
48、。 在q2状态(主要是执行将带2头不断左移的操作,直到最左边格子)如带2当前是0或1而不是”X”,则不断左移带2的读写头(带1头保持不动),直到带2上出现”X”为止。此时带1头左移一格,带2头右移一格,进入q3状态准备比较。,该双带Turing机的执行(3),在q3状态,执行比较,若带1、带2当前字符(0或1)相同, 则带2头右移一格进入q4状态。 (带1、带2头不同时移动是为了防止带1头从最左端脱落。) 若带1、带2当前字符不同,则停机,不接受。 在q4状态,只要带2当前字符不是空白”b”(串尚未比较完), 则带1头左移一格,回到q3状态准备下一次比较。 若带2当前字符是空白”b”,说明比较
49、结束,输入串的确是回文,进入q5状态接受。,语言接受器/函数计算装置,Turing机可以从两个不同的角度来看(本质是一样的): 既可以作为语言接受器, 也可以作为计算某个函数f(x1,x2,xn)的装置。 Turing机T0接受的符号串: 从T0第一条带最左端的格子开始放输入串的符号(每格一个符号), 且k个读写头都处于最左端。若从指定的初始状态q0起, T0作一系列动作后进入接受状态qf, 则称该输入符号串被T0所接受。 Turing机T0接受的语言:由所有被T0接受的符号串所组成的集合。,Turing机T0可计算函数f的定义,设T0开始工作前k个读写头都处于最左端, f是某个n元函数,定义域为D。 若对任一(1, 2, ,n) D(i是具体的数), 将字符串1# 2# n#b作为T0的输入后, (也可以不用#而用其它分隔符) 从指定的初始状态q0起,T0作一系列动作后进入最终状态qf, 且此时指定输出带从最左端起到空白为止的值恰好等于f(1, 2, ,n),则称T0可计算f。,