# 第 1 节 什么是动态规划

动态规划可以写的内容有很多,在这里先写出最关键的思想的部分,其它的知识点大家可以在做题的过程中慢慢思考和总结。

# 什么是动态规划

在计算机的世界里,有很多名词让初学者感到非常困惑。例如「套接字」「句柄」「锚点」「回溯算法」、Word 软件里的「宏」。还有一个东西叫「鲁棒性」。这是神马玩意儿啊?

我们回到「动态规划」。维基百科「动态规划 (opens new window)」词条给出的定义如下:

动态规划:动态规划(英语:Dynamic Programming,简称 DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。

我刚开始学习的时候,看到这个定义,一直在脑海里打转儿的问题是:为什么这样的解决问题的方法要叫作「动态规划」呢?「动态」在什么地方?哪里又「规划」了呢?

或许让一个名词来承担「通俗易懂」「见名知义」「能表达清楚一件事情的内涵与外延」的使命,本身就是一件困难的事情。

关于动态规划名字的由来,感兴趣的朋友可以看看 「动态规划」命名的由来 (opens new window)

# 表格法

在《算法导论》中,把动态规划的 programming 解释为「是一种表格法」。我觉得这一点很恰当、很形象。

表格法:实际上,解决动态规划的问题,很多时候就是在填写一张表格。


作者:liweiwei1419 链接:https://suanfa8.com/dynamic-programming 来源:算法吧 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Last Updated: 11/19/2024, 11:31:47 AM