article

Notacja dużego O (wielka literą O, nie zero), zwana również notacją Landaua, to symbolika używana w teorii złożoności obliczeniowej, informatyce i matematyce do opisu asymptotycznego zachowania funkcji. Notacja Landaua opisuje, jak szybko dana funkcja rośnie lub maleje, abstrahując od konkretnej postaci tych zmian.

Nazwa notacja Landaua pochodzi od niemieckiego teoretyka liczb Edmunda Landaua, który spopularyzował tę notację.

Definicje


Niech dane będą funkcje f(x) i g(x) zmiennej rzeczywistej o wartościach rzeczywistych.
Zapis f(x) = O(g(x)) oznacza, że istnieje taka liczba C > 0 i takie x0, że dla wszystkich x>x0 zachodzi nierówność |f(x)| ≤ C·|g(x)|.

Wersja notacji dla zachowania się funkcji w pobliżu punktu a:

f(x) = O(g(x)) jeżeli istnieje takie C > 0 i takie δ>0, że dla dowolnych x takich, że |x - a| < δ zachodzi nierówność |f(x)| ≤ C · |g(x)|.

Należy zauważyć, że nie precyzuje się tu dziedziny funkcji f i g – zależy ona od kontekstu w jakim występują obie funkcje.

Uwagi


Znak "=" nie oznacza tutaj równości, jest on zdefiniowany przez podane wyżej określenia. Notacja O-duże pozwala wykonywać działania na funkcjach, na przykład:
  • jeśli f(x) = O(r(x)) i g(x) = O(r(x)), to również f(x) ± g(x) = O(r(x)).
  • przy założeniach jak poprzednio,  f(xg(x) = O(r2(x))
Wygoda notacji O-duże widoczna jest w następującej sytuacji: jeżeli f(x) = 2x3 - x2+100x, to można napisać zarówno f(x) = O(x3), jak i f(x) = 2x3 + O(x2), czy wreszcie f(x) = 2x3 - x2 + O(x), zależnie od wymaganej dokładności oszacowań.

Napis g(x) = f(x) + O(h(x)) należy rozumieć jako g(x) – f(x) = O(h(x)).

Przykłady


  • Jeżeli f(x) = 1000x50 + 2x2 oraz g(x) = 0,0000001x50 + 666x, to f(x) = O(x50) oraz g(x) = O(x50), ale również f(x) = O(g(x)).
  • Niech S(n) = 1 + 2 + ... + n. Korzystając ze wzorów sumacyjnych: S(n) = n(n+1)/2  < 3·n2, a zatem O(n2).
  • Jeżeli potrzebne jest dokładniejsze oszacowanie S(n), to na podstawie
tego samego wzoru sumacyjnego można napisać S(n) = n2/2 + n/2 =  n2/2 + O(n)
  • Analogicznie można napisać, że 12 + 22 + ... + n2 = O(n3)

Standardowe oszacowania

W zastosowaniach szczególnie często notacja O-duże pojawia się w następujących sytuacjach:

Rozwinięcie symboliki


Notacja O-duże pozwala tylko stwierdzić, że wzrost danej funkcji nie jest szybszy niż wzrost funkcji podanej w nawiasie za O. Często to nie wystarcza – notacja Landaua obejmuje i takie przypadki. Pisze się:
  • f(x) = Ω(g(x))), gdy g(x) = O(f(x)) – teraz g(x) ogranicza wzrost f(x) od dołu. Oznacza to, że istnieje taka stała c, że |g(x)| ≤ c·|f(x)| dla x określonych jak w definicji O.
  • f(x) = Θ(g(x)), gdy f(x) = O(g(x)) i f(x) = Ω(g(x)) jednocześnie. Oznacza to, że istnieją stałe c i C takie, że c·|g(x)| ≤ |f(x)| ≤ C·|g(x)| dla wszystkich dużych x, a zatem funkcje f i g wzrastają "jednakowo" szybko.
  • f(x) = o(g(x)), gdy lim f(x)/g(x) = 0
  • f(x) = ω(g(x)), gdy g(x) = o(f(x))

Szczególnie ważne i często używane są dwie pierwsze notacje z tej listy.

Zobacz też


Teoria obliczeń

Big O notation | Cota superior asintótica | O-большое | Ordo | สัญกรณ์โอใหญ่ | 大O符号

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Notacja dużego O".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld