Sunteți pe pagina 1din 9

ACADEMIA DE STUDII ECONOMICE BUCURETI FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

STRUCTURI DE DATE ARBORESCENTE PENTRU REGSIREA INFORMAIEI ECONOMICE

TEZ DE DOCTORAT

CONDUCTOR TIINIFIC: PROF. UNIV. DR. IOAN ODGESCU

DOCTORAND: GHEORGHE MANOLACHE

BUCURETI 2008

CUPRINS
Capitolul 1. Prezentare general .......... Capitolul 2. Structuri de date arborescente elementare . 2.1. Structuri de date, tip abstract de date (TAD) . 2.2. Memorarea structurilor de date .. 2.3. Structuri arborescente 2.4. Arbori binari .. 2.5. Reprezentarea structurilor arborescente . 2.5.1. Reprezentarea cu referine descendente ... 2.5.2. Reprezentarea cu referine ascendente ..... 2.5.3. Reprezentarea Fiu-Frate ... 2.5.4. Reprezentarea parantezat ... 2.5.5. Reprezentarea prin codul lui Prffer 2.6. Reprezentarea arborilor binari 2.6.1. Reprezentarea nlnuit ... 2.6.2. Reprezentarea secvenial ........................ 2.7. Crearea unui arbore binar ... 2.7.1. Crearea interactiv a unui arbore binar .... 2.7.2. Crearea unui arbore binar echilibrat dup numrul de noduri ......... 2.8. Binarizarea arborilor oarecare 2.9. Parcurgerea arborilor .. 2.9.1. Parcurgerea arborilor binari ..................... 2.9.2. Parcurgerile n adncime ......................... 2.9.3. Parcurgerea pe nivele ... 2.10. Generarea i afiarea unui arbore binar 2.11. Determinarea nlimii unui arbore .. 2.12. Numrarea arborilor binari ... 2.13. Pduri ... 2.14. Arbori asociai expresiilor aritmetice. Evaluarea expresiilor ... 2.15. Aplicaii .... 2.15.1. Arbori binari m-ponderai ...................... 2.15.2. Crearea unei structuri arborescente pe baza codului Pruffer ......................... 2.15.3. Obinerea codului Pruffer pentru un arbore oarecare . 2.15.4. Determinarea formei poloneze a unei expresii aritmetice . 2.15.5. Implementarea transformrii unui arbore oarecare n arbore binar ... 2.15.6. Implementarea nerecursiv a metodelor de parcurgere . Capitolul 3. Arbori binari de cutare .. 3.1. Structuri de cutare .... 3.2. Cutarea pe arbori binari de cutare .. 3.3. Arbori binari de cutare optimali ... 3.4. Arbori binari de cutare echilibrai 3.4.1. O clasificare a arborilor de cutare .. 3.4.2. Arbori echilibrai dup nlime ... 3.4.3. Arbori AVL .. 3.4.4. Arbori rou-negru (red-black trees) ..... 3.4.5. Arbore de statistic de ordine ... 3.4.6. mbogirea unei structuri de date 3.4.7. Arbori splay . 5 9 9 9 11 13 15 15 16 16 17 17 19 19 19 20 20 21 21 21 22 22 23 24 25 25 27 27 30 30 33 33 34 35 37 39 39 41 46 50 50 50 51 59 65 67 68

