【问题标题】:Limitations of Dynamic Programming algorithm动态规划算法的局限性
【发布时间】:2012-02-15 17:19:56
【问题描述】:

在探索了这个question 之后,我开始意识到动态规划算法不能用于解决knapsack problem 或具有非整数约束 的类似问题。我对我的认识是对的吗?动态规划算法还有其他限制吗?

【问题讨论】:

  • 我想除了这里之外,理论计算机科学堆栈交换 (cstheory.stackexchange.com) 的人们会对这个问题有很多见解。

标签: algorithm dynamic-programming


【解决方案1】:

基本上你可以说可能的分数(解决方案质量)需要是有限的并且足够低以适应内存。非整数通常意味着非离散,这会导致无限可能的解决方案得分。

如果只有 N 个可能的解决方案分数,您知道您最多需要找到其中 N 个才能获得最好的分数,而不是获得它们的整个指数数量的方法。这就是动态规划背后的理念。

【讨论】:

    【解决方案2】:

    我想另一个限制是不知道动态编程是否是最好的可用技术,因为它的性能不知道匹配信息论的下限。

    这里是an example problem from David Eppstein

    给定n个实数的排序列表,找到最小的区间 对于介于 1 和 n 之间的所有 k 值,恰好包含 k 个元素。 有一个简单的动态规划算法可以解决这个问题 二次时间问题,但最著名的下限是 线性的。要么描述一个更快的算法,要么证明一个更大的更低 受限于某种合理的计算模型。 (“动态规划” 不是一个合理的计算模型!!)

    【讨论】:

      猜你喜欢
      • 2012-03-26
      • 2013-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多