逆阿克曼的乐趣


11

分析算法时,经常会发生Ackermann逆函数。它的一个很好的展示在这里:http : //www.gabrielnivasch.org/fun/inverse-ackermann

α1(n)=[n/2]
α2(n)=[log2n]
α3(n)=logn
...
αk(n)=1+αk(αk1(n))
α(n)=min{k:αk(n)3}
[符号:[X]意味着我们舍入x到最接近的整数,而日志*是迭代数函数在这里讨论:http://en.wikipedia.org/wiki/Iterated_logarithm]

我的问题是:什么是功能

k(n)=min{k:αk(n)k}
显然1k(n)α(n)。一个人对可以给出更严格的界限k(n)吗?被k(n)logα(n)

我知道为什么,但你能解释一下为什么ķ ñ « α ñ k(n)α(n)k(n)α(n)
jbapple

好的,编辑为无争议的k(n)<α(n)
Dana Moshkovitz

3
@DanaMoshkovitz:我近似使用阿克曼层次我熟悉的定义:ķ Ñ = 分钟{ ķ ķķ n }。随着阿克曼功能,典型的定义ķ + 11 = ķķα(n)=min{k:Ak(1)n}k(n)=min{k:Ak(k)n}。因此,如果ķķ Ñ然后ķ + 11 Ñ,即 ķ Ñ α Ñ - 1。(我希望那里没有犯错。)Ak+1(1)=Ak(Ak(1))Ak(k)Ak(k)nAk+1(1)nk(n)α(n)1
Sylvain 2015年

1
@DanaMoshkovitz:澄清一下,我使用的是A k + 1n = A n + 1 k1 ,它的增长速度比您的定义稍快,例如A 2n = 2 ñ + 1而不是2 ñ。但是,它不会产生太大的影响:α n k nA1(n)=2nAk+1(n)=Akn+1(1)A2(n)=2n+12nα(n)几乎是同一回事。k(n)
西尔万2015年

1
@DanaMoshkovitz:我不明白为什么。对于无穷多个值Ñ你将有α Ñ = ķ Ñ ,即每当ķķ < Ñ ķ + 11 < ķ + 1ķ + 1 ; 因为A k + 1k(n)<α(n)nα(n)=k(n)Ak(k)<nAk+1(1)<Ak+1(k+1)生长快,则有越来越长这样的序列。与您的定义它甚至有可能以具有 α Ñ < ķ Ñ α 28 = 3 > 2,因此 α 8 = 2 ķ 8 = 3Ak+1(1)Ak(k)α(n)<k(n)α2(8)=3>2α(8)=2k(8)=3
西尔万2015年

Answers:


12

是的逆α ķA 1x = 2 x A 2x = 2 x。我声称k 1x = A xx AkαkA1(x)=2x,A2(x)=2x,k1(x)=Ax(x)

由于,并且由于Ž α ÿż > α XŽ α ÿXX > α XXX = X。结果k A xx =x=αx(Ax(x))z,αy(z)>αx(z)αy(Ax(x))>αx(Ax(x))=xk(Ax(x))=x

现在考虑。通过定义α,这是分钟ž { α ŽÑÑ 3 }。我们知道,α ñññ = ñ,所以α ññα(k1(n))=α(An(n))αminz{αz(An(n))3}αn(An(n))=n。我声称 α ÑÑ ñ + 2α Ñ + 1ÑÑ = 1 + α Ñ + 1Ñ 。现在 α Ñ = 分钟Ž { α ŽÑ 3 },那么 α αα(An(n))>nα(An(n))n+2αn+1(An(n))=1+αn+1(n)α(n)=minz{αz(n)3}。由于Ñ+1>αÑ α Ñ + 1Ñ3,所以 α Ñ + 1ÑÑ4。因此, α Ñ + 2ÑÑ=1+ α Ñ + 2αα(n)(n)3n+1>α(n)αn+1(n)3αn+1(An(n))4αn+2(An(n))=1+αn+2(αn+1(n))1+αn+2(4)3

因此,我们有,所以ķα基本上相等。n<α(k1(n))n+2kα


9
让我补充说,所有这些功能都写数字4的只是不同的复杂的方式
沙利叶喀拉-佩莱德

0

这是不正确的。查看评论。

与此函数非常接近的一个函数称为“ ”,并在Pettie的“展开树,Davenport-Schinzel序列和双端猜想”中使用,其中他表示“ (在展开树中)n个双端操作仅取O”。ñ α *ñ 的时间,其中,α *ñ 是逆阿克曼函数映射的应用程序的最小数目ñ为恒定“。αnO(nα(n))α(n)n

这个功能是非常缓慢的生长,而且是慢于生长。考虑函数f NNlogα(n)f:NN

f(n)={1 n = 02f(n1) n > 0

该函数的增长速度大致与一样快,因此比A 'n = A n n 增长得慢。现在,我会评估日志α ñ α *ñ 一个'˚F ñ A(4,n)A(n)=A(n,n)logα(n)α(n)A(f(n))

logα(A(f(n)))=logf(n)=f(n1)

α(A(f(n)))=1+α(f(n))<1+α(A(n))<2+α(n)

由于登录α Ñ 快得多增长比α *Ñ f(n1)ω(2+α(n))logα(n)α(n)


alpha ^ *和k(n)有什么关系?(请注意,在k(n)的定义中,我使用在问题中具有的链接中定义的符号alpha_k(n))
Dana Moshkovitz

哦,对不起,我看了你的α ķαkαk
jbapple
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.