硅谷尤达

算法大师唐纳德·努斯(Donald Knuth)考虑了50多年的主要创作工作,即《编程的艺术》一书,他继续对此进行补充。



唐纳德·努特(Donald Knut)在他位于加利福尼亚州斯坦福的家中。 一位令人毛骨悚然的完美主义者,已因发现书中的错误而给予奖励。

半个世纪以来,斯坦福大学的计算机科学家唐纳德·纳斯(Donald Knuth)有点让人联想到尤达(Yoda),尽管他身高193厘米,戴着眼镜,但在算法领域中作为精神指导者占据着主导地位。

他是《编程艺术》的作者,该专着一直持续到今天,至今已达到4卷,这是他一生的工作。 第一卷于1968年出版,所有卷合在一起(一套出售,价格为250美元(或12,500₽/约等于Transl。)。2013年,该书列入了构成上世纪科学史的书籍清单,由美国科学家汇编。 它还包括查尔斯·达尔文自传的特别版,汤姆·沃尔夫的书“ 你们需要的家伙! ”,雷切尔·卡森的书“ 寂静的春天 ”以及艾伯特·爱因斯坦,约翰·冯·诺伊曼和理查德·费曼的专着。

超过一百万本的“编程艺术”是该领域的圣经。 “它看起来像一本真正的圣经-它非常长而全面。 Google的研究主管彼得·诺维格(Peter Norvig)说,没有其他这样的综合性书籍。 在652页之后,该卷以比尔·盖茨的一本书封底报价结尾:“如果您可以阅读整本书,请将简历发送给我。”

它以麦考尔食谱系列的一段文章开头:
这是您要求以成千上万封信出版的书。 为了给您提供最好,有趣,理想的产品,我们花了多年的时间来测试和仔细检查无数种食谱。
该书列出了满足数字时代需求的算法和食谱-尽管正如Knut博士所指出的,算法也可以在3800年前的巴比伦平板电脑上找到。 他是一位备受推崇的算法专家。 一些最重要的模式都以他的名字命名,例如, Knut – Morris – Pratt算法,用于在字符串中查找子字符串。 它是在1970年创造的,它查找文本中给定字母序列的所有出现-例如,当您按Ctrl-F来搜索文档中的单词时。

克努特博士现在已经80岁了,他通常会像他年轻的怪胎时一样穿着,就像他刚开始这个冒险之旅时一样:至少在每年的这个时候,将长袖T恤钩在短袖T恤和牛仔裤下面。 那时,他用机器代码编写程序,并用零和一进行播放。

诺维格博士说:“纳特明确表示,可以一直到机器代码的层次都可以理解该系统。” 如今,当算法控制(并干扰)我们的生活时,普通程序员没有时间去研究二进制混乱;他使用抽象层次结构,代码层-并经常使用从库中借来的代码链。 但是程序员精英有时会降到最低水平。

“在Google,有时我们只是从现有资源中收集代码,” Norvig在Mountain View的Google Trips小组会议上说。 “有时候,当您需要为数十亿用户提供服务时,您需要有效地做到这一点。 效率提高10%可能会变成数十亿美元,要达到最后一个效率水平,您需要了解最底层的情况。


加州科技大学的Knut博士于1963年获得博士学位。

或者,正如Google著名科学家,克努斯的一位前学生之一安德烈·布罗德(Andrei Broder)在会议上解释的那样:“我们需要一些理论基础来开展工作。 我们不需要笨拙,笨拙的二流算法。 我们不希望其他算法学家说:“是的,你们是白痴。”

Google Trips应用程序于2016年推出,是一种用于全天游客娱乐的旅行算法。 该团队致力于“ 最大程度地提高最糟糕的日子的质量 ”,例如,该算法应避免将用户多次派遣到相同的地方去探索不同的景点。 它们的灵感来自瑞士数学家莱昂哈德·欧拉(Leonhard Euler)发明的具有300年历史的算法,该算法想通过普鲁士城市柯尼斯堡(现在的加里宁格勒),仅横穿其所有七座桥梁。 克努特(Knut)在其论文的第一卷中论述了经典的欧拉问题。 他曾经将Euler方法应用于计算机控制的缝纫机。


遵循克努特的学说有助于避免白痴。 他以介绍“文学编程”的概念而闻名,他强调了编写不仅计算机而且人们都可以阅读的代码的重要性-这种概念在今天看来已经过时了。 纳特甚至声称,某些计算机程序以及伊丽莎白·毕晓普(Elizabeth Bishop)的诗歌和菲利普·罗斯(Philip Roth)的小说《美国田园》(American American Pastoral)都可以被视为文学作品,这本书值得获得普利策奖。

他的完美主义也臭名昭著。 xkcd和Thing Explainer漫画的作者Randal Munroe首先从程序员那里了解了Knut,并提到了他答应向发现其书中任何错误的人支付的奖励。 正如梦露回忆的那样,“人们谈论接受像计算机科学领域的诺贝尔奖这样的支票。”

无论是文学方面还是其他方面,克努特的苛刻标准都可以解释为什么他一生的工作还远远没有完成。 他与Google的联合创始人谢尔盖·布林(Sergey Brin)和他的前学生争论过,布林是否会在科努特(Knut)完成专着之前完成博士学位。

黎明算法


19岁那年,纳特(Knut)在《疯狂》杂志[这是一本幽默的杂志,并且potrebibi是波兰语,英语中用来表示荒谬的词]发表了他的第一项技术著作“ 度量衡电位系统 ”。 例如,克努特(Knut)在他的工作中引入了一种新的长度测量方法,该长度等于期刊第26期的厚度/大约。 翻译]。 他甚至在计算机科学问世之前就已经成为计算机科学专家,在教育机构(现在称为西部储备区凯斯大学)中学习数学。 他研究了为IBM 650学校大型机,十进制计算机编写的选定程序,并在遇到不准确之处后重新编写了程序以及教室中使用的教科书。 作为业余爱好,他计算了篮球队的统计数据,并编写了一个程序帮助他们赢得联赛冠军,这要归功于著名电视记者沃尔特·克朗基特(Walter Cronkite)拍摄了有关他的电视故事,称为“电子教练员”。


