Sunteți pe pagina 1din 7

Tema 15. Algoritmizarea aprecierii (estimării) structurilor de date.

1. Criteriile de bază ale aprecierii structurilor de date.


2. Algoritmizarea aprecierii formării (sortării) diverselor structuri de date.
3. Algoritmizarea aprecierii volumului necesar de memorie pentru diverse
structuri de date.
4. Algoritmizarea aprecierii eficienţei regăsirii informaţiei.
5. Algoritmizarea aprecierii corectării diverselor structuri de date.
6. Algoritmizarea aprecierii generale a structurilor de date.

1. Criterii de bază de apreciere a structurilor de date.

Orice structură de date necesită utilizarea anumitui spaţiu de memorie şi


efectuarea asupra ei a anumitor proceduri de transfer (transcriere) şi de prelucrare
structurală. Indiferent de spaţiul fizic pot fi organizate diverse structuri de date. De
exemplu memoria internă, după cum s-a stabilit anterior, fizic este una şi aceeaşi la
orice calculator, însă în spaţiul ei pot fi ambalate printr-o mulţime de metode
diverse structuri de date.
Deoarece operativitatea şi calitatea informaţiei rezultative economice în
mare parte depind de eficienţa structurilor de date, există necesitatea de a le aprecia
(estima). În dependenţă de tipul de memorie (internă, externă) şi de categoria
varietatea structurii de date se aplică diverse criterii de estimare a acestor structuri.
Însă la nivel conceptual criteriile pot fi sistematizate în următoarele trei grupe:
1. Estimarea structurii de date în dependenţă de spaţiul fizic (volumul de
memorie) necesar pentru a repartiza această structură;
2. Numărul de proceduri necesare pentru a efectua o anumită prelucrare
structurală.
3. Criteriul general de apreciere a structurilor de date.
În general pentru structurile de date economice existente este caracteristic
acel fapt că unele din ele sunt foarte econome privind spaţiul de memorie, însă
necesită multe proceduri de prelucrare structurală. Alte structuri se caracterizează
prin numărul redus de proceduri şi, deci, şi prin prelucrare operativă, însă necesită
volum de memorie exagerat. Prin urmare, în mediul informatic existent nu pot fi
realizate aşa structuri de date economice, care ar dispune de parametri optimali la
toate criteriile de apreciere.

2. Algoritmizarea aprecierii formării (sortării) diverselor structuri de


date.

Anterior s-a stabilit că, de regulă, sortării sunt supuse structurile de date
secvenţiale. De regulă aceste structuri sunt estimate pe baza a aşa criteriu ca
numărul de comparări. Dacă fişierul de date este neordonat, atunci numărul de
comparări se calculă după următoarea formulă:
C = K*M2; unde:
C – numărul de cumpărări;
M – lungimea (volumul) fişierului exprimat în M înregistrări;
K – (0,5 ≤ K ≤ 1) K = 1- în cazul când pentru a găsi o unitate informaţională
e necesar de consultat toate înregistrările fişierului şi pentru K = 0,5 → în cazul
când pentru a găsi unitatea informaţională necesară se solicită consultarea jumătăţii
de fişier.
Dacă fişierul de date este ordonat, atunci procedura de sortare se estimează
prin numărul de comparări după următoarea formulă:
C ≈ 2M
Unul dintre cele mai eficiente procedee (metode) de sortare după numărul
de comparări se consideră metoda de contopire. Estimarea sortării în cazul aplicării
acestei metode se caracterizează prin numărul de comparări calculat după
următoarea formulă:
C = Mlog2 M
După volumul de timp necesar pentru aceeaşi metodă, sortarea se apreciază
în baza următoarei formule:
T= t*C=t*Mlog2M; unde:
T – constanta cu timpul necesar pentru efectuarea unei comparări.
Însă după cum a fost constatat anterior, metoda în cauză necesită un volum
de memorie dublu şi de aceea ea se consideră după acest criteriu neeficientă.
Metoda dată este eficientă şi pentru structurile în şir, în care ea nu necesită
memorie suplimentară deoarece în aceste structuri se manipulează nu cu conţinutul
înregistrărilor dar cu adresele lor de legătură.
În fişierele inversate procedura de sortare necesită un anumit volum de timp
calculat după următoarea formulă:
T=tplog2p
Această formulă de asemenea se referă la metoda de sortare de contopire.
Timpul general de formare (sortare) a fişierului de date în întregime se calculează
după următoarea formulă:
T  t1 ( pl  Ml  V1 )  tp log 2 p ; unde
t1 – timpul de transcriere al unui octet dintr-un spaţiu al memoriei în altul;
l – lungimea medie a cheii înregistrărilor.
l  - lungimea adresei de legătură
p – numărul valorilor diferitor chei.
V1 – volumul fişierului iniţial
În cazul când e necesar de sortat structurile binare arborescente, numărul de
comparări se determină după următoarea formulă:
C= 1,39 Mlog2M
Dacă structura de date este matricială şi constă din m - rânduri şi n –
coloane, atunci timpul necesar pentru sortarea acestei structuri, se calculează în
baza următoarei formule:
T  t1 (l (m  n)  l mn)
Această formulă este aplicabilă pentru structurile matriciale cu scală logică
şi perechi de indexi acest criteriu are valori mai eficiente. Cea mai eficientă se
consideră structura matricială cu scală logică.

