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~(⋅)


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 ).Ologk⁡no(nε)kε>0


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. logk⁡nkno(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
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.