3.4.8. Arbori echilibrai dup greutate ... 3.4.9. Arbori echilibrai dup pondere (aproape optimali) . 3.5. Aplicaii .. 3.5.1. Implementarea arborilor echilibrai dup pondere 3.5.2. O aplicaie a arborilor splay ......... Capitolul 4. Arbori de selecie ....... 4.1. Min-heap-uri i max-heap-uri .... 4.2. Operatii cu heap-uri ... 4.3. Cozi cu prioritate 4.4. Min-max-heap-uri ...... 4.5. Deap-uri ..... 4.6. Heap-uri binomiale(B- heap) . 4.7. Structura de heap Fibonacci (F-heap).... 4.8. Heap-uri de intervale . 4.9. Aplicaie: interclasarea optimal a n iruri ordonate .. Capitolul 5. Arbori de compresie Huffman ..... 5.1. Algoritmul lui Huffman ..... 5.2. Variante ale algoritmului Huffman ... 5.3. Aplicaie: arbori Huffman pentru compactarea unui fiier text . Capitolul 6. Arbori cu rdcin pentru reprezentarea mulimilor disjuncte .. 6.1. Reprezentarea mulimilor disjuncte ... 6.2. Regul de compresie .. 6.3. Aplicaie: determinarea componentelor conexe ..... Capitolul 7. Arbori de tip joc cu aplicaii n economie 7.1. Teoria jocurilor i metode de analiz a unui comportament strategic ... 7.2. Jocul strategic . 7.3. Arborele jocului ca modalitate de descriere a unui joc strategic ... 7.4. Echilibrele jocului .. 7.5. Echilibrul Nash .. 7.6. Aplicaie: arbori de joc pentru simularea jocurilor de strategie . Capitolul 8. Arbori de decizie ... 8.1. Bazele teoretice ale arborilor de decizie .... 8.2. Metoda Growing-Pruning pentru construcia automat a arborilor de decizie .. 8.3. Metoda arborelui stochastic de decizie ...... 8.4. Construcia unui arbore de decizie folosind algoritmul ID3 .. 8.5. Ali algoritmi pentru construcia arborilor de decizie .... 8.6. Construcia i actualizarea incremental a arborelui de decizie ..... 8.7. Arbori de decizie oblici .. 8.8. Arbori de decizie fuzzy .. 8.9. Aplicaie: construcia unui arbore de decizie .... Capitolul 9. Arbore de acoperire minimal (minimal spanning tree). 9.1. Noiunea de arbore parial ...... 9.2. Arbore de acoperire minimal(AAM) . 9.3. Algoritmi pentru determinarea AAM ... 9.3.1. Algoritmul lui Prim ...... 9.3.2. Algoritmul lui Kruskal ..... 9.3.3. Alte variante ale algoritmului Kruskal .... 9.3.4. Domenii de utilizare ale algoritmilor de determinare AAM ....... 9.4. Aplicaii .. 9.4.1. AAM implementat cu coad de prioriti ....

71 72 72 72 75 82 82 83 88 88 91 93 100 108 111 114 115 119 122 128 128 131 132 135 135 135 135 137 137 141 151 152 154 155 156 159 160 161 162 162 166 166 168 170 170 171 172 174 175 175

9.4.2. Problema distribuitorului de carte .... Capitolul 10. Generalizri ale arborilor binari de cutare. Cutri n spaii multidimensionale ... 10.1. Arborele de domenii (range tree) . 10.2. Arborele de segmente ... 10.3. Arbore de intervale ... 10.4. Alte generalizri ale structurilor de date. Structuri de date multidimensionale ... 10.4.1. Cutri ortogonale, structuri de date i aplicaii . 10.4.2. Arbori quad (QuadTree) . 10.4.3. Arbore kD dimensional (kD-Tree) . 10.4.4. Arborele hB (hB-tree) 10.4.5. Arbori B (B-tree) 10.4.6. Arborele k-d-B (k-d-B-tree) ... 10.4.7. (a-b)-arbori . 10.4.8. Implementarea mulimilor cu ajutorul arborilor B-binari (arbori 2-3) ... 10.4.9. Arbori de regsire (trie trees) . 10.5. Aplicaii 10.5.1. Implementarea unei colecii de segmente .. 10.5.2. Reprezentarea imaginilor prin arbori . Capitolul 11. Alte metode de codificare a unei structuri arborescente . 11.1. O reprezentare a arborilor binari strici .... 11.2. Crearea unui arbore binar pe baza parcurgerilor n preordine i inordine ... 11.3. Arbori indexai binar (AIB) . 11.4. Aplicaii .... 11.4.1. Implementarea structurii de AIB ... 11.4.2. Generalizarea structurii de AIB . Capitolul 12. Concluzii i cercetri viitoare .... Bibliografie . Lista figurilor .

181 184 184 185 186 187 188 189 190 193 193 200 200 201 204 207 207 209 212 212 215 216 217 217 220 230 232 242

Cuvinte cheie Arbori, arbori binari, structuri de date, structuri arborescente, reprezentare, parcurgere, cutare binar, arbori echilibrai, heap, arbori de compresie, statistic de ordine, arbori de decizie, arbore parial, arbore de acoperire minimal, coad de prioriti, arbori de regsire, codificare, arbori indexai binar.
SINTEZE ale prilor principale ale tezei de doctorat

Regsirea unor informaii n timp scurt este azi problema cea mai frecvent ntlnit n practic. Un astfel de exemplu este cutarea unui cuvnt n dicionar sau a unui numr n cartea de telefon. Aceste informaii sunt reprezentate de regul sub forma unor nregistrri, fiecare nregistrare coninnd un cmp numit cheie, ce permite identificarea fiecrei nregistrri. O astfel de situaie o vedem ntr-un dicionar unde nregistrrile au fiecare un cuvnt ce reprezint cmpul cheie pentru pronunia i definiia corespunztoare cuvntului respectiv. La elaborarea unui program pe calculator, n mod curent, se caut n primul rnd minimizarea timpului de calcul efectuat n memoria intern. Din punct de vedere teoretic, la conceperea algoritmilor, modelul de main cel mai utilizat este Ramdom Accesss Machine (RAM). Acest model consider memoria intern a calculatorului un tablou de cuvinte cu

