Prof.ssa Rossella Petreschi Lezione del 15 /10/2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Paragrafo 7.4 del testo Kingston “Algorithms and.

Slides:



Advertisements
Presentazioni simili
Alberi binari Definizione Sottoalberi Padre, figli
Advertisements

Lez. 91 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Alberi di ricerca.
RB-alberi (Red-Black trees)
Alberi binari di ricerca
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 22/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 12/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 19/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi e strutture Dati - Lezione 7
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Interrogazioni.
Il problema del dizionario
Il problema della ricerca Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Alberi AVL (Adelson-Velskii.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Alberi AVL (Adelson-Velskii.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Rotazioni.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Alberi Binari di Ricerca.
Algoritmi e Strutture Dati (Mod. A)
Algoritmi e Strutture Dati
Albero: insieme di punti chiamati NODI e linee chiamate EDGES
Algoritmi e Strutture Dati 20 aprile 2001
Modello dati ALBERO Albero: Albero: insieme di punti chiamati NODI e linee chiamate EDGES EDGE: linea che unisce due nodi distinti Radice (root): in una.
Modello dati ALBERO Albero: Albero: insieme di punti chiamati NODI e linee chiamate EDGES EDGE: linea che unisce due nodi distinti Radice (root): in una.
Esercizi su alberi binari
Algoritmi e Strutture Dati
RB-insert(T, z) // z.left = z.right = T.nil Insert(T, z) z.color = RED // z è rosso. Lunica violazione // possibile delle proprietà degli alberi // rosso-neri.
alberi completamente sbilanciati
Algoritmi e Strutture Dati
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati.
Alberi Alberi radicati : alberi liberi in cui un vertice è stato scelto come radice. Alberi liberi : grafi non orientati connessi e senza cicli. Alberi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Rotazioni.
MODULO STRUTTURE DATI FONDAMENTALI: Strutture dinamiche
Alberi rosso-neri Le operazioni sugli alberi binari di ricerca hanno complessità proporzionale all’altezza h dell’albero. Gli alberi rosso-neri sono alberi.
Il problema della ricerca Algoritmi e Strutture Dati.
1 Ordinamento (Sorting) INPUT: Sequenza di n numeri OUTPUT: Permutazione π = tale che a 1 ’  a 2 ’  … …  a n ’ Continuiamo a discutere il problema dell’ordinamento:
Algoritmi e strutture Dati - Lezione 7 1 Algoritmi di ordinamento ottimali L’algoritmo Merge-Sort ha complessità O(n log(n))  Algoritmo di ordinamento.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Soluzione esercizio.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Soluzione esercizio.
1 Ordinamento (Sorting) Input: Sequenza di n numeri Output: Permutazione π = tale che: a i 1  a i 2  ……  a i n Continuiamo a discutere il problema dell’ordinamento:
Il problema della ricerca Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
Capitolo 6 Il problema del dizionario Algoritmi e Strutture Dati.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Sesta giornata Risolvere efficientemente un problema in P: Il problema dell’ordinamento: Insertion.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento: lower bound Ω(n log n) e MergeSort ((*) l’intera lezione) Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Un’introduzione.
Algoritmi e Strutture Dati HeapSort. Select Sort: intuizioni L’algoritmo Select-Sort  scandisce tutti gli elementi dell’array a partire dall’ultimo elemento.
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Algoritmi e Strutture Dati Università di Camerino Corso di Laurea in Informatica (12 CFU) I periodo didattico Emanuela Merelli
Prof.ssa Rossella Petreschi Lezione del 3 /10/2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Capitolo 18 del testo Cormen, Leiserson, Rivest.
Prof.ssa Rossella Petreschi Lezione del 17 /10/2014 del Corso di Algoritmica Lezione n°5.
Prof.ssa Rossella Petreschi Lezione del 15 /10/2012 del Corso di Algoritmica B-alberi Lezione n°5.
Prof.ssa Rossella Petreschi Lezione del 29/10/2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Capitolo 19 del testo Cormen, Leiserson, Rivest,
Alberi autoaggiustanti
Alberi di ricerca di altezza logaritmica
Alberi binari Definizione Sottoalberi Padre, figli
B-alberi e alberi autoaggiustanti
Lezione n°4 Prof.ssa Rossella Petreschi
Alberi di ricerca Lezione n°4
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Lezione n°7 Splay-Trees e Heaps Prof.ssa Rossella Petreschi
Transcript della presentazione:

Prof.ssa Rossella Petreschi Lezione del 15 /10/2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Paragrafo 7.4 del testo Kingston “Algorithms and data structures” Edizioni: Addison-Wesley Capitolo 12 del testo Cormen, Leiserson, Rivest “Introduzione agli algoritmi” Edizioni: Jackson Libri Alberi di ricerca Lezione n°4

Alberi di ricerca Albero di ricerca, AR: albero binario tale che ogni nodo u contiene un k, elemento di un tipo sul quale sia definito un ordinamento; tutti i nodi del sottoalbero sinistro di u contengono elementi minori o uguali a k; tutti i nodi del sottoalbero destro di u contengono elementi maggiori di k. ( il segno di uguaglianza può essere aggiunto indifferentemente o al sottoalbero sinistro o al sottoalbero destro, non ad entrambi) Una visita inorder di AR, in Θ(n), genera tutti gli elementi di AR in ordine crescente.

Inserzione A partire dalla radice, si segue un cammino discendente nell’albero. Si controlla x con il valore y del nodo che si sta analizzando (inizialmente y = r): 1. Se x≤y si confronta x con il figlio sinistro di y 2. Se x>y si confronta x con il figlio destro di y Si prosegue ricorsivamente sul cammino fintanto che non si trova libera la posizione appropriata sull’albero. Ogni operazione di inserimento costa al più O(h(AR)) ≤ O(n)

Cancellazione Si cancella x differenziando: 1.x foglia: si elimina x e l’arco (p(x),x). O(1) 2.x ha 1 figlio y: si elimina x e gli archi (p(x),x) e (x,y) e si crea l’arco(p(x),y) (se x era radice,y sarà la nuova radice). O(1) 3.x ha 2 figli: sia z il predecessore di x (massimo del sottoalbero sx di x).Si scambi x con z e si cancelli x nella nuova posizione. Si ricade nei casi 1 e 2 perché z ha al più un figlio. O(h(AR))≤O(n)

Analisi nel caso medio della costruzione di un AR teorema Th. La complessità media di una sequenza di inserzioni di n elementi, a partire da un albero di ricerca vuoto, supposte ugualmente distribuite le n! permutazioni di 1,2,…n, è dato da A(n) = 2(n+1) H n - 4n ≤ 1.38nlogn dove H n = (Σ1/i, per i = 1,…,n) ≤ log e n+ γ (γ =0.5572,) n-esimo numero armonico ≤ log e n + costante di Eulero log e n = logn/loge

Analisi del caso medio della costruzione di un AR (da dove si parte) A(n) = (1/n!)ΣBliv(a), per ogni a in S n Dove S n = insieme delle n! permutazioni distinte di 1,2,…n B(a) = AR relativo alla permutazione a Bliv(a) = Σ liv(x), per tutti gli x nodi di B(a) liv(x) = numero di spigoli nel cammino dalla radice ad x; liv(r)=0. Esempio, A(3) = [ ]/6 =8/3

Analisi del caso medio della costruzione di un AR (definizioni) S n : insieme delle n! permutazioni distinte di 1,2,…n S n,j = sottoinsieme di S n caratterizzato dal primo elemento uguale a j B(a) : AR relativo alla permutazione a L(a) e R(a) :sottoalberi sinistro e destro di B(a) liv(x) : numero di spigoli nel cammino dalla radice ad x Bliv(a) : Σ liv(x), per tutti gli x nodi di B(a) Lliv(a) e Rliv(a): Σ liv(x), per tutti gli x nodi di L(a)/R(a) (n)! : numero di permutazioni, tutte ugualmente probabili, di n elementi (n-1)!: numero di elementi in S n,j (n-1)!/(j-1)!: numero di volte che ogni permutazione di j-1 elementi appare in S n,j

Analisi del caso medio della costruzione di un AR (equazione di ricorrenza per A(n)) A(0) = 0 A(n) = n-1+(2/n)Σ A(j-1), per j = 1,…,n perché: A(n) = (1/n!)ΣBliv(a) = con a in S n = (1/n!)Σ [n-1+ Lliv(a) +Rliv(a)] = con a in S n = (1/n!)Σ (n-1)+ (1/n!)Σ Lliv(a) +(1/n!)Σ Rliv(a) = con a in S n = (n-1)+ (2/n!)Σ Lliv(a) = con a in S n = (n-1)+ (2/n!)ΣΣ Lliv(a)= con a in S n, j e j=1,…n = (n-1)+ (2/n!)Σ((n-1)!/(j-1)!) Σ Bliv(a) = con a in S j-1 e j=1,…n = (n-1)+ (2/n!)Σ(n-1)! (Σ Bliv(a) /(j-1)!) = con a in S j-1 e j=1,…n = (n-1) + (2/n!)Σ (n-1)!A(j-1) = con j=1,…n = (n-1) + (2/n) Σ A(j-1)

Analisi del caso medio della costruzione di un AR (soluzione dell’equazione di ricorrenza.1) A(0) = 0 A(n) = n-1+(2/n)Σ A(j-1), per j = 1,…,n Passo1: si elimina la sommatoria 1. si moltiplica per n nA(n) = n(n-1) + 2Σ A(j-1), per j = 1,…,n 2. si calcola per n-1 (n-1)A(n-1) = (n-1)(n-2)+ 2Σ A(j-1), per j = 1,…,n-1 3. si sottrae la eq 2 dalla eq1 nA(n) - (n-1)A(n-1) = n (n-1) - (n-1)(n-2) + 2A(n-1) nA(n) = 2 (n-1) + (n+1)A(n-1) Passo 2: si divide per 2n(n+1) nA(n) = 2 (n-1) + (n+1)A(n-1) A(n)/ 2(n+1) = (n-1)/n (n+1) + A(n-1)/2n A(n)/ 2(n+1) = 2/ (n+1) -1/n + A(n-1)/2n

Analisi del caso medio della costruzione di un AR (soluzione dell’equazione di ricorrenza.2) Passo3: si applicano ripetute sostituzioni A(n)/ 2(n+1) = 2/ (n+1) -1/n + A(n-1)/2n = = 2/ (n+1) -1/n + [2/n - 1/(n-1) +A(n-2)/2(n-1)]= = 2/ (n+1) -1/n + [2/n - 1/(n-1) + [2/n-1 - 1/n-2 + A(n-3)/2(n-2)]]= = 2/ (n+1) + 2/n +…+ 2/n-(i-2) -1/n - 1/(n-1)-…- 1/n-(i-1) + A(n-i)/2(n- (i-1)) Passo4: si pone i=n A(n)/ 2(n+1) = 2/(n+1) + 2/n +…+ 1 -1/n - 1/(n-1)-… = = 2/n +…+ 1 -1/n - 1/(n-1)-…- 1 + (2/1-2/1) + 2/(n+1) = = (2/n +…+ 2/2 + 2/1) - (1/n +…+ 1/1) + 2/(n+1) - 2/1 = Σ1/i -2n/n+1, i=1,..n Passo5: si moltiplica per 2(n+1) 2(n+1)A(n)/ 2(n+1) =2(n+1)(Σ1/i -2n/n+1) A(n) =2(n+1)Σ1/i - (2(n+1))(2n/n+1) A(n) =2(n+1)Σ1/i - 4n

Analisi dell’operazione di cancellazione Non esiste per la cancellazione un risultato analogo a quello della complessità media per l’inserimento, quindi rimane valida solo la complessità asintotica nel caso peggiore: O(h(AR))≤O(n) Per essere sicuri di mantenere al più logaritmica l’altezza dell’albero, sia per inserzioni che per cancellazioni, si introducono gli alberi di ricerca bilanciati, il cui bilanciamento è mantenuto tramite rotazioni.

Rotazioni (a meno di simmetrie) Rotazione destra Rotazione sinistra/destra

Alberi AVL Si associ ad ogni nodo u di AR un valore intero fb(u) dato dalla differenza fra le altezze dei suoi sottoalberi. Albero AVL è un albero di ricerca 1-bilanciato, ovvero -1≤ fb(u) ≤1 per ogni u Vale: l’altezza di una albero AVL è logaritmica nel numero dei suoi nodi

Altezza di un AVL Alberi di Fibonacci: alberi AVL con il minor numero di nodi a parità di altezza n 0 = 1; n 1 = 2; n h = 1+ n h-1 + n h-2 (n(h):minimo numero di nodi di un albero AVL di altezza h) Vale: n h = F h+3 -1 si dimostra per induzione Passo base n 0 = 1= F 3 -1=2-1 Ipotesi induttiva n k = F k+3 -1, per ogni k < h Prova n h = 1+ n h-1 + n h-2 = 1 + F h F h+1 -1 = F h+3 -1 Th: Un albero AVL con n nodi ha altezza O(logn) Prova: n ≥ n h = F h+3 -1 ≥  h+1 -1