Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
aa:lab:sol:7 [2025/11/16 14:57] aureliu.antonie edit 1 d |
aa:lab:sol:7 [2025/11/16 23:00] (current) aureliu.antonie edit substitie 2 |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | === 1. === | + | +=== 1. === |
| * $ T_a(n) = 2T_a(n-1) + 1$ | * $ T_a(n) = 2T_a(n-1) + 1$ | ||
| Line 13: | Line 13: | ||
| * $ T_c(n) = 2T_c(n/2) + \log(n)$ | * $ T_c(n) = 2T_c(n/2) + \log(n)$ | ||
| - | ** Metoda substitutiei ** \\ | + | ** Metoda substitutiei** \\ |
| - | Vrem sa demonstram ca $ T_c(n) = \Theta(n), \ T_c(1) = 1$ \\ | + | Vrem sa demonstram ca $ T_c(n) = \Theta(n), \ presupunem \ T_c(1) = 1$ \\ |
| - | $ <=> \exists k_1, k_2 > 0 $ a.i. $ k_1 n \le T_c(n) \le k_2 n$\\ | + | $ <=> \exists c_1, c_2 > 0 $ a.i. $ c_1 n \le T_c(n) \le c_2 n$\\ |
| - | Caz de baza: n = 2 \\ | + | $ Ca \ sa \ demonstram \ ca \ T_c(n) = \Theta(n), \ vom \ demonstra \ ca \ T_c(n) = O(n) \ (1) \ si \ T_c(n) = \Omega(n) \ (2)$\\ |
| - | $ T_c(2) = \Theta(2) $ \\ | + | (2) Caz de baza: n = 16 \\ |
| - | $ <=> \exists c_1, c_2 > 0 $ a.i. \\ | + | $ c_1 * 16 \le T_c(16)$\\ |
| - | $ c_1 * 2 \le T_c(2) \le c_2 * 2 $\\ | + | $ c_1 * 16 \le 42 $ \\ |
| - | $ c_1 * 2 \le 2 * T_c(1) + \log 2 \le c_2 * 2 $\\ | + | $ => c_1 \le \frac{21}{8} $\\ |
| - | $ c_1 * 2 \le 3 \le c_2 * 2 $\\ | + | $ (2) \ Pas \ inductiv $\\ |
| - | (A) pentru $ c_1 = 1 $ si $ c_2 = 2 $\\ | + | $ Presupunem \ ca \ T_c(n/2) = \Omega(n/2) $\\ |
| - | Pasul inductiv: \\ | + | $ <=> \ \exists c_1 > 0 \ a.i. \ c_1 * \frac{n}{2} \le T_c(n/2) $\\ |
| - | Presupunem $ T_c(\frac n 2) = \Theta(\frac n 2) $ \\ | + | $ <=> c_1 * n \le 2 * T_c(n/2) $\\ |
| - | $ \exists c_1, c_2 > 0 $ a.i. \\ | + | $ <=> c_1 * n + \log n\le T_c(n) $\\ |
| - | $ c_1 \frac n 2 \le T_c(\frac n 2) \le c_2 \frac n 2 \ \ \ \ | *2 $\\ | + | $ <=> c_1 * n \le c_1 * n + \log n\le T_c(n) $\\ |
| - | $ c_1 * n \le 2 * T_c(\frac n 2) \le c_2 * n \ \ \ \ | + \log n $\\ | + | $ => \ T_c(n) = \Omega(n) $\\ |
| - | $ c_1 * n + \log n \le T_c(n)\le c_2 * n + \log n $\\ | + | $ (1) Pentru \ usurinta, \ vom \ demonstra \ restrictia \ T_c(n) \le c_2 n - 2 \log n $\\ |
| - | $ pentru\ k_1 = c_1 => k1n \le c_1n + \log n $\\ | + | (1) Caz de baza: n = 16 \\ |
| - | $ pentru\ k_2 = c_2 + 1 => c_2n + \log n \le k2 * n $\\ | + | $ T_c(16) \le c_2 * 16 - 2 * \log 16 $\\ |
| - | $ \qquad \qquad \qquad \qquad \: <=> c_2n + \log n \le (c_2 + 1) * n $\\ | + | $ 42 \le c_2 * 16 - 8 $ \\ |
| - | $ => k_1 * n \le c_1 * n + \log n \le T_c(n)\le c_2 * n + \log n \le k_2 * n $\\ | + | $ => c_2 \ge \frac{25}{8} $\\ |
| + | $ (1) \ Pas \ inductiv $\\ | ||
| + | $ Presupunem \ ca \ T_c(n/2) \le c_2 * \frac{n}{2} - 2 * \log \frac{n}{2} $\\ | ||
| + | $ <=> 2 * T_c(n/2) \le c_2 * n - 4 * \log \frac{n}{2} $\\ | ||
| + | $ <=> T_c(n) \le c_2 * n - 3 * \log n + 4$\\ | ||
| + | $ <=> T_c(n) \le c_2 * n - 3 * \log n + 4 \le c_2 * n - 2 * \log n, \forall n \ge 16 $\\ | ||
| + | $ => \ T_c(n) = O(n) $\\ | ||
| $ T_c(n) \in \Theta(n) $\\ | $ T_c(n) \in \Theta(n) $\\ | ||
| ** Teorema Master ** \\ | ** Teorema Master ** \\ | ||
| Line 64: | Line 70: | ||
| ** nu se poate aplica master **\\ | ** nu se poate aplica master **\\ | ||
| - | Folosind metoda arborelui, fiecare nivel $ h $ va contine nodul $ T(n-h) $ si costul $ n-h $. Obtinem formula $ T_{Quicksort}(n) = \sum_{i=0}^{n-2} (n-i) + 1 * T(1) = \frac {n(n+1)} 2 \in \Theta(n^2) $ | + | Folosind metoda arborelui, fiecare nivel $ h $ va contine nodul $ T(n-h) $ si costul $ n-h $. Obtinem formula $ T_{Quicksort}(n) = \sum_{i=0}^{n-2} (n-i) + 1 * T(1) = \frac {n(n+1)} 2 \in \Theta(n^2) $ \\ |
| + | * $ T(n) = T(n/4) + T(3n/4) + n $ | ||
| + | ** nu se poate aplica master ** \\ | ||
| + | Desenand arborele, obtinem unele ramuri care se termina mai repede, altele mai incet, asa ca vom incadra timpul lui T intre 2 limite, $ S_1 $ si $ S_2 $ | ||
| + | |||
| + | $ h_1 = \log_4n, h_2 = \log_{\frac 4 3}n $\\ | ||
| + | |||
| + | $ S_1 = \sum_0^{h_1-1} n + T(1) * 2 ^ {h_1} = n * h_1 +2 ^ {h_1} = n*\log_4n + 2^{\log_4n} \in \Theta(n\log n) $\\ | ||
| + | $ S_2 = \sum_0^{h_2-1} n + T(1) * 1 = n * h_2 + 1 = n*\log_{\frac 4 3} n + 1 \in \Theta(n\log n) $\\ | ||
| + | |||
| + | => $ T(n) \in \Theta(n \log n)$ | ||
| + | === 2. === | ||
| + | * $ T_a(n) = T_a(\sqrt{n}) + 1 $ | ||
| + | Notam \( n = 2^k \) \\ | ||
| + | => $ T_a(2^k) = T_a(\sqrt{2^k}) + 1$ \\ | ||
| + | => $ T_a(2^k) = T_a(2^ \frac{k}{2}) + 1$ \\ | ||
| + | $ fie \ S(k) = T_a(2^k) $ \\ | ||
| + | $ => S(k) = S(k/2) + 1 $ \\ | ||
| + | **Teorema Master** \\ | ||
| + | a = 1, b = 2 => d = 0 \\ | ||
| + | c = d = 0 (k = 0) => $ S(k) = \Theta(\log k) $ \\ | ||
| + | => $ T_a(2^k) = \Theta(\log k) $ \\ | ||
| + | => $ T_a(n) = \Theta(\log \log n) $ \\ | ||
| + | |||
| + | * $ T_b(n) = 2 * T_b(\sqrt{n}) + \log n $ | ||
| + | Notam \( n = 2^k \) \\ | ||
| + | => $ T_b(2^k) = 2 * T_b(\sqrt{2^k}) + k$ \\ | ||
| + | => $ T_b(2^k) = 2 * T_b(2^ \frac{k}{2}) + k $ \\ | ||
| + | $ fie \ S(k) = T_b(2^k) $ \\ | ||
| + | $ => S(k) = 2 * S(k/2) + k $ \\ | ||
| + | **Teorema Master** \\ | ||
| + | a = 2, b = 2 => d = 1 \\ | ||
| + | c = d = 1 (k = 0) => $ S(k) = \Theta(k \log k) $ \\ | ||
| + | => $ T_b(2^k) = \Theta(k \log k) $ \\ | ||
| + | => $ T_b(n) = \Theta(\log n * \log \log n) $ \\ | ||
| + | |||
| + | * $ T_c(n) = \sqrt{n} * T_c(\sqrt{n}) + n $ | ||
| + | Notam \( n = 2^k \) \\ | ||
| + | => $ T_c(2^k) = \sqrt{2^k} * T_c(\sqrt{2^k}) + 2^k$ \\ | ||
| + | => $ T_c (2^k) = \sqrt{2^k} * T_c(2^ \frac{k}{2}) + 2^k $ \\ | ||
| + | $ fie \ S(k) = T_c(2^k) $ \\ | ||
| + | $ => S(k) = \sqrt{2^k} * S(k/2) + 2^k $ \\ | ||
| + | $ fie \ S(k) = 2^k * P(k) $ \\ | ||
| + | $ => \ 2^k * P(k) = \sqrt{2^k} * \sqrt{2^k} * P(k/2) + 2^k $ \\ | ||
| + | $ => \ P(k) = P(k/2) + 1 $ \\ | ||
| + | **Teorema Master** \\ | ||
| + | a = 1, b = 2 => d = 0 \\ | ||
| + | c = d = 0 (k = 0) => $ P(k) = \Theta(\log k) $ \\ | ||
| + | => $ S(k) = \Theta(2^k \log k) $ \\ | ||
| + | => $ T_c(2^k) = \Theta(2^k \log k) $ \\ | ||
| + | => $ T_c(n) = \Theta(n * \log \log n) $ \\ | ||