算法的意义
大学时候,学的最差的大概就是算法了。当时总是喜欢多想一步,问一下这个算法到底是为什么。结果老师也答不出。
同一个学期,学的最高兴的,是操作系统。教课的是当时的系主任,国内的操作系统大牛。听他老人家讲课,总是能深入浅出的理解里面的设计理念。比如进程的调度,以CPU时钟资源的公平分配为原则;比如虚拟内存的大小,是方便和节约的折中;比如缓存的分配,是历史数据向未来的有效预测等等。
那个时候就开始了解,其实算法,无非是人的决策,在计算机上面的表达。
后来到了这边读书,导师发明的算法,是解决路由问题里面对稀缺资源的调控。那个算法的精妙,就是引进了经济学的原理,让各个信号去竞争这些资源,稀缺的资源“价格”提高,使得某些信号转而去使用相对“便宜”的资源,从而达到资源调配的目的。
类似的,当我设计和他的算法相配合的算法的时候,也是把现实生活中的处理方法引进了算法里面,对于一个NP-hard问题,既然不能在多项式时间和空间找到最优解,那么就在处理的过程中,对某些“看似”最有希望的部分结果,进行拓展,最后得到一个相对优化的结果。
在web领域,因为有人的参与,就有了更多算法改良的空间。pagerank是利用了人多年在web上面积累的url数据作为网页权重的投票;相应的协同过滤,也是利用人的行为数据来提取人的兴趣。
但是在算法利用免费的人力进行优化的同时,基于这些算法建立的网络应用,也对人的行为产生了不可忽略的影响。在03年google的CEO Eric Schmidt 去系里讲座的时候,就有学生问他,如果将来大家都依赖google,不在网页上面添加链接了,google怎么办。Eric略一迟疑,说估计不会的。事实上,当google把AdWords引入以后,巨大的流量瞬间转变成了钱,人们不仅没有停止添加链接,反而变本加厉的建立起link farm以求在SRP上面占据首位。Google也不得不针对这些link spam进行算法的修改。
同样的,协同过滤虽然为Amazon带来了无数的新销售,同时也使用户的行为趋同。
建议继续学习:
- 为什么算法这么难? (阅读:10723)
- 15道使用频率极高的基础算法题 (阅读:5580)
- 一些有意思的算法代码 (阅读:3957)
- Fastbit中的bitmap索引算法 (阅读:3756)
- 基于漏桶(Leaky bucket)与令牌桶(Token bucket)算法的流量控制 (阅读:3083)
- 研发面试最常用的10大算法 (阅读:2959)
- 生成特定分布随机数的方法 (阅读:2674)
- 算法收集 (阅读:2480)
- 这样做有什么意义 (阅读:1448)
- 机器学习算法之LightGBM (阅读:1542)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:美人她爹 来源: 美人她爹
- 标签: 意义 算法
- 发布时间:2010-03-01 09:24:05
- [66] Oracle MTS模式下 进程地址与会话信
- [65] 如何拿下简短的域名
- [65] Go Reflect 性能
- [59] 【社会化设计】自我(self)部分――欢迎区
- [59] IOS安全–浅谈关于IOS加固的几种方法
- [59] 图书馆的世界纪录
- [59] android 开发入门
- [53] 视觉调整-设计师 vs. 逻辑
- [47] 界面设计速成
- [47] 读书笔记-壹百度:百度十年千倍的29条法则