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

Slides:



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

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 10/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti Lezione n°9.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°9.
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.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti 2 Lezione n°10.
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi Lezione n°10.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Come generare un MST in un sistema distribuito Lezione n°13.
Algoritmi Avanzati a.a. 2010/11 Lezione del 18/04/2011 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. EMANUELE FUSCO.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°9.
Algoritmi Avanzati a.a.2014/2015 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 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.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2012/2013 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
Branch and Bound Lezione n°19 Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Branch and Bound Lezione n°14 Prof.ssa Rossella Petreschi
Dal problema al processo risolutivo
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Lezione n°19 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.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Dal problema al processo risolutivo
Lezione n°17 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
B-alberi e alberi autoaggiustanti
Insiemi di punti: altre caratteristiche
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2015/2016 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 a.a.2014/2015 Prof.ssa Rossella Petreschi
Usi (meno scontati) della visita DFS
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Lezione n°4 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Lezione n°12 Prof.ssa Rossella Petreschi
Algoritmi per il flusso nelle reti
Algoritmi per il flusso nelle reti
Lezione n°6 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a. 2010/11
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi e Strutture Dati
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Usi (meno scontati) della visita DFS
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Automi e stringhe Lezione n°24 Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Backtracking Lezione n°17 Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Grafi e problem solving
Lezione n°7 Splay-Trees e Heaps Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Il problema del flusso nelle reti
Transcript della presentazione:

Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi Elezione del Leader Lezione n°8 Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi 1

Sistemi sincroni e asincroni Sistema sincrono Sistema asincrono Un messaggio spedito da un nodo ad un suo vicino arriva sempre in tempo costante La trasmissione dei messaggi ha durata variabile L'assenza di segnale è informazione L'assenza di segnale non fornisce informazione La computazione locale ha costo zero 2

complessità temporale Per quanto riguarda la complessità temporale, nel modello sincrono il suo calcolo si riduce essenzialmente a contare il numero delle pulsazioni che trascorrono durante la computazione; nel modello asincrono il suo calcolo corrisponde al numero di messaggi nella più lunga catena casuale della forma “ricevi un messaggio e spedisci un messaggio come conseguenza”, calcolata su tutte le possibili esecuzioni dell’algoritmo e su tutte le possibili strutture del grafo G. Come sempre, queste misure sono considerate nel caso peggiore e in forma asintotica in funzione di n e m, nodi e archi di G. 3

Ricerca del leader in una rete ad anello Problema: Dato un sistema distribuito, si vuole selezionare un processore nella rete di interconnessione in modo che assuma il ruolo di unico leader del sistema. L’esistenza di un leader semplificherà la coordinazione fra i vari processi e quindi sarà utile per la gestione di vari altri problemi. La rete di interconnessione che prendiamo in considerazione è la rete ad anello con i processi caratterizzati da identificativi fra loro differenti. Idea dell’algoritmo: Ogni processore manda il proprio identificativo lungo l’anello. Quando il processore p riceve un identificativo, lo confronta con il proprio. Se i valori sono uguali, p si autodichiara leader e l’intera computazione termina. Se i valori sono diversi, p fa circolare lungo l’anello l’identificativo ricevuto se maggiore del proprio, altrimenti non fa nulla. 4

Dettagli sulla rete ad anello Alle condizioni già note: Nodi dell’anello identificati da valori diversi scelti in un insieme di positivi qualunque, senza alcun vincolo di ordine. Anello unidirezionale. I singoli processi sono in grado di distinguere fra vicino sinistro e vicino destro, ma non conoscono la dimensione della rete. Si aggiunge la condizione seguente: Il solo processore eletto leader può generare un output. 5

Se il sistema è sincrono Algorithm LES (Leader Election Sincrono) begin Pinit=i: stato = ignoto send i al successore repeat Pi: receive inf if inf > i then send inf al successore if inf = i then stato = leader send un segnale di halt if inf = halt and stato = leader then send halt until inf = halt end O(n2) messaggi in n passi Si noti che l’intero algoritmo termina quando il segnale di halt torna al leader. 6

Esempio di funzionamento di LES 1 8 3 6 4 1 8 3 6 4 1 8 3 6 4 inizializzazione Passo 1 1 8 3 6 4 1 8 3 6 4 1 8 3 6 4 LEADER Passo 2 Passo 3 Passo 4 7

Correttezza e complessità dell’algoritmo LES Teorema: L’algoritmo LES risolve il problema dell’elezione del leader su un sistema distribuito sincrono ad anello. Esso richiede complessità temporale n e complessità dei messaggi O(n2). Dimostrazione: La correttezza si basa sui seguenti due fatti: Fatto 1: Nessun processore, eccetto quello di indice massimo, raggiunge lo stato di leader. Fatto 2: Dopo n passi lo stato del processore di indice massimo è quello di leader. Dal Fatto 2 si deduce la complessità temporale che implica anche quella dei messaggi. 8

