Algorithmique R´epartie Avanc´ee :
Introduction `a l’Auto-Stabilisation
Swan Dubois
esum´e
Ce cours est consacr´e `a une introduction `a l’auto-stabilisation. Il s’agit d’une m´ethode de
tol´erance aux fautes transitoires dans les syst`emes r´epartis. Ce cours a pour objectif de vous
familiariser avec cette notion `a travers quelques exemples classiques. Nous insisterons en parti-
culier sur l’impact des crit`eres d’asynchronisme du syst`eme sur les algorithmes auto-stabilisants.
Vous pouvez remarquer que ce polycopi´e de cours n’est pas complet. Ce r´esum´e comporte
uniquement les ´enonc´es formels et les algorithmes que nous verrons dans ce cours. Il ne s’agit que
d’un support afin de vous aider dans votre prise de notes et en aucun cas d’un cours exhaustif.
1 Introduction
1.1 Fautes
1.2 Auto-Stabilisation
1.3 Mod`ele `a ´
Etats
Nous consid´erons le syst`eme r´eparti comme un graphe connexe non oriene G= (V, E) o`u
Vest un ensemble de processeurs et Eest une relation binaire qui mod´elise la capacit´e de deux
processeurs `a communiquer. Nous dirons que pet qsont voisins si (p, q)E. Tout processeur
ppeut distinguer localement ses voisins que le syst`eme soit identifi´e ou anonyme. Dans la suite,
nous d´esignerons par nle nombre de processeurs dans V, par Npl’ensemble des voisins d’un
processeur p, par d(p, q) la distance entre deux processeurs pet q, par ∆ le degr´e maximal de
Get par Dle diam`etre de G.
Nous consid´erons le mod`ele `a ´etats qui est un mod`ele `a m´emoire partag´ee dans lequel les
communications entre processeurs voisins sont r´ealis´ees par des lectures directes de variables
plutˆot que par des ´echanges de messages. Dans ce mod`ele, ´ecrire un algorithme r´eparti Aconsiste
`a associer `a chaque processeur un ensemble de variables et de r`egles. Un processeur peut lire
et ´ecrire ses propres variables tandis qu’il peut exclusivement lire celles de ses voisins. Chaque
r`egle du processeur pest de la forme <´
Etiquette>: :<Garde><Action>. L’´etiquette de la
r`egle est simplement un nom pour faire r´ef´erence `a la r`egle. La garde de la r`egle est un pr´edicat
impliquant uniquement des variables de pet de ses voisins. L’action de la r`egle est un ensemble
d’instructions modifiant uniquement les variables de p. Une action ne peut ˆetre ex´ecut´ee que si
la garde de la r`egle correspondante est vraie (la r`egle est alors dite activable).
L’´etat d’un processeur est d´efini par la valeur de toutes ses variables. La configuration du
syst`eme est le produit de l’´etat de tous les processeurs. Nous notons Γ l’ensemble des configu-
rations du syst`eme. Un processeur est activable dans une configuration si et seulement si au
1
moins une de ses r`egles est activable dans cette configuration. Une ex´ecution de Aissue d’une
configuration γ0est une s´equence maximale de configurations =γ0γ1. . . γiγi+1 . . . telle que,
pour tout i, l’´etape (γi, γi+1) corresponde `a l’ex´ecution d’une r`egle de Apar un sous-ensemble
non-vide des processeurs activables dans γi(s’il en existe). Le fait que l’ex´ecution soit maximale
signifie qu’elle est infinie ou bien qu’aucun processeur n’est activable dans la derni`ere confi-
guration (qui est alors dite terminale). Un processeur est neutralis´e durant une ´etape s’il est
activable au d´ebut de l’´etape, non activable `a la fin mais qu’il n’a ex´ecut´e aucune r`egle durant
cette ´etape.
Nous pouvons `a pr´esent donner une d´efinition formelle de l’auto-stabilisation. Nous associons
`a chaque probl`eme une sp´ecification. Il s’agit d’un pr´edicat qui indique si une ex´ecution d’un
algorithme satisfait les contraintes du probl`eme ou pas.
efinition 1 (Auto-stabilisation) Un algorithme r´eparti Aest auto-stabilisant pour une
sp´ecification Ss’il existe un ensemble non-vide de configurations (dites l´egitimes) tel que :
(clˆoture) toute ex´ecution de Aissue d’une configuration l´egitime satisfait S; et
(convergence) toute ex´ecution de Aissue de toute configuration de Γcontient une configuration
l´egitime.
2 Premier Algorithme : Exclusion Mutuelle
2.1 Sp´ecification du Probl`eme
Sp´ecification 1 (Exclusion mutuelle)
Vivacit´e : Tout processeur peut entrer infiniment souvent en section critique.
uret´e : Dans toute configuration, au plus un processeur est en section critique.
Sp´ecification 2 (Circulation de jeton)
Vivacit´e : Tout processeur poss`ede infiniment souvent le jeton.
uret´e : Dans toute configuration, au plus un processeur poss`ede un jeton.
2.2 Algorithme
Nous posons les hypoth`eses suivantes. Le syst`eme est un anneau oriene de nprocesseurs
d’identit´es p0, . . . , pn1(dans le sens de l’orientation). Chaque processeur pia une unique va-
riable ci∈ {0,1, . . . , k 1}(o`u kest une constante telle que k > n).
Nous d´efinissons la pr´esence du jeton de la mani`ere suivante. Le processeur p0poss`ede le
jeton si c0=cn1alors qu’un processeur pi(i6= 0) poss`ede le jeton si ci6=ci1.
Algorithme 1 Algorithme de Dijkstra pour le processeur pi
Variable pour pi:
ci∈ {0,1, . . . , k 1}
R`egle pour p0:
(R1) :: c0=cn1c0:= c0+ 1 modulo k
R`egle pour pi,i6= 0 :
(R2) :: ci6=ci1ci:= ci1
2
2.3 Exemples
2.4 Preuve
Lemme 1 Au moins un processeur poss`ede le jeton dans toute configuration de Γ.
Lemme 2 Tout processeur poss`ede le jeton infiniment souvent dans toute ex´ecution issue de
toute configuration de Γ.
Lemme 3 Toute ex´ecution issue d’une configuration dans laquelle existe un unique jeton sa-
tisfait la sp´ecification de la circulation de jeton.
Lemme 4 Toute ex´ecution issue de toute configuration de Γatteint en un temps fini une confi-
guration dans laquelle existe un unique jeton.
Th´eor`eme 1 L’algorithme de Dijsktra est un algorithme auto-stabilisant d’exclusion mutuelle.
3 Mod´eliser l’Asynchronisme : les D´emons
3.1 Caract´eristiques des D´emons
Un d´emon est un adversaire ext´erieur `a l’algorithme qui s´electionne `a chaque ´etape le sous-
ensemble des processeurs activables autoris´es `a ex´ecuter une de leur r`egles. Si on ne met aucune
restriction sur le d´emon, nous pouvons simuler tout entrelacement d’actions des processeurs
donc les ex´ecutions consid´er´ees sont totalement asynchrones.
L’objectif du d´emon ´etant d’empˆecher la stabilisation de l’algorithme si cela lui est pos-
sible, on peut ˆetre amen´e `a vouloir restreindre le pouvoir du d´emon en lui imposant certaines
contraintes. Nous nous ineresserons ici `a sa distribution et `a son ´equit´e.
Distribution
D´emon distribu´e : Pas de contrainte sur la distribution.
D´emon localement central : Deux processeurs voisins ne peuvent pas ˆetre choisis simul-
tan´ement par le d´emon.
D´emon central : Deux processeurs ne peuvent pas ˆetre choisis simultan´ement par le
d´emon.
´
Equit´e
D´emon in´equitable : Pas de contraintes sur l’´equit´e
D´emon faiblement ´equitable : Un processeur ne peut pas ˆetre infiniment longtemps acti-
vable sans ˆetre choisi par le d´emon.
D´emon fortement ´equitable : Un processeur ne peut pas ˆetre infiniment souvent activable
sans ˆetre choisi par le d´emon.
3.2 Exemple du Probl`eme du Coloriage
Sp´ecification 3 (Coloriage)
Vivacit´e : Toute ex´ecution est finie.
uret´e : Dans toute configuration terminale, deux processeurs ne portent pas la mˆeme couleur.
Th´eor`eme 2 Il n’existe pas d’algorithme auto-stabilisant pour le coloriage sous le d´emon dis-
tribu´e et in´equitable.
3
Algorithme 2 Algorithme du (∆ + 1)-coloriage pour le processeur p
Variable pour p:
cp∈ {0,...,∆+1}: couleur du processeur p
R`egle pour p:
(C) :: (qNp, cq=cp)cp:= cavec c∈ {0,...,∆+1}\{cq|qNp}
Th´eor`eme 3 L’algorithme du (∆ + 1)-coloriage est un algorithme auto-stabilisant de coloriage
sous le d´emon central et in´equitable.
4 Deuxi`eme Algorithme : Arbre en Largeur
4.1 Sp´ecification du Probl`eme
Sp´ecification 4 (Construction de l’arbre en largeur)
Vivacit´e : Toute ex´ecution est finie.
uret´e : Dans toute configuration terminale, il existe un arbre couvrant en largeur enracin´e sur
le processeur racine.
4.2 Algorithme
Nous faisons les hypoth`eses suivantes. Le graphe de communication est quelconque. Seul un
processeur rest distingu´e comme ´etant la racine de l’arbre `a construire (les autres processeurs
peuvent ˆetre anonymes).
Algorithme 3 Algorithme du min + 1 pour le processeur p
Variables pour p:
PpNp∪ {⊥} : pointeur sur le p`ere de pdans l’arbre
dpN: distance `a la racine de pdans l’arbre
R`egle pour p=r:
(R1) :: (Pr6=)(dr6= 0) Pr:= ;dr:= 0
R`egle pour p6=r:
(R2) :: (Pp=)(dp6=min{dq|qNp}+ 1) (dp6=dPp+ 1)
Pp:= q;dp:= dq+ 1 avec qtel que dq=min{dk|pkNp}
Nous supposons que cet algorithme s’ex´ecute sous un d´emon distribu´e faiblement ´equitable.
Notez que cette hypoth`ese n’est pas n´ecessaire `a la stabilisation de l’algorithme mais il rend la
preuve bien plus simple et ´el´egante.
4
4.3 Exemples
4.4 Preuve
Nous introduisons pour le besoin de la preuve le pr´edicat suivant :
γΓ,i∈ {0, . . . , D+1}, A(γ, i)
Pr=⊥ ∧ dr= 0
et
pV\ {r}, d(p, r)< i Pp6=⊥ ∧ dp=d(p, r)dPp=dp1
et
pV, d(p, r)iPp6=⊥ ∧ dpi
D´efinissons une famille d’ensemble de configurations de la mani`ere suivante :
i∈ {0, . . . , D + 1},Γi={γΓ|A(γ, i) = vrai}
Nous allons utiliser la notion d’attracteur dans la preuve de cet algorithme. ´
Etant donn´e
deux sous-ensembles de configurations Γ2Γ1Γ, nous disons que Γ2est un attracteur de Γ1
(not´e Γ1BΓ2) si toute ex´ecution de l’algorithme partant de toute configuration de Γ1atteint
en un temps fini une configuration de Γ2et si Γ2est clos pour l’algorithme.
Nous introduisons ´egalement la notion de ronde. La premi`ere ronde d’une ex´ecution , not´ee
0, est le pr´efixe minimal de qui contient l’ex´ecution d’au moins une r`egle ou la neutralisation
de chaque processeur qui ´etait activable au d´ebut de la ronde. Soit 00 le suffixe de tel que
=000 . La seconde ronde de est la premi`ere ronde de 00 , etc. Le fait de supposer un d´emon
faiblement ´equitable nous garantit que toute ronde est finie.
Lemme 5 Toute configuration γΓD+1 est terminale et les pointeurs Pde l’ensemble des
processeurs forment un arbre couvrant en largeur enracin´e en rdans γ.
Lemme 6 ΓBΓ0.
Lemme 7 i∈ {0, . . . , D},ΓiBΓi+1.
Th´eor`eme 4 L’algorithme du min+1 est un algorithme auto-stabilisant de construction d’arbre
en largeur.
5 Troisi`eme Algorithme : Mariage Maximal
5.1 Sp´ecification du Probl`eme
efinition 2 (Couplage) Pour tout graphe G= (V, E), un couplage Csur Gest un sous-
ensemble de Etel que tout sommet de Vappartient `a au plus une arˆete de C. Un couplage est
maximal (resp. maximum) s’il n’existe aucun couplage C0tel que C(C0(resp. |C|<|C0|).
Sp´ecification 5 (Mariage Maximal)
Vivacit´e : Toute ex´ecution est finie.
uret´e : Dans toute configuration terminale, il existe un couplage maximal sur le graphe de
communication.
5
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !