登录后没有弹窗广告,广告是为了发展.如果您在未注册情况下浏览书部落弹出了广告,感谢您对书部落运营的支持
游客: 注册 | 登录 | 统计 | 赚部落币! | 论坛规则简介(必看) | 上传书籍必看| C/C++学习小组| | WINDOWS编程学习小组|
= 论坛导航 = 站务交流 · 新闻与评论 · 找书·评书·荐书 人生故事·心得分享 学习经验·答疑解惑 精华
[电子书分享专区] WEB开发与程序设计 ·C/C++电子书 ·JAVA电子书 ·.NET相关 ·汇编语言 ·PHP电子书 ·ASP电子书 ·JSP电子书 · 嵌入式开发 ·游戏编程 黑客|病毒|破解 ·Ruby·Ajax·XML·CSS·Python等脚本语言                              ·操作系统 ·LINUX电子书 ·UNINX电子书 ·WINDOWS电子书 ·数据库 ·Oracle ·MYSQL ·SQL Server ·等....                  注:书籍分享区仅限书籍分享,下面有代码分享区,希望大家注意区分
[程序源代码分享区] Windows程序(C/C++/VC++) ·界面编程 ·桌面应用 ·文件操作 · shell编程 ·钩子(HOOK) ·Win32API ·COM编程 ·进程与线程 ·驱动编程 ·WinSock ·LINUX程序代码 ·JAVA程序 ·.NET编程 ·书籍源码 ·等....
[ 技术文摘分享区] 文摘分享区旨在搜集网上的专业文献,希望你也能来添砖加瓦,添加文章有部落币奖励
程序设计与WEB开发电子书目录◇◆□ 专题推荐:JAVA电子书下载◇◆□ C程序设计之四书五经_电子书下载◇◆□ C++学习推荐书目◇◆□ C#经典书籍◇◆□ JAVA编程思想专题◇◆□ C++ Primer
↑请善于搜索-“搜商”是21世纪您成功的关键因素



 
标题: 算法的力量---李开复
afirst
初级程序员
Rank: 2



UID 44811
精华 1
积分 2
帖子 11
威望 2
部落币 11
代码量 0
阅读权限 20
注册 2007-9-15
状态 离线
发表于 2007-9-17 14:59  资料 短消息 

算法的力量---李开复

李开复:算法的力量
  
  算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多

学生看到一些公司在招聘时要求的编程语言五花八门就产生了一种误解,认为学计算机就

是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实

大家都被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为

计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那

些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等

等。在“开复学生网”上,有位同学生动地把这些基础课程比拟为“内功”,把新的语言

、技术、标准比拟为“外功”。整天赶时髦的人最后只懂得招式,没有功力,是不可能成

为高手的。
  
  算法与我
  
  当我在1980年转入计算机科学系时,还没有多少人的专业方向是计算机科学。有许多

其他系的人嘲笑我们说:“知道为什么只有你们系要加一个‘科学’,而没有‘物理科学

系’或‘化学科学系’吗?因为人家是真的科学,不需要画蛇添足,而你们自己心虚,生

怕不‘科学’,才这样欲盖弥彰。”其实,这点他们彻底弄错了。真正学懂计算机的人(

不只是“编程匠”)都对数学有相当的造诣,既能用科学家的严谨思维来求证,也能用工

程师的务实手段来解决问题----而这种思维和手段的最佳演绎就是“算法”。
  
  记得我读博时写的Othello对弈软件获得了世界冠军。当时,得第二名的人认为我是靠

侥幸才打赢他,不服气地问我的程序平均每秒能搜索多少步棋,当他发现我的软件在搜索

效率上比他快60多倍时,才彻底服输。为什么在同样的机器上,我可以多做60倍的工作呢

?这是因为我用了一个最新的算法,能够把一个指数函数转换成四个近似的表,只要用常

数时间就可得到近似的答案。在这个例子中,是否用对算法才是能否赢得世界冠军的关键


  
  还记得1988年贝尔实验室副总裁亲自来访问我的学校,目的就是为了想了解为什么他

们的语音识别系统比我开发的慢几十倍,而且,在扩大至大词汇系统后,速度差异更有几

百倍之多。他们虽然买了几台超级计算机,勉强让系统跑了起来,但这么贵的计算资源让

他们的产品部门很反感,因为“昂贵”的技术是没有应用前景的。在与他们探讨的过程中

,我惊讶地发现一个O(n*m)的动态规划(dynamic programming)居然被他们做成了O(

n*n*m)。更惊讶的是,他们还为此发表了不少文章,甚至为自己的算法起了一个很特别的

名字,并将算法提名到一个科学会议里,希望能得到大奖。当时,贝尔实验室的研究员当

然绝顶聪明,但他们全都是学数学、物理或电机出身,从未学过计算机科学或算法,才犯

了这么基本的错误。我想那些人以后再也不会嘲笑学计算机科学的人了吧!
  
  网络时代的算法
  
  有人也许会说:“今天计算机这么快,算法还重要吗?”其实永远不会有太快的计算

