动态规划,我对它的第一印象是对递归算法的优化,将需要进行大量重复调用的递归算法精巧利用,以减少执行时间和所需内存。官方说就是给编译器提供一些帮助,将递归算法重新写成非递归算法,让后者把那些子问题的答案系统写进一个表。
当然,无论是递归还是递推,我觉得都不是它的本质。
它就是将一些复杂问题拆分转化,找出问题初始状态和状态间的关系,从而细化成成一个细分的递推过程,使问题可以从初始状态一步步递推解决。
这其中,其实,递归和递推都不重要,重要的是观察,你需要去全局的看问题,而不是抓着这个大问题的每一个子问题深究,也就是说我们需要的是通过子问题求出我们需要的大问题的答案,小问题怎么求的,我们不关心,动态规划就是让我们去掉这些旁支末节,从而求出最优解。
将需要求解的问题转化成小问题——求解小问题——推出所需的问题答案。
这中间重要的不是不断计算,而是将解出的问题拿来直接用。
忽然想到Rumors has it that :大事化小,小事化了。有些殊途同归的感觉
再补一句,目前我对他的想象就是将一个冗余复杂的二叉树不短修建,剪去重复的,留下一条简短利落的树径。
【谈谈】关于动态规划的认识
最新推荐文章于 2022-04-17 12:20:52 发布