Dizionari alberi bilanciati. maggio 2002ASD2002 - Alberi bilanciati2 dizionari ADT che supportano le seguenti operazioni membership anche detta search.

Slides:



Advertisements
Presentazioni simili
Strutture dati per insiemi disgiunti
Advertisements

Alberi binari Definizione Sottoalberi Padre, figli
Algoritmi e Strutture Dati
Estendere i linguaggi: i tipi di dato astratti
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
Code con priorità Ordinamento
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Esercizi su alberi binari
Alberi binari Definizione della struttura dati: struct tree { };
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
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.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) 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.
Interrogazioni su un albero binario di ricerca Search(S,k) – dato un insieme S ed un valore chiave k restituisce un puntatore x ad un elemento in S tale.
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
Dizionari alberi bilanciati.
Algoritmi e Strutture Dati 20 aprile 2001
Algoritmi e Strutture Dati
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
Alberi di ricerca binari
Fibonacci Heaps e il loro utilizzo nell’algoritmo di Prim
Anche la RB-Delete ha due fasi: Nella prima viene tolto un nodo y avente uno dei sottoalberi vuoto sostituendolo con la radice dellaltro sottoalbero. Per.
Ispezione lineare La funzione hash h(k,i) si ottiene da una funzione hash ordinaria h'(k) ponendo L’esplorazione inizia dalla cella h(k,0) = h'(k) e continua.
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.
Heap Ordinamento e code di priorità Ugo de Liguoro.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
B trees.
Alberi binari Definizione della struttura dati: struct tree { };
Corso di Algoritmi e Strutture Dati con Laboratorio A.A. 2014/15 Alberi bilanciati (rif. Algoritmi in Java, di R. Sedgewick)
Alberi CORDA – Informatica A. Ferrari Testi da
Algoritmi e Strutture Dati
Heap concetti ed applicazioni. maggio 2002ASD - Heap2 heap heap = catasta condizione di heap 1.albero binario perfettamente bilanciato 2.tutte le foglie.
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Rotazioni.
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.
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.
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.
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.
Dizionari alberi bilanciati.
Alberi binari Definizione Sottoalberi Padre, figli
Algoritmi e Strutture Dati
Dizionari alberi bilanciati.
Transcript della presentazione:

dizionari alberi bilanciati

maggio 2002ASD Alberi bilanciati2 dizionari ADT che supportano le seguenti operazioni membership anche detta search insert delete o remove le liste e i BST sono dizionari

maggio 2002ASD Alberi bilanciati3 dizionari/2 tutte le implementazioni finora considerate hanno almeno unoperazione di costo lineare w.c.t. (worst case time, tempo nel caso peggiore) in molti casi un costo lineare è giudicato inaccettabile strutture più efficienti? alberi bilanciati tavole hash

maggio 2002ASD Alberi bilanciati4 introduzione al bilanciamento nozione intuitiva di bilanciamento tutti i rami di un albero hanno approssimativamente la stessa lunghezza ciascun nodo interno ha molti figli caso ideale per un albero k-ario ciascun nodo ha 0 o k figli la lunghezza di due rami qualsiasi differisce di al più una unità

maggio 2002ASD Alberi bilanciati5 -1 foglia + 1 nodo interno +2 foglie bilanciamento perfetto un albero binario perfettamente bilanciato di n nodi ha altezza se ogni nodo ha 0 o 2 figli n f = n i +1 n f = # foglie n i = # nodi interni n = n f + n i le foglie sono circa il 50% dei nodi

maggio 2002ASD Alberi bilanciati6 bilanciamento perfetto/2 facilmente generalizzabile ad alberi di arità k costo di ricerca/inserimento/eliminazione O(log n) ripetuti inserimenti/eliminazioni possono distruggere il bilanciamento degrado delle prestazioni

maggio 2002ASD Alberi bilanciati7 bilanciamento in altezza un albero è bilanciato in altezza se le altezze dei sottoalberi sinistro e destro di ogni nodo differiscono di al più ununità gli alberi bilanciati in altezza sono detti alberi AVL da Adelson-Velskii & Landis, primi proponenti

maggio 2002ASD Alberi bilanciati8 fattore di bilanciamento fattore di bilanciamento (FDB): altezza sottoalbero dx – altezza sottoalbero sx in un albero bilanciato in altezza |FDB| 1, per ogni nodo

maggio 2002ASD Alberi bilanciati9 alberi AVL?

maggio 2002ASD Alberi bilanciati10 alberi di Fibonacci hFhFh AVL h

