2013年图灵奖得主Leslie Lamport:如何写出数学上完美的算法

1e456bf7dbb2056b37545c2e9d585047.png

来源:新智元

图灵奖得主、分布式系统先驱、LaTeX之父Leslie Lamport认为,对于程序员而言,对数学思维的强调永远不会过分,要写出好代码,不能惧怕数学。

Leslie Lamport可能不是一个家喻户晓的名字,但一提到和他有关的研究,相信你一定不陌生。

排版程序LaTeX和分布式系统。前者发过论文的都懂,后者则使谷歌和亚马逊的云基础设施成为可能。

2013年,Lamport因其在分布式系统方面的工作而获得图灵奖(A.M. Turing Award)。

这位81岁的计算机科学家对人们如何使用和思考软件,有着不同寻常的思考。

97caaa235be50cfe4803ad4ec892fa1c.png

有了分布式系统,互联网搜索、云计算和人工智能都可以协调强大的计算机器集群一起工作。

不过,这类系统也存在一些不可避免的问题。

Lamport曾经说过:「在分布式系统中,你甚至不知道存在的计算机故障,会使你自己的计算机无法使用。」

其中最大的问题来源是 「并发系统」,多个计算操作会发生在重叠的时间片段上,导致了模糊不清的情况。哪台计算机的时钟是正确的?

a5c7493d34e22391fec0be45168ec4de.png

在1978年的一篇开创性的论文中,Lamport引入了「因果关系」的概念来解决这个问题,使用的是狭义相对论的一个观点。

两个观察者可能对事件的顺序有异议,但如果一个事件导致了另一个事件,这就消除了模糊性。而发送或接收一个信息可以在多个过程中建立因果关系。逻辑时钟——现在也称为「Lamport时钟」提供了一种推理并发系统的标准方法。

2ed2c9d108bf1f175fcdd1c9e4876e67.png

有了这个工具,计算机科学家接下来想知道,他们如何能够系统地扩大这些连接的计算机集群的规模,同时不增加错误的数量。Lamport提出了一个优雅的解决方案。

Paxos,这是一种 「共识算法」,允许多台计算机执行复杂的任务。没有Paxos和它的算法系列,现代分布式计算就不可能存在。

08f93aa2f2325cac7e016d93be08de70.png

20世纪80年代初,Lamport还创建了LaTeX,这是一个文档准备系统,为复杂公式的排版和科学文件的格式提供了复杂的方法。

现在,LaTeX不仅在数学和计算机科学领域,而且在大多数科学领域都已成为论文格式的主流标准。

自20世纪90年代以来,Lamport的工作重点是 "形式验证",即使用数学证明来验证软件和硬件系统的正确性。值得注意的是,他创造了一种名为TLA+(行动的时间逻辑)的 "规范语言"。

大师专访:用数学的思考写算法

最近,QuantaMagazine与Lamport谈了他在分布式系统方面的工作,计算机科学教育的问题,以及使用TLA+如何帮助程序员建立更好的系统。

以下是访谈内容简编。

让我们从Paxos开始,因为它是如此有影响力的算法。是什么让你一开始就开始研究这个问题?

人们正在用一些代码建立一个系统,我有一种预感,他们的代码试图完成的事情是不可能的。所以我决定尝试证明这一点,并想出了一种算法,而这些人本应在他们的系统中使用我这种算法。

他们原来的算法有什么问题?

嗯,他们其实没有算法,只有一堆代码。很少有程序员从算法上思考问题。当你试图编写一个并发系统时,如果你只是写代码,而没有算法,你的程序里就一定全是错误。

571c22dbaee19ed306514e1d5dd1dcca.png

介绍Paxos的那篇论文起初并没有被广泛阅读。为什么?

让人们无法阅读论文的原因是,我喜欢通过讲故事来解释事情,而且我为角色编造了一些伪希腊字母的名字。

例如,在论文中,有一个名叫Γωυδα的奶酪检查员。我是作为数学家长大的,整天和希腊字母打交道,不知道非数学家会不会被这些字母完全吓坏了。 

显然,这对很多读者而言是个问题,所以读那篇文章的人少了不少。

一开始效果并不理想。虽然从长远来看,它确实如此,因为人们称这个共识算法系列为Paxos,而不是 「viewstamped replication」,这是计算机科学家Barbara Liskov对该算法的另一个称谓。

