在运行时边界中是否出现比逆Ackermann增长慢的函数?


20

一些复杂的算法(联合查找)具有渐近时间复杂度中出现的近似恒定的逆阿克曼函数,如果忽略近似恒定的逆阿克曼项,则它们是最坏情况下的时间最优。

是否有已知算法的运行时间有任何示例,这些算法的运行时间从根本上比逆阿克曼倒数慢(例如,在多项式或指数等变换下不等同于阿克曼的函数倒数)给出了最著名的最坏情况时间解决根本问题的复杂性?


2
时间算法?您在问一个已知问题,该问题的最著名算法是 ω 1 o α n ?首先,您需要找到一个比 A n 增长“根本上更快”的函数,例如TREEn ,然后对其求逆,然后找到一个适合它的问题!O(1)ω(1)o(α(n))A(n)(n
帕尔GD


2
@vzn:任何都不是时间可构造的(包括α n )。因此,此处不能使用时间层次定理。Fñ=Øñαñ
mdxn

@mdx很高兴有人指出,只是测试您眨眼。是的,最近一直在考虑对sub- 函数进行时间层次的泛化。但是无论如何,o n 限制是因为时间可构造TM必须读取所有输入,但是我们是否说这些其他算法(例如,具有逆阿克曼时间复杂度的算法)没有?很难想象这个!感到问题更多是关于次o n 语言的存在。...某处是否存在某种调查或描述ØñØñØñ
。...– vzn

1
@vzn:OP确实需要澄清他们所考虑的计算模型。LH需要在随机访问TM(或等效项)上定义。当指定我们的机制时,我们可能会无意中添加过多的功能。甚至在某种程度上,计算复杂性的概念都没有取得成果。用最基本的术语来说,我们将不得不更改时间复杂度的概念(这是摊销的运行时所做的事情),存在这样的定义可能变得非常人为的风险(计算模型也是如此)。日志时间LH
mdxn

Answers:


8

塞特Pettie想出了一种算法,用于计算灵敏度最小生成树的时刻,提高上的Tarjan的算法,其计算在同一时刻Ö α Ñ 。(比较这对Chazelle的Ö α Ñ 算法,用于计算最小生成树Ø日志αñØαñØαñ 灵敏度问题要求针对给定的图和给定的最小生成树,计算不改变最小生成树而每个边缘权重可以改变多少。

(感谢Tsvi Kopelowitz提供此参考。)


1
我不知道对数逆阿克曼是否比逆阿克曼“根本上慢”,但是我发现这种运行时间令人惊讶。
Yuval Filmus


-1

当艾伦·图灵(Alan Turing)发现计算机时,曾经为计算机提出过几种模型。图灵证明,这些模型中的某些模型(3)可以彼此模拟并计算Ackermann函数,而其他模型可以彼此模拟,而不能模拟Ackermann函数(因此它们不能模拟3)。因此,选择了这3种模型(Turing Machine,von Neumann和一个我不知道的模型)作为计算机的体系结构。这并不意味着Ackermann函数是计算机的极限,但我认为这是一门艰苦的科学。我不知道有任何可计算的函数比Ackermann函数增长得更快。

现在,我认为没有一个实际的问题可以满足您的问题,但是也许我们可以构造一个。但是,我们需要对输入施加约束。由于我们不能使用O(n),因此无法检查整个输入。实际上,我们甚至无法检查输入的长度,因为那将是O(log n)。因此,我们需要将其余输入的长度表示为第一个参数,例如c,以使Ackermann(c)是输入的长度。由于这也不适合,因此我们要求输入c作为第一个值,使得bb(c)大约是输入的长度,其中bb是忙碌的海狸函数。这个函数是不可计算的,但是bb(c)当然存在。然后,算法如下:

for (int i=0; i<c; i++) {
    if (input[i] == null) {
        return false;
    }
}
return true;

该算法的目的是检查如果c是bb的倒数,则输入长度是否大于bb(c)。

如果有一个比Ackermann函数增长更快的可计算函数,我认为我们可以使用它的反函数来创建一个可以在任何输入上回答您的问题的算法。


正如注释中指出的那样,肯定存在比Ackermann函数增长更快的函数(TREE(n))。这个问题的棘手部分是构造一个算法,该算法的运行时边界与此函数的逆函数成反比。这样的机器首先没有足够的时间来计算函数的逆,因此实现此目的的TM的构造不是直截了当的。
mdxn
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.