Alberi di ricerca Lezione n°4

Slides:



Advertisements
Presentazioni simili
Alberi binari Definizione Sottoalberi Padre, figli
Advertisements

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)
Huffman Canonico: approfondimento. Come abbiamo visto, Huffman canonico ci permette di ottenere una decompressione più veloce e con un uso più efficiente.
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.
Alberi. Gli alberi sono una generalizzazione delle liste che consente di modellare delle strutture gerarchiche come questa: Largo Fosco Dora Drogo Dudo.
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
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
La funzione Path e le forme a cespuglio
Alberi binari Definizione Sottoalberi Padre, figli
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Lezione n°15 Prof.ssa Rossella Petreschi
Algoritmi e Strutture Dati
Rappresentazione di alberi
Correzione 1° Esonero Lezione n°13
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 a.a.2014/2015 Prof.ssa Rossella Petreschi
Lezione n°4 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Paths, tree and flowers Lezione n°14
Algoritmi e Strutture Dati
K4 è planare? E K3,3 e K5 sono planari? Sì!
Algoritmi e Strutture Dati
Lezione n°11 Prof.ssa Rossella Petreschi
Lezione n°12 Prof.ssa Rossella Petreschi
ABBINAMENTO Lezione n°13
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Lezione n°6 Prof.ssa Rossella Petreschi
Introduzione agli Algoritmi e alle Strutture Dati
Analisi ammortizzata Lezione n°3
Gestione dinamica di tabelle
Alberi n-ary Lezioni di C.
Algoritmi e Strutture Dati
Progettare algoritmi veloci usando strutture dati efficienti
Ottimizzazione distribuita
Estensione di strutture dati e
Algoritmi e Strutture Dati
Backtracking Lezione n°17 Prof.ssa Rossella Petreschi
APPUNTI SUL LINGUAGGIO C Alberi Binari – primi esercizi
Algoritmi e Strutture dati 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:

Alberi di ricerca Lezione n°4 Prof.ssa Rossella Petreschi Lezione del 10/10/2013 del Corso di Algoritmica

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: x foglia: si elimina x e l’arco (p(x),x). O(1) 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) 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) Hn - 4n ≤ 1.38nlogn dove Hn = (Σ1/i, per i = 1,…,n) ≤ logen+ γ (γ =0.5572,) n-esimo numero armonico ≤ logen + costante di Eulero logen = 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 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

Analisi del caso medio della costruzione di un AR (definizioni) Sn : insieme delle n! permutazioni distinte di 1,2,…n Sn,j = sottoinsieme di Sncaratterizzato 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 Sn,j (n-1)!/(j-1)!: numero di volte che ogni permutazione di j-1 elementi appare in Sn,j

Analisi del caso medio della costruzione di un AR (equazione di ricorrenza per A(n)) A(n) = n-1+(2/n)Σ A(j-1), per j = 1,…,n perché: A(n) = (1/n!)ΣBliv(a) = con a in Sn = (1/n!)Σ [n-1+ Lliv(a) +Rliv(a)] = con a in Sn = (1/n!)Σ (n-1)+ (1/n!)Σ Lliv(a) +(1/n!)Σ Rliv(a) = con a in Sn = (n-1)+ (2/n!)Σ Lliv(a) = con a in Sn = (n-1)+ (2/n!)ΣΣ Lliv(a)= con a in Sn,j e j=1,…n = (n-1)+ (2/n!)Σ((n-1)!/(j-1)!) Σ Bliv(a) = con a in Sj-1 e j=1,…n = (n-1)+ (2/n!)Σ(n-1)! (Σ Bliv(a) /(j-1)!) = con a in Sj-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)