You are on page 1of 21

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Algoritmul Hirschberg-Sinclair

Alexandru Juncu
332CA
alexandrujuncu@gmail.com

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator


Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Problema: Alegerea Liderului (I)

• Unde avem nevoie de alegerea unui lider ?


– aplicaţii centralizate

• De ce avem nevoie de centralizare ?


– un nod coordonează întregul sistem

– exemplu de aplicaţii:
• Găsirea Arborelui Minim de Acoperire (liderul este
rădăcina)
• Reconstruirea după pierderea jetonului într-o topoligie
Token Ring

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator


Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Alegerea Liderului: ideea generală


• Fiecare nod are trei stări
– nedecis
– subordonat
– lider

• Starea iniţială: toţi sunt nedecişi (sau se consideră toţi lideri)


• Starea finală: un singur lider şi ceilalţi subordonaţi

• Modul de 'negociere'
– transmiterea de mesaje între vecini

• Criteriul de alegere:
– depinde de aplicaţie (ex. nodul cu cel mai mare ID)
Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Problema: Alegera Liderului (II)

• Diverse situaţii (diverse topologii)

• Diverse nevoi de complexitate


=> diverşi algoritimi

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator


Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu de algoritm simplu pentru Inel

• Chang-Roberts
• Reguli:
– fiecare proces trimite un mesaj vecinului din stânga cu ID-ul
său
– dă mai departe orice mesaj primit în care ID-ul este mai mare
ca ID-ul propriu
– dacă primeşte un mesaj cu propriul ID se declară Lider
– anunţă alegerea sa cu un broadcast
Complexitatea (în cazul cel mai
defavorabil) :

Σ i = O(n22)

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator


Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Algoritmul Hirschberg-Sinclair (I)

• Optimizează operaţiunea de alegere prin diminuarea


numărului de mesaje

• Se aplcă pe inele bidirecţionale

• Alegerea se face incremental

• Algoritmul funcţionează în faze asincrone

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator


Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Algoritmul Hirschberg-Sinclair (II)

• În faza k, procesul trimite ID-ul său la 2k procese în ambele


părţi (mesajul conţine ID şi k )
• Dacă se primeşte un ID ce este mai mare ca propriul ID, se
trimite mai departe, altfel se ignoră
• Ultimul proces din lanţ trimite un răspuns spre procesul
origine dacă ID-ul său este mai mic decât ID-ul primit
• Răspunsurile sunt întotdeauna date mai departe
• Un proces trece la faza k+1 numai dacă primeşte un răspuns
din abele părţi la faza k
• Procesul ce primeste propriul ID se declară lider

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator


Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Algoritmul Hirschberg-Sinclair (III)

• Iniţial:
– Toate procesele sunt lideri
• Runda 0
– 6 , 7 şi 8 sunt lideri
• Runda 1:
– 7 şi 8 sunt lideri
• Round 2:
– 8 este singurul lider

• Sunt cel mult log(N) runde

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator


Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (I)
1
• Faza 0: 8 8
1 8
5 2
//send(id, faza, contor) 2
1
send(id, 0, 1)
5 2
6
3 5 6
4 6
3 3 7
4
7 7
4
Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (II)

• Faza 0: 8
1
dacă 2
(id_primit > id_curent)
5
atunci trimite_raspuns(OK)

6
3
4
7

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator


Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (III)

• Faza 0: 8
1
dacă 2
(am_primit_amble_raspunsuri)
5
atunci devin_lider()
faza_urmatoare()
6
3
4
7

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator


Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (IV)

• Faza 1: 8 8
1 8
5
send(id, 1, 2) 2
5 6
6
3 6
7
4
7 7

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator


Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (V)
5
• Faza 1: 8
1
dacă (id_primit > id_curent) 6 2
8
atunci forward(id,1,1)
5 8

7 6
7
3 5
4
7
6
Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (VI)

• Faza 1: 8
1
dacă 2
(id_primit > id_curent)
5
atunci trimite_raspuns(OK)

6
3
4
7

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator


Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (VII)

• Faza 1: 8
1
dacă 2
(am_primit_amble_raspunsuri)
5
atunci devin_lider()
faza_urmatoare()
6
3
4
7

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator


Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (VIII)

• Faza 2: 8
1 8 8
send(id, 2, 4) 2
5
6
7
3 7
4
7

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator


Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (VIII)

• Faza 2: 8
1
dacă 2
(id_primit > id_curent)
5
atunci trimite_raspuns(OK)

6
3
4
7

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator


Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (IX)

• Faza 2: 8
1
dacă 2
(am_primit_amble_raspunsuri)
5
atunci devin_lider()

6
sfarsit()
3
4
7

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator


Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Concluzii

• Complexitate O(log n) faţă de O( n2)

• Dificultate de implementare relativ redusă

• Număr fix de paşi

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator


Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Întrebări?

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator


Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Mulţumesc.

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

You might also like