3. Algoritmizarea aprecierii volumului necesar de memorie pentru


diverse structuri de date.

Structura de date succesivă după volumul de memorie ocupat se calculează


conform următoarei formule:
V= M*l, unde
M – numărul de înregistrări în fişier;
L – lungimea unei înregistrări.
Acest criteriu poate fi aplicat şi are una şi aceeaşi valoare pentru toate
structurile de date, deoarece aici se calculează volumul de memorie alocat pentru
înscrierea conţinutului fişierului. Toate celelalte structuri de date în afară de cele
secvenţiale necesită un volum de memorie suplimentar (V1). Din acest motiv
calcularea dimensiunii volumului de memorie suplimentară se va efectua după
următoarele formule:
M
V   l  d i  lp , unde
i 1

d i – numărul de chei în înregistrarea I al fişierului de bază;


M
l  d i – caracterizează lungimea (volumul tuturor adreselor de legătură)
i 1

lp – volumul de memorie alocat pentru cheile fişierului de bază;


p – numărul înregistrărilor în fişierul inversat.
Pentru structurile în şir unidimensionale volumul necesar de memorie
necesar pentru a înscrie informaţia asociativă în cazul păstrării în comun a acestei
informaţii şi valorii conţinutului unităţii informaţionale se calculează în baza
următoarei formule:
V1  l (M  2) , unde:
V1 – volumul suplimentar;
l  – lungimea adresei de legătură în biţi.
În cazul când adresele de legătură şi conţinutul unităţilor informaţionale se
păstrează separat volumul suplimentar de memorie necesar pentru informaţia
asociativă se calculează în următorul mod:
V1  2l (M  1) , unde:
2l1 – volumul indicatorului structurii.
Aceste formule se aplică pentru structurile în şir unidimensionale. Dacă
aceste structuri sunt bidirecţionale, atunci volumul de memorie suplimentar pentru
informaţia asociativă se calculează pe baza următoarelor formule:
V2  l (2M  3) – păstrarea în comun
V2  3l (M  1) – păstrarea separată a adreselor de legătură şi unităţilor
informaţionale.
Pentru structurile de liste compuse acest volum se calculează după
următoarelor formule:
V3  l (3M  f ) – listă unidirecţională
V4  l (5M  2 f 1) – pentru listă bidirecţională.
F – este numărul de nivele structurale a listei (în interpretarea analitică –
numărul de paranteze).
Pentru metodele de ambalare fizică a structurilor compuse de listă acest
volum de memorie suplimentară se calculează conform următoarelor formule:
a) ambalarea în lanţ V   2l ( MK  1) , unde
K – coeficientul celulelor libere în catalogul unităţilor informaţionale;
b) pentru metoda de ambalare în cuib:
 M  1
V1  K nl  1
 n  1
n – numărul de celule ocupate de un cuib;
M
n 1 - numărul de cuiburi;
n (l1+1) – volumul (lungimea) unui cuib.
c) pentru metoda de ambalare în nod:
V   ( p  2)l M  l  ; unde:
Mmax – lungimea maximală a unei liste în multilistă;
G – numărul de liste în multilistă.
Pentru structurile arborescente generale bidirecţionale cu verigile de legătură
de lungime fixă, volumul suplimentar de memorie se calculă după următoare
formulă:
V   ( p  2)l 1 M  l 1
Dacă valorile cheilor nu se înscriu în verigile de legătură, pentru aşa structuri
volumul de memorie necesar se determină în următorul mod:
V 1  ( p  2)l M  l k M  l  ; unde:
l k - lungimea cheii.
Pentru structura arborescentă binară p=2 şi volumul suplimentar de memorie
se calculează conform formulei: V   M (4l  l k )  l 
Dacă structura de date este matricială şi este de ordin general (nu este
comprimată) atunci volumul suplimentar de memorie pentru adresele de legătură
se calculează în baza următoarei formule: V   mnl  (m  n)l  ; unde:
M – numărul de rânduri;
N – numărul de coloane;
L – lungimea medie a cheii înregistrării
Dacă structura matricială (tabelară) este comprimată prin metoda scalei
logice, atunci volumul de memorie suplimentar pentru informaţia asociativă se
calculează conform următoarei formule:
V2  m( L  L )  (m  n)l  ; unde:
L –lungimea scalei logice;
L – lungimea medie a cheilor înregistrărilor într-un rând al matricii.
Dacă structura tabelară e comprimată prin metoda perechilor de indecşi
atunci volumul suplimentar de memorie se calculează în următorul mod:
V3  ( g1  g 2 )dmnlmax  (m  n)l  , unde:

g1 – lungimea maxima a numarului rîndului;


g2 - lungimea maxima a numarului coloanei;
l max – lungimea maximă a cheii înregistrării;
K
d→ d = mn - densitatea valorilor cheilor înregistrărilor;
k – numărul valorilor cheilor.

4. Algoritmizarea aprecierii eficienţei regăsirii informaţiei.

