非确定性有限状态自动机理论的开创者 |
1976 Michael O. Rabin and Dana S. Scott——非确定性有限状态自动机理论的开创者 <本文发表于: 相约加拿大:枫下论坛 www.rolia.net/forum >
1976年度的图灵奖由当时在以色列希伯莱大学任教的米凯尔.拉宾(Michael O. Rabin)和在英国牛津大学任数理逻辑教授的达纳.斯科特(Dana Steward Scott)共同获得。拉宾和斯科特是师兄弟,两人在20世纪50年代中期先后师从著名的逻辑学家和计算机专家阿隆索.邱奇(Alonzo Church,他因与Curry 一起发明了λ-演算以及提出了“任何计算,如果存在一有效过程,它就能被图灵机所实现”这一被称为“邱奇论题”的命题而闻名于世),并在有限自动机及其判定问题的研究中进行合作,奠定了非确定性有限状态自动机的理论基础。之后,他们的研究方向不尽相同,拉宾侧重于计算理论,而斯科特侧重于逻辑学在计算机科学中的应用,在各自的领域中又分别获得重大成果,作出了创造性贡献。 拉宾1931年9月1日生于德国的布雷斯劳(Breslau ,第二次世界大战以后成为波兰的城市并改名为弗罗茨瓦夫)。他父亲是一名犹太教教士,也是一位博士,在当时很著名的布雷斯劳神学院教犹太历史和哲学,还当过院长。拉宾的母亲也是知识分子,有文学博士头街,年轻时即开始从事儿童文学的创作。纳粹布特勒上台以后,拉宾的父亲因为曾经在俄罗斯呆过,凭着政治敏感性,预感到会有动荡和麻烦,曾建议神学院迁往耶路撒冷,未获同意,于是全家于1935年迁回巴勒斯坦,躲过了一劫。1948年以色列建国以后,他们成为以色列公民。 拉宾在濒临地中海的港口城市海法度过了他的童年和少年时代。由于阅读了著名微生物学家保罗.德克吕夫(Paul De Kruif)所著的《微型猎人》一书,激起了拉宾的想象,幻想自己成为微生物学家。一次他和比他高好几班的学生比试解欧几里德几何题,他赢了他们,这又使他对数学产生了兴趣,因此,从莱利学院(Reali College)毕业以后,他进入希伯莱大学学习数学, 在那里,他通过数学家克林(S. C. Kleene,因提出不动点定理——theorem on fixpoint 及正则集定理一theorem on regular set而闻名于世)所著的《元数学》一书首次接触到图灵关于可计算机的概念和图灵机这一理论计算模型,立即被深深吸引。但为了打好自己的数学基础,他的硕士论文没有以此为课题,而选择了当时由德国女数学家埃米.诺特(Emmy Noether, 1882-1932)创立不久的抽象代数中关于可交换环理论中的一个问题。获得数学硕士学位以后,拉宾去了美国,因为20世纪50年代初,以色列建国伊始,经济与科技都还不够发达,很少有人研究计算这类问题,甚至连许计算机都没有。 拉宾到美国后,先在宾夕法尼亚大学攻读博士学位。拉宾的博士论文课题将他所熟悉的抽象代数和他感兴趣的可计算性问题联系在一起:群(GROUP)的可计算性问题。 拉宾的论文中证明了与群众有关的许多问题, 如群是否符合交换律等, 都是不能由计算机解答的。 但是使拉宾成名的并非其博士论文而是源于IBM研究中心于1957年向他和他的师弟斯科特提供的一份暑期工作。公司允许他们作他们感兴趣的任何工作,于是拉宾和斯科特就联手研究图灵提出的计算模型,也就是图灵机。图灵机是一种禁止往磁带上写的计算机,叫有限状态自动机(finite state automata,缩写FSA)。图灵在研究这种机器时的基本信条是:机器在输入相同时,其“心智状态”也相同,即对于具有给定指令集的机器而言,一定输入的机器总是按同一方式运行的。拉宾和斯科特认为,这种具有“确定性”行为的机器带来了局限性。因此,他们定义了一种新的、“非确定性”的有限状态自动机(nondeterminis –tic finite state automata,缩写为NDFSA),这种机器在读取到一定的输入后,有一个可以进入的可能的新的状态的“菜单”可供选择,这样对给定的输入计算便不单一了,每个选择代表一种可能的计算。拉宾和斯科特将图灵的有限状态自动机从确定性一种形态扩展到非确定性的另一种形态,极大地推动了有限状态自动机理论的发展。虽然非确定性有限状态自动机的能力并不比确定性的有任何增加(拉宾和斯科特自己已经证明任何可以用非确定性机器解决的问题都可以在确定性机器上解决,而且提出了将非确定性机器转换为确定性机器的方法问题),但是它可以简化机器描述和加快解题速度,后来的实践证明,非确定性有限状态自动机在机器翻译、文献检索和字处理程序等应用中都起了重要的作用。拉宾和斯科特的研究成果过了两年才在IBM公司的研究和开发杂志上发表,这就是论文“有限自动机及其判定问题”(Finite antomata and their decision problems, IBM Journal of Research and Development, 3(1959),114-125页)。 [ 相约加拿大:枫下论坛 rolia.net/forum ] 1958年夏天,拉宾又一次来到IBM。当时,“人工智能之父”麦卡锡(J. McCarthy,1971年图灵奖获得者)正在那儿研究往巴克斯(J. Backus, 1977年图灵奖获得者)发明不久的Fortran语言中加入表处理功能。他给拉宾出了一道难题:设计一种口令,即使口令被敌方窃去,也无法进入系统。拉宾经过艰苦探索,终于利用由冯.诺伊曼开发的一个单向函数解决了这个问题。所谓单向函数简单说来就是正向极易于计算而反向极难计算的函数,例如“平方取中”: y = [x2中间一半的位所组成的数] 这样,当x为100位的数时,x2为200位的数,y则为这200位的中间100位所组成的数。由x算y是容易的,而由y求出x 则非常困难,因为可能的x非常之多。正是这个问题促使拉宾进一步研究计算任务的最小计算量这一一般性问题,也就是计算的固有难度问题,从而成为最早研究计算复杂性问题的先驱之一。1959年和1960年,拉宾在耶路撒冷先后发表了有关此问题的两篇论文,即“计算速度和递归集合的分类”(Speed of computation and classification of recursive sets, 3rd Convention of recursive sets, Tech. Rep. No.1, O. N. R.,Jerusalem, 1960)。 论文虽然没有用“计算复杂性”这个名词而用了“计算速度”和“计算难度”这类名词,但学术界公认这两篇论文是研究计算复杂性的最早、最权威的论文中的两篇,对1964年正式提出“计算复杂性”这一术语的哈特马尼斯(J. Hartmanis)和斯特恩斯(R. E. Stearns, 这两人是1993年图灵奖获得者)以及计算复杂性理论的另一奠基人布卢姆(M. Blum,1995年图灵奖获得者)都曾产生过深刻影响。其中布卢姆正是听了拉宾的有关演说才开始研究计算复杂性并完成其博士论文的。 拉宾的研究成果在一定程度上改变了人们的研究方向。例如,波兰数学家普里斯伯克(M. Presburger)在1930年于华沙举行的一次国际数学家会议上所发表的论文中提出了这样一个命题:只包括自然数相加运算的数学系统是完备的,也就是说这样的系统在图灵机上都是可计算的。因此这被称为普里斯伯算术系统,不少计算机科学家试图编写出能证明这个系统中的定理的计算机程序。但拉宾指出,这是极其困难而无法实现的。对于只有100个符号的这样的系统,即使是1万亿台每秒运行1万亿次的计算机,也要运行1万亿年才能得出结果!1974年在斯德哥尔摩的IFIP大会上他作了一次学术演讲,公布了他和耶鲁大学的费歇尔(M. Fisher)的这项研究成果,宣称“这就是通向人工智能的理论障碍”。拉宾演说那天,正好是美国总统尼克松因水门事件被迫宣布辞职这一天,拉宾原以为代表们都去看尼克松演说的电视转播而不会有多少人来听讲,却不料演说一开始人们就潮水一样涌了进来,对演说的反应十分强烈,拉宾讲完以后人们在麦克风前排成长队向他提问。对于从事普里斯伯格系统研究的许多人来说,他们听了拉宾演说以后的感觉是非常难受,似乎“世界末日”到了似的。但拉宾本人则并不悲观,他认为应该放弃的只是以完全确定的方式去获得结果,这种结果可能出错,然而出错的可能性微乎其微,也就是说可以把概率算法(probabilistic algorithm,或叫随机算法,randomize algorithm)用到这类问题中来,这是拉宾的又一个贡献。 所谓概率算法,就是带有随机操作的一类算法。这种算法在计算的某一步或某些步产生符合规定要求的随机数,然后根据产生出的随机数决定下一步的计算。例如,在计算的某一步有两种选择:执行A或执行B。此时随机产生一个0或1。若产生的是0则执行A,若产生的是1则执行B。这相当于根据掷一枚硬币的结果(正面或反面)决定下一步的计算。 将概率的思想用到算法中始于数值计算,在计算方法中通常称作蒙特卡罗法,是在20世纪40年代中提出的。它的基本思想是建立概率模型,通过统计模拟或抽样得到问题的近似解。通常要求计算结果的期望值等于问题的精确解,并且计算误差的期望值随可供使用的时间增加减小。近20年来概率算法在非数值计算中得到很好的应用。例如,已经设计出关于排序和搜索、素数判定、有限域上的多项式分解和求根、字符串的模式匹配等方面的有效概率算法。概率算法同样也应用到并行计算中,得到概率并行算法。 < r o l i a. n e t > 利用这种概率算法的思想拉宾在1974年斯德哥尔演说时就已有了萌芽,但还不够成熟。第二年休假时他去了麻省理工学院,得知了加里.米勒(Gary Miller)的研究工作。米勒证明,利用著名的黎曼假设(G. F. B. Riemann,1826-1866,德国的数学家兼物理学家),可以用一般的确定性算法判断很大的数是否是素数。拉宾利用米勒的研究结果和数论中关于素数密度的理论,终于在1976年提出了一个判定素数的概率算法,取得了极大成功,这个算法的理论根据是:当n是合数时,在1到n-1的整数中有一半以上是n为合数的“见证人”。算法的基本做法是:随机地产生一个1与n-1之间的整数b,检查b 是否是n 为合数的“见证人”。若b是“见证人”,则计算结束并得出n 为合数的结论;否则重复这个过程。至多进行k次,若产生的k个随机数b都不是n 为合数的“见证人”,则得出n为素数的结论。算法所需要的时间为O(log3n)。当计算的结果是n为合数时,结果肯定是正确的。但是,“n为素数”的结果有可能是错误的。此时n 为合数的概率,即得出错误的概率不超过1/2k。当k 足够大时,这是一个很小的数。譬如,取k=10,错误的概率小于0.001。这已经是在实验中不大可能发生的事件了。实践表明,算法在实际使用中几乎不会给出错误的结论。 拉宾的一个同事普拉特(V. R. Pratt)用拉宾的算法编写了一个程序,在1975年冬找到了当时最大的素数2400-593以及最大的孪生素数k×338+821和k×338+823(k 是小于300的所有素数的乘积),创造了世界记录。拉宾的算法目前仍然是寻找素数的最快算法之一。 概率算法在分布式计算、通信、信息检索、计算如何、密码学等方面都有广泛的应用。目前,在连接高度并行的计算机的专用网络上发送信息的算法就是拉宾的另一个同事瓦里安特(L. Valiant)所设计的一种随机算法,这种算法不将信息直接发往目的地,而是先发送到任意一个节点,然后再由该节点发往目的地。瓦里安特证明这种看上去似乎疯了的方法能有效地减少网络中的竞争,避免阻塞。这正是随机化的威力和魅力所在。在密码技术中目前广泛采用的公开密钥体制(public key)和RSA算法(Rivest-Shamir-Adleman algorithm)也使用了拉宾的随机化和概率技术。当然,好的技术也可以用来干坏事:1988年11月在Internet上广泛传播的病毒正是拉宾在哈佛大学时的一个大学生罗伯特.莫里斯(Robert Tappan Morris)利用学到的随机化技术设计出来并加以传播的。 斯科特比拉宾小一岁,1932年10月11日生于加利福尼亚洲,在加州大学伯克利分校获得学士学位以后,进入普林斯顿大学研究生院深造,与拉宾一起师从阿隆索.邱奇。邱奇对学生要求很严,布置的问题也很难,斯科特开始时难以适应,精神很紧张,经常夜里做恶梦。但经过努力,终于可发从容应付。1957年暑假他与师兄拉宾一起完成了对图灵机的研究,提出非确定性有限状态自动机的理论以后,在1958年取得博士学位。之后他先后在芝加哥大学、加州大学伯克利分校、斯坦福大学、荷兰的阿姆斯特丹大学、普林斯顿大学和英国牛津大学等国际知名的高等学府任教。1981年被卡内基-梅隆大学聘为计算机科学、数理逻辑和哲学教授。 斯科特的主要兴趣和研究方向是逻辑学。他对逻辑学的研究涉及面很广,包括集合论、模型论、自动机理论、非经典逻辑中的模态逻辑(modal logic, 表达“必然”与“可能”这样一些概念的逻辑)和直觉主义逻辑(intuitionism logic)。直觉主义逻辑是为克服数学研究中出现的悖论而提出的,由荷兰数学家布劳维(L. E. J. Brawer,1881-1996)所创立,直觉主义逻辑认为数学是第一位的,逻辑是第二位的,逻辑只是数学思维的抽象,是正确的数学实践的反映。而数学的唯一来源是数学思维中固有的一种带构造性的直觉,这些观点和现今计算机科学与人工智能的研究相吻合,因而受到计算机科学家和人工智能专家的极大重视。斯科特在这些领域中都有不同程度的贡献。 但斯科特的最大贡献则是他与斯特雷奇(C. Strachey, 1916-1975)合作,在20世纪60年代提出了程序设计语言的“标志语义模型”(denotational semantic model),为标志语义学(denotational semantics)又称数学语义学(mathematical semantics)奠定了坚实的基础。在标言语义学出现之前,英国学者霍尔(C. A. R. Hoare,1980年图灵奖获得者)已经在对一阶谓词演算扩充了一组公理和一组推导规则的情况下建立起了公理语义学(axiomatic semantics)作为程序设计语言语义形式化的一种方法,并曾被成功地用来描述Pascal等语言。但公理语义学是不完备的。标志语义学把语言中的每一成分与一个数学对象相对应,称为从前者到后者的映射,后者即称为前者的“标志”(标志语义学的名称即由此而来)。这个数学对象是某个区域的元素,该区域从数学上来说是一个“格”(lattice),格中的偏序以“定义范围小于等于”来确定。标志语义学还规定,这种映射是层次结构的,映射函数则往往是递归的。这样,语言中和每一元素既可解释为一个函数,又可解释为一个数据元素,这正好与程序的以下特性串加以处理。标志语义学一经诞生,就获得了学术界广泛的欢迎,不但被成功地用来定义Ada等大型程序设计语言,还被成功地用来定义大型数据库和大型操作系统等。充分显示了它的生命力。IBM公司的维也纳实验室后来还开发出元语言META IV,成为用标志语义描述大型软件的强有力工具。后来它进一步发展为维也纳开发方法VDM(Vienna Development Method),成为支持程序开发的一般的形式化方式。国际标准化组织ISO正在制定有关VDM的规约语言VDM-SL(VDM- Specification Language)。 在建立标志语义学的过程中,为了奠定其数学基础,斯科特还创建了域论(domain theory),以回答语义域方程是否有数学对象作为它的一个解,以及是否存在一种有效的方法,可以定义这种数学对象上的可计算函数,并且把描述程序设计语言的标志语义所需的函数都包括在内这样一些问题。域论虽然是斯科特研究标志语义学的“副产品”,但它本身由于其重要性而已成为一门独立的数学分支学科,受到广泛的重视。(在有些文献资料中,标志语义学被译成“指称语义学”) { 枫下论坛 rolia.net/forum } 在获得图灵奖之前,拉宾曾于1974年获得由Rothschild基金会所颁发的数学奖,斯科特则于1972年因在数理逻辑方面的出色贡献而获得美国数学会的Leroy P. Steele奖。1980年拉宾又被授予哈维科技奖(Hervey Prize Sci. & Tech.)。 拉宾和斯科特是在1976年10月20日于休斯敦举行的ACM年会上被授予图灵奖的。两人分别发表了图灵奖演说,拉宾的演说题为“计算复杂性”(Complexity of Computations) , 斯科特的演说题为“逻辑与程序设计语言”(Logic and Programming Language),它们刊载于Communications of ACM, 1977年9月,625-641页,也可见《前20年的ACM图灵奖演说集》(ACM Turing Award Lectures——The First 20 Years:1966-1985,ACM Pr.), 47-62页及319-338。 拉宾目前既是美国哈佛大学生教授,又是耶路撒冷伯莱大学教授,两地奔波,而他的家则留在以色列。他的电子信箱为: 斯科特仍在卡内基-梅隆大学计算机科学系,他的电子信箱为: |
非确定性有限状态自动机理论的开创者
最新推荐文章于 2020-12-20 20:25:04 发布