【问题标题】:Limitations of Dynamic Programming algorithm动态规划算法的局限性
【发布时间】:2012-02-15 17:19:56
【问题描述】:
【问题讨论】:
标签:
algorithm
dynamic-programming
【解决方案1】:
基本上你可以说可能的分数(解决方案质量)需要是有限的并且足够低以适应内存。非整数通常意味着非离散,这会导致无限可能的解决方案得分。
如果只有 N 个可能的解决方案分数,您知道您最多需要找到其中 N 个才能获得最好的分数,而不是获得它们的整个指数数量的方法。这就是动态规划背后的理念。
【解决方案2】:
我想另一个限制是不知道动态编程是否是最好的可用技术,因为它的性能不知道匹配信息论的下限。
这里是an example problem from David Eppstein:
给定n个实数的排序列表,找到最小的区间
对于介于 1 和 n 之间的所有 k 值,恰好包含 k 个元素。
有一个简单的动态规划算法可以解决这个问题
二次时间问题,但最著名的下限是
线性的。要么描述一个更快的算法,要么证明一个更大的更低
受限于某种合理的计算模型。 (“动态规划”
不是一个合理的计算模型!!)