Table of Contents

Notații asimptotice

$ \Theta(f(n)) = \{ g: \mathbb{R}^{+} \rightarrow \mathbb{R}^{+}\ |\ \begin{array}{l} \exists c_1, c_2 \in \mathbb{R}^+\cr \exists n_0 \in \mathbb{N} \end{array}\ such\ that\ \forall\ n \ge n_0,\ \ c_1f(n) \le g(n) \le c_2f(n) \}$

$ O(f(n)) = \{ g: \mathbb{R}^{+} \rightarrow \mathbb{R}^{+}\ |\ \begin{array}{l} \exists c \in \mathbb{R}^+\cr \exists n_0 \in \mathbb{N} \end{array}\ such\ that\ \forall\ n \ge n_0,\ \ 0 \le g(n) \le cf(n) \}$

$ \Omega(f(n)) = \{ g: \mathbb{R}^{+} \rightarrow \mathbb{R}^{+}\ |\ \begin{array}{l} \exists c \in \mathbb{R}^+\cr \exists n_0 \in \mathbb{N} \end{array}\ such\ that\ \forall\ n \ge n_0,\ \ 0 \le cf(n) \le g(n) \}$

$ o(f(n)) = \{ g: \mathbb{R}^{+} \rightarrow \mathbb{R}^{+}\ |\ \begin{array}{l} \forall c \in \mathbb{R}^+\cr \exists n_0 \in \mathbb{N} \end{array}\ such\ that\ \forall\ n \ge n_0,\ \ 0 \le g(n) \le cf(n) \}$

$ \omega(f(n)) = \{ g: \mathbb{R}^{+} \rightarrow \mathbb{R}^{+}\ |\ \begin{array}{l} \forall c \in \mathbb{R}^+\cr \exists n_0 \in \mathbb{N} \end{array}\ such\ that\ \forall\ n \ge n_0,\ \ 0 \le cf(n) \le g(n) \}$

Syntactic sugars

Notațiile asimptotice sunt adesea folosite pentru a ne referi la funcții arbitrare cu o anumită creștere. Pentru simplitate, putem scrie expresii aritmetice astfel:

$ f(n) = \Theta(n) + O(\log(n)) $

Care trebuie citită: $ \exists g \in \Theta(n)$ și $ \exists h \in O(\log(n))$ a.î. $ f(n) = g(n) + h(n),\ \forall n \in \mathbb{R}^{+}$ .

Putem de asemenea scrie ecuații:

$ \Theta(n^2) = O(n^2) + o(n)$

Care ar trebui citite: $ \forall f \in \Theta(n^2),\ \exists g \in O(n^2)$ și $ \exists h \in o(n)$ a.î. $ f(n) = g(n) + h(n),\ \forall n \in \mathbb{R}^{+}$ .

Observați că ecuațiile nu sunt simetrice și ar trebui citite de la stânga la dreapta. De exemplu:

$\Theta(n) = O(n)$

Deși e adevărat că, pentru orice funcție $ \Theta(n)$ există o funcție egală în $ O(n)$ , putem vedea că există funcții în $ O(n)$ pentru care nu există niciun corespondent în $ \Theta(n)$ .

Ca regulă, fiecare notație asimptotică din stânga unui egal, ar trebui citită ca o funcție cuantificată universal ($ \forall f$ ) din acea clasă, iar fiecare notație asimptotică din dreapta unui egal ar trebui citită ca o funcție cuantificată existențial ($ \exists g$ ) din clasa respectivă.

$\left(\frac{\omega(n^2)}{\Theta(n)}\right) = \Omega(n) + o(n)$

$ \forall f \in \omega(n^2)\ and\ \forall g \in \Theta(n),\ \exists h \in \Omega(n)$ și $ \exists j \in o(n)$ a.î. $ \left(\frac{f(n)}{g(n)}\right) = h (n) + j(n),\ \forall n \in \mathbb{R}^{+}$

Exerciții

În continuare, aveti un cheetsheet-lab05.pdf pentru a va ajuta la rezolvări.

1. Dați exemple de câte o funcție din următoarele clase de complexitate:

2. Pentru fiecare din perechile de mai jos, dați un exemplu concret de constante pentru care inegalitățile implicate în definiția clasei de complexitate sunt adevărate:

3. Găsiți două funcții $ f$ și $ g$, astfel încât:

4. Verificați valoarea de adevăr a următoarelor propoziții:

Exerciții - syntactic sugars

5. Aduceți următoarele la o formă simplă (o clasă de complexitate ce depinde de o anume funcție):

6. Demonstrați/infirmați următoarele propoziții:

Soluțiile acestui laborator se găsesc aici