在暑假期间,Knut通过创建编译器比一年中的老师赚了更多的钱。 编译器就像翻译器一样,将高级编程语言(让人想起代数)转变为低级语言(有时是神秘的二进制代码),并且在理想情况下可以改进程序。 在计算机科学中,优化是一门艺术,这又反映在克努斯的另一句话中:“过早的优化是万恶之源。”

结果,Knut自己成为了一个编译器,偶然发现了一个新的领域,他后来称之为“算法分析”。 出版商雇用他来写一本有关编译器的书,但是该项目变成了一本书,收集了他所知道的有关如何编写计算机程序的所有知识-成了一本关于算法的书。


克努特(Knut)于1981年在研究《疯狂杂志》(Mad Magazine)1957年,该杂志发表了他的第一篇技术文章。


编程艺术,第1-4卷。

这本书开始说:“到了文艺复兴时期,人们对这个词的来历已经产生怀疑。” “早期的语言学家试图通过创建组合(例如algiros [病态] + arithmos [数字])来理解其起源。” 实际上,克努特继续说,这个名字的出现是为了纪念9世纪教科书的波斯作家阿布·阿卜杜拉·穆罕默德·伊本·穆萨·赫瓦里兹米,他在拉丁唱片中的名字听起来像是“算法”。 纳特从未满足于采取半量手段,他于1979年前往朝圣者哈瓦里兹米(Khwarizmi)的祖国,前往乌兹别克斯坦[ 更确切地说,他参加了在于尔根奇(Urgench)举行的一次会议。 佩雷夫 ]。

从一开始,Knut就想写一本书。 很快,“大爆炸”发生在计算机科学领域,因此他修订了自己的项目,将其分为7卷。 现在,他正在发行分册或问题。 下一个“第4卷,第5期”将在2018年发布,其中描述了“回溯”和“跳舞链接”等内容。 但是,由于作者不断发现他肯定想提出的越来越多的新任务,他被推迟到了4月。

为了最大限度地提高完成工作的机会,Knut长期以来一直严格监控自己的时间。 他于55岁退休,禁止公开演讲,并拒绝了电子邮件(至少是正式的)。 安德烈·布罗德(Andrei Broder)回忆说,时间管理是他1980年代老师的一个决定性特征。

Knut通常在星期五的星期五与学生见面,直到他开始在人工智能的先驱之一约翰·麦卡锡(John McCarthy)的实验室里度过一个晚上,让他们自由地访问计算机。 克努特(Knut)对心中珍贵的书如何开始关注数字出版系统的到来感到恐惧,他为自己定下了为TeX印刷机开发计算机系统的目标,该系统仍然是所有形式的科学交流和出版物的黄金标准。 有人认为这是Knut的最大贡献,也是自Gutenberg时代以来对印刷厂的最大贡献。