在从事了这么多年的分布式系统工作后,是什么让你又开始搞TLA+的?

在20世纪70年代,当人们对程序进行推理时,实际上是在证明程序本身的属性,再以编程语言的方式陈述出来。后来人们意识到,其实应该首先说明程序应该完成什么任务,即程序的行为。

到了80年代初,我意识到为并发系统编写这些高级规范的一个实用方法,就是把它们写成抽象的算法。有了TLA+,我就能以一种完全严谨的方式来表达。一切都变得简单了。

这就意味着基本上不能用编程语言来写算法。如果你真的想把事情做对,你需要用数学的术语来写你的算法,你知道这样做一定会成功的。

1d5f78a63375d2d41ee65250cd032354.png

Lamport认为,在动手写代码之前,要先思考和写作的重要性,这需要在本科计算机科学课程中教授,而现在却没有。

你曾说过,「如果你只是思考,不写代码,你只是认为你在思考而已」。这就是模型检查的作用吗?

模型检查是一种详尽地测试系统的小模型的所有执行情况的方法。它只是显示模型的正确性,而不是算法的正确性。当模型检查测试正确性时,编码只是产生代码。它并不测试任何东西。在有模型检查之前,确定你的算法能正常work的唯一方法是写一个证明。

在实践中,模型检查会检查算法的一个小实例的所有执行情况。如果你很幸运,你可以检查足够大的实例,使你对该算法有足够的信心。

听起来,模型检查与另一种程序验证方法有关:使用Coq等工具进行交互式定理证明。它们有什么不同?

Coq的设计是为了做真正的数学,并且能够捕捉数学家所做的推理。例如,Georges Gonthier就是用它来证明四色定理的。一个经过机器检查的数学陈述的证明表明,该陈述几乎肯定是真的。

而TLA+不是为数学家设计的,而是为那些想证明其系统属性的工程师设计的。上世纪90年代,在花了大约15年时间编写并发算法的证明之后,我了解到为了证明一个并发算法的正确性,你需要做什么。

TLA是一种逻辑,它允许所有的完全形式化表述。而TLA+则是基于此的完整语言。

f926d5c73b0696e0015ca5f215a18faf.png

Lamport因在分布式系统方面的工作在2013年获得了A.M. 图灵奖。他提出的Pa

os算法,现在已经成为一个行业的通行标准。

像TLA+这样的规范语言在工业界的应用并不广泛,对吗?你认为这是为什么呢?

嗯,我一直在尽力推广这个规范。但基本上,程序员和许多计算机科学家都被数学吓坏了。所以这是一个很艰难的推销过程。

第二,每一个项目都必须在匆忙中完成。有一句老话,"永远没有时间做正确的事。总有时间重做"。因为TLA+涉及前期工作,你在开发过程中增加了一个新的步骤,也会成为一个难点。

这种努力总是值得的吗?

的确,世界各地的程序员所写的大多数代码都不需要非常精确地说明它应该做什么。但是,有些事情是重要的,需要正确的。

当人们建造一个芯片时,他们希望这个芯片能够正常工作。当人们建立一个云基础设施时,他们不希望出现会丢失人们的数据的错误。

对于那种精度很重要的应用,你需要非常严格,需要像TLA+这样的东西,特别是在涉及到并发的情况下,而在这些系统中通常会有并发。

cbd5ff55a6fc4aa3b3d7010a7dfedea1.png

由Lamport在过去几十年中开发的规范语言TLA+,让工程人员可以以精确的数学方式描述程序要实现的目标

程序员花在写代码上的时间比花在思考上的时间多,这是否是一种偏见?

是的,在编写代码之前思考和写作的重要性需要在本科计算机科学课程中教授,而现在却没有。而原因是,教编程的人和教程序验证的人之间没有沟通。

从我所看到的情况来看,错误在于这个鸿沟的两边。教编程的人不知道他们需要知道的验证。教验证的人不了解它应该如何在实践中应用。

在这个鸿沟被填平之前,TLA+是不可能拥有大量用户的。我希望我至少能让教并发编程的人明白,他们需要TLA+。这样也许才会有一些希望。

我感觉,你对现在的计算机科学教育不太满意。是不是对觉得对数学强调得不够?

