【问题标题】:Complexity measurement of NP-completeNP完全的复杂度测量
【发布时间】:2014-01-23 13:43:57
【问题描述】:

例如,已知集合覆盖决策问题是一个 NP 完全问题。这个问题的输入是一个全域 U、一个 U 的子集族 S 和一个整数 k()。

我感到困惑的一件事是,如果我们让 k=1,那么显然问题可以通过简单地检查 S 中的每个元素在时间 |S| 中得到解决。更一般地说,当 k 是一个常数时,该问题可以在 |S| 的多项式时间内解决。这样,只有当 k 也随着 |S| 增加时,时间复杂度才会呈指数级增长,例如 |S|/2、|S|/3...

所以这是我的问题:

  1. 我目前的理解是,NP 完全问题的时间复杂度测量是根据最坏情况来测量的。谁能告诉我理解是否正确?

  2. 我看到有人证明了另一个问题是 NP 难的,他表明输入 <U,S,|U|/3> 的集合覆盖决定问题可以简化为该问题。我只是想知道为什么他只证明<U,S,|U|/3>,而不是<U,S,ARBITRARY k>??这样的证明可靠吗?

非常感谢!

【问题讨论】:

  • 提供这个人的文章的链接怎么样,这样我们就不用猜测了?设置封面问题的链接和正确定义以及括号符号的解释也很好。

标签: complexity-theory np-complete np np-hard set-cover


【解决方案1】:

时间复杂度是作为输入实例大小的函数来衡量的。输入实例的大小可以用比特来衡量。输入实例大小随着输入 USk 的任何增加而增加。因此,人们试图回答的问题是解决实例大小问题(例如2n bits)与实例大小问题n 相比需要多长时间。

因此,整个输入实例的大小必须增加,在这种特殊情况下,这意味着增加U 和/或S 和/或k 的大小。

回答你的两个问题:

  1. 是的,使用了最坏情况下的时间复杂度:您正在寻找输入大小n 的最难问题,并且您正确地注意到,当您增加更多参数而不是一个参数时,问题(相同大小)可能会变得更难.
  2. 最好看看你所指的证明,但想法可能是这样的:

    我将大小为n 的集合覆盖决策问题实例的多项式缩减为我的问题大小为m 的实例。如果集合覆盖决策问题的输入实例的大小增加到2n,那么减少的结果将是我的问题实例的大小为2m,因为U、@987654336 的输入大小之间存在直接对应关系@, 和 k 以及我的问题的输入大小。

    所以所有大小为n 的集合覆盖决策问题实例都映射到我的大小为m 的问题实例。因此,如果我正在寻找使用这种缩减的集合覆盖决策问题的最难实例,我将找到大小为m 的问题的最难实例。

编辑

来自链接论文中的证明:

证明。我们减少了一个任意的 3-cover 问题实例——我们在其中 给定一个全域 U,一个 U 的子集族 S,使得每个子集 包含 3 个元素,我们被问到是否可以(准确地)覆盖 所有的 U 使用 S 的 |U|/3 个元素——到具有齐次性的博弈 大小为 3 的资源和时间表。

正如你所说的,他们需要将集合覆盖问题的所有实例转换为他们的问题。但他们使用了一个不同问题的约简:Exact 3-cover 问题,该问题在“计算机和难处理性 - MR Garey, DS Johnson, 1979”中被证明是 NP-complete。

Exact 3-Cover 问题类似于集合覆盖决策问题,但 |U| = 3tSU 的一组 3 元素子集。

【讨论】:

  • 非常感谢您的回答。我认为我们应该将 set-cover 问题简化为我的问题。但似乎您对问题 2 的回答正好相反。我指的是论文(152.3.140.1/~dima/papers/complexityAAAI10.pdf)(证明就在结论部分的正上方),作者将集合覆盖问题 简化为待验证问题。据我了解,我认为将 归结为问题更有说服力。
  • 啊,你的方向当然是对的..这样一个新手错误..我会修复答案
  • 根据您的评论并在查看论文中的减少后更新了答案
  • 现在我明白了。感谢您告诉我确切的 3-cover 问题和参考。这很有帮助,为我解决了一个大问题。非常感谢!!!!! :)
猜你喜欢
  • 2021-12-10
  • 2015-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-19
  • 1970-01-01
  • 1970-01-01
  • 2010-10-21
相关资源
最近更新 更多