Correzione 1° Esonero Lezione n°13

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture Dati
Advertisements

Insiemi disgiunti.
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Interrogazioni.
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 Alberi AVL (Adelson-Velskii.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Capitolo 9 Union-find Algoritmi e Strutture Dati.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
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 29/10/2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Capitolo 19 del testo Cormen, Leiserson, Rivest,
Fondamenti di Informatica A - Massimo Bertozzi ALBERI E ALBERI BINARI DI RICERCA (BST)
Union-Find Moreno Marzolla Dip. di Scienze dell'Informazione Università di Bologna
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
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Alberi autoaggiustanti
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 Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Rappresentazione di alberi
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
Lezione n°14 Reti di flusso Prof.ssa Rossella Petreschi
La gestione degli insiemi disgiunti
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 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
UNION FIND Lezione n°8 Prof.ssa Rossella Petreschi
Dizionari alberi bilanciati.
Rappresentazione di alberi
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Lezione n°6 Prof.ssa Rossella Petreschi
Introduzione agli Algoritmi e alle Strutture Dati
Analisi ammortizzata Lezione n°3
Gestione dinamica di tabelle
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Progettare algoritmi veloci usando strutture dati efficienti
Estensione di strutture dati e
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Backtracking Lezione n°17 Prof.ssa Rossella Petreschi
Alberi di ricerca Lezione n°4
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
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 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:

Correzione 1° Esonero Lezione n°13 Prof.ssa Rossella Petreschi Lezione del 19 /11/2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Cormen, Leiserson, Rivest, Stein Introduzione agli algoritmi e strutture dati Demetrescu, Finocchi, Italiano Algoritmi e strutture dati

ESERCIZIO 1 Utilizzando il metodo del potenziale, dimostrare che il costo di n operazione di inserimento in una tabella dinamica è pari a 3n.

Fattore di carico fattore di carico  (T)= num (T)/ size (T) num (T): numero di elementi caricati in T size (T): numero totale di posizioni di T Una tabella è piena quando (T) = 1 (Tabella vuota: size(T)= 0, (T) = 1) Espansione (se la tabella è piena, ovvero (T) = 1 ): Si duplica il numero di posizioni nella nuova tabella, conseguentemente (T) ≥ 1/2.

La funzione potenziale Definiamo: (T) = 2num(T) - size(T) se (T) ≥ 1/2 (T) = size(T)/2 - num(T) se (T) < 1/2 Vale: il costo ammortizzato totale di una sequenza di operazioni rispetto alla funzione potenziale è un limite superiore del costo effettivo delle operazioni in quanto (T) ≥ 0 sempre, dove (T) = 0 se la tabella è vuota (T) = 0 se (T) = 1/2 (T) = num(T) se (T) = 1 ((T) può supportare l’espansione) Subito dopo una espansione: (T) = 2size(T)/2 - size(T) = 0 Immediatamente prima di una espansione: (T) = 2num(T) - num(T)= num(T)

Inserimento in tabella ((Ti-1) ≥ 1/2 ) Se lo i-esimo inserimento non attiva una espansione: i = ci + (Ti) - (Ti-1) = 1+(2num(Ti) - size(Ti)) - (2num(Ti-1) - size(Ti-1)) = 1 + (2num(Ti) - size(Ti)) - (2(num(Ti)-1)) - size(Ti)) = 3 Se lo i-esimo inserimento attiva una espansione: i = ci + (Ti) - (Ti-1) = num(Ti) +(2num(Ti) - size(Ti)) - (2num(Ti-1) - size(Ti-1)) = num(Ti) + (2num(Ti) – 2(num(Ti) +1)) - (2(num(Ti)-1) - (num(Ti)-1)) = num(Ti) + 2 - (num(Ti) -1) = 3

Inserimento in tabella ((Ti-1) < ½) Se (Ti-1) < ½ e (Ti) < 1/2 i = ci + (Ti) - (Ti-1) = 1 + (size(Ti)/2 - num(Ti)) - (size(Ti-1)/2 - num(Ti-1)) = = 1 + (size(Ti)/2 - num(Ti)) - (size(Ti)/2 - (num(Ti)-1)) = 0 Se (Ti-1) < ½ e (Ti) = 1/2 i = ci + (Ti) - (Ti-1) = 1 + (2num(Ti) - size(Ti)) - (size(Ti-1)/2 - num(Ti-1)) = 1 + (2(num(Ti-1)+1) - size(Ti-1)) - (size(Ti-1)/2 - num(Ti-1)) = = 3num(Ti-1) - 3/2size(Ti-1)+3 = 3(Ti-1) size(Ti-1) - 3/2size(Ti-1) + 3 < < 3/2size(Ti-1) - 3/2size(Ti-1) + 3 = 3 In ogni caso il costo di n operazione di inserimento in una tabella dinamica è pari a 3n.