对数学思维的重视不够,是的,远远不够。 

那么,按你的想法,本科计算机课程应该怎样设置?

我不是教育家,所以我不知道如何教学生。但我知道人们应该学什么。他们不应该害怕数学。这只是简单的数学,他们可能已经学过一门课程,但不知道如何使用,也不知道使用数学有什么好处。

他们只是学了足够的东西来通过考试,然后就把学过的东西忘了。

数学家经常说,他们在数学中看到了美。你是在这个领域起步的,你有在算法中看到美吗?

我不从美不美的角度考虑。我可能有其他人的那种感觉,但我会用不同的词来表达。「美」不是我对算法的评价。但是「简单性」是我非常重视的一点。

最后一个问题,是关于你的另一个项目 LaTeX的。想最后跟你澄清一件事。LaTeX到底怎么读?是LAH-tekh还是LAY-tekh?

想怎么读就怎么读。我建议不要花太多的时间去考虑这个问题。

参考链接:

https://www.quantamagazine.org/computing-expert-says-programmers-need-more-math-20220517/

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)大脑研究计划,构建互联网(城市)大脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。每日推荐范围未来科技发展趋势的学习型文章。目前线上平台已收藏上千篇精华前沿科技文章和报告。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

de6ee4381a5d40638ecd3d37707f3514.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/482053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python绘制图形之Matplotllib绘图

Python绘制图形之Matplotllib绘图 目录 Python绘制图形之Matplotllib绘图 一、绘制二维函数图 1.1 绘制 f(x)sin2(x−2)e−x2 1.2 、绘制 sigmoid函数图: f(x)11e−x 1.3、绘制正态分布图 二、绘制三维图 2.1 绘制三维螺旋图 2.2 绘制三维线性点图 2.3 绘制三维柱状图 2…

新发现罕见生命密码:基因读取的另一套代码

来源:生物通令人震惊但让人困惑的是,我们所知的生命密码使用了61个不同的三字母密码子,只产生了20个氨基酸,这意味着许多密码子被用来描述同一件事。新的研究表明,大脑和睾丸似乎非常适应使用多种不同种类的遗传密码来…

《自然-机器智能》:神经形态技术可使大型深度学习网络节能16倍

