动态规划是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。1
动态规划的名称来源于美国数学家贝尔曼(Richard Bellman),他在1950年代研究多阶段决策过程时,为了避免国防部长对“研究”这个词的偏见,而选择了一个听起来不那么像数学研究的词来形容他的方法。2
贝尔曼解释说,他选择了“programming”这个词,是因为它意味着“计划”或“安排”,而不是编写计算机程序。他选择了“dynamic”这个词,是因为它暗示了时间的变化和多阶段的特征,也因为它听起来很酷和时髦。3
因此,“dynamic programming”这个词并没有直接反映出它的本质和含义,而是一个比较模糊和随意的名称。4
不过,我们可以从以下几个方面来理解动态规划的含义:
- 动态:动态规划是一种自底向上或自顶向下的方法,它根据子问题之间的关系,逐步推导出原问题的解。在这个过程中,动态规划会记录下每个子问题的解,以便后续使用,从而避免重复计算。这种记录下子问题解的过程,可以看作是一种状态的变化或更新,也就是动态的含义。5
- 规划:规划是一种寻找最优解或最优策略的过程,它通常涉及到多个阶段或多个决策。动态规划适用于具有最优子结构性质的问题,即原问题的最优解可以由子问题的最优解组合而成。因此,动态规划可以看作是一种按照一定顺序或方案,将子问题的最优解组合成原问题的最优解的过程,也就是规划的含义。
以上就是我对动态规划为什么叫动态规划的一些解释,希望对您有所帮助。如果您想了解更多相关内容,
可以参考以下链接:
3: Richard Bellman on the Birth of Dynamic Programming
5: 对动态规划的理解还是差那么一点?这一篇帮你安排的明明白白 -
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2019-06-29 Linux下Tomcat重新启动
2019-06-29 linux命令kill和kill -9的区别
2019-06-29 Linux kill -9 和 kill -15 的区别
2019-06-29 linux根据进程名终止进程
2019-06-29 怎么查看服务器的cpu和内存的硬件信息
2019-06-29 Tomcat logs文件夹下不同文件的意义
2019-06-29 linux查看文件前几行和后几行的命令