Розваги з оберненим Акерманом


11

Зворотна функція Акермана виникає часто при аналізі алгоритмів. Чудова презентація його тут: 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}

Моє запитання: Що таке функція Ясно . Які жорсткіші межі можна задати на ? Чи ?

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)
Дана Мошковіц

3
@DanaMoshkovitz: Я наблизив визначення за допомогою ієрархії Аккермана, з якою я знайомий: і . З типовим визначенням функцій Акермана, . Отже, якщо то , тобто . (Сподіваюсь, я там не помилився.)α(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
Сільвен

1
@DanaMoshkovitz: для уточнення я використовую та , який росте трохи швидше, ніж ваше визначення, наприклад, замість . Хоча це не повинно мати великих наслідків: і це майже те саме. A1(n)=2nAk+1(n)=Akn+1(1)A2(n)=2n+12nα(n)k(n)
Sylvain

1
@DanaMoshkovitz: Я не бачу, чому . Для нескінченно багатьох значень вас буде , тобто кожного разу, коли ; оскільки швидко зростає, у вас є довші та довші такі послідовності. З вашими визначеннями навіть можливо мати : отже але . k(n)<α(n)nα(n)=k(n)Ak(k)<nAk+1(1)<Ak+1(k+1)Ak+1(1)Ak(k)α(n)<k(n)α2(8)=3>2α(8)=2k(8)=3
Sylvain

Відповіді:


12

Нехай - обернена . . Я стверджую, що .AkαkA1(x)=2x,A2(x)=2x,k1(x)=Ax(x)

Оскільки , а оскільки , . У результаті .x=αx(Ax(x))z,αy(z)>αx(z)αy(Ax(x))>αx(Ax(x))=xk(Ax(x))=x

Тепер розглянемо значення . За визначенням це . Ми знаємо, що , тому . Я стверджую, що . . Тепер , тому . Оскільки , , то . Таким чином,α(k1(n))=α(An(n))αminz{αz(An(n))3}αn(An(n))=nα(An(n))>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(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-Шинцель послідовності, і Deque гіпотезі» , в якій він показав , що " DEQUE операція [в скошеному дереві] дубль лише час , де - мінімальна кількість застосувань зворотної функції Ackermann, відображаючу на постійну. "αnO(nα(n))α(n)n

Ця функція дуже повільно зростає і зростає повільніше, ніж . Розглянемо функціюlogα(n)f:NN

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

Ця функція приблизно настільки ж швидко зростає, як , тим повільніше зростає, ніж . Тепер я оціню та на :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)


Яке відношення між альфа ^ * та k (n)? (зауважте, що у визначенні k (n) я використовую позначення alpha_k (n), визначене у посиланні, яке я мав у запитанні)
Dana Moshkovitz

О, вибачте, я читаю ваш як ! αkαk
jbapple
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.