NP-complete的复杂性测量

时间:2014-01-06 07:33:44

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

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

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

所以这是我的问题:

  1. 我目前的理解是,NP-complete问题的时间复杂度测量是根据最坏情况来衡量的。任何人都可以告诉我,如果理解是正确的吗?

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

  3. 非常感谢!

1 个答案:

答案 0 :(得分:1)

时间复杂度是作为输入实例大小的函数来度量的。输入实例大小可以以位为单位进行测量。输入实例大小随着任何输入USk的增加而增加。因此,人们试图回答的问题是,解决实例大小问题需要多长时间,例如2n位与实例大小n的问题。

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

回答你的两个问题:

  1. 是的,使用了最糟糕的时间复杂度:您正在寻找输入大小n中最难的问题,并且您正确地注意到问题(相同大小)可能会因为增加更多参数而变得更难只有一个。
  2. 最好看到你所指的证据,但想法可能就像:

      

    我将大小为n的集合覆盖决策问题实例的多项式减少到我的问题的大小为m的实例。如果集合覆盖决策问题的输入实例的大小增加到2n,则减少的结果将是我的问题的大小2m的实例,因为{{1}的输入大小之间存在直接对应关系。 1}},US以及问题的输入大小。

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

  3. 修改

    来自您的链接论文中的证据:

      

    证明。我们减少了一个任意的3覆盖问题实例 - 我们在其中   给定宇宙U,U的子集的族S,使得每个子集   包含3个元素,我们被问到是否可以(完全)覆盖   所有的U使用S的U | / 3元素进行同类游戏   资源和时间表大小为3。

    正如您所说,他们需要将所有设置覆盖问题的实例转换为他们的问题。但是他们正在使用一个不同问题的减少:在“计算机和难以处理--MG Garey,DS Johnson,1979”中证明是NP完全的精确3覆盖问题。

    Exact 3-Cover问题与设置封面决策问题类似,但m|U| = 3t是一组S的3元素子集。