博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
人生与算法
阅读量:5742 次
发布时间:2019-06-18

本文共 1508 字,大约阅读时间需要 5 分钟。

    (说明:这是原来发表在科学博客上的博文,不知道能否适应这里的环境。问过了编辑,博文是个人日志,在一个地方发了,换一个地方还可以再发,不存在一高两投的问题)

      读了今天发表的迟菲博文 和马臻博文 为两篇好文喝彩。笔者曾在自然计算讲座PPT中,用这些生活现象解释那里的贪心算法和模拟退火算法;现在反过来,花几十分钟,把PPT中一些材料搬过来,为两位老师的论点补充弹药,活跃讨论气氛。

贪心使目光短浅。 四维时空中的人是多元化的,平常不贪心的人,在部分场合部分时间也可能有贪心的心理或行为。当贪心得以表现时,只顾眼前最大利益。计算机科学中的贪心算法(Greedy algorithm )模拟了这一基本思想,即每一步都追求评价函数最高值。
贪心算法容易实现。人贪心固然不好, 但计算机科学中贪心算法是好用的,开发起来比较简易,例如,常用于快速开发简单优化程序的或游戏程序。
  不贪心的人, 在生活中用会贪心算法吗?
会的,且看下面的两个例子。
例1 过公路十字路口 ,拟从A到C,在图1的 条件下,70%的人会用贪心算法,选走A-->B-->C的路线。通常,哪一条路径代价低(时间及其他资源),则先过该方向,先把看得见的实际利益(这里是时间)抢到手,这也是一条启发性知识。

201099152827306.jpg

图1过马路十字路口 ,拟从A到C

     但是,贪心算法不总是快,如马臻博文所说,人算不如天算,设若刚刚走到B, 大量救火车南北方向通行,且持续10分钟,欲速不达,后悔者会说,早知如此,何不当初选择路径A-->D-->C? 在晋升中级职称时,有人在选择走“教学系列”,还是“研究系列”方面踌躇徘徊,与此例相近。

例2 求职,找工资高的单位。

20109915290540.jpg

图2 求职,找工资高的单位

当事人做了一个(目光较短的)探测,发现工资西高东低,决定往西走,找一个极大值点。事实上,如果目光远一些,往东走,容忍一时的下降,两落两起后,可达到全局部的最优。此例有时候也称为为盲人爬山,手里面有一个一米多的手杖,探测梯度,往梯度大的方向走,因为探测棒太短,所以没有远见。

模拟退火算法是对贪心算法的批判  图2表明,如能坚持对东方的信念,允许偶尔(按一定概率)的失败,往东穿过低谷,达到一个更高山峰的脚下,最后登上全局优化点,这就是模拟退火算法的思想。在常出现局部收敛(或早熟)的应用场合,程序员会舍“贪心”而取“退火”。现实生活中,许多伟人坚持信念,几起几落,最后终于登上顶峰。

小姐与丫环。戏曲中,穆桂英出场之前,先有一位武艺超群,容貌漂亮的丫环亮相,给剧中的杨宗保和剧外的观众一个悬念:丫环竟如此,小姐当如仙。这种用丫环衬托小姐的方法,也用在了计算机科学的论文中,设计了一个好的算法,常常用传统的算法作丫环来比较衬托;没有丫环,也要造一个,贪心算法最好造,常常扮演丫环角色;电器制造和销售中,也用丫环机型,根本没打算卖多少,让用户有个比较,衬托厂家利润大的“小姐机型”。

 坚持信念,也是算法。人生中,有时候受条件限制,无法预见长远,有时受环境所迫,没有多少可选择机会。此时,坚持信念,尽可能做好能作的每一步,就是胜利。严格地说起来,“尽可能做好能作的每一步”,用的就是贪心算法;这是 无贪婪之心,用贪心之法;虽然慢一点,但不乏成功者;在茫茫人海中,登上一个局部优化的山峰,也是成功。。

  有人说,40岁以前可跳几次槽,40岁以后不再跳槽,这就是工程上常用的两阶段爬山法,40岁以前模拟退火算法,旨在跳出局部优化点,寻找较高山峰下的坡面,40岁以后用贪心算法,“尽可能做好能作的每一步”,脚踏实地登山,不失为一个可参考的启发性知识。

相关博文(研究生全面成长系列)

跨辈交流也求新

转载地址:http://ocnzx.baihongyu.com/

你可能感兴趣的文章
【云栖大会】探索商业升级之路
查看>>
HybridDB实例新购指南
查看>>
小程序,会是下一个创业风口吗
查看>>
C语言及程序设计提高例程-35 使用指针操作二维数组
查看>>
华大基因BGI Online的云计算实践
查看>>
深入理解自定义Annotation,实现ButterKnif小原理
查看>>
vim的快捷键大全
查看>>
doT js模板入门
查看>>
iOS开发中的零碎知识点笔记 韩俊强的博客
查看>>
排序高级之交换排序_冒泡排序
查看>>
Linux文件编辑命令详细整理
查看>>
C#多线程编程
查看>>
linux整理错误集合
查看>>
Cocos2d-x3.2 Ease加速度
查看>>
力求颜值与干货齐高,出品人深度解读三大专场
查看>>
虚拟化平台cloudstack(2)——安装(上)
查看>>
各种排序(数据结构复习之内部排序算法总结)
查看>>
[EntLib]关于SR.Strings的使用办法[加了下载地址]
查看>>
RHCE学习<2>无人值守安装Linux系统(FTP+TFTP+DHCP+Kickstart+PXE)
查看>>
yafphp框架
查看>>