Documente Academic
Documente Profesional
Documente Cultură
Scopul analizei
Aprecierea calitii unui algoritm, prin
determinarea resurselor necesare pentru
execuia algoritmului pe o main de calcul.
Prin resurse necesare se nelege:
Volumul de resurse
n majoritatea situaiilor, volumul de resurse necesar
pentru execuia unui algoritm depinde de dimensiunea
problemei de rezolvat.
Aceasta este determinat, n principal, de volumul
datelor de intrare.
n cazul cel mai general acest lucru este dat numrul
de bii necesari pentru memorarea datelor.
Dac se prelucreaz o valoare numeric, n (de ex.
dac se verific c numrul n este prim) atunci ca
dimensiune a problemei se consider numrul de bii
necesari pentru reprezentarea lui n, adic [log2n]+1.
Dimensiunea problemei
Uneori dimensiunea problemei depinde de
tipul prelucrrii.
De exemplu la prelucrarea unui text, dac
prelucrrile se fac la nivel de cuvnt, dimensiunea problemei este dat de numrul de
cuvinte.
Dac prelucrrile se fac la nivel de caracter
atunci dimensiunea problemei este dat de
numrul de caractere.
Spaiul de memorie
Timpi de execuie
Unitate de msur
Se stabilesc operaiile elementare i se
consider ca unitate de msur timpul de
execuie a acestora.
Timpul total de execuie va fi dat de numrul
operaiilor elementare.
Operaiile elementare sunt cele aritmetice
(adunare, scdere, nmulire, mprire),
comparaiile ntre dou valori, operaiile logice
(AND , OR , NOT).
Este
Exemplu:Calculului i, i=1,..n
Suma(n)
1: S 0
2: i 1
3: WHILE i n DO
4:
SS+i
5:
i i+ 1
RETURN S
10
Operaie
Cost
Nr. repetri
c1
c2
c3
n+1
c4
c5
12
Exemplul 2
C[m,p]=A[m,n] * B[n,p]
n acest caz dimensiunea problemei este
dat de trei valori (m,n,p).
Produs (a,b,m,n,p)
1. For i=1,m Do
2. For j=1,p Do
3. c[i,j] 0
4. For k=1,n Do
5. c[i,j] c[i,j]+ a[i,k]*b[k,j];
Return c;
Costul
prelucrrilor de pe
liniile 1,2 i 4 reprezint
costul gestiunii contorului i
va fi tratat global.
Presupunnd c toate
operaiile aritmetice i de
comparare au acelai cost
unitar, tabelul costurilor
este:
Rezult timpul de execuie:
T(m,n,p)=4mnp+5mp+4m+2
Operaie
Cost
Nr. repetri
2(m+1)
2(p+1)
mp
2(n+1)
mp
mpn
15
16
(n)
Tm (n)
(
n)
Tk (n)Pk
k 1
Pk
, 1,2,.., (n)
k
(n)
(n)
(n)
T
k
Tm (k )
k 1
(n)
Exemplu
Problema cutrii unei valori ntr-un ir x1, x2,
..,xn, de elemente distincte.
Vom calcula timpul mediu n ipoteza c
valoarea v se poate afla n oricare din poziiile
din ir cu aceeai probabilitate.
Pentru c avem n cazuri pentru poziionarea
n ir i nc un caz n care valoarea nu se afl
n ir, atunci
(n) n 1
Rezult:
21
22
Ordin de crestere
Pentru
Exemplul 1
Dac T(n) = an + b, (a > 0) atunci la
creterea lui n de k ori, termenul dominant
crete i el de k ori,
T(kn) = akn + b.
n acest caz avem o dependen liniar a
ordinului de cretere.
Exemplul 2
Dac T(n) = an2 + bn+c, (a > 0) atunci la
creterea lui n de k ori, termenul dominant
crete de k2 ori,
2
2
T(kn) = ak n + bkn+c.
n acest caz avem o dependen ptratic a
ordinului de cretere.
Exemplul 3
Dac T(n) = alg n, atunci
T(kn) = alg n +alg k, adic n acest
caz termenul dominant nu se
modific, timpul de execuie crescnd
cu o constant.
S precizm c prin lg n nelegem
log2 n.
Exemplul 4
29
30
Relaia
Notaia
Pentru o funcie g: NR+
34
36
Observaii
Din fig.1 se poate vedea c este suficient s
considerm n > n0= 4 pentru ca relaia
0 c1g(n) f(n) c2g(n)
s fie respectat.
Pentru valori mari, aa cum rezult din fig.2,
condiia este respectat.
37
Notaia O
Adic:
k>0
(g(n))
Prin urmare dac T(n)= (g(n)) atunci
T(n)= O(g(n))
Notaia
infinit.
43
Clase de complexitate
44
45
Observaie
46