关于动态规划的有感

关于动态规划的随想

      博客开通后,一直没写啥东东,每当自己有写东东的冲动时,总为自己的文笔和逻辑担心,害怕文笔糟糕而被人嘲笑,害怕理解不够深刻而胡说八道,害怕逻辑不严谨而在大庭广众之下洋相百出。听闻人们记住了读的百分之多少,听的百分值多少(以及一些其他的百分之多少,印象中好像是没有超过50%的),唯一印象深刻的是人们记住了教人别人的90%。从学习习惯上说这也算是个好的学习方式。基于这个既不严谨也不可靠的原因决定开始写博客了,呵呵,丑媳妇总要见公婆,文笔烂就烂吧,逻辑不严谨就不严谨吧。本来就不是大拿。。呵呵。

      话说昨夜看MIT公开课(计算机科学及程序导论)第12末时,看到教授导入了动态规划的概念及核心逻辑。其中一段话感觉特有意思,一直直观认为技术人员应该都会有分享的冲动,不然也不会有那么多的开源项目,技术博客社区。。等。好吧,这段逻辑是不成立的,我承认,哈哈。不管咋样,作为一名技术人员,我愿意把我学的这么一点点小快乐分享出来。原文如下:

 

      写道

dynamic programming,
a lot of people think this a really hard and fancy concept and they teach in advanced algorithms class, and they do,
but in fact as you'll see it's really pretty simple

a world of warning , don't try to figure out why it's called dynamic programming, it makes no sense at all,
, it was invented by a mathematician called bellman, and He was at the time being paid by the defense department to work on something else, and he didn't want them to know what he was doing, so he made up a name that he was sure they would have no clue what it meant.
unfortunately ,we now have lived with it forever,so don't think of it as actually being anything dynamic particularly.
it's just a name.

 

 

      当我刚看到这个的时候,我乐喷了,原因很简单,听过动态规划很多次,身边许多人也认为这个是个特高深的算法,理论或者其他的什么,但教授告诉我们这玩意就一个名字,当然在12课后面会有介绍动态规划的核心部分,也确实和动态没半毛钱关系。

 

      问过身边几个计算机科班出身的技术人员,以及通过google搜索过相关介绍,但没有一个介绍过名字的由来以及该算法或者理论和名字没半毛钱关系的内容,借此大概可以判断出也许国内的教材或者教授的过程中都没有提过这么一个有意思的东西把。而接近16年的教育告诉了我,相信广大博友也是一样,概念很重要但在这么一个概念和其所作的内容完全没有关系的情况下,是否应该正说下视听呢。。呵呵,话说多了。

 

      一直觉得,当然也不见得就一定正确,在学习计算机技术相关的东西时起源和发展很重要,为什么要这么做,这么做之前怎么做,或者遇到过什么样的问题,在变成现在这个技术时又经历了哪几次的衍化以及为何衍化。从而让一个知识点变成一条线,在解决相关问题时也能通过算法的衍化过程中找出解决现有问题的方案。当然目前关于动态规划我还没有吃透,如此评论难免有取张端义之嫌,如果在之后的学习中有发现此篇博客中有错误观点一定会修正的,以希望借此抛砖引玉。