Aplikujme opět iterační metodu na „obecnou“ rekurenci
Prvních několik iterací dává
Po $k$ iteracích pak dostáváme
Určíme ukončovací podmínku. Iteraci zastavíme pokud $\frac{n}{b^k} = 1$, tedy po $k = \log_b n$ iteracích (případně „$\leq$“ místo „$=$“). Pak klademe $T(1) = \Theta(1)$.
Celkem se tedy dostáváme ke vztahu
Abychom vystihli chování $T(n)$, tak je potřeba rozhodnout, který z uzávorkovaných výrazů $A(n)$ a $B(n)$ je asymptoticky významnější. To můžeme vždy zkoumat v konkrétním případě (pro konkrétní volbu $a$, $b$ a $f$ – to přesně dělá iterační metoda), nebo se můžeme omezit na několik kvalitativně odlišných situací, což přesně činí následující věta.
Nechť $a \geq 1$ a $b > 1$ jsou reálné konstanty, $f$ kladná funkce jedné proměnné. Uvažujme rekurentní rovnici
kde $\frac{n}{b}$ v argumentu může znamenat i $\lceil \frac{n}{b} \rceil$ nebo $\lfloor \frac{n}{b} \rfloor$.
Potom (všechny vztahy myšleny pro $n \to \infty$):
Pokud $f(n) = \mathcal{O}(n^{\log_b(a) - \varepsilon})$ pro nějaké $\varepsilon > 0$, potom $T(n) = \Theta(n^{\log_b(a)})$.
Pokud $f(n) = \Theta(n^{\log_b(a)})$, pak $T(n) = \Theta\big(n^{\log_b(a)} \cdot \ln(n)\big)$.
Pokud $f(n) = \Omega(n^{\log_b(a) + \varepsilon})$ pro nějaké $\varepsilon > 0$ a pokud existuje $d \in (0, 1)$ a $n_0 \in \N$ takové, že
pak $T(n) = \Theta(f(n))$.
Kompletní důkaz na tomto místě podávat (zatím) nebudeme. Omezíme se jen na jeho náčrt v jednom případě. Nejprve ale pro jistotu čtenáře upozorněme:
Jednotlivé body Mistrovské metody nepokrývají všechny situace, které mohou nastat. V takovém případě je možné se uchýlit k iterační metodě.
Pokud $f(n) = \Theta(n^{\log_b(a)})$, pak existují dvě konstanty $c_1, c_2$ a $n_0$ takové, že
Protože
rozdělím sumu v $A(n)$ následovně
Suma $C(n)$ obsahuje $\log_{b}(n_0)$ sčítanců, navíc $1\leq \frac{n}{b^j} \leq n_0$, proto
Celkem $C(n) = \mathcal{O}\left(n^{\log_b(a)}\right)$.
Odhad $S(n)$ shora:
Analogicky provedeme i spodní odhad, tj. celkem $S(n) = \Theta(n^{\log_b(a)} \ln(n))$.
Protože $B(n) = \Theta(n^{\log_b(a)})$ celkem dostáváme
Tím je důkaz dokončen.
$\square$
Pojďme se nyní podívat na konkrétní příklad. Více příkladů lze nalézt ve výše zmíněné cvičebnici na MARASTu.
Aplikujte Mistrovskou metodu na rekurenci
Máme $a = 6$ a $b = 4$, tudíž
Proto jistě existuje kladné $\varepsilon$ (numericky třeba $1/10$) takové, že
V Mistrovské metodě jsme proto v první situaci a dostáváme výsledek
Aplikujte Mistrovskou metodu na rekurenci
Máme $a = 2$ a $b = 2$, tudíž
a
V Mistrovské metodě jsme proto v druhé situaci a dostáváme výsledek
Aplikujte Mistrovskou metodu na rekurenci
Máme $a = 3$ a $b = 4$, tudíž
Proto existuje kladné $\varepsilon$ takové, že
Dále
kde za $d \in (0,1)$ volíme například $\frac{3}{4}$. V Mistrovské metodě jsme proto v třetí situaci a dostáváme výsledek
Aplikujte Mistrovskou metodu na rekurenci
Máme $a = 3$ a $b = 4$, tudíž
Proto existuje kladné $\varepsilon$ takové, že
Dále
kde za $d \in (0,1)$ volíme například $\frac{3}{4^2}$. V Mistrovské metodě jsme proto v třetí situaci a dostáváme výsledek
Lineární rekurentní rovnice řádu $k \in \N$ (zkráceně LRR) je rovnice tvaru
kde $n_0 \in \Z$ a $(c_{i,n})_{n=n_0}^\infty$, $i = 0,1,\ldots,k-1$, (tzv. koeficienty rovnice) a $(b_n)_{n=n_0}^\infty$ (tzv. pravá strana rovnice) jsou zadané posloupnosti a posloupnost $(c_{0,n})_{n=n_0}^\infty$ není nulová posloupnost. Jestliže $b_n = 0$ pro každé $n \geq n_0$, pak se příslušná rovnice nazývá homogenní. Přidruženou homogenní rovnicí k rovnici (6.2) nazýváme LRR se stejnými koeficienty a nulovou pravou stranou ($b_n = 0$ pro každé $n \geq n_0$).