lungime infinit n care fiecare intrare poate fi accesat cu un cost constant i se presupune c operaia de aducere a datelor in memoria intern de dimensiune limitat sau de extragere a acestora pe un disc magnetic este realizat numai de sistemul de operare. Structurile de date alese pentru modelarea datelor care urmeaz s fie prelucrate determin decisiv succesul unei aplicaii. Am ajuns astfel la subiect. Interesul major a fost axat pe analiza diverselor modaliti de reprezentare i prelucrare a structurilor de date arborescente, destinate unor aplicaii prin care se prelucreaz date cunoscute sau date pentru simularea i cercetarea unor procese economice. Arborii sunt analizai ca structuri de date neliniare predominante att n memoria intern ct i n memoria secundar. Azi, prin mrirea considerabil a capacitii de memorare a sistemelor de calcul, importana acestor structuri a crescut semnificativ. Doar n ultimii ani, modelul de date relaional, aprut in 1970, s-a dezvoltat n numeroase direcii, de la sisteme de informare geografic, tipuri de date abstracte i modele orientate obiect, la baze de date temporale i procesare analitic on-line. n momentul actual, eficiena procesului de cutare multidimensional sau cutare dup chei secundare pentru datele unei colecii este o cerin imperativ. Dar se constat c problema cutrii pe domenii multidimensionale e mult mai dificil dect similara ei n cazul unidimensional. Se constat azi c i pentru probleme simple de cutare multidimensional, nu avem tehnici unanim recunoscute ca fiind cele mai bune. Dar, o mare realizare este c avem multe structuri de date, de cele mai multe ori structuri arborescente prin care se rezolv probleme de cutare conceptual similare. De obicei, mulimea acestor date este dinamic i problema se reduce la alegerea structurii de date potrivite n funcie de tipul i statistica datelor care urmeaz a fi indexate, de proprietile intrinseci ale datelor multidimensionale i nu n ultimul rnd de utilizarea lor. Lucrarea de fa este consacrat descrierii i analizei structurilor arborescente care stau la baza cutrii n memoria principal. n ultimii ani, datorit popularitii crescnde a aplicaiilor care utilizeaz structurilor arborescente (cum ar fi cutare Web, sisteme de informare geografic, procesarea imaginilor, robotic), domeniul analizei acestor structuri a luat o mare amploare. Lucrarea este structurat dup cum urmeaz: n primul capitol(Prezentare general) am realizat o prezentare general a lucrrii i motivaia alegerii temei abordate. Am enumerat i unele aplicaii ale structurilor de date analizate pe parcursul lucrrii. n capitolul 2(Structuri de date arborescente elementare) se prezint o clasificare general a structurilor de date. Am mprit structurile de date pe baza descrierii lor din punct de vedere logic, fr a intra n tratarea implementrilor aferente. Tot n acest capitol am prezentat structura de tip arbore privit din dou puncte de vedere: al teoriei grafurilor i al arborilor cu rdcin. Aici am prezentat i modurile de reprezentare n memoria intern a arborilor i modalitile de parcurgere. O mare atenie a fost acordat arborilor binari datorit numrului mare de aplicaii n economie, dar i modului eficient n care se fac implementrile i modelrile proceselor din domeniul economic. La finalul fiecrui capitol au fost prezentate aplicaii i implementri n limbajul Pascal sau C++ ale unor elemente deosebite tratate n capitolul respectiv. Aici au fost prezentate aplicaii pentru implementarea arborilor binari m-ponderai, crearea unei structuri arborescente pe baza codului Pruffer, obinerea codului Pruffer pentru un arbore oarecare, determinarea formei poloneze a unei expresii aritmetice, implementarea transformrii unui arbore oarecare n arbore binar, implementarea nerecursiv a metodelor de parcurgere. Capitolul 3 al lucrrii(Arbori binari de cutare) este dedicat descrierii structurilor arborescente de cutare n memoria intern, cu proprietile i parametrii lor de baz. Aici sunt discutai parametrii care dau costul mediu al construciei i parcurgerii pentru arbori