maggio 2002ASD Alberi bilanciati11 alberi di Fibonacci/2 AVL i AVL i +1 AVL i +2 alberi di Fibonacci alberi bilanciati di altezza i col minimo numero di nodi Relazioni AVL i +2 = AVL i + AVL i F i +2 = F i + F i +1 AVL i = F i +2 – 1

maggio 2002ASD Alberi bilanciati12 alberi di Fibonacci/3 un albero di Fibonacci ha tutti i fattori di bilanciamento dei nodi interni pari a ± 1 è lalbero bilanciato più vicino alla condizione di non bilanciamento un albero di Fibonacci con n nodi ha altezza < 1.44 lg(n +2) – dimostrato da Adelson-Velskii & Landis un AVL di n nodi ha altezza (lg n )

maggio 2002ASD Alberi bilanciati13 inserimento in AVL 1. inserire nuovo nodo come in un BST classico il nuovo nodo diviene una foglia 2. ricalcolare i fattori di bilanciamento che sono mutati in seguito allinserimento solo nel ramo interessato allinserimento (gli altri fattori non possono mutare), dal basso verso lalto 3. se nel ramo appare un fattore di bilanciamento pari a ±2 occorre ribilanciare tramite rotazioni

maggio 2002ASD Alberi bilanciati14 rotazioni negli AVL casi possibili DD: inserimento nel sottoalbero destro di un figlio destro (del nodo che si sbilancia) SD: inserimento nel sottoalbero sinistro di un figlio destro (del nodo che si sbilancia) DS: inserimento nel sottoalbero destro di un figlio sinistro (del nodo che si sbilancia) SS: inserimento nel sottoalbero sinistro di un figlio sinistro (del nodo che si sbilancia) simmetrici a coppie una rotazione (semplice o doppia) è sempre sufficiente

maggio 2002ASD Alberi bilanciati15 rotazione semplice (caso DD) gli antenati di P non sono interessati allinserimento perché in seguito alla rotazione recuperano il loro fattore di bilanciamento precedente

maggio 2002ASD Alberi bilanciati16 rotazione doppia (caso SD) gli antenati di P non sono interessati allinserimento

maggio 2002ASD Alberi bilanciati17 inserimento negli AVL/costo passo 1: proporzionale allaltezza dellalbero (lg n ) passo 2: proporzionale allaltezza dellalbero (lg n ) passo 3: (1) in totale: (lg n )

maggio 2002ASD Alberi bilanciati18 cancellazione negli AVL 1. cancellare nodo come in un BST classico 2. ricalcolare i fattori di bilanciamento che sono mutati in seguito alla cancellazione solo nel ramo interessato allinserimento (gli altri fattori non possono mutare), dal basso verso lalto 3. per ogni nodo con fattore di bilanciamento pari a ±2 occorre operare una rotazione semplice o doppia O(lg n ) rotazioni nel caso peggiore più costoso dellinserimento

maggio 2002ASD Alberi bilanciati19 rotazione semplice eliminazione foglia da sottoalbero sinistro di P il figlio destro ha FDB +1; a), b) e c) il figlio destro ha FDB 0; d), e) ed f)

maggio 2002ASD Alberi bilanciati20 rotazione doppia eliminazione foglia da sottoalbero sinistro di P FDB(Q) = –1 e FDB(R)= –1; g), h) ed i) rotazione R-Q (P resta a +2, R e Q vanno a +1) e rotazione P-R

maggio 2002ASD Alberi bilanciati21 rotazione doppia/2 eliminazione foglia da sottoalbero sinistro di P FDB(Q) = -1, FDB(R)=+1, j), k) ed l) rotazione R-Q (P resta a +2, R va a +2 e Q va a 0) e rotazione P-R

maggio 2002ASD Alberi bilanciati22 cancellazione negli AVL/costo nel caso peggiore occorre effettuare rotazioni (semplici o doppie) lungo tutto il ramo passo 1: proporzionale allaltezza dellalbero (lg n ) passo 2: proporzionale allaltezza dellalbero (lg n ) passo 3: (lg n ) · (1) in totale: (lg n )

maggio 2002ASD Alberi bilanciati23 AVL e dizionari gli AVL consentono di realizzare dizionari in cui le tre operazioni membership insert delete hanno costo O(lg n ) w.c.t.

maggio 2002ASD Alberi bilanciati24 cancellazione negli AVL/2 gli alberi AVL possono essere estesi consentendo per ogni nodo un FDB limitato se |FDB| 2 altezza 1.81lg n – 0.71 se |FDB| 3 altezza 2.15lg n – 1.13

maggio 2002ASD Alberi bilanciati25 cancellazione negli AVL/esempio animazioneanimazione tratta dal sito Web arsen/avltree.html arsen/avltree.html