Algorithmes Parallèles et Distribués
3. Algorithmes distribués (suite)
Franck Butelle
LIPN, Université Paris 13 Formation Ingénieurs SupGalilée Info 3
12/2020
(INFO 3) APD 3–Algos distribués (suite) 2020 1 / 60
Plan
1 Élection
2 Arbre couvrant
3 Détection Terminaison
4 Conclusion de cette partie
5 Horloges logiques et Exclusion mutuelle
(INFO 3) APD 3–Algos distribués (suite) 2020 2 / 60
Élection
Plan
1 Élection
Sur un anneau Élection sur un arbre Élection sur grille
Élection sur graphe quelconque
2 Arbre couvrant
3 Détection Terminaison
4 Conclusion de cette partie
5 Horloges logiques et Exclusion mutuelle
(INFO 3) APD 3–Algos distribués (suite) 2020 3 / 60
Élection Sur un anneau
Algorithme de Chang-Roberts 1979
Hypothèse:G : anneau unidirectionnel.
Objectif :élire parmi tous les sites, l’id. max.
Idée : Les messages venant des sites d’id. inf. sont arrêtés.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,12,13,16})
16
4 12
9 20
18
7
13
: site candidat : site battu
: mesg élection : mesg fin
(INFO 3) APD 3–Algos distribués (suite) 2020 4 / 60
Élection Sur un anneau
Algorithme de Chang-Roberts 1979
Hypothèse:G : anneau unidirectionnel.
Objectif :élire parmi tous les sites, l’id. max.
Idée : Les messages venant des sites d’id. inf. sont arrêtés.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,12,13,16})
16
4 12
9 20
18
7
13
: site candidat : site battu
: mesg élection : mesg fin
(INFO 3) APD 3–Algos distribués (suite) 2020 4 / 60
Élection Sur un anneau
Algorithme de Chang-Roberts 1979
Hypothèse:G : anneau unidirectionnel.
Objectif :élire parmi tous les sites, l’id. max.
Idée : Les messages venant des sites d’id. inf. sont arrêtés.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,12,13,16})
16
12 9
13
16
4 12
9 20
18
7
13
: site candidat : site battu
: mesg élection : mesg fin
(INFO 3) APD 3–Algos distribués (suite) 2020 4 / 60
Élection Sur un anneau
Algorithme de Chang-Roberts 1979
Hypothèse:G : anneau unidirectionnel.
Objectif :élire parmi tous les sites, l’id. max.
Idée : Les messages venant des sites d’id. inf. sont arrêtés.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,12,13,16})
16 12
20
16
4 12
9 20
18
7
13
: site candidat : site battu
: mesg élection : mesg fin
(INFO 3) APD 3–Algos distribués (suite) 2020 4 / 60
Élection Sur un anneau
Algorithme de Chang-Roberts 1979
Hypothèse:G : anneau unidirectionnel.
Objectif :élire parmi tous les sites, l’id. max.
Idée : Les messages venant des sites d’id. inf. sont arrêtés.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,12,13,16})
16 20
16
4 12
9 20
18
7
13
: site candidat : site battu
: mesg élection : mesg fin
(INFO 3) APD 3–Algos distribués (suite) 2020 4 / 60
Élection Sur un anneau
Algorithme de Chang-Roberts 1979
Hypothèse:G : anneau unidirectionnel.
Objectif :élire parmi tous les sites, l’id. max.
Idée : Les messages venant des sites d’id. inf. sont arrêtés.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,12,13,16})
16
20
16
4 12
9 20
18
7
13
: site candidat : site battu
: mesg élection : mesg fin
(INFO 3) APD 3–Algos distribués (suite) 2020 4 / 60
Élection Sur un anneau
Algorithme de Chang-Roberts 1979
Hypothèse:G : anneau unidirectionnel.
Objectif :élire parmi tous les sites, l’id. max.
Idée : Les messages venant des sites d’id. inf. sont arrêtés.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,12,13,16})
20
16
4 12
9 20
18
7
13
: site candidat : site battu
: mesg élection : mesg fin
(INFO 3) APD 3–Algos distribués (suite) 2020 4 / 60
Élection Sur un anneau
Algorithme de Chang-Roberts 1979
Hypothèse:G : anneau unidirectionnel.
Objectif :élire parmi tous les sites, l’id. max.
Idée : Les messages venant des sites d’id. inf. sont arrêtés.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,12,13,16})
20
16
4 12
9 20
18
7
13
: site candidat : site battu
: mesg élection : mesg fin
(INFO 3) APD 3–Algos distribués (suite) 2020 4 / 60
Élection Sur un anneau
Algorithme de Chang-Roberts 1979
Hypothèse:G : anneau unidirectionnel.
Objectif :élire parmi tous les sites, l’id. max.
Idée : Les messages venant des sites d’id. inf. sont arrêtés.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,12,13,16})
20
16
4 12
9 20
18
7
13
: site candidat : site battu
: mesg élection : mesg fin
(INFO 3) APD 3–Algos distribués (suite) 2020 4 / 60
Élection Sur un anneau
Algorithme de Chang-Roberts 1979
Hypothèse:G : anneau unidirectionnel.
Objectif :élire parmi tous les sites, l’id. max.
Idée : Les messages venant des sites d’id. inf. sont arrêtés.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,12,13,16})
20
16
4 12
9 20
18
7
13
: site candidat : site battu
: mesg élection : mesg fin
(INFO 3) APD 3–Algos distribués (suite) 2020 4 / 60
Élection Sur un anneau
Algorithme de Chang-Roberts 1979
Hypothèse:G : anneau unidirectionnel.
Objectif :élire parmi tous les sites, l’id. max.
Idée : Les messages venant des sites d’id. inf. sont arrêtés.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,12,13,16})
20
16
4 12
9 20
18
7
13
: site candidat : site battu
: mesg élection : mesg fin
(INFO 3) APD 3–Algos distribués (suite) 2020 4 / 60
Élection Sur un anneau
Algorithme de Chang-Roberts 1979
Hypothèse:G : anneau unidirectionnel.
Objectif :élire parmi tous les sites, l’id. max.
Idée : Les messages venant des sites d’id. inf. sont arrêtés.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,12,13,16})
20
16
4 12
9 20
18
7
13
: site candidat : site battu
: mesg élection : mesg fin
(INFO 3) APD 3–Algos distribués (suite) 2020 4 / 60
Élection Sur un anneau
Algorithme de Chang-Roberts 1979
Hypothèse:G : anneau unidirectionnel.
Objectif :élire parmi tous les sites, l’id. max.
Idée : Les messages venant des sites d’id. inf. sont arrêtés.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,12,13,16}) 20
16
4 12
9 20
18
7
13
: site candidat : site battu
: mesg élection : mesg fin
(INFO 3) APD 3–Algos distribués (suite) 2020 4 / 60
Élection Sur un anneau
Algorithme de Chang-Roberts 1979
Hypothèse:G : anneau unidirectionnel.
Objectif :élire parmi tous les sites, l’id. max.
Idée : Les messages venant des sites d’id. inf. sont arrêtés.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,12,13,16})
20
16
4 12
9 20
18
7
13
: site candidat : site battu
: mesg élection : mesg fin
(INFO 3) APD 3–Algos distribués (suite) 2020 4 / 60
Élection Sur un anneau
Algorithme de Chang-Roberts 1979
Hypothèse:G : anneau unidirectionnel.
Objectif :élire parmi tous les sites, l’id. max.
Idée : Les messages venant des sites d’id. inf. sont arrêtés.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,12,13,16})
20
16
4 12
9 20
18
7
13
: site candidat : site battu
: mesg élection : mesg fin
(INFO 3) APD 3–Algos distribués (suite) 2020 4 / 60
Élection Sur un anneau
Algorithme de Chang-Roberts 1979
varétat∈{passif, candidat, élu, battu}, état←passif.
Eveil:siest_initiateuralors
état←candidat;envoyer<élection,Myid>au succ.
finsi
sur_receptionde<élection, id>: siMyid<idalors
état←battu;envoyer<élection,id>au succ.
sinon_siMyid>idalors siétat6=candidatalors
état←candidat;/∗ si pas déjà candidat devient candidat ∗/
envoyer<élection,Myid>au succ.
finsi
sinon /∗ le message a fait le tour de l’anneau ∗/
état←élu;envoyer<fin,Myid>au succ.
finsi
sur_receptionde<fin, id>: siMyid6=idalors
id_élu←id; état←battu;
envoyer<fin,id>au succ.;terminaison sinon
terminaison finsi
(INFO 3) APD 3–Algos distribués (suite) 2020 5 / 60
Élection Sur un anneau
Analyse de l’algo. de Chang-Roberts 1979
Théorème
L’algo CR79 résout le pb de l’élection sur un anneau unidirectionnel (a)synchrone.
Sa complexité en messages dans le pire des cas est en Θ(n2).
Sa complexité en moyenne en messages est enΘ(nlog(n)).
Sa complexité temporelle dans le pire des cas est en Θ(n).
Remarques
L’algo a été défini initialement pour un réseau synchrone, mais se comporte bien sur un réseau asynchrone.
Exercice 1
Ecrire la variante : élection uniquement parmi les initiateurs. Complexités ?
(INFO 3) APD 3–Algos distribués (suite) 2020 6 / 60
Élection Sur un anneau
Preuve des complexités dans le pire des cas
Soit i∗ le site d’identité max.
Complexité temporelle :
pire des cas atteint avecun seul initiateur, successeur immédiat dei∗...
n−1 messages pour atteindre i∗, puisn messages pour faire le tour de l’anneau, puis encoren messages fin. Donc 3n−1 messages
séquentiels.
Complexité en nbre de messages :
pire des cas atteint pour un anneau avec identités en ordre décroissant et tous initiateurs. Première «phase» :n messages...
Or ordre des identités est décroissant, seul le message deimin ài∗ est arrêté. Donc n−1 messages repartent. Au final :
Cmax(n)=
n
X
j=1
j+n=n(n+1)
2 +n=1 2n2+3
2n.
(INFO 3) APD 3–Algos distribués (suite) 2020 7 / 60
Élection Sur un anneau
Preuve des complexités dans le pire des cas
Soit i∗ le site d’identité max.
Complexité temporelle :
pire des cas atteint avecun seul initiateur, successeur immédiat dei∗...
n−1 messages pour atteindre i∗, puisn messages pour faire le tour de l’anneau, puis encoren messages fin. Donc 3n−1 messages
séquentiels.
Complexité en nbre de messages :
pire des cas atteint pour un anneau avec identités en ordre décroissant et tous initiateurs. Première «phase» :n messages...
Or ordre des identités est décroissant, seul le message deimin ài∗ est arrêté. Donc n−1 messages repartent. Au final :
Cmax(n)=
n
X
j=1
j+n=n(n+1)
2 +n=1 2n2+3
2n.
(INFO 3) APD 3–Algos distribués (suite) 2020 7 / 60
Élection Sur un anneau
Preuve des complexités dans le pire des cas
Soit i∗ le site d’identité max.
Complexité temporelle :
pire des cas atteint avecun seul initiateur, successeur immédiat dei∗...
n−1 messages pour atteindre i∗, puisn messages pour faire le tour de l’anneau, puis encoren messages fin. Donc 3n−1 messages
séquentiels.
Complexité en nbre de messages :
pire des cas atteint pour un anneau avec identités en ordre décroissant et tous initiateurs. Première «phase» :n messages...
Or ordre des identités est décroissant, seul le message deimin ài∗ est arrêté. Donc n−1 messages repartent. Au final :
Cmax(n)=
n
X
j=1
j+n=n(n+1)
2 +n=1 2n2+3
2n.
(INFO 3) APD 3–Algos distribués (suite) 2020 7 / 60
Élection Sur un anneau
Preuve des complexités dans le pire des cas
Soit i∗ le site d’identité max.
Complexité temporelle :
pire des cas atteint avecun seul initiateur, successeur immédiat dei∗...
n−1 messages pour atteindre i∗, puisn messages pour faire le tour de l’anneau, puis encoren messages fin. Donc 3n−1 messages
séquentiels.
Complexité en nbre de messages :
pire des cas atteint pour un anneau avec identités en ordre décroissant et tous initiateurs. Première «phase» :n messages...
Or ordre des identités est décroissant, seul le message deimin ài∗ est arrêté. Doncn−1 messages repartent. Au final :
Cmax(n)=
n
X
j=1
j+n=n(n+1)
2 +n=1 2n2+3
2n.
(INFO 3) APD 3–Algos distribués (suite) 2020 7 / 60
Élection Sur un anneau
Complexité en moyenne en nbre de mesg :
Soit une configuration aléatoire :
in−2
ik i2
i1 i∗ in−1
On suppose que tous sont initiateurs, soiti∗ id. max. et ik le site à distancek dei∗ (en partant de ik).
SoitXk variable aléatoire représentant le nbre de mesg <election,ik> d’origine ik.P(Xk≥k+1)=0.Notons queP(Xi∗=n)=1.
Pour que le mesg soit relayéau moins t≤k fois, il faut et il suffit que ik=max{ik, ...,ik−t+1}. Si toutes les conf. sont équiprobables alors P(Xk≥t)=1/t.
(INFO 3) APD 3–Algos distribués (suite) 2020 8 / 60
Élection Sur un anneau
Complexité en moyenne en nbre de mesg :
Soit une configuration aléatoire :
in−2
ik i2
i1 i∗ in−1
On suppose que tous sont initiateurs, soiti∗ id. max. et ik le site à distancek dei∗ (en partant de ik).
SoitXk variable aléatoire représentant le nbre de mesg <election,ik>
d’origine ik.P(Xk≥k+1)=0.Notons queP(Xi∗=n)=1.
Pour que le mesg soit relayéau moins t≤k fois, il faut et il suffit que ik=max{ik, ...,ik−t+1}. Si toutes les conf. sont équiprobables alors P(Xk≥t)=1/t.
(INFO 3) APD 3–Algos distribués (suite) 2020 8 / 60
Élection Sur un anneau
Complexité en moyenne en nbre de mesg :
Soit une configuration aléatoire :
in−2
ik i2
i1 i∗ in−1
On suppose que tous sont initiateurs, soiti∗ id. max. et ik le site à distancek dei∗ (en partant de ik).
SoitXk variable aléatoire représentant le nbre de mesg <election,ik>
d’origine ik.P(Xk≥k+1)=0.Notons queP(Xi∗=n)=1.
Pour que le mesg soit relayéau moins t≤k fois, il faut et il suffit que ik=max{ik, ...,ik−t+1}. Si toutes les conf. sont équiprobables alors P(Xk≥t)=1/t.
(INFO 3) APD 3–Algos distribués (suite) 2020 8 / 60
Élection Sur un anneau
Complexité en moyenne en nbre de mesg (suite)
Cmoy(n)=
n−1 X
k=1E(Xk)+2n(il y anmesg<fin,i∗>etnmesg<élection,i∗>).
doncCmoy(n)=
n−1 X
k=1 k X
t=1
1 t +2n=
n−1 X
t=1 n−1
X
k=t
1 t +2n=
n−1 X
t=1
n−t t +2n
Cmoy(n)=nHn+n (Hn est la n-ieme somme partielle harmonique).
(INFO 3) APD 3–Algos distribués (suite) 2020 9 / 60
Élection Sur un anneau
Complexité en moyenne en nbre de mesg (suite)
Cmoy(n)=
nX−1 k=1
E(Xk)+2n(il y anmesg<fin,i∗>etnmesg<élection,i∗>).
sachant que l’Espérance :E(X)def=
+∞X t=1
t×P(X=t)
doncCmoy(n)=
nX−1 k=1
k X
t=1
1 t +2n=
nX−1 t=1
nX−1 k=t
1 t +2n=
nX−1 t=1
n−t t +2n
Cmoy(n)=nHn+n (Hn est la n-ieme somme partielle harmonique).
(INFO 3) APD 3–Algos distribués (suite) 2020 9 / 60
Élection Sur un anneau
Complexité en moyenne en nbre de mesg (suite)
Cmoy(n)=
nX−1 k=1
E(Xk)+2n(il y anmesg<fin,i∗>etnmesg<élection,i∗>).
sachant que l’Espérance :E(X)def=
+∞X t=1
t×P(X=t)
E(X)=
+∞X t=1
t X
s=1
P(X=t)
doncCmoy(n)=
n−1 X
k=1 k X
t=1
1 t +2n=
n−1 X
t=1 n−1
X
k=t
1 t +2n=
n−1 X
t=1
n−t t +2n
Cmoy(n)=nHn+n (Hn est la n-ieme somme partielle harmonique).
(INFO 3) APD 3–Algos distribués (suite) 2020 9 / 60
Élection Sur un anneau
Complexité en moyenne en nbre de mesg (suite)
Cmoy(n)=
nX−1 k=1
E(Xk)+2n(il y anmesg<fin,i∗>etnmesg<élection,i∗>).
sachant que l’Espérance :E(X)def=
+∞X t=1
t×P(X=t)
E(X)=
+∞X t=1
t X
s=1
P(X=t)=
+∞X s=1
+∞X t=s
P(X=t)
doncCmoy(n)=
n−1 X
k=1 k X
t=1
1 t +2n=
n−1 X
t=1 n−1
X
k=t
1 t +2n=
n−1 X
t=1
n−t t +2n
Cmoy(n)=nHn+n (Hn est la n-ieme somme partielle harmonique).
(INFO 3) APD 3–Algos distribués (suite) 2020 9 / 60
Élection Sur un anneau
Complexité en moyenne en nbre de mesg (suite)
Cmoy(n)=
nX−1 k=1
E(Xk)+2n(il y anmesg<fin,i∗>etnmesg<élection,i∗>).
sachant que l’Espérance :E(X)def=
+∞X t=1
t×P(X=t)
E(X)=
+∞X t=1
t X
s=1
P(X=t)=
+∞X s=1
+∞X t=s
P(X=t)=
+∞X s=1
P(X≥s)
doncCmoy(n)=
n−1 X
k=1 k X
t=1
1 t +2n=
n−1 X
t=1 n−1
X
k=t
1 t +2n=
n−1 X
t=1
n−t t +2n
Cmoy(n)=nHn+n (Hn est la n-ieme somme partielle harmonique).
(INFO 3) APD 3–Algos distribués (suite) 2020 9 / 60
Élection Sur un anneau
Complexité en moyenne en nbre de mesg (suite)
Cmoy(n)=
nX−1 k=1
E(Xk)+2n(il y anmesg<fin,i∗>etnmesg<élection,i∗>).
sachant que l’Espérance :E(X)def=
+∞X t=1
t×P(X=t)
E(X)=
+∞X t=1
t X
s=1
P(X=t)=
+∞X s=1
+∞X t=s
P(X=t)=
+∞X s=1
P(X≥s)
orP(Xk≥t)=1
t etP(Xk≥k+1)=0, donc E(Xk)=
k X
t=1
1 t.
doncCmoy(n)=
nX−1 k=1
k X
t=1
1 t +2n=
nX−1 t=1
nX−1 k=t
1 t +2n=
nX−1 t=1
n−t t +2n
Cmoy(n)=nHn+n (Hn est la n-ieme somme partielle harmonique).
(INFO 3) APD 3–Algos distribués (suite) 2020 9 / 60
Élection Sur un anneau
Complexité en moyenne en nbre de mesg (suite)
Cmoy(n)=
n−1 X
k=1E(Xk)+2n(il y anmesg<fin,i∗>etnmesg<élection,i∗>).
doncCmoy(n)=
nX−1 k=1
k X
t=1
1 t +2n
= n−1
X
t=1 n−1
X
k=t
1 t +2n=
n−1 X
t=1
n−t t +2n
Cmoy(n)=nHn+n (Hn est la n-ieme somme partielle harmonique).
(INFO 3) APD 3–Algos distribués (suite) 2020 9 / 60
Élection Sur un anneau
Complexité en moyenne en nbre de mesg (suite)
Cmoy(n)=
n−1 X
k=1E(Xk)+2n(il y anmesg<fin,i∗>etnmesg<élection,i∗>).
doncCmoy(n)=
nX−1 k=1
k X
t=1
1 t +2n=
nX−1 t=1
nX−1 k=t
1 t +2n=
nX−1 t=1
n−t t +2n
Cmoy(n)=nHn+n (Hn est la n-ieme somme partielle harmonique).
(INFO 3) APD 3–Algos distribués (suite) 2020 9 / 60
Élection Sur un anneau
Complexité en moyenne en nbre de mesg (suite)
Cmoy(n)=
nX−1 k=1
E(Xk)+2n(il y anmesg<fin,i∗>etnmesg<élection,i∗>).
doncCmoy(n)=
nX−1 k=1
k X
t=1
1 t +2n=
nX−1 t=1
nX−1 k=t
1 t +2n=
nX−1 t=1
n−t t +2n
=n
nX−1 t=1
1 t +
nX−1 t=1
−t
t +2n=n
nX−1 t=1
1 t +n+1
Cmoy(n)=nHn+n (Hn est la n-ieme somme partielle harmonique).
(INFO 3) APD 3–Algos distribués (suite) 2020 9 / 60
Élection Sur un anneau
Complexité en moyenne en nbre de mesg (suite)
Cmoy(n)=
nX−1 k=1
E(Xk)+2n(il y anmesg<fin,i∗>etnmesg<élection,i∗>).
doncCmoy(n)=
nX−1 k=1
k X
t=1
1 t +2n=
nX−1 t=1
nX−1 k=t
1 t +2n=
nX−1 t=1
n−t t +2n
=n
nX−1 t=1
1 t +
nX−1 t=1
−t
t +2n=n
nX−1 t=1
1
t +n+1 or 1=n×1
n doncCmoy(n)=n
n X
t=1
1 t+n
Cmoy(n)=nHn+n (Hn est la n-ieme somme partielle harmonique).
(INFO 3) APD 3–Algos distribués (suite) 2020 9 / 60
Élection Sur un anneau
Complexité en moyenne en nbre de mesg (suite)
Cmoy(n)=
nX−1 k=1
E(Xk)+2n(il y anmesg<fin,i∗>etnmesg<élection,i∗>).
doncCmoy(n)=
nX−1 k=1
k X
t=1
1 t +2n=
nX−1 t=1
nX−1 k=t
1 t +2n=
nX−1 t=1
n−t t +2n
=n
nX−1 t=1
1 t +
nX−1 t=1
−t
t +2n=n
nX−1 t=1
1
t +n+1 or 1=n×1
n doncCmoy(n)=n
n X
t=1
1 t+n Cmoy(n)=nHn+n (Hn est la n-ieme somme partielle harmonique).
(INFO 3) APD 3–Algos distribués (suite) 2020 9 / 60
Élection Sur un anneau
Complexité en moyenne en nbre de mesg (fin)
Calcul deHn
1
t décroissante donc Z t+1
t
1 xdx ≤ 1
t ≤ Z t
t−1
1
xdx pour t≥2 donc en sommant pour t=2 à n (et en ajoutant 1) :
1+ Z n+1
2
1
xdx≤Hn≤1+ Z n
1
1 xdx donc lim
n→+∞Hn≈ln(n) donc Cmoy(n)=Θ(nlog(n))
(INFO 3) APD 3–Algos distribués (suite) 2020 10 / 60
Élection Sur un anneau
Algo. de Franklin 1982
Hyp.: anneau bidirectionnel
Objectif: Élection parmi les initiateurs.
Idée : Se comparer à chaque «tour» à ses 2 voisins actifs, les pluspetits survivent, les passifs/battus relaient les mesgs.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,16,18})
16
4 12
9 20
18
7
13
(INFO 3) APD 3–Algos distribués (suite) 2020 11 / 60
Élection Sur un anneau
Algo. de Franklin 1982
Hyp.: anneau bidirectionnel
Objectif: Élection parmi les initiateurs.
Idée : Se comparer à chaque «tour» à ses 2 voisins actifs, les pluspetits survivent, les passifs/battus relaient les mesgs.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,16,18})
16
4 12
9 20
18
7
13
(INFO 3) APD 3–Algos distribués (suite) 2020 11 / 60
Élection Sur un anneau
Algo. de Franklin 1982
Hyp.: anneau bidirectionnel
Objectif: Élection parmi les initiateurs.
Idée : Se comparer à chaque «tour» à ses 2 voisins actifs, les pluspetits survivent, les passifs/battus relaient les mesgs.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,16,18})
16 16
9
9 18
18
16
4 12
9 20
18
7
13
(INFO 3) APD 3–Algos distribués (suite) 2020 11 / 60
Élection Sur un anneau
Algo. de Franklin 1982
Hyp.: anneau bidirectionnel
Objectif: Élection parmi les initiateurs.
Idée : Se comparer à chaque «tour» à ses 2 voisins actifs, les pluspetits survivent, les passifs/battus relaient les mesgs.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,16,18})
16 16 9
9 18
18
16
4 12
9 20
18
7
13
(INFO 3) APD 3–Algos distribués (suite) 2020 11 / 60
Élection Sur un anneau
Algo. de Franklin 1982
Hyp.: anneau bidirectionnel
Objectif: Élection parmi les initiateurs.
Idée : Se comparer à chaque «tour» à ses 2 voisins actifs, les pluspetits survivent, les passifs/battus relaient les mesgs.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,16,18})
16
18
9
16
16
4 12
9 20
18
7
13
(INFO 3) APD 3–Algos distribués (suite) 2020 11 / 60
Élection Sur un anneau
Algo. de Franklin 1982
Hyp.: anneau bidirectionnel
Objectif: Élection parmi les initiateurs.
Idée : Se comparer à chaque «tour» à ses 2 voisins actifs, les pluspetits survivent, les passifs/battus relaient les mesgs.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,16,18})
9
9
16
4 12
9 20
18
7
13
(INFO 3) APD 3–Algos distribués (suite) 2020 11 / 60
Élection Sur un anneau
Algo. de Franklin 1982
Hyp.: anneau bidirectionnel
Objectif: Élection parmi les initiateurs.
Idée : Se comparer à chaque «tour» à ses 2 voisins actifs, les pluspetits survivent, les passifs/battus relaient les mesgs.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,16,18})
9
9
16
4 12
9 20
18
7
13
(INFO 3) APD 3–Algos distribués (suite) 2020 11 / 60
Élection Sur un anneau
Algo. de Franklin 1982
Hyp.: anneau bidirectionnel
Objectif: Élection parmi les initiateurs.
Idée : Se comparer à chaque «tour» à ses 2 voisins actifs, les pluspetits survivent, les passifs/battus relaient les mesgs.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,16,18})
9
916 4 12
9 20
18
7
13
(INFO 3) APD 3–Algos distribués (suite) 2020 11 / 60
Élection Sur un anneau
Algo. de Franklin 1982
Hyp.: anneau bidirectionnel
Objectif: Élection parmi les initiateurs.
Idée : Se comparer à chaque «tour» à ses 2 voisins actifs, les pluspetits survivent, les passifs/battus relaient les mesgs.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,16,18})
9
9
16
4 12
9 20
18
7
13
(INFO 3) APD 3–Algos distribués (suite) 2020 11 / 60
Élection Sur un anneau
Algo. de Franklin 1982
Hyp.: anneau bidirectionnel
Objectif: Élection parmi les initiateurs.
Idée : Se comparer à chaque «tour» à ses 2 voisins actifs, les pluspetits survivent, les passifs/battus relaient les mesgs.
Exemple (I={16,4,12,9,20,18,7,13}. Init={9,16,18})
9 9
9 9
9 9
9
9
16
4 12
9 20
18
7
13
(INFO 3) APD 3–Algos distribués (suite) 2020 11 / 60
Élection Sur un anneau
Algo. de Franklin 1982
varétat∈{passif,actif,élu,battu};
Eveil:siest_initiateuralors
état←actif;envoyer<Myid>aux deux voisins;
finsi
siétat = actifalors/∗ seuls les initiateurs participent à l’élection ∗/
sur_receptiondes messages<v>et<w>des DEUX voisins : simin{v,w}<Myidalorsétat←battu;finsi
simin{v,w}>Myidalorsenvoyer<Myid>aux deux voisins;finsi simin{v,w}=Myidalors
état←élu;/∗ Terminaison ... ∗/
finsi sinon
relayer les messages reçus finsi
(INFO 3) APD 3–Algos distribués (suite) 2020 12 / 60