Co oznacza tylda w notacji big-O?

14

Czytam artykuł i w jego opisie złożoności czasowej napisano, że złożoność czasowa to .O~(22n)

Przeszukałem internet i wikipedię, ale nie mogę znaleźć tego, co oznacza tylda w notacji big-O / Landau. W samym artykule nie znalazłem też żadnych wskazówek na ten temat. Co oznacza ?O~()

Johannes Schaub - litb
źródło
1
„Przeszukałem internet” Jak? :-) Zwykle w przypadku takich pytań moją pierwszą reakcją jest to, że Google natychmiast poda odpowiedź. Ale w tym przypadku nie mam pojęcia, jakiego wyszukiwanego terminu użyłbym!
David Richerby,
Szukałem „tylda symboli landau”, ale nie pojawiło się nic rozstrzygającego. Myślę, że Google potrzebuje sztucznej inteligencji, która wie, jak wygląda tylda i szuka tego w renderowanych zdjęciach TeX: p
Johannes Schaub - litb
Inną, którą czasem widzisz, jest gwiazda Big Oh, czyli . Jest powszechnie używany np. Z dokładnymi algorytmami czasu wykładniczego, a notacja tłumi czynniki ograniczone wielomianowo w wielkości wejściowej. O
Juho

Odpowiedzi:

19

Jest to wariant dużego O, który „ignoruje” czynniki logarytmiczne:

f(n)O~(h(n))

jest równa:

k:f(n)O(h(n)logk(h(n)))

Z Wikipedii :

Zasadniczo jest to notacja wielka- , ignorująca czynniki logarytmiczne, ponieważ efekty tempa wzrostu niektórych innych funkcji superlogarytmicznych wskazują na eksplozję tempa wzrostu dla dużych parametrów wejściowych, która jest ważniejsza dla przewidywania złej wydajności w czasie wykonywania niż efekty drobniejszych punktów wnoszone przez czynnik (czynniki) logarytmiczny. Notacja ta jest często używana w celu uniknięcia „szarpania” w ramach stóp wzrostu, które są określone jako zbyt ściśle ograniczone do rozpatrywanych spraw (ponieważ jest zawsze dla dowolnego stałego i dowolnego ).Ologkno(nε)kε>0

manlio
źródło
Czy mam rację, stwierdzając, że i są różne? Jest to mylące, ponieważ wydaje się, że są używane zamiennie. O(22n+o(n))O~(22n)
Johannes Schaub - litb
1
@ JohannesSchaub-litb Tak, istnieją funkcje, które rosną więcej niż dla każdego a jednak rosną mniej niż , a zatem są uwzględnione w pierwszym, ale nie drugim. W każdym razie: celem tego zapisu jest pokazanie tylko ważnej części asymptotycznej złożoności i ogólnie nie jest uważane za ważne. logknkno(n)
Bakuriu
2
W konsekwencji jest taka sama jak . @ JohannesSchaub-litb jest taki sam jak . Jeśli naprawdę miałeś na myśli , obejmuje to , ale także kilka funkcji rosnących nieco szybciej. Ludzie często używają go zamiast ponieważ nie jest to złe, to mniej znany zapis, a utrata precyzji często nie ma znaczenia. O~(22n)O(22npoly(n))O(22n+o(n))O(22n)O(22n+o(n)) O~(22n)O~(22n)O~
Emil Jeřábek
Ach, rozumiem teraz, dzięki. To ma sens
Johannes Schaub - litb