Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 22/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.

Slides:



Advertisements
Presentazioni simili
Strutture dati per insiemi disgiunti
Advertisements

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.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti ottimi.
Algoritmi e Strutture Dati
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 29/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 31/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 12/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 05/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 17/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 20/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 28/04/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 06/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 19/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 27/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 10/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 15/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.
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 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 (Mod. A)
Algoritmi e strutture dati
Esercizi su alberi binari
Heap binari e HeapSort.
QuickSort Quick-Sort(A,s,d) IF s < d THEN q = Partiziona(A,s,d) Quick-Sort(A,s,q-1) Quick-Sort(A,q + 1,d)
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.
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.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 17/04/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 08/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Alberi CORDA – Informatica A. Ferrari Testi da
1/32 Algoritmi e Strutture Dati HEAP Anno accademico
Complessità del problema Se non facciamo ipotesi sul tipo degli elementi della sequenza le uniche operazioni permesse sono confronti e assegnazioni. Problema.
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.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 07/04/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi e strutture Dati - Lezione 7 1 Algoritmi di ordinamento ottimali L’algoritmo Merge-Sort ha complessità O(n log(n))  Algoritmo di ordinamento.
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Simulazione di lettura e scrittura concorrente Tecnica dell’accelerated cascading Lezione.
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.
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi Complessità e Trasportabilità Lezione n°3.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Albero ricoprente di costo minimo Lezione n°12.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°10.
Algoritmi Avanzati a.a. 2011/12 Lezione del 02/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Avanzati a.a.2012/2013 Prof.ssa Rossella Petreschi Albero Ricoprente Lezione n°9.
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.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Interconnessione tramite reti Lezione n°6.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Transcript della presentazione:

Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 22/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI

Algoritmi Paralleli e Distribuiti a.a. 2008/09 2 Algoritmo per la Contrazione Input: T albero binario 0/2 radicato in r Output: T ridotto di 3 nodi 1.Numerare le foglie da sinistra a destra esclusi gli estremi e memorizzarle in un vettore A 2. while T ha più di 3 nodi do 1.Applica il rake in parallelo alle foglie in A dispari che sono figli sinistri 2.Applica il rake in parallelo alle foglie in A dispari che sono figli destri 3.A = A pari

Algoritmi Paralleli e Distribuiti a.a. 2008/09 3 Implementazione Per realizzare il Passo 1: Calcola la numerazione inorder di T tramite il TDE (è possibile perché lalbero è 0/2); Individua le foglie (tutti i nodi v t.c. left[v]=right[v]=1); Numera le foglie (escludendo quella più a sx e quella più a dx) tramite somme prefisse. Per realizzare il passo 2: Per i rake lavorano in parallelo i processori di indice dispari; Per discriminare le foglie che sono figli sinistri (destri) basta notare che la loro numerazione inorder nellalbero originale è minore (maggiore) di quella del padre; Per aggiornare A lavorano solo i processori di indice pari ed assegnano A[i/2] = A[i].

Algoritmi Paralleli e Distribuiti a.a. 2008/09 4 Analisi Il passo 1 richiede costo O(n log n) sia per il TDE che per le somme prefisse. Ciascuna iterazione del passo 2 richiede tempo costante. Ad ogni iterazione il vettore A dimezza, quindi in O(log n) iterazioni lalgoritmo termina. Il costo complessivo è quindi O(n log n) su PRAM EREW con n processori.

Algoritmi Paralleli e Distribuiti a.a. 2008/09 5 Albero delle espressioni Data unespressione aritmetica, si associ alle foglie di un albero binario 0/2 le costanti dellespressione e ai nodi interni le operazioni binarie. Se lalbero delle espressioni è bilanciato, con costo O(n log n) si eseguono in parallelo le operazioni richieste da ogni nodo, livello per livello, fino a generare il risultato alla radice (esempio a sx). Se lalbero non è bilanciato il tempo parallelo richiesto può anche essere lineare (esempio a dx). ab + cd + ef gh + + ((a + b) (c d)) + ((e f) + (g + h)) gh f + e d + c b + a a (b + (c (d + (e (f + (g h))))))