ESERCIZIO 2 Dato un B-Albero di dimensione 4 costituito dalla radice contenente le chiavi /19,22,25/ e dai quattro figli contenenti, rispettivamente, le chiavi /16,17,18/ /20,21/ /23,24/ /28,33/ mostrare tutti i passi evolutivi che subisce il B-Albero man mano che vengono inserite, nell’ordine, le chiavi 11,12,27,29.

Soluzione 1 Inserisco 11: B-Albero di dimensione 4 costituito dalla radice contenente la chiave /22/ e dai due figli, a e b, contenenti, rispettivamente, le chiavi /17,19/ /25/. I tre figli di a hanno le chiavi /11,16/ /18/ /20,21/ e i due figli di b hanno le chiavi /23,24//28,33/ Inserisco 12: La foglia /11,16/ diventa /11,12,16/ Inserisco 27: La foglia /28,33/ diventa /27,28,33/

Soluzione 1 Inserisco 29: B-Albero di dimensione 4 costituito dalla radice contenente la chiave /22/ e dai due figli, a e b, contenenti, rispettivamente, le chiavi /17,19/ /25,29/. I tre figli di a hanno le chiavi /11,12,16/ /18/ /20,21/. I figli di b sono ora tre e hanno chiavi /23,24//27,28//33/, rispettivamente.

Soluzione 2 Inserisco 11: B-Albero di dimensione 4 costituito dalla radice contenente la chiave /18,22,25/ e dai quattro figli contenenti, rispettivamente, le chiavi /11,16,17/ /19,20,21/ /23,24//28,33/ Inserisco 12: B-Albero di dimensione 4 costituito dalla radice contenente la chiave /22/ e dai due figli, a e b, contenenti, rispettivamente, le chiavi /16,18/ /25/. I tre figli di a hanno le chiavi /11,12/ /17/ /19,20,21/ e i due figli di b hanno le chiavi /23,24/ /28,33/

Soluzione 2 Inserisco 27: La foglia /28,33/ diventa /27,28,33/ B-Albero di dimensione 4 costituito dalla radice contenente la chiave /22/ e dai due figli, a e b, contenenti, rispettivamente, le chiavi /16,18/ /27/. I tre figli di a hanno le chiavi /11,12/ /17/ /19,20,21/. I due figli di b hanno chiavi /23,24,25//28,29,33/, rispettivamente.

ESERCIZIO 3 Dimostrare che, operando con algoritmi di tipo Quick-Union Bilanciati, esiste una sequenza di (n-1) operazioni di Union che genera un albero di altezza W(logn).

Alberi Quickunion bilanciati unionA,B: rende la radice dell’albero più basso figlia della radice dell’albero più alto.La radice dell’albero risultante conterrà sia il nome del nuovo albero (p.e. A) che la sua altezza (rank(A)). Durante una sequenza di operazioni makeset, union e find, l’altezza di un albero QuickUnion bilanciato è limitata superiormente da log2 n dove n è il numero totale di makeset. O(n+mlogn) è il tempo totale necessario per eseguire su un albero quickunion bilanciato una sequenza di: m operazioni find, n operazioni makeset, al più (n-1)operazioni union. 13

Esiste una sequenza di (n-1) operazioni di Union che genera un albero di altezza W(logn) n makeset generano n alberi ciascuno di size 1 e rank 0 La sequenza di (n-1) operazioni di union la ottengo nella seguente maniera: n/2 union fra coppie distinte di alberi di size 20 e rank 0: ottengo n/2 alberi ciascuno di size 21 e rank 1. n/4 union fra coppie distinte di alberi di size 21 e rank 1: ottengo n/4 alberi ciascuno di size 22 e rank 2. n/8 union fra coppie distinte di alberi di size 22 e rank 2: ottengo n/8 alberi ciascuno di size 23 e rank 3. ………………….. ………………… n/logn union fra coppie distinte di alberi di size 2logn-1 e rank (logn-1): ottengo 1 albero di size n e rank W(logn) .

Perché (n-1) operazioni di Union S (n/2i ), i=1,…,logn = (S (n/2i ), i=1,…,logn) +n-n = = n (((S (1/2i ), i=0,…,logn)-1) = = n ((((1/2 ) logn +1-1)/1/2-1) -1) = = n(2- (1/2 ) logn -1)= = n(1-1/n)= n-1