Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi

Slides:



Advertisements
Presentazioni simili
Alberi binari Definizione Sottoalberi Padre, figli
Advertisements

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Alberi AVL (Adelson-Velskii.
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.
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,
Prog21 Alberi binari (radicati e ordinati) Il figlio destro della radice La radice Il figlio sinistro della radice Il padre del nodo 5.
Fondamenti di Informatica A - Massimo Bertozzi ALBERI E ALBERI BINARI DI RICERCA (BST)
Prof.ssa Rossella Petreschi Lezione del 3/12/2013 del Corso di Algoritmica GRAFI e PLANARITA’ Lezione n°15.
Prof.ssa Rossella Petreschi Lezione del 29 /10/2014 del Corso di Algoritmica Lezione n°8.
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Alberi autoaggiustanti
Alberi di ricerca di altezza logaritmica
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Progettare algoritmi veloci usando strutture dati efficienti
Inserzione e Cancellazione
Progettare algoritmi veloci usando strutture dati efficienti
Dizionari alberi bilanciati.
Alberi di ricerca di altezza logaritmica
Analisi di sequenze di operazioni Union-Find
Lezione n°9 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Lezione n°7 Prof.ssa Rossella Petreschi
Alberi binari Definizione Sottoalberi Padre, figli
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi e Strutture Dati
Rappresentazione di alberi
Correzione 1° Esonero Lezione n°13
Rappresentazione di alberi binari
B-alberi e alberi autoaggiustanti
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Complessità ammortizzata degli algoritmi Union Find
La gestione degli insiemi disgiunti
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Sulla complessità Lezione n°2
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Lezione n°4 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Lezione n°11 Prof.ssa Rossella Petreschi
Dizionari alberi bilanciati.
ABBINAMENTO Lezione n°13
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Rappresentazione di alberi
Lezione n°6 Prof.ssa Rossella Petreschi
Introduzione agli Algoritmi e alle Strutture Dati
Gestione dinamica di tabelle
Alberi n-ary Lezioni di C.
Algoritmi e Strutture Dati
Progettare algoritmi veloci usando strutture dati efficienti
Estensione di strutture dati e
Algoritmi e Strutture Dati
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Alberi di ricerca Lezione n°4
Esercizio Dato un albero binario, definiamo altezza minimale di un nodo v la minima distanza di v da una delle foglie del suo sottoalbero, definiamo invece.
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Lezione n°7 Splay-Trees e Heaps Prof.ssa Rossella Petreschi
concetti ed applicazioni
Insiemi disgiunti.
Algoritmi e Strutture Dati
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Unione per ranghi compressi
Tabelle dinamiche Lezione n°3
Analisi ammortizzata Lezione n°2
HeapSort Stesso approccio incrementale del selectionSort Tipo di dato
Transcript della presentazione:

Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi Alberi binari di ricerca Lezione n°4 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi ASD a.a.2010/2011- Lezione n°4

Alberi di ricerca Ogni operazione di inserimento costa O(h(AR))≤O(n) 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 di k; tutti i nodi del sottoalbero destro di u contengono elementi maggiori di k. Ogni operazione di inserimento costa O(h(AR))≤O(n) Una visita inorder di AR, in (n), genera tutti gli elementi di AR in ordine crescente. ASD a.a.2010/2011- Lezione n°4

Analisi nel caso medio della costruzione di un AR teorema Th. La complessità media di una sequenza di n inserzioni 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) Hn - 4n ≤ 1.38nlogn dove Hn = (1/i, per i = 1,…,n) ≤ lnn+ g (g =0.5572,) n-esimo numero armonico ≤ lnn + costante di Eulero ASD a.a.2010/2011- Lezione n°4

Analisi nel caso medio della costruzione di un AR da dove si parte A(n) = (1/n!)Bliv(a), per ogni a in Sn Dove Sn = 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) = [3+3+3+3+2+2]/6 =8/3 ASD a.a.2010/2011- Lezione n°4

