是否可以确定给定算法是否渐近最优?


11

是否存在以下问题的算法:

给定图灵机确定语言, 是否有图灵机决定使得 ? L M 2 L t 2n = o t 1n M1L
M2Lt2(n)=o(t1(n))

函数和分别是图灵机和的最坏情况下的运行时间。t 2 M 1 M 2t1t2M1M2

空间复杂度如何?


1
答案肯定不是。确定TM的最坏情况下的运行时间是不确定的。
chazisop

Answers:


9

这是一个简单的论证,表明它们是不确定的,即没有算法可以检查给定算法在运行时间或内存使用方面是否最佳。

我们将空白磁带的暂停问题减少到您的运行时最佳性问题。

令为给定的图灵机。令N为以下图灵机:M

n M n M n 2 nN:在输入 1. 在空白磁带上运行(最多)步。 2.如果不按步停止,则运行大小为的循环,然后返回NO。 3.否则,返回是。n
Mn
Mn2n

有两种情况:

  1. 如果没有在空白磁带上停止,则机器将在输入上运行步。因此其运行时间为。在这种情况下,显然不是最佳的。Ñ Θ 2 ÑÑ Θ 2 ÑÑMNΘ(2n)nΘ(2n)N

  2. 如果在空白磁带上暂停,则对于所有足够大的,机器将以恒定的步数运行,因此运行时间为。在这种情况下,显然是最佳的。N n O 1 NMNnO(1)N

简而言之:

M halts on blank tape N is optimial 

此外,给定的代码,我们可以计算的代码。因此,我们可以从空白磁带停止问题减少到运行时最佳问题。如果我们可以确定给定的图灵机是否最优,则可以使用上述减少量来检查给定的机器在空白带上停止。由于无法停止空白磁带,因此您的问题也无法确定。N N MMNNM

可以将类似的参数用于空间,即,检查给定的Turing机器在其使用的空间方面是否最优,这也是不确定的。

甚至更强的说法是正确的:我们无法确定给定的可计算函数是否在计算给定的可计算函数的时间复杂度上达到上限。对于空间也是如此。即,即使是基本的复杂性理论也无法通过算法实现自动化(对于复杂性理论家来说,这可以说是个好消息)。


M1

nnYESNn0nn0M

嗯,自从我上次阅读以来,这个问题就改变了。没关系。
拉斐尔

@PålGD,我认为OP以此为例(基于cstheory上发布的原始问题)。您可以查看该问题下的评论。
卡夫

2

正如其他人提到的,答案是否定的。

但是Blum写了一篇有趣的文章“ 递归函数复杂度的机器无关理论 ”。他证明了有些函数的性质,不管一个程序用来计算这些函数的速度有多快,另一个程序存在来可以更快地计算它们

一个非常好的财产!


-3

哈!答案是肯定的,我们将生活在另一个世界中。

A0ALA0A

不幸的是,这是不可能的,实际上我个人认为证明(非平凡的)最优性是计算机科学中最有趣(也是最困难)的问题。据我所知-我很高兴得到纠正-对于任何多项式问题都没有最优结果(除了算法的琐碎最优结果,当然,时间花费与输入大小成正比)。


1
Ω(N)

1
Ω(nlogn)

@vonbrand-我的意思是算法与输入大小成正比。
t至t

1
@ttothet好的,恐怕这是徒劳的,但是我会再试一次。1)不,一点也不。如果在每个输入上只保存一个步骤,那么即使它具有相同的渐近运行时间,您的算法也会比以前更好。2)不,不是。它还可能表示“我不知道,但如果是,则为X”。这并不罕见(cf P?= NP)。3)你声称有没有非平凡下界(上渐进性,我认为)所有。那是错的。请做功课。
拉斐尔

1
@MartinJonáš我的意思是两带图灵机。Kaveh指出,时间层次定理的证明确实给多时可解问题带来了任意高的复杂性,但是示例并不完全自然,而且感觉也不十分明确。此外,概率时间没有层次结构可知,因此我们实际上一无所有。
Sasho Nikolov
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.