动态规划:并非你想象的那样

2025-07-21

“动态规划”一词在算法学习中常常令人困惑。“动态”并非指其变化性,而是指“编程”的计划性含义,源于上世纪50年代工程师规划建筑项目的“流程安排”。动态规划在计算机科学中指解决问题的子步骤顺序规划,例如计算斐波那契数列,其“程序”即为按依赖顺序计算fib(2)到fib(10)的步骤。这可以自顶向下或自底向上规划,最终计划一致,皆为动态规划。Richard Bellman创造此名词时,为了避开国防部长对“数学研究”的厌恶,巧妙地选择了“动态编程”,因“动态”一词无法用于贬义。

开发