Algoritmi Paralleli e Distribuiti a.a. 2008/09 6 Valutare una espressione Se lalbero non è bilanciato, per mantenere il tempo parallelo logaritmico, ci si accontenta che ogni nodo faccia solo un computo parziale prima di essere considerato completamente visitato. Il computo parziale al nodo v è dato da a v X+b v con a v e b v costanti e X indeterminata che rappresenta il valore non noto della sottoespressione al nodo v. Ogni nodo è caratterizzato dalla etichetta (a v,b v ), inizialmente pari a (1,0).

Algoritmi Paralleli e Distribuiti a.a. 2008/09 7 Invariante Si consideri il nodo u interno allalbero delle espressioni. Ad u è associato loperatore {+, } e letichetta (a u,b u ), ai figli di u, v e w, sono associate le etichette (a v,b v ), (a w,b w ), rispettivamente. Il valore della sottoespressione calcolata in u è dato da: val(u) = (a v val(v) + b v ) (a w val(w) + b w ) Si noti che a u e b u non appaiono nel calcolo di val(u) ma saranno presenti nel calcolo di val(p(u)).

Algoritmi Paralleli e Distribuiti a.a. 2008/09 8 Algoritmo per valutare unespressione Input: T albero delle espressioni tale che ogni nodo v conosce il padre p(v) e il fratello fr(v) Output: val(T) = val(T'), T' risultato della contrazione Passo 1: si assegna letichetta (1,0) a tutti i nodi di T Passo 2: si applichi lalgoritmo di contrazione con laggiunta della condizione che ogni singola operazione di rake preservi linvariante Passo 3: su T' di radice r con operatore e foglie u e v contenenti le costanti c u e c v, rispettivamente, si calcoli: val(T') = (a u c u + b u ) (a v c v + b v ) = val(T) I passi 1 e 3 richiedono tempo parallelo costante. Quindi il tempo totale dipende dal passo 2.

Algoritmi Paralleli e Distribuiti a.a. 2008/09 9 Come loperazione di rake preserva linvariante Loperazione di rake applicata ad una foglia u con fratello w, elimina u e p(u). Al fine di mantenere la validità dellinvariante, il contributo di u e p(u) al computo totale (ovvero a u, a p(u), b u, b p(u) ) deve essere conglobato in w (ovvero in a w e b w ). Poiché val(p(u)) = (a u c u +b u ) p(u) (a w X+b w ), il contributo di p(u) al computo di val(p(p(u))) è dato da: a p(u) val(p(u)) + b p(u) = a p(u) ((a u c u +b u ) p(u) (a w X+b w )) + b p(u) da cui si possono calcolare i nuovi valori per w: Quindi il passo 2 resta dominato dal costo computazionale del rake. cucu w w (a w',b w' ) (a w,b w ) (a p(u),b p(u) ) (a u,b u ) p(u) = + p(u) = a' w =a p(u) a w a p(u) (a u c u +b u ) a w b' w =a p(u) (a u c u +b u +b w ) + b p(u) a p(u) (a u c u +b u ) b w + b p(u)

Algoritmi Paralleli e Distribuiti a.a. 2008/09 10 Esempio di calcolo despressione Input: albero che corrisponde allespressione inizialmente (a v, b v ) = (1,0) per ogni nodo ((2+(3 (4+5))) 3)+(((5+2) 2)+(7 (1+1))) = 115

Algoritmi Paralleli e Distribuiti a.a. 2008/09 11 Esempio di calcolo despressione Si numerano le foglie e si esegue il rake su quelle di numerazione dispari, prima quelle che sono figli sinistri e poi quelle che sono figli destri (1,5) (1,1) (3,0) (2,10) (1,1)(3,15)

Algoritmi Paralleli e Distribuiti a.a. 2008/09 12 Esempio di calcolo despressione (2,10) (1,1)(3,15) (1,1) (3,15) (1,14) (1,1) (1,14) (1,27) (1,1) (1,14)(3,81) (1,1) (1,14)(3,81) (7,21)(3,81) ( ) + ( ) = 115