机,因为我们总会想出新的应用。虽然在摩尔定律的作用下,计算机的计算能力每年都在

飞快增长,价格也在不断下降。可我们不要忘记,需要处理的信息量更是呈指数级的增长

。现在每人每天都会创造出大量数据(照片,视频,语音,文本等等)。日益先进的纪录

和存储手段使我们每个人的信息量都在爆炸式的增长。互联网的信息流量和日志容量也在

飞快增长。在科学研究方面,随着研究手段的进步,数据量更是达到了前所未有的程度。

无论是三维图形、海量数据处理、机器学习、语音识别,都需要极大的计算量。在网络时

代,越来越多的挑战需要靠卓越的算法来解决。
  
  再举另一个网络时代的例子。在互联网和手机搜索,如果要找附近的咖啡店,那么搜

索引擎该怎么处理这个请求呢?最简单的办法就是把整个城市的咖啡馆都找出来,然后计

算出它们的所在位置与你之间的距离,再进行排序,然后返回最近的结果。但该如何计算

距离呢?图论里有不少算法可以解决这个问题。
  
  这么做也许是最直观的,但绝对不是最迅速的。如果一个城市只有为数不多的咖啡馆

,那么这么做应该没什么问题,反正计算量不大。但如果一个城市里有很多咖啡馆,又有

很多用户都需要类似的搜索,那么服务器所承受的压力就大多了。在这种情况下,我们该

怎样优化算法呢?
  
  首先,我们可以把整个城市的咖啡馆做一次“预处理”。比如,把一个城市分成若干

个“格子(grid)”,然后根据用户所在的位置把他放到某一个格子里,只对格子里的咖

啡馆进行距离排序。
  
  问题又来了,如果格子大小一样,那么绝大多数结果都可能出现在市中心的一个格子

里,而郊区的格子里只有极少的结果。在这种情况下,我们应该把市中心多分出几个格子

。更进一步,格子应该是一个 “树结构”,最顶层是一个大格----整个城市,然后逐层下

降,格子越来越小,这样有利于用户进行精确搜索----如果在最底层的格子里搜索结果不

多,用户可以逐级上升,放大搜索范围。
  
  上述算法对咖啡馆的例子很实用,但是它具有通用性吗?答案是否定的。把咖啡馆抽

象一下,它是一个“点”,如果要搜索一个“面”该怎么办呢?比如,用户想去一个水库

玩,而一个水库有好几个入口,那么哪一个离用户最近呢?这个时候,上述 “树结构”就

