逆阿克曼的乐趣


11

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

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

我的问题是:什么是功能

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

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

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

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

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

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

Answers:


12

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

由于,并且由于∀ Ž ,α ÿ(ż )> α X(Ž ),α ÿ(甲X(X ))> α X(甲X(X ))= X。结果k (A x(x ))=x=αx(Ax(x))∀z,αy(z)>αx(z)αy(Ax(x))>αx(Ax(x))=x。k(Ax(x))=x

现在考虑。通过定义α,这是分钟ž { α Ž(甲Ñ(Ñ ))≤ 3 }。我们知道,α ñ(一ñ(ñ ))= ñ,所以α (一ñ(ñα(k−1(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<α(k−1(n))≤n+2kα


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

0

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

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

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

f(n)={1 n = 02f(n−1) 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)))=log⁡f(n)=f(n−1)

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

由于,登录α (Ñ )快得多增长比α *(Ñ )。f(n−1)∈ω(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.