Equazione di ricorrenza per A(n)/1 A(n) = n-1+(2/n) A(j-1), per j = 1,…,n perché: A(n) = (1/n!)Bliv(a) = (1/n!) [n-1+ Lliv(a) +Rliv(a)] = (1/n!) (n-1)+ (1/n!) Lliv(a) +(1/n!) Rliv(a)] = (n-1)+(2/n!) Lliv(a) = (n-1)+(2/n!) Lliv(a), con a in Sn,j e j=1,…n = (n-1) + (2/n!) (n-1)!A(j-1) Dove L(a)/R(a) = sottoalbero sinistro/destro di B(a) Lliv(a)/Pliv(a) =  liv(x), per tutti gli x nodi di L(a)/R(a) Sn,j = sottoinsieme di Sn caratterizzato dal primo elemento uguale a j ASD a.a.2010/2011- Lezione n°4

Equazione di ricorrenza per A(n)/2 A(n) = n-1+(2/n) A(j-1), per j = 1,…,n ……..(n-1)+(2/n!) Lliv(a), con a in Sn,j e j=1,…n = (n-1) + (2/n!) (n-1)!A(j-1) perchè Lliv(a) = (n-1)!/(j-1)!  Bliv(a), con a in Sj-1= (n-1)!A(j-1) dato che (j-1)! sono le possibili permutazioni, tutte ugualmente probabili, di j-1 elementi (n-1)! sono il numero di elementi in Sn,j (n-1)!/(j-1)! è il numero di volte che ogni permutazione di j-1 elementi appare in Sn,j ASD a.a.2010/2011- Lezione n°4

Soluzione dell’equazione di ricorrenza(1) A(n) = n-1+(2/n) A(j-1), per j = 1,…,n Passo1: si elimina la sommatoria si moltiplica per n nA(n) = n(n-1) + 2 A(j-1), per j = 1,…,n si calcola per n-1 (n-1)A(n-1) = (n-1)(n-2)+ 2 A(j-1), per j = 1,…,n-1 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) 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 ASD a.a.2010/2011- Lezione n°4

Soluzione dell’equazione di ricorrenza(2) A(n) = n-1+(2/n) A(j-1), per j = 1,…,n 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)-…- 1 + 0= 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 ASD a.a.2010/2011- Lezione n°4

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. ASD a.a.2010/2011- Lezione n°4

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 ASD a.a.2010/2011- Lezione n°4

Altezza di un AVL Alberi di Fibonacci: alberi AVL con il minor numero di nodi a parità di altezza Sia n(h) il minimo numero di nodi di un albero AVL di altezza h. n0 = 1; n1 = 2; nh = 1+ nh-1+ nh-2 Vale: nh = Fh+3-1 Per induzione Passo base n0 = 1= F3-1=2-1 Ipotesi induttiva nk = Fk+3-1, per ogni k < h Prova nh = 1+ nh-1+ nh-2 = 1 + Fh+2-1+ Fh+1-1 = Fh+3-1 Th: Un albero AVL con n nodi ha altezza O(logn) Prova: n ≥ nh = Fh+3-1 ≥ h+1-1 ASD a.a.2010/2011- Lezione n°4 11

Alberi Red/Black Albero Red/Black, R/B: albero RT tale che ad ogni nodo u è associato un colore (rosso o nero); ogni foglia ha colore nero; se un nodo ha colore rosso, entrambi i suoi figli hanno colore nero; ogni cammino semplice da un nodo x(non incluso) ad una foglia contiene lo stesso numero di nodi neri, bh(x) Vale: l’altezza di una labero Red/Black è logaritmica nel numero dei suoi nodi ASD a.a.2010/2011- Lezione n°4 12

Altezza di un albero Red/Black Il sottoalbero radicato in x,SA(x), contiene almeno 2bh(x)-1 nodi Prova (per induzione su h) Passo base: se h=0, x è una foglia 2bh(x)-1 =1-1 = 0 Ipotesi induttiva 2bh(y)-1 per ogni y con h(y) < h(x) Prova: SA(x) = x+ SA(fs(x))+ SA(fd(x)) Nodi interni di SA(x) ≤ (2bh(x)-1-1)+ (2bh(x)-1-1)+1≤ 2bh(x)-1 Th: Un albero Red/Black con n nodi ha altezza O(logn) Prova: per (*) almeno metà dei nodi su un qualunque cammino dalla radice ad una foglia (esclusala radice)devono essere neri (bh(x) ≥ h/2) e quindi n ≥ 2bh(x)-1≥ 2h/2-1 (*) se un nodo ha colore rosso, entrambi i suoi figli hanno colore nero. ASD a.a.2010/2011- Lezione n°4 13