Eficienţa căutării (regăsirii) unităţilor informaţionale în diverse structuri de


date pentru diferite metode de regăsire se apreciază prin numărul mediu şi numărul
maxim de comparări a cheii de căutare cu valorile cheilor unităţii informaţionale
înregistrate în memorie. Formulele de calcul a acestor criterii (numărul de
comparări mediu şi maximal) sunt următoarele:

Nr.
Structuri de date şi metode de căutare C Cmax
d/o
I Structuri de date succesive
1. Consultări în fişierul ordonat M 1 M
2
2. Consultări în fişierul neordonat M M
3. Consultări pe intervale cu paşi optimali M 2 M
4. Metoda FI bonaci Log2M 1,35log2M
5. Metoda dihotomiei Log2M-1 Log2M
II. Structuri de date în şir
1. a) ambalate în lanţ
-neordonate M M
-ordonate 0,5 M M
2. b) ambalate prin intermediul indexilor - Log2m+ Mm
III. Structurile de date arborescente
1. Ordonate - Log2M+1
2. Neordonate 1,04log2M 1,44log2M
IV. Structurile de date tabelare
1. a) comprimate prin metoda scalei logice - L+1+n
2. b) comprimate prin metoda perechilor de - M
indecşi

5. Algoritmizarea aprecierii corectării diverselor structuri de date.

Aprecierea procedurii de corectare a datelor se efectuează în depindere de


aceea dacă fişierul de corectură este ordonat sau nu. Aceasta se referă de asemenea
şi la fişierul supus corectării. În majoritatea cazurilor această apreciere depind şi de
lungimea optimală a fişierului cu corectări. Pentru problemele economice se
consideră că corectarea este eficientă atunci când masivul de corectări are
lungimea optimală.
M0 = 0,01 M
Procedura de corectare se estimează după aşa criterii ca timpul mediu şi
timpul maximal de efectuare a acestei proceduri. Formele de calcul a acestor
criterii pot fi prezentate în următorul tabel:

Nr. Tipurile de
T Tmax
d/o structuri de date
1. Structurile de date T = T r+0,5Mt Tmax =Tmaxr+M
succesive
T r - timp de regăsire a unităţii
informaţionale;
t - timpul de transcriere a unităţii
informaţionale dintr-un spaţiu
memorial în altul.
2. Structuri de date în
T = T r+4t Tmax =Tmaxr+4t
şir

Pentru celelalte tipuri de structuri de date formulele de calcul ale acestor


criterii de asemenea se reduc la aceleaşi formule ce şi pentru aceste 2 tipuri de
structuri de date, numai valorile coeficienţilor t vor fi diverse.

6. Algoritmizarea aprecierii generale a structurilor de date.

Aprecierea generală a structurilor de date se efectuează în următoarele trei


metode:
1. metoda 1. Constă în aceea că pentru fiecare structură de date se
calculează valoarea fiecărui criteriu. Ulterior aceste valori a criteriilor se
sumează şi în final se calculează totalul acestor valori. Cea mai eficientă
se va considera acea structură de date la care suma valorilor criteriilor
va fi mai mică.
2. metoda 2. Constă în aceea că pentru fiecare structură de date pentru
fiecare criteriu în dependenţă de valoarea lui se atribuie un anumit
număr de puncte. În acest scop mai întâi se stabileşte acea structură de
date care dispune de criteriul cel mai optimal şi I se atribuie un punct.
Pentru următoarele structuri se i-a un anumit raport de la criteriul
optimal şi li se atribuie punctajul respectiv. De exemplu dacă volumul
de memorie necesar pentru structurile succesive constituie 100 de
celule, pentru structurile în şir 125, pentru structurile de listă compusă
200 atunci respectiv pentru structurile succesive se va atribui un punct,
pentru structurile în şir 125 puncte care pentru structurile de listă
compusă 2 puncte. După atribuirea punctajului pentru toate criteriile, de
asemenea punctele se adună şi acea structură ce dispune de un număr de
puncte minimal care se consideră optimală.
3. metoda 3. Constă în aceea că (SD) se apreciază pe baza valorilor a 2
criterii. De ex: Se compară S.D. succesivă şi structura în şir după aşa
criterii ca eficienţa efectuării, regăsirii şi corectării datelor în aceste 2
structuri. Pe fiecare din aceste structuri se calculează valorile medii şi
maximale a valorilor criteriilor nominalizaţi: eficienţa proiectării.
Valorile medii şi maximale de la ambele structuri se adună pentru
fiecare criteriu, după ce se împart la lungimea fişierului de date.
Structura de date ce va dispune de cele mai mici valori privind timpul
mediu şi maximal de regăsire şi corectare se va considera cea mai
eficientă.
De menţionat că calcularea valorilor criteriilor, se efectuează pentru anumite
unităţi informaţionale (tipuri, colecţii) concrete şi se determină care S.D. este mai
eficientă pentru această unitate informaţională. Însă anticipat, din punct de vedere
funcţional, se stabileşte scopul estimării,de exemplu, a volumului minimal de
memorie operativitatea procedurilor,

S-ar putea să vă placă și