除“最坏案例”以外的案例的复杂性等级


10

我们是否有关于平均情况下复杂度的复杂度类?例如,是否存在一个(复杂的)复杂性类别来解决需要花费预期多项式时间才能决定的问题?

另一个问题考虑了最佳案例的复杂性,示例如下:

是否存在一类(自然)问题,它们的决策至少需要几倍的时间?

为了澄清,考虑一些EXP -complete语言。显然,并非所有实例都需要指数时间:有些实例甚至可以在多项式时间内确定。因此,的最佳情况复杂度不是指数时间。大号LLL

编辑:由于出现了一些歧义,我想尝试进一步澄清它。所谓“最佳情况”复杂度,是指其问题的复杂度受某些函数限制的复杂度类别。例如,将BestE定义为不能及时确定的线性语言类别。象征性地,让表示任意图灵机,并且,和是自然数:c n 0 nMcn0n

LBestE (c)(M)[(L(M)=L)(n0)(n>n0)(x{0,1}n)[T(M(x))2c|x|]]

其中表示停止输入之前花费的时间。M xT(M(x))Mx

我接受定义此类问题非常奇怪,因为我们要求,每台图灵机,无论其功率如何,都不能在确定时间上少于线性指数。M

但是请注意,多项式时间对应项(BestP)是自然的,因为每台图灵机都需要时间至少读取其输入。|x|

PS:也许,我们不必将其量化为“针对所有图灵机 ”,而必须将其限制为某些预先指定的图灵机类,例如多项式时间图灵机。这样,我们可以定义之类的类,该类是至少需要二次时间才能在多项式时间Turing机器上确定的语言。B e s t n 2MBest(n2

PS2:我们还可以考虑电路复杂性,在这种情况下,我们考虑最小的电路大小/深度来决定一种语言。


仅仅因为有些SAT实例很容易,并不意味着它的预期时间是多项式。我不确定我是否理解您的问题
。–列夫·雷津

@里夫·雷津(Lev Reyzin):我并不是说SAT预计会达到预期的成绩。我的意思是,由于SAT具有简单的实例,因此我们不能说SAT的“最佳情况”复杂度很难。
MS Dousti

哦,我知道,平均情况复杂度和最佳情况复杂度是两个独立的问题!我以某种方式错过了这一点-我的错。
列夫·雷津

我无法完全解析您对BestE的定义。M和x不在其量化范围之内...而且,您是否不希望拒绝不在L中的输入?中号大号
瑞安·威廉姆斯

@Ryan:感谢您指出缺陷。我纠正了。
MS Dousti

Answers:


13

尽管我无法完全解析您的定义,但是您应该知道,已知的时间层次结构要强得多,尤其是“几乎无处不在”的时间层次结构。

这里是正式声明:对于绑定每次,有语言大号牛逼中号é [ Ť ñ ]与每一个确定性的算法正确识别属性大号必须同时运行渐近大于ŧ n 在非常短的时间t n )上,在有限的所有输入上进行输入。 T(n)LTIME[T(n)]Lt(n)t(n)

“足够小”是指t(n)logt(n)o(T(n))

假设我们选择为一个例子,获得硬语言大号。然后,任何能够正确识别L的算法都必须在超过一定长度的所有输入上至少花费2 n / n 2的时间。这似乎就是您在班级BestE中寻找的东西。T(n)=2nLL2n/n2

参考:

John G. Geske,Dung T. Huynh,Joel I. Seiferas:关于几乎无处不在的复杂集合和确定性-时间-复杂性类的注释 计算 92(1):97-104(1991)


很好,谢谢。我认为您已经很好地理解了我的问题,您的介绍性句子“我不能完全解析您的定义”只是您谦虚的标志:)
MS Dousti

2
如果我确实猜对了,您的定义应该类似于:“ L \ in BestE \ iff(\ exists c)(\ forall M)[(L(M)= L)\ Rightarrow(\ exists n_0)(\ forall n > n_0)(\ forall x \ in \ {0,1 \} ^ n)[T(M(x))> 2 ^ {c | x |})]。”。
瑞安·威廉姆斯

是的,你是对的。我在最后一分钟编辑了定义,并放错了一些量词。我根据您的定义纠正了这个问题。
MS Dousti

12

有许多类试图解决各种平均情况复杂性的概念。在“复杂性动物园”中,您可能感兴趣的一些类是:

平均水平

启发式

DistNP

(NP,P可简化)

Arora / Barak涵盖了许多相似的类(在第18章中),它们定义了distP,distNP和sampNP。