Elezione del leader in un sistema ad anello asincrono Algorithm LEA (Leader Election Asincrono) begin Pinit=i: stato = ignoto send i al successore repeat Pi: receive inf if inf > i then send inf al successore if inf = i then stato = leader send un segnale di halt if inf = halt and stato  leader then send halt until inf = halt end O(n2) messaggi in n passi L’algoritmo è esattamente lo stesso presentato per il caso sincrono, con l’unica differenza che nella coda dei messaggi ricevuti potranno essere presenti più valori contemporaneamente Quindi LEA e LES per rete ad anello coincidono. 9

Impossibilità del risultato nel caso di processi anonimi Negli algoritmi precedenti tutti i processi compiono le stesse identiche operazioni eccetto il leader eletto che fa partire un segnale di halt. La differenziazione fra un processo e l’altro è data dalla possibilità di accedere al proprio identificativo. Un sistema si dice anonimo quando questa possibilità è interdetta. Teorema: Sia D un sistema distribuito sincrono di tipo anello. Se tutti gli n (n > 1) processi in D sono anonimi, allora in D non è possibile risolvere il problema dell’elezione del leader. Dimostrazione: la dimostrazione procede per assurdo. Ipotizziamo che il problema del leader ammetta una soluzione su tale sistema: sia A l’algoritmo risolutivo (A non può essere LES perché non è possibile fare confronti). Poiché tutti i processori sono identici ed eseguono la stessa sequenza di programma, dato il sincronismo, tutti i processi ricevono e mandano messaggi allo stesso istante. Pertanto o tutti i processi arrivano a dichiararsi leader nello stesso istante (contraddicendo l’unicità del risultato) o nessuno si dichiara leader. In entrambi i casi non si raggiunge il risultato voluto. Si dice che la ragione di questo risultato negativo giace nell’impossibilità di rompere la simmetria del sistema. Un risultato analogo si ha nel caso di anello asincrono. 10

Da asincrono a sincrono (e viceversa) Ogni algoritmo che risolve un problema per il caso asincrono può essere considerato un algoritmo per sistemi sincroni senza modificare né la complessità temporale, né la complessità dei messaggi. Infatti un algoritmo progettato per un sistema asincrono, gira su tutte le possibili variazioni di tempo e quindi, in particolare, sulla variazione coincidente con il modello sincrono. Meno banale è trasformare un algoritmo progettato per il modello sincrono in uno progettato per il modello asincrono. Infatti la comunicazione fra i nodi sarà più elevata e quindi aumenta sia la complessità temporale che quella dei messaggi. Normalmente la simulazione si effettua implementando un apposito algoritmo asincrono (sincronizzatore) che ha il compito di sincronizzare tra di loro i nodi della rete attraverso scambi di messaggi. 11 11

Il sincronizzatore L’idea generale di un sincronizzatore è quella di generare una sequenza di impulsi, numerati 0, 1, 2, … per ogni nodo della rete, in modo da simulare il tempo costante di spedizione dei messaggi, tipico dei sistemi sincroni. Durante il tempo del k-esimo impulso, un processore deve mandare i messaggi che avrebbe mandato al k-esimo passo dell’algoritmo sincrono che si sta simulando. Tutti gli impulsi debbono soddisfare la seguente proprietà: L’impulso (k+1)-esimo sarà generato per il nodo v, solo quando v avrà ricevuto tutti i messaggi che i suoi vicini gli hanno inviato durante l’impulso k. Poiché il sistema è asincrono e non vi sono limiti al tempo di trasmissione dei messaggi, è necessario introdurre un meccanismo per riconoscere se i messaggi spediti da un nodo w sono stati ricevuti dal nodo v, ovvero è necessario introdurre l’acknowledgement da parte del nodo v verso il nodo w. 12

Efficienza della simulazione Quindi v può acquisire la consapevolezza di aver ricevuto tutti i messaggi solo con l’aiuto di messaggi addizionali. Il problema diventa pertanto quello di non compromettere l’efficienza dell’algoritmo A che si sta simulando, dato che sia la complessità dei messaggi che la complessità temporale risultano aumentate Mtot = MA + M0s + TA Ms Ttot = T0s + TA Ts Dove: Mtot = # totale di messaggi spediti nell’algoritmo simulato MA = # messaggi spediti dall’algoritmo sincrono A che si sta simulando M0s = # messaggi di inizializzazione del sincronizzatore TA Ms = # messaggi extra spediti dal sincronizzatore durante i singoli passi di A Ttot = tempo totale nell’algoritmo simulato T0s = tempo di inizializzazione del sincronizatore TA Ts = tempo dei singoli passi dell’algoritmo A simulato con l’ausilio del sincronizzatore 13