Corso di Algoritmi e Strutture Dati con Laboratorio A.A. 2014/15 Alberi bilanciati (rif. Algoritmi in Java, di R. Sedgewick)

Slides:



Advertisements
Presentazioni simili
Andrea Zandatutoraggio strutture dati STRUTTURE DATI e LABORATORIO II ESERCITAZIONE N°14 albero di ricerca binario.
Advertisements

Alberi binari Definizione Sottoalberi Padre, figli
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
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
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 II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Esercizi su alberi binari
Alberi binari Definizione della struttura dati: struct tree { };
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
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort 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 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 Alberi Binari di Ricerca.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati 20 aprile 2001
07/04/2003Algoritmi Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
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.
Strutture dati per insiemi disgiunti
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.
B trees.
Alberi binari Definizione della struttura dati: struct tree { };
Corso di Algoritmi e Strutture Dati con Laboratorio A.A. 2014/15 Oltre le classi.
Corso di Algoritmi e Strutture Dati con Laboratorio A.A. 2014/15 Lezione 3.
Nota (rif. alla lezione precedente): Vector vs ArrayList Le classi generiche Vector e ArrayList sono sostanzialmente equivalenti, ma: I metodi.
Università degli Studi dell’Aquila
Alberi CORDA – Informatica A. Ferrari Testi da
ConclusioniProcessoFunzioniGeneralitàTecnologia 31/03/20151 Lossis LOSSIS Gestione Sinistri.
Ordinamento e Operazioni su Strutture Dati Fabio Massimo Zanzotto.
alberi completamente sbilanciati
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.
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.
Capitolo 8 Code con priorità Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Alberi rosso-neri Le operazioni sugli alberi binari di ricerca hanno complessità proporzionale all’altezza h dell’albero. Gli alberi rosso-neri sono alberi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 8 Code con.
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.
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 1 Progettare algoritmi.
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 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.
Transcript della presentazione:

Corso di Algoritmi e Strutture Dati con Laboratorio A.A. 2014/15 Alberi bilanciati (rif. Algoritmi in Java, di R. Sedgewick)

 Prestazioni variabili da: ◦ logaritmiche: caso migliore, albero bilanciato ◦ lineari: caso peggiore, albero degenere.  Soluzioni: ◦ applicazione periodica di procedure di ribilanciamento ◦ imposizione di vincoli sull’albero per ◦ limitare lo sbilanciamento. Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/20152

Albero vuoto o con 3 tipi di nodi:  2-nodi: 1 chiave, sottoalbero sinistro delle chiavi minori, sottoalbero destro delle chiavi maggiori  3-nodi: 2 chiavi ordinate, sottoalbero sinistro delle chiavi minori di entrambe le chiavi, sottoalbero centrale delle chiavi comprese tra le due, sottoalbero destro delle chiavi maggiori di entrambe le chiavi  4-nodi: 3 chiavi ordinate, 4 sottoalberi con chiavi con valori che stanno negli intervalli di valori definiti dalle 3 chiavi. Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/20153

4

 Si considerano esclusivamente alberi di ricerca bilanciati:  Bilanciamento: tutte le foglie hanno ugual distanza dalla radice.  BST: alberi non bilanciati formati da soli 2-nodi. Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/20155

Generalizzazione della ricerca nei BST:  Confronto sequenziale della chiave cercata con le chiavi contenute della radice  search hit se trovata  se non trovata, si scende nel sottoalbero che corrisponde all’intervallo di valori che comprende la chiave  Si ripete (ricorsivamente) la ricerca nel sottoalbero. Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/20156

7

 Ricerca a partire dalla radice per identificare il nodo in cui inserire la chiave:  se il nodo corrente è un 4-nodo, lo si decompone in 2 2-nodi e si inserisce la chiave di mezzo nel padre (che può essere solo un 2-nodi o un 3-nodi) Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/20158

9

10

 L’altezza dell’albero cresce di 1.  L’albero cresce dalla radice verso l’alto. Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201511

Al termine della ricerca:  il nodo foglia identificato non può essere un 4-nodo (sarebbe stato decomposto al passo precedente)  se il nodo identificato è un 2-nodo, si inserisce ordinatamente la chiave trasformando la foglia in 3-nodo  se il nodo identificato è un 3-nodo, si inserisce ordinatamente la chiave trasformando la foglia in 4-nodo. Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201512

 Inserimento in sequenza di ASERCHINGX Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201513

 Una ricerca in un albero bilanciato di N nodi non visita mai più di lgN + 1 nodi  Un inserimento in un albero bilanciato di N nodi richiede nel caso peggiore meno di lgN + 1 split. Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201514

Definizione 1 BST in cui:  ogni nodo è o rosso o nero  se un nodo è rosso, non può avere figli rossi  ogni cammino semplice dalla radice a una foglia contiene lo stesso numero di nodi neri Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201515

Definizione 2  Rappresentazione degli alberi come BST con ulteriore bit di informazione per codificare 2-nodi e 3-nodi:  link rossi che connettono piccoli alberi binari che formano 3-nodi e 4-nodi  link neri che connettono l’intero albero  Ogni nodo è raggiunto tramite 1 solo link, quindi colorare i link equivale a colorare i nodi. Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201516

Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201517

Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/ Due alternative:

Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201519

 La ricerca è identica a quella nel BST (il colore non influisce)  L’inserimento deve garantire le proprietà dell’RBtree  Inserimento top-down: immaginiamo di operare su un albero implementato tramite un RBtree. Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201520

Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201521

Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201522

Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201523

Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201524

Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201525

 L’inserimento richiede operazioni locali di “ristrutturazione” dell’albero con: ◦ cambi di colore ◦ ribilanciamento  scendendo nell’albero si scompongono i 4- nodi, invertendo il colore dei 3 nodi risultanti  risalendo si eseguono le rotazioni se necessario Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201526

Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201527

Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201528

Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201529

Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201530

Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201531

 I Rbtree costituiscono l’elemento centrale per la realizzazione di due classi del JCF molto usate: ◦ TreeMap ◦ TreeSet Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2014/201532