【问题标题】:What are the "hardest" problems using polynomial time?使用多项式时间的“最难”问题是什么?
【发布时间】:2011-01-16 13:38:49
【问题描述】:

最近我读到a seminar work 说:

匹配算法[用于一般图]可以扩展 加权的情况下,这似乎 成为“最难”的组合之一 可以解决的优化问题 在多项式时间内求解。

我立刻想到了以下问题:

你知道其他“P-hard”问题吗?

现在我想将 P-hard 定义为:“在文献中很晚才(1950 年之后)发现了一种多项式算法来解决该问题”。(或者如何更好地定义“如果已经有确定性算法可以在多项式时间内解决问题,那么很难”?)

【问题讨论】:

  • 我会询问 P 中下限较高的问题。
  • 恕我直言,一个界限不能也不应该比较跨越不同类型的算法,或者你的下限是什么意思?
  • 可能是真的,但这也不是一个非常科学的问题;-) 下限:问题的下限为 Omega(n**x)。
  • 是的,这不科学,但我学到了很多 :-) 在我引用的“P-hard”问题的情况下,复杂度的下限相对较低:~O(n^ 3) ... 如果有多个因变量 m,L, ... 怎么办?

标签: algorithm time-complexity np-hard


【解决方案1】:

如果您想稍微改变一下规则,那么pseudo-polynomial time algorithms 是您在“多项式时间内”可以解决的“最难”。

伪多项式算法的一个经典示例是O(nW)knapsack problem 的动态规划解决方案。

【讨论】:

    【解决方案2】:

    The Assignment Problem 可以通过修改后的Hungarian Algorithm 在 O(n3) 内求解。

    【讨论】:

    • 好的,与我提到的问题非常相似......仅适用于二分图。顺便说一句,它早于 1950 年 ;-) 参见维基百科:“2006 年,人们发现卡尔·古斯塔夫·雅可比 (Carl Gustav Jacobi) 在 19 世纪解决了分配问题,并于 1890 年在死后以拉丁文发表。”
    【解决方案3】:

    另一个“难”的 P 问题是解决“线性规划”:

    http://en.wikipedia.org/wiki/Linear_programming#Algorithms

    【讨论】:

      【解决方案4】:

      实际上存在“P-完全”问题,这意味着可以在多项式时间内计算的所有其他问题都可以简化为它们。见http://en.wikipedia.org/wiki/P-complete

      【讨论】:

      • 谢谢!我可以学到很多东西......我可以接受多个人的答案吗?
      • 不,你不能。而且您应该将您的问题保留大约一天,以便人们有机会看到它。
      【解决方案5】:

      【讨论】:

      • +1 因为这是我看完问题后想到的第一个答案。
      • 不错!谢谢!顺便说一句:这对密码学有影响吗?
      • 啊,好的。 “多么实用!?”部分已经回答了这个:-)
      • @Karussell 无论如何它对密码学没有影响。素性测试很容易。困难的是因式分解和离散对数;基本的数论公钥密码系统依赖于这些(RSA - 因式分解,Diffie-Hellman - 离散对数)。实用的素数测试算法是概率性的,但在实践中运行速度非常快。
      猜你喜欢
      • 2013-11-07
      • 2012-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多