Iterowany logarytm - Iterated logarithm

W informatyce , w potwierdzili logarytmu z napisanej dziennika * (zwykle czytać „ gwiazdę dziennika ”), to ile razy logarytm funkcja musi być iteracyjnie stosowane przed wynik jest mniejszy niż lub równy . Najprostsza definicja formalna jest wynikiem tej relacji rekurencyjnej :  

Na dodatnich liczbach rzeczywistych ciągły superlogarytm ( tetracja odwrotna ) jest zasadniczo równoważny:

czyli podstawa b powtórzyć logarytm jest , jeśli n mieści się w przedziale , gdzie oznacza tetracja. Jednak dla ujemnych liczb rzeczywistych log-star jest , podczas gdy dla positive , więc obie funkcje różnią się dla argumentów ujemnych.

Rysunek 1. Demonstracja log* 4 = 2 dla logarytmu iterowanego przy podstawie e. Wartość iterowanego logarytmu można znaleźć „zygzakiem” na krzywej y = log b (x) od wejścia n do przedziału [0,1]. W tym przypadku b = e. Zygzakowatość pociąga za sobą rozpoczęcie od punktu (n, 0) i iteracyjne przejście do (n, log b (n) ), do (0, log b (n) ), do (log b (n), 0 ).

Iterowany logarytm przyjmuje dowolną dodatnią liczbę rzeczywistą i daje liczbę całkowitą . Graficznie można to rozumieć jako liczbę „zygzaków” potrzebnych na rysunku 1 do osiągnięcia przedziału na osi x .

W informatyce lg * jest często używany do wskazania binarnego iterowanego logarytmu , który iteruje logarytm binarny (o podstawie ) zamiast logarytmu naturalnego (o podstawie e ).

Matematycznie, iterowany logarytm jest dobrze zdefiniowany dla dowolnej podstawy większej niż , nie tylko dla podstawy i podstawy e .

Analiza algorytmów

Logarytm iterowany jest przydatny w analizie algorytmów i złożoności obliczeniowej , występującej w granicach złożoności czasowej i przestrzennej niektórych algorytmów, takich jak:

Iterowany logarytm rośnie bardzo wolno, znacznie wolniej niż sam logarytm. Dla wszystkich wartości n istotnych dla zliczania czasów działania algorytmów zaimplementowanych w praktyce (tj. n  ≤ 2 65536 , czyli znacznie więcej niż szacowana liczba atomów w znanym wszechświecie), iterowany logarytm o podstawie 2 ma wartość nie więcej niż 5.

Iterowany logarytm o podstawie 2
x lg *  x
(−∞, 1] 0
(1, 2] 1
(2, 4] 2
(4, 16] 3
(16, 65536] 4
(65536, 2 65536 ] 5

Wyższe podstawy dają mniejsze iterowane logarytmy. Rzeczywiście, jedyną funkcją powszechnie używaną w teorii złożoności, która rośnie wolniej, jest odwrotna funkcja Ackermanna .

Inne aplikacje

Iterowany logarytm jest ściśle powiązany z uogólnioną funkcją logarytmiczną używaną w arytmetyce symetrycznego wskaźnika poziomu . Jest również proporcjonalna do trwałości addytywnej liczby , liczby przypadków , gdy ktoś musi zastąpić liczbę sumą jej cyfr, zanim osiągnie swój cyfrowy pierwiastek .

W teorii złożoności obliczeniowej Santhanam pokazuje, że zasoby obliczeniowe DTIMEczas obliczeń dla deterministycznej maszyny Turinga — i NTIME — czas obliczeń dla niedeterministycznej maszyny Turinga — są różne do

Uwagi

Bibliografia