Documente Academic
Documente Profesional
Documente Cultură
SD 2017/2018
Cont, inut
Exemple de calcul
Notat, ie asimptotică
I Utilitate:
I pentru a stabili performanţa algoritmului şi a furniza garanţii asupra
acesteia;
I pentru a compara algoritmi.
I Memoria externă:
I ı̂ntr-o maşină reală există o ierarhie complexă a memoriei;
I există algoritmi special proiectaţi pentru seturi de date mari care
trebuiesc păstrate ı̂n memoria externă;
I memoria rapidă – de dimensiune limitată / memoria externă –
nelimitată;
I există operaţii speciale de intrare/ieşire care transferă informaţie ı̂ntre
cele două tipuri.
I Procesare paralelă:
I (SIMD (Single Instruction, Multiple Data) - execuţie paralelă a unei
instrucţiuni, pe date diferite;
I multithreading simultan - rularea mai multor fire de execuţie pe un
procesor;
I procesoare multiple, procesoare multicore, etc.;
I sisteme distribuite.
FII, UAIC Curs 2 SD 2017/2018 8 / 52
Analiza eficienţei timp
Exemple de calcul
Notat, ie asimptotică
Intrare: n >= 1
Ieşire: suma s = 1 + 2 + · · · + n
Dimensiunea problemei: n
Intrare: n >= 1
Ieşire: suma s = 1 + 2 + · · · + n
Dimensiunea problemei: n
I Algoritm echivalent:
s←0
for i ← 1 to n do
s ←s +i
I gestiunea contorului: 2(n + 1) operat, ii;
I calculul sumei: (n + 1) operat, ii (init, ializarea s, i actualizarea lui s).
Observat, ie: nu este necesar să se completeze ı̂ntreg tabelul; este suficient
să se contorizeze operat, ia dominantă.
I Dacă se ia ı̂n calcul doar operat, ia de baza (comparat, ia x[i] < m):
T (n) = n − 1
FII, UAIC Curs 2 SD 2017/2018 18 / 52
Exemplul 4. Căutarea secvent, ială
Intrare: x[0..n − 1], n >= 1 s, i v o valoare (cheie de căutare)
Ieşire: valoarea de adevăr a afirmat, iei “v face parte din x[0..n − 1]”
Dimensiunea problemei: n
8 1 4 9 2 6
8 1 4 9 2 6
8 1 4 9 2 6
8 1 4 9 2 6
8 1 4 9 2 6
1 8 4 9 2 6
8 1 4 9 2 6
8 1 4 9 2 6
1 8 4 9 2 6
1 4 8 9 2 6
8 1 4 9 2 6
8 1 4 9 2 6
1 8 4 9 2 6
1 4 8 9 2 6
1 4 8 9 2 6
8 1 4 9 2 6
8 1 4 9 2 6
1 8 4 9 2 6
1 4 8 9 2 6
1 4 8 9 2 6
1 2 4 8 9 6
8 1 4 9 2 6
8 1 4 9 2 6
1 8 4 9 2 6
1 4 8 9 2 6
1 4 8 9 2 6
1 2 4 8 9 6
1 2 4 6 8 9
1 2 4 6 8 9
I Cazul cel mai nefavorabil: tabloul este sortat ı̂n ordine inversă.
tj = j, j = 2, . . . , n
T (n) = c1 n+(n−1)(c2 +c3 +c7 )+c4 ( n(n+1) 2 −1)+c5 n(n−1)
2 +c6 n(n−1)
2
= ( c24 + c25 + c26 )n2 +(c1 +c2 +c3 + c24 − c25 − c26 +c7 )n−(c2 +c3 +c4 +c7 )
I Cazul cel mai nefavorabil: tabloul este sortat ı̂n ordine inversă.
tj = j, j = 2, . . . , n
T (n) = c1 n+(n−1)(c2 +c3 +c7 )+c4 ( n(n+1) 2 −1)+c5 n(n−1)
2 +c6 n(n−1)
2
= ( c24 + c25 + c26 )n2 +(c1 +c2 +c3 + c24 − c25 − c26 +c7 )n−(c2 +c3 +c4 +c7 )
I Există situat, ii când cazul cel mai favorabil s, i cel mai nefavorabil sunt
cazuri rare (except, ii):
I analiza ı̂n cele două cazuri nu furnizează suficientă informat, ie.
I Ipoteze:
I probabilitatea ca v să se afle ı̂n tablou: p
I v apare cu aceeas, i probabilitate pe fiecare pozit, ie din tablou;
I probabilitatea ca v să se afle pe pozit, ia k: p/n;
I probabilitatea ca v să nu se afle ı̂n tablou: 1 − p.
p(1+2+..+n) p(n+1)
I Ta (n) = n + (1 − p)n = 2 + (1 − p)n = (1 − p2 )n + p
2
I Observat, ie: timpul mediu nu este ı̂n mod necesar media aritmetică a
timpilor de execut, ie corespunzatori cazurilor extreme.
Exemple de calcul
Notat, ie asimptotică
Exemplu:
T 1(n) = 10n + 10
T 2(n) = n2
n log2 n nlog2 n n2 n3 2n n!
10 < 1 sec < 1 sec < 1 sec < 1 sec < 1 sec 4 sec
30 < 1 sec < 1 sec < 1 sec < 1sec 18 min nu
50 < 1 sec < 1 sec < 1 sec < 1sec 36 ani nu
102 < 1 sec < 1 sec < 1 sec 1 sec 1017 ani nu
103 < 1 sec < 1 sec 1 sec 18 min nu nu
104 < 1 sec < 1 sec 2 min 12 zile nu nu
105 < 1 sec 2 sec 3 ore 32 ani nu nu
106 < 1 sec 20 sec 12 zile 31710 ani nu nu
I dacă lim = 0: T 1(n) are un ordin de cres, tere mai mic decât T 2(n);
I dacă lim = ∞: T 1(n) are un ordin de cres, tere mai mare decât T 2(n).
Exemple de calcul
Notat, ie asimptotică
I Diferent, ele dintre ordinele de cres, tere devin din ce ı̂n ce mai
semnificative pe masură ce dimensiunea problemei cres, te.
Definiţie
O(g (n)) = {f (n) : ∃c > 0, ∃n0 ∈ N a.ı̂. ∀n >= n0 , 0 <= f (n) <= cg (n)}.
(f (n) are un ordin de cres, tere cel mult egal cu cel al lui g (n).)
Pentru valori suficient de mari ale lui n, f (n) este marginită superior de
g (n) multiplicată cu o constantă pozitivă.
FII, UAIC Curs 2 SD 2017/2018 40 / 52
Notat, ia O
Exemple:
1. T (n) = 3n + 3 ⇒ T (n) ∈ O(n)
4n >= 3n + 3, c = 4, n0 = 3, g (n) = n
Exemple:
1. T (n) = 3n + 3 ⇒ T (n) ∈ O(n)
4n >= 3n + 3, c = 4, n0 = 3, g (n) = n
Exemple:
1. T (n) = 3n + 3 ⇒ T (n) ∈ O(n)
4n >= 3n + 3, c = 4, n0 = 3, g (n) = n
4. Dacă pentru cazul cel mai nefavorabil obt, inem T (n) <= g (n), atunci
T (n) ∈ O(g (n)).
I Căutarea secvent, ială: 5 ≤ T (n) ≤ 3n + 2 ⇒ algoritmul este din
clasa O(n).
Definiţie
Ω(g (n)) = {f (n): ∃c > 0, n0 ∈ N a.ı̂. ∀n >= n0 : f (n) ≥ cg (n)}
(f (n) are un ordin de cres, tere cel put, in la fel de mare ca cel al lui g (n).)
Exemple:
1. T (n) = 3n + 3 ⇒ T (n) ∈ Ω(n)
3n <= 3n + 3, c = 3, n0 = 1, g (n) = n
Pentru valori mari ale lui n, funct, ia f (n) este marginită inferior de g (n)
multiplicată eventual cu o constantă pozitivă.
FII, UAIC Curs 2 SD 2017/2018 44 / 52
Notat, ia Ω - proprietăt, i
Definiţie
Θ(g (n)) =
{f (n) : ∃c1 , c2 > 0, n0 ∈ N a.ı̂. ∀n ≥ n0 : c1 g (n) ≤ f (n) ≤ c2 g (n)}.
Exemple:
1. T (n) = 3n + 3 ⇒ T (n) ∈ Θ(n)
c1 = 2, c2 = 4, n0 = 3, g (n) = n
Pentru valori suficient de mari ale lui n, f (n) este marginită, atât superior
cât s, i inferior de g (n) multiplicată cu nis, te constante pozitive.
FII, UAIC Curs 2 SD 2017/2018 47 / 52
Notat, ia Θ - proprietăt, i
Extinderea definit, iei (ı̂n cazul ı̂n care dimensiunea problemei depinde
de mai multe valori):
(k ≥ 2)