binari de cutare. Au fost analizai arborii binari de cutare optimali i arborii binari de cutare echilibrai. Deoarece n preocuparea noastr au stat structurile arborescente am descris operaiile specifice prelucrrii arborilor binari de cutare, arborilor binari echilibrai AVL, arborilor bicolori, splay, am analizat algoritmii specifici acestor structuri n pseudocod sau n limbaj de programare deoarece structurile de date arborescente se implementeaz frecvent cu ajutorul arborilor binari echilibrai AVL sau al arborilor rou-negru. La sfritul acestui capitol, s-a prezentat o implementare a arborilor echilibrai dup pondere i o aplicaie a arborilor splay. n capitolul 4(Arbori de selecie), s-a prezentat structura de arbore de selecie. Au fost analizate cele mai reprezentative structuri ca variante ale structurii de heap i au fost menionate performanele i situaiile cnd aceste structuri se utilizeaz n practica economic. La finalul capitolului a fost descris o aplicaie a arborelui de selecie la interclasarea optimal a n iruri ordonate. n capitolul 5(Arbori de compresie Huffman), s-a prezentat structura de arbore de compresie Huffman, foarte util pentru eficiena optimizrii dimensiunii datelor economice. La finalul capitolului a fost descris o aplicaie implementat pentru utilizarea arborilor Huffman la compactarea unui fiier text. n capitolul 6(Arbori cu rdcin pentru reprezentarea mulimilor disjuncte), s-a prezentat structura de arbore cu rdcin, foarte util pentru eficiena reprezentrii mulimilor disjuncte care se regsesc frecvent n modelarea datelor economice. La finalul capitolului a fost descris o aplicaie implementat pentru descompunerea componentelor conexe ale unui graf neorientat utiliznd operaii Union-Find. n capitolul 7(Arbori de tip joc cu aplicaii n economie), s-a prezentat structura de arbore de tip joc ce modeleaz fenomenele economice. Au fost analizate aspectele actuale ale teoriei jocurilor, echilibrele jocurilor i au fost prezentate la finalul capitolului aplicaii ale arborilor de joc pentru simularea jocurilor de strategie. n capitolul 8(Arbori de decizie), s-a prezentat structura de arbore de decizie, structur frecvent utilizat n activitatea economic, mai ales n probleme de clasificare sau managementul riscului. Au fost descrise fundamentele teoretice, algoritmi de construcie, domenii de utilizare, cercetri actuale i la final a fost descris o modalitate concret de construcie a unui arbore de decizie. n capitolul 9(Arbore de acoperire minimal), s-a prezentat structura de arbore parial cu multiple utilizri n aplicaii economice, au fost prezentai algoritmi de construcie i la finalul capitolului este analizat o implementare a arborelui de acoperire minimal implementat eficient cu structura de coad de prioriti, i o alt aplicaie privind problema optimizrii unui depozit de carte. n capitolul 10(Generalizri ale arborilor binari de cutare. Cutri n spaii multidimensionale), s-au prezentat cele mai recente generalizri ale arborilor binari de cutare. A fost prezentat situaia cutrii pe spaii multidimensionale. Gsirea unor reprezentri adecvate pentru structurile de date multidimensionale este deosebit de important n aplicaiile din domeniile graficii computerizate, a sistemelor de gestiune a bazelor de date spaiale, a proiectrii asistate de calculator, a modelrii formelor, sistemelor informaionale geografice (GIS), prelucrrii imaginilor, geometriei computaionale, recunoaterii formelor i n altele. La finalul acestui capitol s-a prezentat o aplicaie la reprezentarea unei colecii de segmente i o modalitate de reprezentare a imaginilor prin intermediul structurilor arborescente. n capitolul 11(Alte metode de codificare a unei structuri arborescente), s-au prezentat dou metode noi de codificare a unei structuri de date arborescente cu analiza i prezentarea operaiilor specifice i s-a realizat o implementare eficient pentru utilizarea structurii de arbore indexat binar i o generalizare a structurii de arbore indexat binar.

