Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi

Slides:



Advertisements
Presentazioni simili
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Advertisements

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 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 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.
APPUNTI SUL LINGUAGGIO C
Algoritmo SelectSort Invariante di ciclo: ad ogni passo
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 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.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Simulazione di lettura e scrittura concorrente Tecnica dell’accelerated cascading Lezione.
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°9.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Interconnessione tramite reti Lezione n°6.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi ELEZIONE DEL LEADER Lezione n°8.
Prof.ssa Rossella Petreschi Lezione del 5/12/2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Capitolo 11 del testo Anany Levitin “The design.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Somme prefisse Lezione n°2.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi L’ausilio delle occorrenze Circuiti di ordinamento Lezione n°5.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°9.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2012/2013 Prof.ssa Rossella Petreschi
Progettare algoritmi veloci usando strutture dati efficienti
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
Progettare algoritmi veloci usando strutture dati efficienti
Lezione n°19 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
La gestione degli insiemi disgiunti
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
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 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi e Strutture Dati
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Backtracking Lezione n°13 Prof.ssa Rossella Petreschi
Progettare algoritmi veloci usando strutture dati efficienti
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a. 2010/11
Algoritmi e Strutture Dati
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Backtracking Lezione n°17 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
MergeSort Usa la tecnica del divide et impera:
Ricerca 01/08/2019 package.
HeapSort Stesso approccio incrementale del selectionSort Tipo di dato
Transcript della presentazione:

Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Somme prefisse su reti Ricerca in vettori ordinati Lezione n°7 Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi 1

Somme prefisse su mesh Ogni processore ha il valore da sommare in xi,j begin for i = 0 to R-1 pardo for j = 1 to C-1 do Pi,j: xi,j = xi,j + xi,j-1 P0,C-1: su0,C-1 = 0 for i = 1 to R-1 do Pi,C-1: sui,C-1 = xi-1,C-1 + sui-1,C-1 for i = 1 to R-1 pardo for j = C-2 downto 0 do Pi,j: sui,j = sui,j+1 for j = 0 to C-2 pardo Pi,j: xi,j = xi,j + sui,j end Tempo parallelo R+C AA 2011-2012 2

Somme prefisse su albero binario Le n foglie hanno già il valore da sommare nella variabile xi begin for i = log n -1 downto 0 do for j = 2i to 2i+1-1 pardo Pj: xj = x2j + x2j+1 P1: sp1 = 0 for i = 0 to log n -1 do Pj: sp2j = spj sp2j+1 = spj + x2j for i = n to 2n-1 pardo Pi: xi = xi + spi end Tempo parallelo logaritmico X1+…+x4 X1+x2 X3+x4 X5+…+x8 X5+x6 X7+x8 X1+…+x8 x1 x2 x3 x5 x6 x7 x8 P2 P1 P4 P8 P5 P6 P7 P3 P15 sp = 0 X1+…+x8 sp = 0 sp = X1+…+x4 X1+…+x4 X5+…+x8 sp = 0 X1+x2 sp = X1+…+x6 X1+x2 X3+x4 X5+x6 X7+x8 sp = 0 x1 sp = X1+…+x7 x1 x2 x3 x4 x5 x6 x7 x8 AA 2011-2012 3

Ricerca di un elemento in un vettore ordinato Variabili: N: numero dei processori y: elemento da cercare X = (x1, x2, …, xn), tale che x1  x2 …  xn: vettore in cui cercare y l ed r (inizializzati a 0 ed n rispettivamente): estremi del vettore su cui si lavora; q0,…qN+1 (relative a ciascun processore + 2 aggiuntive): indice degli elementi da analizzare; c0,…cN+1 (inizializzate a 0, cN+1 inizializzata ad 1): identificatori del sottovettore su cui iterare. Input: X, y Output: i t.c. xi  y  xi+1 Passo 1: dividi iterativamente il vettore in sottovettori più o meno bilanciati finché il numero di elementi nel sottovettore identificato non è  N e controlla se X[qi]=y; Passo 2: controlla se nel sottovettore di dimensione  N è presente l’elemento cercato. AA 2011-2012

Algoritmo Ricerca Binaria P1: c0 = 0; cN+1 = 1 while (r-l) > N do Pj: for j = 1 to N pardo if j = 1 then q0 = l; qN+1 = r qj = l +  j (r-l) / (N+1)  if y = X[ qj ] then return qj else if y > X[ qj ] then cj = 0 else cj = 1 if cj < cj+1 then l = qj; r = qj+1 if j = 1 and c0 < c1 then r = q1 if y = X[ l+j ] then return l+j else if y > X[ l+j ] then cj = 0 else cj = 1 if cj < cj+1 then return l+j if j = 1 and c0 < c1 then return l Passo 1 Passo 2 AA 2011-2012

Esempio l r n = 14 N = 2 y = 37 l r Passo 2 l r return 9 x - -22 -3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 x - -22 -3 27 32 35 42 55 56 61 70  n = 14 N = 2 y = 37 q0 q1 q2 q3 1 2 3 c l r Passo 2 4 5 6 7 8 9 10 11 x 12 15 27 32 35 42 55 l r 7 8 9 10 11 x 27 32 35 42 55 q0 q1 q2 q3 1 2 3 c 1 2 3 c return 9 AA 2011-2012

Complessità dell’algoritmo Ciascuna iterazione del Passo 1 richiede tempo O(1). Analizziamo il numero di iterazioni esplicitando la dimensione si del sottovettore nell’iterazione i-esima: s0 = n+2 si+1 = si / (N+1) = s0 / (N+1)i Quindi il numero totale di iterazioni è: logN+1(n+2) = log2(n+2) / log2(N+1) Il Passo 2 richiede tempo costante, quindi il tempo complessivo richiesto dall’algoritmo è O(log2(n+2) / log2(N+1)). Il modello di PRAM è CREW perché tutti gli N processori accedono contemporaneamente alle variabili y, l, r e c. Si noti che, quando N = O(1), il costo complessivo dell’algoritmo è O(log n): pari all’ottimo nel sequenziale. Quando N = O(n) il tempo diventa costante. AA 2011-2012