Bersenang-senang dengan Ackermann terbalik

11

Fungsi Ackermann terbalik sering terjadi ketika menganalisis algoritma. Presentasi hebatnya ada di sini: 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}

Pertanyaan saya adalah: Apa fungsi Jelas . Batas ketat apa yang bisa diberikan seseorang pada ? Apakah ?

k(n)=min{k:αk(n)k}
1k(n)α(n)k(n)k(n)logα(n)
Dana Moshkovitz
sumber
Saya tahu mengapa , tetapi bisakah Anda menjelaskan mengapa ? k(n)α(n)k(n)α(n)
jbapple
Oke, diedit ke kontroversial tidak kontroversial . k(n)<α(n)
Dana Moshkovitz
3
@DanaMoshkovitz: Saya memperkirakan definisi menggunakan hierarki Ackermann yang saya kenal: dan . Dengan definisi khas fungsi Ackermann, . Karenanya jika maka , yaitu . (Kuharap aku tidak melakukan kesalahan di sana.)α(n)=min{k:Ak(1)n}k(n)=min{k:Ak(k)n}Ak+1(1)=Ak(Ak(1))Ak(k)Ak(k)nAk+1(1)nk(n)α(n)1
Sylvain
1
@DanaMoshkovitz: untuk memperjelas, saya menggunakan dan , yang tumbuh sedikit lebih cepat dari definisi Anda, misalnya, bukannya . Seharusnya tidak banyak konsekuensi: dan adalah hal yang hampir sama. A1(n)=2nAk+1(n)=Akn+1(1)A2(n)=2n+12nα(n)k(n)
Sylvain
1
@DanaMoshkovitz: Saya tidak mengerti mengapa . Untuk banyak nilai tak terhingga Anda akan memiliki , yaitu setiap kali ; karena tumbuh cepat, Anda memiliki urutan yang lebih lama dan lebih lama. Dengan definisi Anda, bahkan mungkin untuk memiliki : karenanya tetapi . n α ( n ) = k ( n ) A k ( k ) < n A k + 1 ( 1 ) < A k + 1 ( k + 1 ) A k + 1 ( 1 ) - A k ( k ) α ( n )k(n)<α(n)nα(n)=k(n)Ak(k)<nAk+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
Sylvain

Jawaban:

12

Biarkan menjadi kebalikan dari . . Saya mengklaim bahwa .α k A 1 ( x ) = 2 x , A 2 ( x ) = 2 x , ... k - 1 ( x ) = A x ( x )AkαkA1(x)=2x,A2(x)=2x,k1(x)=Ax(x)

Karena , dan karena , . Akibatnya .z , α y ( z ) > α x ( z ) α y ( A x ( x ) ) > α x ( A 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

Sekarang perhatikan nilai . Menurut definisi , ini adalah . Kita tahu bahwa , jadi . Saya mengklaim bahwa . . Sekarang , jadi . Karena , , jadi . Dengan demikian,α min z { α z ( A n ( n ) ) 3 } α n ( A n ( n ) ) = n α ( A n ( n ) ) > n α ( A n ( nα(k1(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 ) = min z { α z ( n ) 3 } α α ( n ) ( 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.

Jadi, kita memiliki , jadi dan pada dasarnya sama.k αn<α(k1(n))n+2kα

jbapple
sumber
9
Dan izinkan saya menambahkan bahwa semua fungsi ini hanyalah cara rumit yang berbeda untuk menulis angka 4.
Sariel Har-Peled
0

Ini salah; lihat komentar.

Sebuah fungsi yang sangat dekat dengan yang ini disebut " " dan digunakan dalam "Splay Trees, Davenport-Schinzel Sequences, dan Dugaan Deque" dari Pettie , di mana ia menunjukkan bahwa " operasi deque [dalam pohon splay] mengambil hanya waktu , di mana adalah jumlah minimum aplikasi dari pemetaan fungsi invers-Ackermann ke konstanta. " n O ( n α ( n ) ) α ( n ) nαnO(nα(n))α(n)n

Fungsi ini tumbuh sangat lambat, dan tumbuh lebih lambat dari . Pertimbangkan fungsif : NNlogα(n)f:NN

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

Fungsi ini kira-kira cepat tumbuh sebagai , sehingga lebih lambat tumbuh dari . Sekarang saya akan mengevaluasi dan pada :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)

Karena , jauh lebih cepat berkembang daripada .log α ( n ) α ( n )f(n1)ω(2+α(n))logα(n)α(n)

jbapple
sumber
Apa hubungan antara alpha ^ * dan k (n)? (perhatikan bahwa dalam definisi k (n) saya menggunakan notasi alpha_k (n) yang didefinisikan dalam tautan yang saya miliki dalam pertanyaan)
Dana Moshkovitz
Oh, maaf, saya membaca sebagai ! α kαkαk
jbapple