逆アッカーマンを楽しもう


11

アルゴリズムを分析するときに、逆アッカーマン関数が頻繁に発生します。それの偉大なプレゼンテーションはここにある: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}

私の質問は次のとおりです。関数 明らかに。どのようなより厳密な境界を与えることができますか?ある?1 « K (N )≤ α (N )K (N )K (N )≤ ログα (N )

k(n)=min{k:αk(n)≤k}
1≪k(n)≤α(n)k(n)k(n)≤log⁡α(n)

私はなぜか知っていますが、なぜか説明できますか?K (N )« α (N )k(n)≤α(n)k(n)≪α(n)
— jbapple

さて、議論の余地のないに編集されました。k(n)<α(n)
— ダナモシュコヴィッツ

3
@DanaMoshkovitz:私がよく知っているアッカーマン階層を使用して定義を近似しました:および。アッカーマン関数の典型的な定義では、です。したがって、、、つまりです。(私はそこに間違いを犯していないことを望みます。)K (N )= 分{ K :K(K )≥ N } K + 1(1 )= K(K(1 ))≥ AのK(K )、K(Kα(n)=min{k:Ak(1)≥n}k(n)=min{k:Ak(k)≥n}Ak+1(1)=Ak(Ak(1))≥Ak(k)K + 1(1 )≥ N K (N )≥ α (N )- 1Ak(k)≥nAk+1(1)≥nk(n)≥α(n)−1
— シルバン

1
@DanaMoshkovitz:明確にするために、私はとを使用しています。これは、定義よりわずかに速くなります例:ではなく。ただし、それほど大きな影響はありません。とはほとんど同じものです。K + 1(N )= A N + 1つのk(1 )2(N )= 2 N + 1 2 N α (N )K (N )A1(n)=2nAk+1(n)=Akn+1(1)A2(n)=2n+12nα(n)k(n)
— シルヴァン

1
@DanaMoshkovitz:なぜかわかりません。無限に多くの値についてあなたが持つであろう、すなわちたび ; ため速い成長は、より長く、より長いような配列を有します。あなたの定義では、を持つことさえ可能です:したがってしかし。N α (N )= K (N )K(K )< N ≤ K + 1(1 )< K + 1(K + 1 )K + 1(1 )− A k(k )α (n )k(n)<α(n)nα(n)=k(n)Ak(k)<n≤Ak+1(1)<Ak+1(k+1)Ak+1(1)−Ak(k)α 2(8 )= 3 > 2 α (8 )= 2 K (8 )= 3α(n)<k(n)α2(8)=3>2α(8)=2k(8)=3
— シルヴァン

回答:


12

してみましょうの逆のこと。。と主張します。α K 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)

以降、そして以来、。結果として。∀ Z 、α Y(Z )> α X(Z )α Y(A X(X ))> α X(X(X ))= X K (A X(x ))= xx=αx(Ax(x))∀z,αy(z)>αx(z)αy(Ax(x))>αx(Ax(x))=xk(Ax(x))=x

次に、の値を考えます。定義により、これはです。であることがわかっているので、ます。と主張しています。。今なので、ます。以降、、そう。したがって、α 分Z { α Z(A N(N ))≤ 3 } α N(A N(N ))= N α (A N(N ))> N α (A n個(nはα(k−1(n))=α(An(n))αminz{αz(An(n))≤3}αn(An(n))=nα(An(n))>nα N + 1(A N(N ))= 1 + α N + 1(N )α (N )= 分Z { α Z(N )≤ 3 } α α (N )(N )≤ 3 のn + 1 > α (N )α(An(n))≤n+2αn+1(An(n))=1+αn+1(n)α(n)=minz{αz(n)≤3}αα(n)(n)≤3n+1>α(n)α N + 1(A N(N ))≤ 4 α N + 2(A N(N ))= 1 + α N + 2(α N + 1(N ))≤ 1 + α N + 2(4 )≤ 3αn+1(n)≤3αn+1(An(n))≤4αn+2(An(n))=1+αn+2(αn+1(n))≤1+αn+2(4)≤3。

したがって、。したがって、とは本質的に等しくなります。k個のαn<α(k−1(n))≤n+2kα


9
そして、私はすべてのこれらの関数は数4を書いているだけの異なる複雑な方法であることを追加してみましょう
— サリエルのHar-Peled

0

これは間違っています。コメントを参照してください。

これに非常に近い関数は「」と呼ばれ、ペティの「Splay Trees、Davenport-Schinzel Sequences、およびDeque Conjecture」で使用され、「 deque operation [ splay tree]唯一の時間、逆アッカーマン関数マッピングのアプリケーションの最小数である定数には。」 nはO (N α *(N ))α *(N )Nα∗nO(nα∗(n))α∗(n)n

この関数は非常にゆっくりと成長し、よりもゆっくりと成長し。関数考えますF :N → Nlog⁡α(n)f:N→N

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

この関数はとほぼ同じ速さで成長するため、よりもゆっくりと成長します。次に、およびを評価し。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)

以来、はるかに速くよりも成長している。ログα (N )α *(N )f(n−1)∈ω(2+α∗(n))log⁡α(n)α∗(n)


alpha ^ *とk(n)の関係は何ですか?(k(n)の定義では、質問で使用したリンクで定義された表記alpha_k(n)を使用していることに注意してください)
— ダナモシュコヴィッツ

ああ、すみません、あなたのをとして読みました!α Kαkαk
— jbapple
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.