来源: 学术头条受生物大脑机制的启发,研究人员一直在提高人工神经网络的性能效率和计算要求。一项新的研究表明,对于大型深度学习网络,神经形态技术的能源效率有望达到其他人工智能系统的 16 倍。格拉茨技术大学(TU Gr…

康奈尔计算计学院院长Kavita Bala:「元宇宙」算什么?上帝之眼或将通过 AI 诞生...

来源:AI科技评论编译:王玥编辑:陈彩娴在今年斯坦福HAI实验室的春季会议上,康奈尔计算机学院院长Kavita Bala以“视觉外观和理解:从微米分辨率到世界级”为题,就她在数字化现实世界方面的研究进行了精彩的演…

王浩:哥德尔思想概说

来源:本文原文刊于《科学文化评论》2004年第6期撰文:王浩翻译:邢滔滔译者按本文选自王浩最后一本著作A Logical Journey—From Gdel to Philosophy (Cambridge: The MIT Press, 1996)的引言部分,有删节,题目…

八大排序:Java实现八大排序及算法复杂度分析

目录 QUESTION:八大排序:Java实现八大排序及算法复杂度分析 ANSWER: 一:冒泡排序 1.算法分析 2.时间复杂度分析 3.代码 二:选择排序 1.算法分析 2.时间复杂度分析 3.代码 三:插入排序 1.算法分析 2.时间复杂度分析 3.代码 四&a…

网友:看完Jeff Dean新论文,我再也不相信大厂的鬼话了

来源:数学中国文字:乔叶配图 :乔叶排版:余弟宗璇「我相信他们得到的数字是准确的,他们确实做了工作并得到了结果…… 但这样真的好吗?」一名机器学习研究者的灵魂发问,今天成为了整个社区最热门…

CV未来在这68张图上?Google Brain深扒ImageNet:顶级模型全都预测失败

来源:新智元编辑:LRS【新智元导读】ImageNet的标签问题一直为人诟病,最近Google Brain全面分析了基准内遗留的历史问题,并找出了所有顶级模型全都预测失败的68张图片,或许未来CV想取得突破,先得攻破这68关&…

谷歌夺回AI画语权,机器的想象力达到全新高度,网友:DALL·E 2诞生一个月就过时了?...

来源:量子位在让AI搞创作这件事上,谷歌和OpenAI正面刚起来了。这不,震惊全网的DALLE 2才新鲜出炉一个月,谷歌就派出名为Imagen的选手来打擂台。直接上图对比,左边是谷歌Imagen选手眼中的“猫猫绊倒人类雕像”&#xff…

Linux安装MySQL的完整步骤并有关MySQL8.0版本的问题方法

目录 QUESTION:Linux安装MySQL的完整步骤? ANSWER: 一:使用wget 直接下载 二:安转软件源,将platform-and-version-specific-package-name 替换为你下载的rpm名 三:安装mysql服务端 四:首先启动mysql 五&#x…

研究遭质疑,Jeff Dean回应:我们本就不是为得到新SOTA,成本计算也搞错了

来源:机器之心编辑:杜伟、陈萍对于 Jeff Dean 的回复,你认同吗?昨日,整个社区最热门的话题无外乎是 reddit 上一名机器学习研究者对谷歌 AI 负责人 Jeff Dean 参与论文的质疑。这篇论文是《An Evolutionary Approach t…

全脑地图:单个记忆被拆分存储在多个相连的大脑区域

来源:神经生物学根据一项创新的脑域映射研究,单一的记忆被存储在许多连接的大脑区域。创新的脑成像研究表明,“记忆印记”,编码记忆的神经元集合,广泛分布,包括在以前没有意识到的区域。麻省理工学院皮考尔…

李德毅 | 新一代人工智能如何从传统人工智能中脱颖而出

来源:图灵人工智能 作者:李德毅 中国工程院院士、CAAI名誉理事长、主线科技首席科学家2021年4月10日,“吴文俊人工智能科学技术奖”十周年颁奖盛典在北京举办。颁奖典礼上,中国工程院院士、中国人工智能学会名誉理事长李德毅荣获…

【强基固本】现在的人工智能是否走上了数学的极端?

来源:知乎—谢凌曦地址:https://www.zhihu.com/question/519393525/answer/2430233113“强基固本,行稳致远”,科学研究离不开理论基础,人工智能学科更是需要数学、物理、神经科学等基础学科提供有力支撑,为…

智源发布线虫生命模型,超级人脑有望在未来15-30年实现

出品:CSDN(ID:CSDNnews)作者:田玮靖 5月31日,作为国际性、权威性、专业性和前瞻性的“内行AI盛会”——智源大会开幕,会上,智源研究院发布了其最新研究成果线虫生命模型——天宝…

Aquarium华人CEO分享:机器学习在自动驾驶中落地,核心不是模型,是管道

来源:AI科技评论作者:Peter Gao编译:刘冰一编辑:陈彩娴作者 Peter Gao 是 Aquarium 公司的联合创始人和首席执行官(CEO),Aquarium 公司建立了寻找和修复深度学习数据集问题的工具。在 Aquarium …

数据科学中的 10 个重要概念和图表的含义

大数据文摘转载自数据派THU来源:DeepHub IMBA“当算法给你一条曲线时,一定要知道这个曲线的含义!”1、偏差-方差权衡这是一个总是在机器学习最重要理论中名列前茅的概念。机器学习中的几乎所有算法(包括深度学习)都努力…

Java总结:Spring5框架(1)

Spring5框架(1) 一:什么是Spring? Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而…

专访|79岁图灵奖获得者迈克尔·斯通布雷克谈“数字经济”与“元宇宙”

迈克尔斯通布雷克(Michael Stonebraker)被誉为“世界上最重要的数据库专家之一”,是数据库领域的第4位图灵奖得主来源:数据观撰稿:黄玉叶编辑:蒲蒲如果说硅是未来的新型石油,那么数据就好比新型…

Windows下如何搭建Gradle环境?

QUESTION:Windows下如何搭建Gradle环境? 目录 QUESTION:Windows下如何搭建Gradle环境? ANSWER: 1.开发环境 2.安装步骤 (1)下载最新的Gradle压缩包 (2)解压下载的压缩包到指定位置,比如: (3)配置环境变量 3.测试配置是否成功 ANSWER: 1.开发环境…