Matematyka dyskretna 1/Wykład 9: Asymptotyka: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 63: | Linia 63: | ||
* <math>O(2^n)</math> | * <math>O(2^n)</math> | ||
** <math>3\cdot2^n+n=O(2^n)</math>, bo <math>n\leq 2^n</math>, | ** <math>3\cdot2^n+n=O(2^n)</math>, bo <math>n\leq 2^n</math>, a zatem <math>3\cdot2^n+n\leq 4\cdot2^n</math> dla dowolnego <math>n</math>. | ||
a zatem <math>3\cdot2^n+n\leq 4\cdot2^n</math> dla dowolnego <math>n</math>. | |||
}} | }} | ||
Linia 79: | Linia 78: | ||
[[Rysunek: Szkic na kartce.]] | [[Rysunek: Szkic na kartce.]] | ||
Pozostałe dwa symbole: <math>o,\omega</math> są rzadziej stosowane w informatyce. Wyznaczają one funkcje asymptotycznie, ściśle mniejsze [większe] od podanej funkcji. | |||
{{kotwica|funasymptmn|'''Funkcja asymptotycznie mniejsza'''}} od funkcji <math>g(n)</math> to taka funkcja <math>f: \mathbb{N} \longrightarrow \mathbb{R}</math>, że dla każdego <math>c>0</math> istnieje <math>n_0\in\mathbb{N}</math>, przy którym <math>\left\vert f(n)\right\vert<c\cdot\left\vert g(n)\right\vert</math> dla wszystkich <math>n\geq n_0</math>.<br> | |||
Zbiór funkcji asymptotycznie mniejszych niż <math>g(n)</math> oznaczamy przez <math>o(g(n))</math>. A zatem <math>f(n)= o(g(n))</math> wtedy i tylko wtedy, gdy <math>\lim_{n \rightarrow \infty} \frac{f(n)}{g(n)}=0</math>. | |||
{{kotwica|funasymptwi|'''Funkcja asymptotycznie większa'''}} od funkcji <math>g(n)</math> to taka funkcja <math>f: \mathbb{N} \longrightarrow \mathbb{R}</math>, że dla każdego <math>c>0</math> istnieje <math>n_0\in\mathbb{N}</math>, przy którym <math>c\cdot\left\vert g(n)\right\vert<\left\vert f(n)\right\vert</math> dla wszystkich <math>n\geq n_0</math>.<br> | |||
Zbiór funkcji asymptotycznie większych niż <math>g(n)</math> oznaczamy przez <math>\omega(g(n))</math>. A zatem <math>f(n)=\omega(g(n))</math> wtedy i tylko wtedy, gdy <math>\lim_{n \rightarrow \infty} \frac{g(n)}{f(n)}=0</math>. | |||
Oto kilka prostych faktów wiążących kolejne symbole asymptotyczne. Pozostawiamy je bez dowodu. | |||
{{obserwacje|9.1|obs 9.1| | |||
Dla funkcji <math>f,g: \mathbb{N} \longrightarrow \mathbb{R}</math> mamy: | |||
* jeśli <math>f(n)=O(g(n))</math>, <math>g(n)=O(h(n))</math>, to <math>f(n)=O(h(n))</math>, | |||
* jeśli <math>f(n)=\Omega(g(n))</math>, <math>g(n)=\Omega(h(n))</math>, to <math>f(n)=\Omega(h(n))</math>, | |||
* jeśli <math>f(n)=o(g(n))</math>, <math>g(n)=o(h(n))</math>, to <math>f(n)=o(h(n))</math>, | |||
* jeśli <math>f(n)=\omega(g(n))</math>, <math>g(n)=\omega(h(n))</math>, to <math>f(n)=\omega(h(n))</math>, | |||
* <math>f(n)=\Theta(g(n))</math> wtedy i tylko wtedy, gdy <math>g(n)=\Theta(f(n))</math>, | |||
* <math>f(n)=O(g(n))</math> wtedy i tylko wtedy, gdy <math>g(n)=\Omega(f(n))</math>, | |||
* <math>f(n)=o(g(n))</math> wtedy i tylko wtedy, gdy <math>g(n)=\omega(f(n))</math>.}} | |||
Symbole asymptotyczne mogą pojawić się w złożonych wyrażeniach arytmetycznych. | |||
Dla przykładu wspomnijmy jeszcze raz sumę kolejnych kwadratów: <math>\sum_{i=0}^n i^2=\frac{1}{3}n^3+\frac{1}{2}n^2+\frac{1}{6}n</math>. Możemy teraz napisać <math>\sum_{i=0}^ni^2=O(n^3)</math>, ale także <math>\sum_{i=0}^ni^2=\frac{1}{3}n^2+O(n^2)</math>, co formalnie oznacza <math>\sum_{i=0}^ni^2-\frac{1}{3}n^3\in O(n^2)</math>. Co więcej okazuje się, że symbol <math>=</math> może pełnić nie tylko rolę <math>\in</math>, ale czasami także rolę <math>\subseteq</math>. Na przykład wyrażenie | |||
<center><math>\frac{1}{3}n^3+O(n^2)=O(n^3), | |||
</math></center> | |||
ma po obu stronach"równości" zbiory funkcji, przy czym po lewej stronie są to wszystkie funkcje postaci <math>\frac{1}{3}n^3+f(n)</math> dla <math>f(n)=O(n^2)</math>. W tej sytuacji znak <math>=</math> powinien być formalnie rozumiany jako inkluzja <math>\subseteq</math>. | |||
Nadużywając znaku "równości" musimy jednak uważać i pamiętać, że w konwencji asymptotycznej taki nadużyty znak <math>=</math> nie jest relacją symetryczną. | |||
Rzeczywiście, <math>O(n^3)\neq\frac{1}{3}n^3+O(n^2)</math>, gdyż np. funkcja <math>n^3\in O(n^3)</math>, ale <math>n^3\notin\frac{1}{3}n^3+O(n^2)</math>. | |||
Jednak pożytki płynące z takiego "przeciążenia" znaku równości sprawiedliwiają te nadużycia. W następnej Obserwacji w taki właśnie sposób sformułujemy (bez oczywistego dowodu) kilka własności notacji <math>O</math>. Z nich mozna łatwo otrzymać analogiczne własności dla <math>\Omega</math> i <math>\Theta</math>. |
Wersja z 19:36, 21 sie 2006
Widzieliśmy już, że wskazanie postaci zwartej dla ciągu zadanego równaniem rekurencyjnym jest często zadaniem niełatwym. Do tej pory nie jest znana zwarta postać wielu równań. Na szczęście często jesteśmy w sytuacji, w której zadowoli nas przybliżenie odpowiedzi. Wróćmy do rozważanej wielokrotnie sumy kolejnych kwadratów . Fakt, że jest to wielomian -go stopnia zmiennej , to już wartościowa informacja, często zupełnie wystarczająca. Spotkaliśmy się już nie raz z oszacowaniami poprzez zwykłe nierówności. To podejście często wymaga użycia narzędzi z analizy matematycznej, w szczególności znajdowania ekstremum funkcji.
Przykład
Silnię liczby naturalnej można trywialnie oszacować przez . Przyjrzyjmy się delikatniejszemu oszacowaniu wskazującemu także dolne ograniczenie na .
Najpierw zauważmy, że
Potraktujmy jako wielomian drugiego stopnia zmiennej . Łatwo zauważyć, że dla przybiera on najmniejszą wartość w punkcie , a największą w punkcie . Zatem dla mamy i dalej
czyli
Nierówności w oszacowaniach bywają niepotrzebnie krępujące. Zaś wyniki w ten sposób otrzymane, często skupiają naszą uwagę na zbędnych i czasem nieinteresujących detalach. Często bowiem wystarczają nam przybliżone, asymptotyczne oszacowania ciągów lub ogólniej funkcji. Opisują one zachowanie funkcji wraz ze wzrostem argumentu. Podczas przekształceń rachunkowych celowo ograniczamy naszą wiedzę o funkcji, dzięki czemu łatwiej jest rachować i otrzymać zadowalającą postać przybliżającą.
W oszacowaniach asymptotycznych posługujemy się ogólnie przyjętymi symbolami opisującymi asymptotyczne zachowanie jednej funkcji wobec drugiej. Najpowszechniej używany jest symbol przydatny w analizie górnej granicy asymptotycznej. Po raz pierwszy tego symbolu użył niemiecki teorio-liczbowiec Paul Bachmann w 1894. Prace Edmunda Landau'a (także niemieckiego teorio-liczbowca) spopularyzowały tę notację, stąd czasami jest nazywany symbolem Landau'a. Notację asymptotyczną wprowadzimy jedynie dla funkcji zdefiniowanych na zbiorze (lub jego podzbiorach postaci ) o wartościach w .
Notacja asymptotyczna
Funkcja asymptotycznie niewiększa od funkcji to taka funkcja , dla której istnieją i , że Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertf(n)\right\vert\leq c\cdot\left\vertg(n)\right\vert}
dla wszystkich .
Będziemy też często mówić, że Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertf(n)\right\vert\leq c\cdot\left\vertg(n)\right\vert}
zachodzi dla prawie wszystkich liczb naturalnych .
Zbiór funkcji asymptotycznie niewiększych niż oznaczamy przez .
Ponieważ jest zbiorem funkcji, poprawnie powinniśmy zapisywać , gdy spełnia warunek podany w definicji. Jednak przyjęło się zapisywać . Jest to pewne nadużycie symbolu równości . Jednak tradycja, a jak się niebawem okaże, również i wygoda użycia, są wystarczającym usprawiedliwieniem dla tego nadużycia. W związku z tym napis czytamy " jest -duże od ".
Przykład
- , to zbiór funkcji ograniczonych.
Istotnie warunek zachodzący dla prawie wszystkich łatwo jest, poprzez zamianę stałej na inną , sprowadzić do warunku zachodzącego już dla wszystkich , jako że skończenie wiele wartości dla początkowych daje się ograniczyć przez stałą.
- każda funkcja stała jest np. jest , bo dla dowolnego ,
- , bo dla dowolnego ,
- , bo dla dowolnego ,
- , bo dla , zatem dla .
- to zbiór funkcji ograniczonych przez funkcję liniową:
- wszystkie funkcje są też ,
- , bo dla ,
- , bo dla dowolnego .
-
- ,
- ,
- (funkcja ta jest także i ).
-
- , bo , a zatem dla dowolnego .
Więcej przykładów i ogólniejszych obserwacji poznamy po prezentacji pozostałych pojęć i symboli notacji asymptotycznej.
Funkcja asymptotycznie niemniejsza od funkcji to taka funkcja , dla której istnieją i , że dla wszystkich .
Zbiór funkcji asymptotycznie niemniejszych niż
oznaczamy przez .
Funkcja asymptotycznie podobna do funkcji to taka funkcja , dla której istnieją i , że
dla wszystkich .
Zbiór funkcji asymptotycznie podobnych do oznaczamy przez . A zatem .
Pozostałe dwa symbole: są rzadziej stosowane w informatyce. Wyznaczają one funkcje asymptotycznie, ściśle mniejsze [większe] od podanej funkcji.
Funkcja asymptotycznie mniejsza od funkcji to taka funkcja , że dla każdego istnieje , przy którym dla wszystkich .
Zbiór funkcji asymptotycznie mniejszych niż oznaczamy przez . A zatem wtedy i tylko wtedy, gdy .
Funkcja asymptotycznie większa od funkcji to taka funkcja , że dla każdego istnieje , przy którym dla wszystkich .
Zbiór funkcji asymptotycznie większych niż oznaczamy przez . A zatem wtedy i tylko wtedy, gdy .
Oto kilka prostych faktów wiążących kolejne symbole asymptotyczne. Pozostawiamy je bez dowodu.
Obserwacja 9.1
Dla funkcji mamy:
- jeśli , , to ,
- jeśli , , to ,
- jeśli , , to ,
- jeśli , , to ,
- wtedy i tylko wtedy, gdy ,
- wtedy i tylko wtedy, gdy ,
- wtedy i tylko wtedy, gdy .
Symbole asymptotyczne mogą pojawić się w złożonych wyrażeniach arytmetycznych. Dla przykładu wspomnijmy jeszcze raz sumę kolejnych kwadratów: . Możemy teraz napisać , ale także , co formalnie oznacza . Co więcej okazuje się, że symbol może pełnić nie tylko rolę , ale czasami także rolę . Na przykład wyrażenie
ma po obu stronach"równości" zbiory funkcji, przy czym po lewej stronie są to wszystkie funkcje postaci dla . W tej sytuacji znak powinien być formalnie rozumiany jako inkluzja .
Nadużywając znaku "równości" musimy jednak uważać i pamiętać, że w konwencji asymptotycznej taki nadużyty znak nie jest relacją symetryczną. Rzeczywiście, , gdyż np. funkcja , ale . Jednak pożytki płynące z takiego "przeciążenia" znaku równości sprawiedliwiają te nadużycia. W następnej Obserwacji w taki właśnie sposób sformułujemy (bez oczywistego dowodu) kilka własności notacji . Z nich mozna łatwo otrzymać analogiczne własności dla i .