Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoBonfilia Negri Modificato 11 anni fa
1
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 19/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI
2
Algoritmi Paralleli e Distribuiti a.a. 2008/09 2 Algoritmo Ear Decomposition Input: G privo di ponti rappresentato come sequenza di archi begin T = spanning tree di G calcola TDE; radica T in qualunque nodo; calcola level(v) v T for each e=(u,v) T pardo P e :calcola lca(u,v) label(e) = for each e T pardo P e :label(e) = min{ label(e') : e' T e ciclo indotto da e' in T } ordina gli archi rispetto a label(e) end
3
Algoritmi Paralleli e Distribuiti a.a. 2008/09 3 Calcolo di label(e) e T Dopo aver calcolato label(e) e T si definisca: f(v) = min{label(v,u) : (v,u) T} v T È possibile verificare che per ogni arco e=(v, p(v)) T il valore label(e) sarà il minimo valore f(u) tra i nodi u appartenenti al sottoalbero T v radicato in v. Il calcolo del minimo nel sottoalbero si può realizzare, tramite la tecnica del salto del puntatore, in tempo O(log n) su una PRAM CRCW (con scrittura del valore minimo) con n processori. Lassegnamento di f(v) v richiede O(1) e m processori sullo stesso modello. Il costo è quindi O((n+m) log n) su PRAM CRCW o, simulando la scrittura concorrente, O((n+m) log 2 n) su PRAM CREW. Più avanti si introdurrà loperazione di Rake tramite la quale è possibile effettuare la ricerca del minimo (e varie altre operazioni) nel sottoalbero in modo più efficiente.
4
Algoritmi Paralleli e Distribuiti a.a. 2008/09 4 Analisi 1.La costrizione dello ST (dando costo 1 a tutti gli archi) costa O(n 2 log 2 n) su PRAM CREW. 2.Il calcolo del TDE, il radicamento dellalbero e il calcolo del livello per ogni nodo richiedono un costo O(n log n) su PRAM EREW. 3.Il calcolo del lca con la tecnica del TDE richiede un costo pari a O(n log n) su PRAM EREW. (*) 4.Il calcolo di label(e) e T si è visto che costa O((n+m) log 2 n) su PRAM CREW. 5.Lordinamento richiede O(n log n) su PRAM EREW. La complessità totale dellalgoritmo è pari a quella del calcolo dello ST: O(n 2 log 2 n) su PRAM CREW (*) Abbiamo visto esplicitamente come calcolare il lca di una singola coppia di nodi in tempo log n con n processori su PRAM EREW. Precalcolando opportune strutture dati per trovare il minimo in ogni intervallo di un vettore (Range Minimum Query) ogni processore può calcolare il lca di una coppia di nodi in tempo costante su PRAM CREW.
5
Algoritmi Paralleli e Distribuiti a.a. 2008/09 5 Operazione di rake Dato un albero binario T, radicato in r, con la proprietà 0/2 ed una foglia u in T tale che p(u) r loperazione Rake(u) trasforma T in T' eliminando u e p(u) e unendo il fratello di u al padre del padre. V' = V \ {u, p} E' = E \ {(u, p), (f,p), (p,n)} {(f,n)} p fu n f n
6
Algoritmi Paralleli e Distribuiti a.a. 2008/09 6 Si possono aggiungere tanti nodi quanti ne servono per garantire la proprietà 0/2. Ciò richiede tempo costante con O(n) processori e incremento di occupazione di memoria lineare. Se T non è 0/2
7
Algoritmi Paralleli e Distribuiti a.a. 2008/09 7 Loperazione di Contrazione Tramite ripetute applicazioni del rake vogliamo ridurre lalbero iniziale T in un albero di tre nodi: la radice e due foglie (quella più a sinistra e quella più a destra in T). Problema: bisogna evitare il rake concorrente di foglie con lo stesso padre o con padri adiacenti per evitare risultati inconsistenti: u u'u' uu' u u'u'
8
Algoritmi Paralleli e Distribuiti a.a. 2008/09 8 Soluzione 1.Evitare il rake concorrente di foglie con lo stesso padre: Dopo averle numerate da sinistra a destra, si esegue il rake in parallelo su foglie a numerazione alterna. 2.Evitare il rake concorrente di foglie con padri adiacenti: Fra le foglie a numerazione alterna selezionate, si eliminano prima quelle che sono figli sinistri e in seguito quelle che sono figli destri. 6 u u'u' 7 8 uu' 76
9
Algoritmi Paralleli e Distribuiti a.a. 2008/09 9 Esempio a qz d c e f r st l op h m g nb i Input: 12345678 Aqstflopn Passo 2.3 aggiorna A Passo 2.1 rake su q ed l Passo 2.2 rake su t ed p 1234 Asfon az d e f r st op m g nb i Passo 1 calcola A as d e f r o g nb i Albero risultante Albero risultante
10
Algoritmi Paralleli e Distribuiti a.a. 2008/09 10 Esempio Passo 2.3 aggiorna A Passo 2.1 rake su o Passo 2.2 rake su s 12 Afn as d e f r nb i Passo 2.3 aggiorna A Passo 2.1 rake su nulla Passo 2.2 rake su f 1 An a e f r nb i a r nb i Passo 2.3 aggiorna A = Passo 2.1 rake su n Passo 2.2 rake su nulla a r b Albero risultante Albero risultante Albero risultante Albero risultante
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.