n capitolul 12(Concluzii i cercetri viitoare) s-au prezentat concluziile privind structurile arborescente analizate i direciile propuse pentru o viitoare cercetare. n aceast lucrare scopul principal a fost de a realiza o analiz a structurilor de date arborescente utilizate pentru regsirea informaiei economice, deoarece alegerea structurii adecvate unei aplicaii contribuie esenial la succesul (performanele) aplicaiei. Dup precizarea aplicaiei, va trebui aleas structura de date i tipul reprezentrii datelor n funcie de cerinele acesteia. Am cutat s aflm care tip de reprezentare se dovedete a fi mai potrivit cerinelor din aplicaii. Pe parcursul lucrrii am analizat un numr mare de metode de reprezentare ale structurilor de date arborescente i am acordat atenie maxim pentru structurile de date care evideniau particulariti avantajoase scopurilor urmrite. Concluziile finale nu declar ferm superioritatea uneia dintre structurile de date analizate, deoarece exist mari diferene n funcie de specificul i proprietile datelor. n lucrarea de fa am dorit s evideniez pe lng diversele aplicaii ale structurilor arborescente i modul n care se aleg cele mai performante structuri arborescente pentru aplicaii economice. Marele avantaj al utilizrii unor structuri de date arborescente este acela c faciliteaz regsirea rapid a unor submulimi ale datelor reprezentate i astfel, operaiile se implementeaz cu algoritmi care au un timp de execuie deosebit de performant. Mai mult, structurile de date arborescente sunt utile datorit abilitii lor de a se focaliza asupra unei submulimi a datelor iniiale. Datorit avantajelor lor, unele structuri arborescente, ntr-o varietate foarte mare, sunt generatoare de metode moderne i foarte utilizate la reprezentarea i arhivarea datelor. Pentru a le oferi puncte de sprijin celor care doresc s utilizeze aceste structuri de date arborescente, dup prezentarea acestora am analizat performanele acestora. Eficiena soluiilor problemelor prezentate la finalul fiecrui capitol este mrit prin alegerea unei reprezentri corespunztoare a datelor. Cu toate c la finalul analizei structurilor arborescente nu am putut declara cea mai eficient structur de date pe nici una dintre ele, din moment ce acest lucru nu era posibil, am artat c ele sunt comparabile i am cutat s identificm cazurile n care performanele lor au i diferene. Unul din obiectivele urmrite a fost de a analiza prin care structur de date se obin algoritmi de prelucrare cu timpul de execuie cel mai bun. O alt problem constituie modul n care se pot msura performanele algoritmilor prezentai. Am analizat pentru unele din structurile de date prezentate diverse modificri de implementare pentru mbuntirea performanelor. Am analizat modelele datelor, apoi necesarul de memorie i timpul de execuie al algoritmilor prezentai. Dar am constatat c gsirea modelelor care s genereze date astfel nct s aib distribuii similare cu cele ale datelor reale este o provocare serioas. O problem de cercetare actual este dezvoltarea de modele potrivite pentru generarea datelor necesare msurrii performanelor structurilor arborescente. n final, menionm c lucrarea cuprinde numeroase figuri i algoritmi descrii n pseudocod sau implementai n limbajele C++ sau Pascal.

Curriculum Vitae al doctorandului


1. DATE PERSONALE: Numele si prenumele: Manolache Gheorghe Adresa: Str. Petru Rare nr. 4, bl. 4, sc. A ap 14, Piatra Neam, Romnia Data si locul naterii: 17.10.1959, Trgu Neam, jud. Neam Starea civila: Cstorit, un copil Telefon: 0744612378 E-mail: gelumnt@yahoo.com

2. FUNCTIA ACTUALA: Profesor de informatic la Colegiul Naional de Informatic, Piatra Neam. 3. STUDII: Studii absolvite Universitatea Alexandru Ioan Cuza, Iai, Facultatea de Matematic, specializarea informatic. Anul absolvirii: 1983. Liceul Petru Rare Piatra Neam. Anul absolvirii: 1978. Specializri _ _ Programare C#, certificat 2008 SGBD Oracle, certificat 2007

_ Psihologie i consiliere educaional, Academia Titu Maiorescu Bucureti, Facultatea de Psihologie, 2006-2008, diploma de master _ examinator ECDL, permis ECDL, 2005

_ Managementul instituiilor publice, Academia de Studii Economice Bucureti, 20042006, cu obinerea Diplomei de master _ Management public, Academia de Studii Economice Bucureti, 2003-2004, cu obinerea Diplomei de studii postuniversitare Limbi strine cunoscute:

_engleza, franceza Cunotinte computer: _Pascal, C, FoxPro, Visual Basic, MS Office, SQL, Oracle 4. FUNCTII OCUPATE Funcii didactice: _ _ _ Profesor de informatic la Colegiul Naional de Informatic, Piatra Neam, 1991-prezent Lector asociat la ASE Bucureti, IDD Piatra Neam, 2003-prezent Lector asociat la Univ. Titu Maiorescu Bucureti,, IDD Piatra Neam, 2005-prezent

_ Lector asociat la Academia de muzic Gh. Dima, Cluj, Facultatea de Muzic Piatra Neam, 2005-prezent

Funcii administrative: _Director adjunct la Colegiul Naional de Informatic, Piatra Neam, 1994-2008 _Sef centru calcul IMC Piatra Neam, 1990-1991 _Analist-programator, 1983-1990

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