Answers:
我一直认为这意味着使用动态编程的算法似乎可以“ 动态 ” 编辑问题空间,直到可以使用贪心算法解决问题为止。
例如,对于Checkerboard问题,动态编程算法将编辑整个棋盘,然后最终使用贪婪算法(类似地,使用Dijkstra的最短路径算法等)。
我不确定这是否可以推广到每个动态编程问题。
实际上,“动态编程”这个名称没有什么特别的。该技术本身就是巧妙地消除递归。看到此问题并查看@Jeffe答案,据报道Belman选择该名称是故意分散注意力。
这里有一个有趣的故事。Bellman率先提出了这种范例。但是,这实际上是数学研究。早在他的时代,当时的国防部长对“ 研究与数学”(Research and Math)一词有偏执(疯狂的家伙,对!)。贝尔曼害怕秘书会为他的工作大怒,并最终使他陷入困境。因此,为了模糊起见,他将其称为动态编程,但是它没有任何“动态”。
理查德·贝尔曼(Richard Bellman)用贝尔曼(Bellman)的话称其为动态编程
我在RAND(1950年秋季)度过。我的首要任务是为多阶段决策流程找到一个名称。
一个有趣的问题是,动态编程的名称从何而来?1950年代不是数学研究的好年头。我们在华盛顿有一位非常有趣的绅士,名叫威尔逊。他曾任国防部长,实际上对病理学一词有病态的恐惧和仇恨。我不是在轻率地使用这个词。我正在精确地使用它。如果人们在他的面前使用“研究”一词,他的脸就会闷闷不乐,他会变成红色,并且会变得暴力。您可以想象他对数学这个术语的看法。兰德公司受雇于空军,而空军实质上是由威尔逊担任老板的。因此,我觉得我必须做些事情来保护威尔逊和空军免受事实的困扰,因为我实际上是在RAND公司内部从事数学工作。什么标题,什么名字,我可以选择吗?首先,我对计划,决策,思考感兴趣。但是出于各种原因,规划并不是一个好词。因此,我决定使用“编程”一词。我想了解一下这是动态的,多阶段的,随时间变化的。我想,让我们用一块石头杀死两只鸟。让我们以古典物理意义上具有绝对精确意义的单词(即动态的)为例。作为形容词,它也具有非常有趣的属性,并且不可能在贬义的意义上使用“动态”一词。尝试考虑一些可能赋予其贬义性的组合。不可能。因此,我认为动态编程是一个好名字。连国会议员都无法反对。