这十年的延迟发生在不同的人使用计算机的时间,以及大多数人晚上睡觉的速度更快的晚上。 因此,Knut改用夜生活,将时间表更改为12小时,并将与学生见面的时间从周五晚上的8点更改为12点。 布罗德回忆说:“当我告诉女友星期五晚上我们无能为力时,因为我在晚上10点与上司约好,她想:“听起来太愚蠢了,看来这是真的。” ”。

但是,当Knut决定亲自参加某个地方时,他将全部精力投入到此活动中。 “与他在一起很高兴,”微软研究院董事总经理詹妮弗·蔡斯说。 “他在社区中发挥了最大作用。 如果您有一个代表温暖和深度的优化功能,那就应该是Don。”


Knut与字体开发人员Hermann Zapf讨论字体。

星期天与算法专家


克努特(Knut)居住在斯坦福(Stanford),并于周日会见人们。 他整天留出的东西是非同寻常的-白天睡觉时通常没有空,这是一个神圣的仪式,持续13到16个小时。 他从帕洛阿尔托市第一路德会教堂开始新的一天,在那里,他在一群聚集在没有椅子的房间里的人群面前,上了一堂星期日学校的课程。 在回家的路上,他开始对数学充满哲理。

他说:“我永远都不知道一切。” “如果没有我想知道答案的问题,并且没有我不知道答案的问题,我的生活会更加糟糕。” 然后,他参观了他和妻子于1970年建造的“现代加利福尼亚”房屋。他的办公室在情人节那天堆满了闪存驱动器,并装饰着平面设计师Jill的手工艺品。 最令人印象深刻的是音乐室,它围绕着具有812根烟斗的定制风琴而建。 一天的啤酒和谜语聚会结束了。

谜语,游戏,写关于超现实数字小说 ,组成90分钟的多媒体音乐作品《 幻想曲世界》 ,这些事情就开始了 。 他的书的一部分叫做《对现实世界的谜语》。 他将本书的摘录寄给了一个父子团队,一个艺术家Martin Demein和一个在MIT工作的IT专家Eric Demein,因为Knut在书中包括了他们的“ 算法拼图字体 ”。

“我很惊喜,”埃里克·迪恩(Eric Demain)说。 “进入这本书是一种荣幸。” 他提到了Knut,这是一个鼓舞人心的两年一度的带有算法的娱乐会议的另一句话:“主要目标可能永远是娱乐。”

然后,Demane说,这一领域变成了实际的领域。 工程师,科学家,艺术家-他们全都在一起解决实际问题,例如使用两个Demane开发的折纸方法来折叠蛋白质,机器人,安全气囊,将纸张折叠并装订成各种形式。

当然,所有这些算法混乱都会导致实际问题。 人们编写的算法-越来越复杂的任务,以及发布充满错误和偏差的代码-已经是一件令人不快的事情。 但是,更糟糕的是,这些算法不是由人而是由机器编写的。

程序员仍在训练机器并向他们提供数据。 数据是出现错误和偏见的新领域,更难捕捉和纠正。 但是,正如MIT媒体实验室副教授Kevin Slavin所说:“现在,我们正在编写无法读取的算法。 这标志着一个独特的历史时刻,当我们处理源于人却未被人理解的,由物理学引起的思想,行动和尝试时,” 斯拉文经常 :“如果您是算法专家,您将拥有光明的未来。”


克努特(1999年)在他在家的桌子旁。


注意事项

如果您是精通Knut的算法,那将更加精彩。 “今天,程序员将Knut和其他人用作其算法的组件,并将其与他们所需的各种其他东西结合起来,” Google的Norvig博士说。

“使用人工智能,我们可以做同样的事情。 只是合并步骤是根据数据自动进行的,而不是根据程序员的工作自动进行的。 我们需要AI能够组合组件,以便根据数据获得正确的答案。 但是,您必须确定这些组件是什么。 可能每个组件都是Knut的一页或一章,因为这将是完成任务的最佳方法。”

因此,我们很幸运Knut能够继续这样做。 他认为完成“编程艺术”还需要25年,尽管这种评估自1980年代以来没有改变。 编写其他算法的算法会在书本中还是在结语中找到其章节? “绝对不是,”纳特说。

他补充说:“我担心算法对世界的影响。” -这一切都始于这样一个事实,即计算机科学家很担心,因为没人在听。 现在,我担心太多的人在听我们讲话。”

Source: https://habr.com/ru/post/zh-CN435082/


All Articles