Twierdzenie o rekurencji uniwersalnej
Z Wikipedii
| Zasugerowano, aby ten artykuł zintegrować z artykułem Rekurencja uniwersalna. |
Twierdzenie o rekurencji uniwersalnej jest twierdzeniem matematycznym pozwalającym w łatwy sposób znajdować ograniczenie asymptotyczne pewnej klasy funkcji zdefiniowanych rekurencyjnie.
Spis treści |
[edytuj] Twierdzenie o rekurencji uniwersalnej
Jeżeli funkcja
, dla
i funkcji dodatniej
, jest zdefiniowana następująco:

to:
-
- Jeżeli
dla pewnej stałej
, to 
- Jeżeli
, to 
- Jeżeli
dla pewnej stałej ε > 0 i jeżeli
dla pewnej stałej
, dla dostatecznie dużych n, to 
- Jeżeli
Tak zdefiniowane funcje T stanowią pewien schemat działania algorytmów typu "dziel i zwyciężaj" - problem o rozmiarze
dzielony jest na
podproblemów, każdy wielkości
, funkcja
przedstawia koszt dzielenia problemu, oraz połączenia rozwiązań podproblemów.
[edytuj] Intuicyjna interpretacja
Każdy z trzech przypadków rekurencji uniwersalnej sprowadza się do stwierdzenia, która z funkcji
i f jest "większa". Gdy znana jest odpowiedź na to pytanie, automatycznie znane jest asymptotyczne ograniczenie danej rekursji - jest nią owa "większa funkcja".
[edytuj] "Dziury" rekurencji uniwersalnej
Należy zdawać sobie sprawę, że twierdzenie o rekurencji uniwersalnej nie wyczerpuje wszystkich przypadków, nawet rekursji "typu"
- pomiędzy przypadkami twierdzenia istnieją "dziury". W pierwszym przypadku funkcja f musi być wielomianowo mniejsza od
. W trzecim przypadku oprócz wielomianowej mniejszości wymagana jest pewna "regularność", "gładkość" funkcji. Jeżeli funkcja f należy do którejś z tych funkcji dla których nie ma "wielomianowej różnicy", to twierdzenie o rekursji uniwersalnej nie pozwala znaleźć asymptotycznego oszacowania rekursji.
[edytuj] Dowód twierdzenia o rekurencji uniwersalnej
[edytuj] Dla n będących potęgą b
Niech n będzie potęgą liczby rzeczywistej b, takiej, że b > 1
[edytuj] Lemat 1
Niech zmienne a, b i funkcja f będą zdefinowane jak powyżej. Jeśli dla pewnej dodatniej liczby całkowitej i funkcja T jest zdefinowana następująco:
to
(*)
[edytuj] Dowód
Rozważmy drzewo rekursji funkcji T zdefiniowanej jak wyżej.
- Koszt korzenia drzewa wynosi f(n), a jego każdego z a synów -
. Dla każdego syna korzenia koszt każdego z jego a synów wynosi
. A więc istnieje dokładnie a2 węzłów leżących w odległości 2 od korzenia
- Ogólniej, dla j < b istnieje
węzłów o koszcie
oddalonych od korzenia o odległość j.
-
- Koszt każdego liścia wynosi
, a ponieważ
to każdy liść znajduje się na głębokości
. Drzewo rekursji posiada
liści.
- Koszt każdego liścia wynosi
Sumując koszty wszystkich poziomów drzewa otrzymamy równanie (*), ponieważ koszt wszystkich "poziomów" węzłów właściwych (tj. nie będących liśćmi) wynosi
a koszt liści to 
[edytuj] Lemat 2
Niech a, b i f będą określone jak powyżej. Jeżeli g jest funkcją określoną dla n będących potęgami b w następujący sposób:
To dla n będących potęgami b funkcję g można oszacować:
-
- Jeżeli
dla pewnej stałej
, to 
- Jeżeli
, to 
- Jeżeli
dla pewnej stałej ε > 0 i jeżeli
dla pewnej stałej
, dla dostatecznie dużych n, to 
- Jeżeli
[edytuj] Dowód
[edytuj] Dowód
Korzystając z oszacowania z lematu 2 dla sumy (*). Dla kolenych przypadków z lematu 2 zachodzi:
, ponieważ 
[edytuj] Dla dowolnych n
Dla dowolnych n (nie będących potęga b) wartość argumentu
może oznaczać
lub
.
Odpowiednio górne i dolne oszacowanie dla funkcji
-
(1)
i
-
(2)
jest banalne do znalezienia, przy wykorzystaniu własności
i 
Równanie rekurencyjne można oszacować z góry w następujący sposób:
Niech
![n[i]=\left\{ \begin{matrix} \ n &: i=0\\
\ \left\lceil \frac{n[i-1]}{b} \right\rceil &:i>0 \end{matrix} \right.](http://upload.wikimedia.org/math/9/7/8/978b9be601076b144758faede6e12f59.png)
Wtedy schodzenie w dół rekursji oznacza jej rekurencyjne wywoływanie kolejno dla argumentów ![\! n[0],\ n[1],\ n[2],\ \cdots](http://upload.wikimedia.org/math/f/a/e/fae486e25a8129d563fd685f9b67f75b.png)
Korzystając z nierówności
mamy:
Dla 
Oznacza to, że dla wywołań rekursji na poziomie co najmniej
i większych rozmiar problemu jest stały.
| Tomasz Piszcz wygrał żużlowy turniej w Lublinie |
|
Tomasz Piszcz wygrał w Lublinie żużlowy turniej zaliczany do Pucharu MACEC (Stowarzyszenia Motocyklowego Krajów Europy Środkowej).
|
| MŚ w piłce nożne plażowej: zacięte półfinały |
|
Brazylia zagra z Włochami w finale rozgrywanych w Marsylii mistrzostw świata w piłce nożnej plażowej.
|
| MŚJ klasy 470: słaby wiatr przyniósł zmiany liderów |
|
Pierwszy dzień wyścigów finałowych mistrzostw świata juniorów w żeglarskiej klasie 470 przyniósł spore zmiany w klasyfikacji generalnej. Zarówno wśród kobiet jak i mężczyzn nastąpiły zmiany liderów.
|
| Niemcy mistrzami Europy U-19 |
|
Piłkarska reprezentacja Niemiec pokonała Włochów 3:1 (1:0) w meczu finałowym mistrzostw Europy do lat 19 w czeskim Jabloncu.
|
| Puchar Intertoto: zadecydował 24. karny! |
|
Piłkarze Aston Villa Birmingham pokonali na własnym boisku Odense BK 1:0 (0:0) w rewanżowym spotkaniu trzeciej rundy Pucharu Intertoto. W nagrodę "The Villans" wystąpią w drugiej rundzie kwalifikacyjnej Pucharu UEFA.
|





![n[0] \le n](http://upload.wikimedia.org/math/0/9/0/090e9f9c599de57ad3e85d33ec3fbbab.png)
![n[1] \le \frac{n}{b}\ +\ 1](http://upload.wikimedia.org/math/a/2/8/a289cd905aafd88eb0b759d6e6cdff35.png)
![n[2] \le \frac{n}{b^2}\ +\ \frac{1}{b}\ +\ 1](http://upload.wikimedia.org/math/f/3/1/f31bf6e73b211240d1509284f3bbef93.png)
![n[3] \le \frac{n}{b^3}\ +\ \frac{1}{b^2}\ +\ \frac{1}{b}\ +\ 1](http://upload.wikimedia.org/math/7/5/7/7576308c1f6b8b3dcf4468a6f2244800.png)

![n[i] \le \frac{n}{b^i}\ +\ \sum_{k = 0}^{i-1} \frac{1}{b^k}\ <\ \frac{n}{b^i}\ +\ \sum_{k = 0}^{\infty } \frac{1}{b^k}\ =\ \frac{n}{b^i}\ +\ \frac{b}{b-1}](http://upload.wikimedia.org/math/0/0/3/003d11f6448de2d164b50eaca82fa280.png)
![\! n[i]\ =\ n[\left\lfloor \log _bn \right\rfloor ]\ <\ \frac{n}{b^{\left\lfloor \log _bn \right\rfloor}}\ +\ \frac{b}{b-1}\ \le \ \frac{n}{b^{\log _bn -1}}\ +\ \frac{b}{b-1}\ =\ \frac{n}{\frac{n}{b}}\ +\ \frac{b}{b-1}\ \in O(1)](http://upload.wikimedia.org/math/f/5/7/f57c08febf0b5e04216258c358d942e8.png)