Zabawa z odwrotnym Ackermannem


11

Odwrotna funkcja Ackermanna występuje często podczas analizy algorytmów. Świetna prezentacja tego jest tutaj: http://www.gabrielnivasch.org/fun/inverse-ackermann . i [Notacja: [x] oznacza, że ​​zaokrąglamy w górę x do najbliższej liczby całkowitej, podczas gdy log ∗ omówiono tutaj iterowaną funkcję dziennika: http://en.wikipedia.org/wiki/Iterated_logarithm ]

α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}

Moje pytanie brzmi: jaka jest funkcja Oczywiście 1 \ ll k (n) \ leq \ alpha (n) . Jakie ściślejsze granice można wyznaczyć dla k (n) ? Czy k (n) \ leq \ log \ alpha (n) ?1 ≪ k ( n ) ≤ α ( n ) k ( n ) k ( n ) ≤ log α ( n )

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

Wiem, dlaczego , ale czy możesz wyjaśnić, dlaczego ? k(n)≤α(n)k(n)≪α(n)
— jbapple

Ok, edytowane do niekontrowersyjnej . k(n)<α(n)
— Dana Moshkovitz

3
@DanaMoshkovitz: Przybliżyłem definicje za pomocą hierarchii Ackermanna, którą znam: i . Przy typowej definicji funkcji Ackermanna . Dlatego jeśli to , tj. . (Mam nadzieję, że się tam nie pomyliłem)k ( n ) = min { k : A k ( k ) ≥ n } A k + 1 ( 1 ) = A k ( A k ( 1 ) ) ≥ A k ( k ) A k ( kα(n)=min{k:Ak(1)≥n}k(n)=min{k:Ak(k)≥n}Ak+1(1)=Ak(Ak(1))≥Ak(k)A k + 1 ( 1 ) ≥ n k ( n ) ≥Ak(k)≥nAk+1(1)≥nk(n)≥α(n)−1
— Sylvain

1
@DanaMoshkovitz: aby to wyjaśnić, używam i , który rośnie nieco szybciej niż twoja definicja, np. zamiast . To nie powinno mieć wiele konsekwencji mimo: i są niemal tak samo. A k + 1 ( n ) = A n + 1 k ( 1 ) A 2 ( n ) = 2 n + 1 2 n α ( n )A1(n)=2nAk+1(n)=Akn+1(1)A2(n)=2n+12nα(n)k(n)
— Sylvain

1
@DanaMoshkovitz: Nie rozumiem, dlaczego . Dla nieskończenie wielu wartości będziesz miał , tj. Ilekroć ; ponieważ rośnie szybko, masz coraz dłuższe takie sekwencje. W twoich definicjach można nawet mieć : stąd ale . n α ( n ) = k ( n ) A k ( k ) < n ≤ A k + 1 ( 1 ) < A k + 1 ( k + 1 ) < k ( n ) α 2 ( 8 ) = 3 > 2 α ( 8k(n)<α(n)nα(n)=k(n)Ak(k)<n≤Ak+1(1)<Ak+1(k+1)α ( n )Ak+1(1)−Ak(k)α(n)<k(n)α2(8)=3>2k ( 8 ) = 3α(8)=2k(8)=3
— Sylvain

Odpowiedzi:


12

Niech Ak będzie odwrotnością . . Twierdzę, że .A 1 ( x ) = 2 x , A 2 ( x ) = 2 x , … k - 1 ( x ) = A x ( x )αkA1(x)=2x,A2(x)=2x,…k−1(x)=Ax(x)

Ponieważ , a ponieważ , . W rezultacie∀ z , α y ( z ) > α x ( z ) α y ( A x ( x ) ) > α x ( A x ( x ) ) = xx=αx(Ax(x))∀z,αy(z)>αx(z)αy(Ax(x))>αx(Ax(x))=x .k(Ax(x))=x

Rozważmy teraz wartość . Z definicji α jest to min z { α z ( A n ( n ) ) ≤ 3 } . Wiemy, że α n ( A n ( n ) ) = n , więc α ( A n ( nα(k−1(n))=α(An(n))αminz{αz(An(n))≤3}αn(An(n))=n . Twierdzę, że α ( A n ( n ) ) ≤ n + 2 . α n + 1 ( A n ( n ) ) = 1 + α n + 1 ( n ) . Teraz α ( n ) = min z { α z ( n ) ≤ 3 } , więc α αα(An(n))>nα(An(n))≤n+2αn+1(An(n))=1+αn+1(n)α(n)=minz{αz(n)≤3}. Ponieważn+1>α(n), α n + 1 (n)≤3, więc α n + 1 ( A n (n))≤4. Zatem α n + 2 ( A n (n))=1+ α n + 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

Mamy więc , więc k i α są zasadniczo równe.n<α(k−1(n))≤n+2kα


9
I dodam, że wszystkie te funkcje to po prostu różne skomplikowane sposoby wpisywania liczby 4.
— Sariel Har-Peled

0

To jest niepoprawne; zobacz komentarze.

Funkcja bardzo blisko do tego został nazwany „ ” i wykorzystywane w Pettie za „pochylenie Drzewa, Davenport SCHINZEL sekwencji i deque Conjecture” , w której wykazano, że " n operacji deque [w drzewie splay] zajmie tylko O ( n α ∗ ( n ) ) czas, gdzie α ∗ ( n ) jest minimalną liczbą zastosowań funkcji odwrotnego Ackermanna odwzorowujących n na stałą. ”α∗nO(nα∗(n))α∗(n)n

Ta funkcja rośnie bardzo wolno i rośnie wolniej niż . Rozważ funkcję f : N → Nlog⁡α(n)f:N→N

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

Ta funkcja rośnie mniej więcej tak szybko jak , więc rośnie wolniej niż A ′ ( n ) = A ( n , n ) . Teraz oszacuję log α ( n ) i α ∗ ( n ) na A ′ ( f ( n ) ) :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)

Ponieważ , log α ( n ) rośnie znacznie szybciej niż α ∗ ( n ) .f(n−1)∈ω(2+α∗(n))log⁡α(n)α∗(n)


Jaki jest związek między alfa ^ * ik (n)? (zauważ, że w definicji k (n) używam zapisu alpha_k (n) zdefiniowanego w linku, który miałem w pytaniu)
— Dana Moshkovitz

Och, przepraszam, czytam twój jako α k ! αkαk
— jbapple
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.