要改成“r-tree”,因为树中间的每一个节点都是一个范围,一个有边界的范围(参考:h

ttp: //www.cs.umd.edu/~hjs/rtrees/index.html)。
  
  通过这个小例子,我们看到,应用程序的要求千变万化,很多时候需要把一个复杂的

问题分解成若干简单的小问题,然后再选用合适的算法和数据结构。
  
  并行算法:Google的核心优势
  
  上面的例子在Google里就要算是小 case了!每天Google的网站要处理十亿个以上的搜

索,GMail要储存几千万用户的2G邮箱,Google Earth要让数十万用户同时在整个地球上遨

游,并将合适的图片经过互联网提交给每个用户。如果没有好的算法,这些应用都无法成

为现实。
  
  在这些的应用中,哪怕是最基本的问题都会给传统的计算带来很大的挑战。例如,每

天都有十亿以上的用户访问Google的网站,使用Google的服务,也产生很多很多的日志(

Log)。因为 Log每份每秒都在飞速增加,我们必须有聪明的办法来进行处理。我曾经在面

试中问过关于如何对Log进行一些分析处理的问题,有很多面试者的回答虽然在逻辑上正确

,但是实际应用中是几乎不可行的。按照它们的算法,即便用上几万台机器,我们的处理

速度都根不上数据产生的速度。
  
  那么Google是如何解决这些问题的?
  
  首先,在网络时代,就算有最好的算法,也要能在并行计算的环境下执行。在 Googl

e的数据中心,我们使用的是超大的并行计算机。但传统的并行算法运行时,效率会在增加

机器数量后迅速降低,也就是说,十台机器如果有五倍的效果,增加到一千台时也许就只

有几十倍的效果。这种事半功倍的代价是没有哪家公司可以负担得起的。而且,在许多并

行算法中,只要一个结点犯错误,所有计算都会前功尽弃。
  
  那么Google是如何开发出既有效率又能容错的并行计算的呢?
  
  Google最资深的计算机科学家 Jeff Dean认识到,Google所需的绝大部分数据处理都

可以归结为一个简单的并行算法:Map and Reduce(http://labs.google.com/papers/ma

pre...倍的效果)。Map and Reduce的另外一大特色是它可以利用大批廉价的机器组成功

能强大的server farm。最后,它的容错性能异常出色,就算一个server farm宕掉一半,

整个fram依然能够运行。正是因为这个天才的认识,才有了Map and Reduce算法。借助该

算法,Google几乎能无限地增加计算量,与日新月异的互联网应用一同成长。
  
  算法并不局限于计算机和网络
  
  举一个计算机领域外的例子:在高能物理研究方面,很多实验每秒钟都能几个TB的数

据量。但因为处理能力和存储能力的不足,科学家不得不把绝大部分未经处理的数据丢弃

掉。可大家要知道,新元素的信息很有可能就藏在我们来不及处理的数据里面。同样的,

在其他任何领域里,算法可以改变人类的生活。例如人类基因的研究,就可能因为算法而

发明新的医疗方式。在国家安全领域,有效的算法可能避免下一个911的发生。在气象方面

,算法可以更好地预测未来天灾的发生,以拯救生命。
  
  所以,如果你把计算机的发展放到应用和数据飞速增长的大环境下,你一定会发现;

算法的重要性不是在日益减小,而是在日益加强
如果您对本帖内容有任何质疑,或者您在阅读/下载 本帖内容时遇到困难 请在站务管理版里发帖提出。点这里进入反馈
顶部
红影 (訫無雜念)
版主
Rank: 7Rank: 7Rank: 7
—━☆.﹏.緈褔﹏.偠经嘚讫考 ..


UID 17891
精华 4
积分 18
帖子 346
威望 18
部落币 2807
代码量 0
阅读权限 100
注册 2007-5-5
状态 离线
发表于 2007-9-18 10:28  资料 文集 短消息 
听过这个人名
但是不太了解




(__..時間沖淡所囿的感情..﹎
﹎..距離拉開完美的愛情..__)
顶部
dwb219
部落游客
Rank: 1



UID 44978
精华 0
积分 1
帖子 7
威望 1
部落币 97
代码量 0
阅读权限 10
注册 2007-9-16
状态 离线
发表于 2007-9-18 15:13  资料 短消息  QQ
google 搜索引擎 新的搜索技术
顶部
红影 (訫無雜念)
版主
Rank: 7Rank: 7Rank: 7
—━☆.﹏.緈褔﹏.偠经嘚讫考 ..


UID 17891
精华 4
积分 18
帖子 346
威望 18
部落币 2807
代码量 0
阅读权限 100
注册 2007-5-5
状态 离线
发表于 2007-9-18 15:19  资料 文集 短消息 
原来在网上看过人家招聘搜索引擎的工程师的
叫SEO




(__..時間沖淡所囿的感情..﹎
﹎..距離拉開完美的愛情..__)
顶部
qingyyuan
部落游客
Rank: 1



UID 45629
精华 0
积分 0
帖子 3
威望 0
部落币 50
代码量 0
阅读权限 10
注册 2007-9-18
状态 离线
发表于 2007-9-21 09:31  资料 短消息 
可不可以介绍几本比较好的算法书?
顶部
红影 (訫無雜念)
版主
Rank: 7Rank: 7Rank: 7
—━☆.﹏.緈褔﹏.偠经嘚讫考 ..


UID 17891
精华 4
积分 18
帖子 346
威望 18
部落币 2807
代码量 0
阅读权限 100
注册 2007-5-5
状态 离线
发表于 2007-9-22 14:56  资料 文集 短消息 
程序=算法+数据结构




(__..時間沖淡所囿的感情..﹎
﹎..距離拉開完美的愛情..__)
顶部
鬼人王
部落游客
Rank: 1



UID 25405
精华 0
积分 0
帖子 20
威望 0
部落币 34
代码量 0
阅读权限 10
注册 2007-6-14
状态 离线
发表于 2007-10-12 09:24  资料 短消息 
一个字——顶!!!!
顶部
mikall
部落游客
Rank: 1



UID 50025
精华 0
积分 0
帖子 2
威望 0
部落币 50
代码量 0
阅读权限 10
注册 2007-10-12
状态 离线
发表于 2007-10-12 12:46  资料 短消息 
开复先生所言极是!只有练好了内功,遇事才能不慌啊
顶部
vernchien
部落游客
Rank: 1



UID 50141
精华 0
积分 0
帖子 2
威望 0
部落币 52
代码量 0
阅读权限 10
注册 2007-10-12
状态 离线
发表于 2007-10-12 21:40  资料 短消息 
偶像就是偶像
太有才了
顶部
afirst
初级程序员
Rank: 2



UID 44811
精华 1
积分 2
帖子 11
威望 2
部落币 11
代码量 0
阅读权限 20
注册 2007-9-15
状态 离线
发表于 2007-10-13 21:46  资料 短消息 
如果搞计算机的 不知道这个人
至少说明你目前的道行还不深
顶部
 



Powered by Discuz! 5.0.0 © 2001-2006 著作权保护声明|网站法律顾问:ItLaw-庄毅雄律师|
Processed in 0.115656 second(s), 5 queries , Gzip enabled 1024*768
当前时区 GMT+8, 现在时间是 2008-12-4 13:40 清除 Cookies - 联系我们 - 书部落-计算机编程图书资料分享 - Archiver