俗话说,实践出真知,讨论见真理。最近互联网上有两篇文章引领了一个讨论算法的热潮。一篇是英文的“The 10 Algorithms That Dominate Our World”,另一篇是中文的《真正统治世界的十大算法》。作为一名普通的IT民工,我没有兴趣去争论“究竟是哪些算法统治了世界”这种高大上的话题,但是从一个普通人的角度,我确实感受到算法给我等屌丝日常生活带来的福利与变化。
简单地说,算法就是用来解决一个特定任务的一系列步骤。虽然算法的定义表达总是要借助一些或简或繁的公式或数学描述,一般人理解起来可能会有些困难。但是如果我们把算法映射到鲜活的生活场景中,就会发现算法其实并没有那么复杂。尤其是当飞速发展的互联网全方位融入我们的生活之后,许多看似复杂的算法,正在以非常直接的方式迅速改变着我们的生活方式。
假期将至,当我计划出去登高远望、戏水逍遥。于是就开始埋头于网络搜索与信息筛选之中。此刻,我真实体会到了搜索引擎带给我们的信息革命。记得九十年代末,当我刚上大学时,互联网刚刚进入我们的生活,通过雅虎等门户网站,看到一些人为分类的景点官网,或是明显的景区广告信息。通读下来全部都是散发着正能量的和谐景象,很难找到我想要的“干货”。而现在,搜索引擎的搜索结果全面改善,很容易搜到我想要的信息。并且,还有天涯及水木清华等BBS论坛,围观网友的吐槽对于我来说是更实用的信息。通过借鉴社区论坛上的网友攻略、好评、抱怨,并经过一番斟酌、排序及筛选,我终于敲定了我的目的地——美丽的海滨之城青岛。崂山、海滨浴场、极地海底世界等著名景点在众多网友的推荐及评论下也已列上我的旅游清单。
这里提到的搜索感受的变化就蕴含着一个令互联网搜索更加高效的基本算法-- “超链分析算法”,也是上面那篇文章中提到的十大算法之一。该算法由现任百度厂长李彦宏于1996年首先提出并申请专利,是一个关于网页搜索结果排序的算法。在此算法问世之前,网页排序的作弊现象非常严重,搜索结果没有任何权威性可言。李彦宏以科学论文通过索引被引用次数的多寡来确定一篇论文是否好坏的道理,写出了这种根据其它网页的引用次数(也就是投票票数)来决定网页搜索结果排序的投票机制算法。这种算法的基本思想,在上述景点选择的过程中也能完全体现出来,即要根据网友的真实评论、而不是景点官网的自我推销来判断景点的好坏。这个貌似简单的算法却开辟了一个改变世界的互联网新时代。正是李彦宏对搜索算法的关键改造,才改变了搜索引擎的前景;也正是这个算法在百度、Google等搜索引擎上的广泛应用,才赋予互联网改变世界、改变生活的机遇、能力和权威。
景点选择完毕之后,一想到以前车站及景区售票处那长长的队伍我就犯愁,还好随着互联网的发展现在有了网上银行和在线支付。查好车次时间及票务信息,我通过网上银行很方便的完成了在线支付,顺利搞定车票门票。不得不感叹,这种不出门就可实现的在线选购、快捷安全的在线支付,着实是互联网带给我等屌丝的幸福。
在线支付是互联网时代的产物,也是一个改变了我们支付习惯,真正为用户带来方便的重要技术。之所以我们可以远离过去那种为了买东西而奔波、排队的场景,都要感谢安全哈希算法为我们提供了在线交易的安全性。当我使用网上银行完成支付的那一刻,其实是安全哈希算法帮我完成了一系列安全检测动作。只有当银行服务器通过哈希算法验证了我的数字签名合法性之后,我们的在线交易才会顺利完成。如果没有哈希算法为在线支付把关,我们还将继续那种排队买票的痛苦。
买完票之后,出游准备工作剩下的就是考虑怎么去火车站了。现在出门不用担心方向感不好。地图APP在手,路痴也有春天。从西二旗出发,如何最便捷的到达我的车票始发站北京南站呢?虽然以前也可以使用地图来设计交通路线,但是路上的时间是很难把握的。但是现在情况不同了。我边看百度地图的搜索结果及每段路的用时估计,边在心里计算着,“从家步行到公交站需要5分钟,到地铁站需要10分钟;坐公交车去南站的话,中间需要转一次车,2小时10分钟可以到南站;而坐地铁前往的话,中间也是一次换乘,但1个小时就能到;如果是选择公交转地铁的方式,也是换乘一次,1小时20分钟可到。”我算了一下时间,发现选择步行到地铁站,再乘地铁前往的方式总耗时是1小时10分钟,也是三种路线规划中耗时最短的,自然也就成为我的最佳选择。
在我做路线规划时,其实是使用了迪杰斯特拉算法来寻找最短路径。这是一个计算机领域图搜索计算的一个经典算法。它的基本思想就像我做的那样,从起点开始,把相邻可选路段的时长加起来。遍历所有路径组合之后,就可以耗时最短的路径。由于计算机的应用,这种算法已经被广泛应用于电子地图及导航产品中。而这些产品的出现,确实颠覆了我们过去那种一出门就手拿地图,祈祷不堵车的出行习惯。
当我通过互联网完成了景点选择,买票,路线设计这些简单的操作之后,确实感受到算法给我带来的极大便利。搜索引擎及社区网站可以帮我实现景点排序、在线支付系统可以帮我足不出户地完成买票需求、在线地图可以帮我完成最短路径的选择。正如被李彦宏化“简单”为“神奇”的“超链分析算法”支撑了整个互联网搜索一样,生活中的每一个简单环节中所蕴含的或浅或深的道理,抽象成数学描述就是一些非常有效的算法。这些无处不在的神奇算法,不断地改变着世界,也真正改变了我们的生活。