荷兰计算机科学家Dijkstra

来源:互联网 发布:北京婚纱照 知乎 编辑:程序博客网 时间:2024/06/02 21:20

Dilkstra全名为Edfger Wybe Dijkstra,曾在1972因年获得计算机领域最高荣誉图灵奖。

这里写图片描述

大部分中国的程序员能记住这个名字,很大程度是因为学过图论里计算最短路径的Dijkstra算法,然而,大部分的人都难以记住其名字正确的拼写,因为他是荷兰人,名字不符合英文发音。
(我一般都叫他迪杰斯特拉,也不知对不对。。)

现在我们来回顾一下顺便复习一下他最有名的迪杰斯特拉算法。

for(int i=1;i<n;i++){    min=inf;    for(int j=1;j<n;j++){        if(book[j]==0&&dis[j]<min){            min=dis[j];            rec=j;        }    }    book[rec]=1;    for(int k=1;k<n;k++){        if(book[k]==0&&a[rec][k]<inf&&dis[k]>dis[rec]+a[rec][k]){            dis[k]=dis[rec]+a[rec][k];        }    }}

其算法核心我觉得是用贪心和松弛操作。

这个算法有个有趣的背景,在一台新的叫 ARMAC 的计算机发布之前,Dijkstra 需要想出一个可以让不懂数学的媒体和公众理解的问题,以便向他们展示。有一天他和未婚妻在阿姆斯特丹购物,他们停下来在一家咖啡店的阳台上喝咖啡休息,他开始思考这个问题。他觉得可以让计算机演示如何计算荷兰两个城市间的最短路径,这样问题和答案都容易被人理解。于是他在 20 分钟内想出了高效计算最短路径的方法。Dijkstra 自己也没有想到这个 20 分钟的发明会成为他最著名的成就之一,并且会被以他的名字命名为 Djikstra 算法。

虽然很多计算机软件都是Dijkstra发明的,但他却很少使用计算机,他一般只用来回复电子邮件和浏览网页。他也不用计算机写论文,他喜欢用万宝龙钢笔写论文和文章。

他一生中写了1300多篇文章,他用自己姓名的首字母 EWD 给他们编号:EWD 1, EWD 2, … EWD 1318。在计算机科学中,这些文章被统称为「EWD 报告」。

他的算法和文章大都让人感受到简洁、经济、优雅,或许这也与他的生活习惯和性格有一定的关系。

他贡献无数,致力于计算机理论的发展,在20世纪计算机科学的发展前途尚处在萌芽阶段,Dijkstra能够洞穿其发展大胆预测,致力于理论和应用的研究,其远见与智慧不得不令人惊叹,而且他对计算机的执着和他自身的人格魅力,也令我们折服。

原创粉丝点击