既熟悉又陌生的“迪杰斯特拉”

简介:        最近看一些专业课的书籍,在不同的书本上看到了Dijkstra(迪杰斯特拉)这个名字;可以毫不夸张地说,凡是学信息相关专业的学生都应该听说过他的名字(课堂上曾提到的“迪杰斯特拉算法”就是他提出来的,在考试中也经常遇到)。
       最近看一些专业课的书籍,在不同的书本上看到了Dijkstra(迪杰斯特拉)这个名字;可以毫不夸张地说,凡是学信息相关专业的学生都应该听说过他的名字(课堂上曾提到的“迪杰斯特拉算法”就是他提出来的,在考试中也经常遇到)。但是,除了这个之外,大家对他的了解应该是很少的,所以,我认为他是我们“最熟悉的陌生人”。对于这位“陌生人”,我深感好奇,于是上网查找了一些有关这位计算机科学家的资料。在此,与大家分享,也算是对这位大师的贡献表示认可吧。

 

       首先说一下他出现在我们课本上的哪些地方。第一,在《计算机网络》(谢希仁编著,第五版)教材的第152页出现了Dijkstra提出的“最短路径算法SPF”,不过,在此作者没有详细介绍该算法,而是在本书配套的光盘中进行了详述;第二,在《算法设计与分析》(陈慧南编著)教材的第124页出现了Dijkstra提出的单元最短路径算法—“迪杰斯特拉算法”,在此作者详细介绍了此算法,其主要思想是用“贪心法”来求最短路径;第三,在《操作系统教程》(黄刚、徐小龙、段卫华编著)教材的第76页,出现了Dijkstra提出的信号量与P、V操作机制,为在操作系统中进行并发进程的分析奠定了基础。

 

       看来,Dijkstra是经常与大家“见面”,并且也被经常放在了考卷中,我想大家对他可能是又爱又恨吧。

 

       同时我也上网搜了一下有关他的资料,以下作简要的说明。

 

        Dijkstra全名为Edsger Wybe Dijkstra(1930/5/11~2002/8/6),是荷兰人。他是20世纪最伟大的计算机科学家之一,曾获1972年图灵奖,与D. E. Knuth(高唐纳)并称为20世纪最伟大的计算机科学家。他的主要贡献有如下几个方面:1)提出“goto有害论”;2)提出信号量和PV原语;3)解决了有趣的“哲学家聚餐”问题;4)最短路径算法(SPF)的创造者;5)第一个Algol 60编译器的设计者和实现者;6)THE操作系统的设计者和开发者。可以看出,他的一生对计算机科学的贡献极大,值得我们学习。

 

       我国著名计算机专家王选院士在Dijkstra逝世后,发表了一篇文章《从Dijkstra谈帅才的洞察力》来纪念这位大师。在文中,王选院士缅怀了先驱Dijkstra的历史功绩,并对中国计算机产业的发展提出了看法。Dijkstra被西方学术界称为“结构程序设计之父”和“先知先觉”,他一生致力于把程序设计发展成一门科学。王选院士对Dijkstra的洞察力(Vision和Insight)很是敬佩,并举了几个例子来说明。例如,他解决编译系统中的关键问题,提出了同步进程的协调和操作系统的结构,论证了“GoTo语句有害“和结构程序设计等。同时,Dijkstra实践了“吾爱吾师,但吾更爱真理”这句话,为了坚持真理,他不惜反对恩师。这体现了一个科学家的基本素质,那就是不惧权威,真理为上。他的一些名言警句至今也很有现实意义,如:“有效的程序员不应该浪费很多时间用于程序调试,他们应该一开始就不要把故障引入。”以及“程序测试是表明存在故障的非常有效的方法,但对于证明没有故障,调试是很无能为力的。”等。

 

      “追逼圣贤,乃是读书人的本意”,在20世纪计算机科学的发展前途尚不明朗之时,Dijkstra能够洞穿其发展,致力于理论和应用的研究,其远见与智慧不得不令人惊叹;在与导师科学观点不和时,他能够坚持真理,其人品与胸怀确实让人敬佩。现在我们有许多人感叹自己资质不好,或是周围的环境太差,因此过着“做一天和尚撞一天钟”的生活。以上这些干扰不过是一些外界因素,真正对自己一生的发展起作用的是个人的看法、是个人的选择。有人说得好,我们感觉伟人们太伟大,自己不敢仰望,那不是因为他们太高大,而是因为我们自己认为自己太渺小了!李开复老师也说过,做任何事情我们都要反复叩问自己的内心,向人生更远的方向看去,而不是被眼前的喧嚣所迷惑!

 

       向Dijkstra学习!

既熟悉又陌生的鈥湹辖芩固乩

目录
相关文章
|
网络协议 算法
WebSocket 技术详解
【2月更文挑战第12天】
395 1
|
数据挖掘 数据处理 索引
数据分析必知必会 | TGI指数分析实战
TGI指数,全称Target Group Index,可以反映目标群体在特定研究范围内强势或者弱势。
2864 0
数据分析必知必会 | TGI指数分析实战
|
11月前
|
边缘计算 算法 物联网
5G 中的多用户MIMO:赋予无线通信更高效率
5G 中的多用户MIMO:赋予无线通信更高效率
1127 0
|
机器学习/深度学习 人工智能 供应链
构建未来:AI技术在智能物流中的应用
【5月更文挑战第38天】 随着人工智能技术的飞速发展,其在各行各业的应用已经变得日益广泛。特别是在智能物流领域,AI不仅改变了传统物流的运作模式,还极大提升了效率和准确性。本文将深入探讨AI在智能物流中的具体应用,包括库存管理、运输优化、自动化仓库以及客户服务等方面,并分析其对整个行业的深远影响。通过案例分析和数据支撑,我们展示了AI如何帮助物流公司降低成本、提高客户满意度,并推动整个供应链系统的创新。
|
关系型数据库 MySQL 数据库
MySQL数据库事务的概念和应用场景
MySQL数据库事务的概念和应用场景
|
JavaScript 前端开发 Go
深入理解Vue响应式系统:数据绑定探索
深入理解Vue响应式系统:数据绑定探索
374 0
|
算法 网络虚拟化 网络架构
精通网络设计:生成树根桥配置详解
【4月更文挑战第22天】
635 0
|
数据采集 分布式计算 数据挖掘
数据收集与整合
数据收集与整合
275 2
|
数据建模 数据处理 Python
SciPy中的插值与拟合:实现数据平滑与曲线构建
【4月更文挑战第17天】本文介绍了SciPy在Python中用于插值和拟合的功能。SciPy的`interpolate`模块提供线性、多项式和样条插值,帮助构建平滑曲线和处理缺失值。示例展示了如何使用线性插值创建插值函数并绘制插值曲线。同时,文章讨论了拟合,通过`optimize`和`curve_fit`进行数据建模,以二次函数为例演示拟合过程。SciPy支持多种拟合方法,适应不同数据需求。这些工具在数据处理和分析中起到关键作用,可与其他SciPy功能结合使用,如信号处理和统计分析,以深入挖掘数据信息。
|
传感器 人工智能 自动驾驶
未来之路:自动驾驶技术与智能交通系统的革命
在全球汽车产业不断创新发展的背景下,自动驾驶技术正逐渐崭露头角。本文将探讨自动驾驶技术与智能交通系统的相关概念及其对未来交通运输的巨大影响。通过深入分析自动驾驶技术的原理、挑战和应用领域,我们将了解到它将如何改变我们的出行方式、提升交通效率以及带来更安全可靠的道路体验。
451 0