Impagliazzo的《五个世界》(Five Worlds)表征了所有这些类别之间的确切关系,该问题先前曾在另一个问题中被问及

至于“最佳情况”复杂性问题,我不确定我是否完全理解您的意思。您在寻找EXP吗?

如果您是指根据所有实例的最佳案例运行时间定义的复杂性类别,那么这并不是一个很好的先验性度量方法,因为您只会查看任何给定问题的琐碎情况。


做得太好了!这就是我在问题的平均情况复杂度部分中需要的。关于“最佳情况”部分,我注意到问题的原始表述含糊不清。我的错!我已经对其进行了大量编辑,因此请考虑再次阅读。
MS Dousti

5

[扩展Ryan Williams的答案并为您添加一些搜索词]最佳情况复杂性的概念已经有了一个名称:几乎到处(ae)硬度或双重免疫。(Ryan的例子是 -bi-immunity)。如果Ç是一个复杂的类,然后语言大号Ç -immune如果没有无限的子集大号'大号,使得大号'Ç大号Ç -bi免疫如果两个大号和它的补¯ 大号TIME[T(n)]CLCLLLCLCL Ç -immune。例如,不难证明您对 B e s t E的定义等同于 E双免疫集的类别。L¯=ΣLCBestEE

(从历史上讲:免疫性的概念是Post在1944年首次在可计算性理论中提出的,甚至在定义P之前就已经很久了。Post实际上被认为是“简单集合”-如果集合的互补性是免疫的,则集合是简单的。对于可计算性理论家来说, “免疫”一词通常表示“对可计算集免疫”。在这种情况下,免疫等同于“对ce集免疫”,因为每个无限ce集都包含一个无限可计算集。我相信Post的论文也是第一个介绍该可计算集的。多减一的概念,但我对此不敢保证。)


其实,他的定义只有接受输入的大号,不拒绝不投入在大号 ......只要你把条件中号X = 1在正确的地方。MLLM(x)=1
瑞安·威廉姆斯

非常感谢约书亚。您的答案是对Ryan的回答的补充。只要一编辑:在C-免疫力,一个定义的“黄金”丢失(应改为:不存在无限的子集,使得大号'ÇLLC
MS Dousti

1
@Sadeq:固定,谢谢。@Ryan:是的(或者是几个小时前:他已经更新了定义)。那么它将是免疫而不是双重免疫。无论哪种方式,主要是我只想指出关键字“免疫”。
约书亚·格罗肖

2

在谈论算法而不是问题时,不同的情况更有意义。另一方面,复杂度类是关于问题的,而不是算法。因此,由于该定义,对于任何算法,复杂度类始终是最坏的情况。

在复杂性方面,您的目标是知道解决给定问题的任何实例所需的资源数量。因此,您知道对于任何给定的实例和算法,您将只需要这些资源。

在算法分析中,您的目标是确保在问题的任何情况下算法都具有资源的上限。一个微不足道的界限是问题的复杂性类别,因为没有一种有用的算法(确实采取了不必要的步骤)比它花费更多的时间。但是,您可以根据算法的具体情况来改善该界限。

例如,假设您正在分析mergesort。给定解决方案后,您可以在多项式时间内进行确认,因此SORTING以NP表示。但是,通过分析,您可以将其降低到(n * logn)Θ

最好的情况是,找到最少数量的资源对于每个问题都是微不足道的。假设输入的长度为O(n),输出的长度为O(m)。然后,以下TM M始终以O(n)+ O(m)的最佳情况运行:

M {输入,实例,解决方案}

  1. 将给定实例与机器中编码的实例进行比较。
  2. 如果它们相等,则返回编码的解。
  3. 否则,进行暴力搜索。

-1

O(1)


1
我认为这不算是解决该问题的正确算法。但是,可以修改您的算法,以便首先检查输入是否等于您预先确定的特定实例(在O(1)时间内)。如果是,它将输出预先计算的答案。如果不是,则可以通过任何方式解决给定实例。考虑一下它,如果我们可以为不同的实例在O表示法后面采用不同的常量,则对于每个实例,任何正确的算法都将在O(1)时间内运行。这就是为什么从字面上看“最佳情况下的复杂性”没有用的原因。
伊藤刚(Tsuyoshi Ito)2010年

如果您在谈论确定性,非概率计算,则需要花费线性时间(O(n)时间)来检查实例的两种编码是否等效:扫描输入编码的n位并验证其是否相同作为编程编码,不是吗?
Daniel Apon 2010年

2
@Daniel:是的,但是如果其中一个实例是固定的,则只需要固定的时间,该常数取决于固定实例的长度。
伊藤刚(Tsuyoshi Ito)2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.