Algorithmique distribu´ee – Examen
RICM4, PolyTech’Grenoble
Tous documents autoris´es
Temps imparti : 2 heures Bar`eme indicatif sur 20 points
Calcul du nombre de feuilles dans un arbre anonyme
Le but global de ce sujet est de d´ecouvrir un algorithme distribu´e permettant de calculer le nombre de
feuilles dans le r´eseau anonyme en arbre. Le sujet est n´eanmoins d´ecoup´e en trois exercices que vous pouvez
traiter ind´ependamment les uns des autres. Il s’agit dans le premier exercice d’initialiser le calcul au niveau
des feuilles, puis de faire calculer le nombre de feuilles par certains nœuds particularis´es par l’algorithme et
enfin de propager cette information `a travers tout le r´eseau.
Les hypoth`eses que nous utilisons pour les trois exercices sont les suivantes. Nous supposons que les
processus et les canaux sont asynchrones. Les canaux sont FIFO. La topologie du r´eseau est un arbre avec
au moins deux nœuds. Les nœuds ne portent pas d’identit´e. Par contre chaque nœud, p, porte un ´etiquetage
local de ses canaux : on note δple degr´e du nœud pet on suppose que ses canaux sont ´etiquet´es de 1 `a δp.
Voir l’illustration ci-dessous.
A noter : δpest une information connue du nœud et qui pourra ˆetre utilis´ee dans les algorithmes.
1 2
11
31
2 1
3 2
2
1
41
1 2
11
21
3
1
1´
Eveiller les feuilles
Dans cet exercice, on suppose en plus que certains nœuds vont ˆetre activ´es par une autre application ; on
les appelle les nœuds initiateurs pour lesquels la variable bool´eenne Init sera vraie. On supposera que l’arbre
contient au moins un initiateur au d´ebut du calcul.
On suppose aussi que chaque nœud poss`ede une fonction eveil().
Question 1 (4 points) On veut ´elaborer un algorithme o`u chaque feuille ex´ecute la fonction eveil()
exactement une fois, en temps fini. Votre solution ne devra pas ´echanger plus de 2(n1) messages o`u nest
le nombre de nœuds du r´eseau.
(a) ´
Ecrire un tel algorithme et expliquer son fonctionnement.
(b) Justifier la complexit´e en messages de votre solution.
(c) Pourquoi ne peut-on am´eliorer cette complexit´e ?
2 Compter les feuilles
On suppose maintenant en plus que tous les nœuds sont munis d’un bool´een Feuille qui vaut vrai si
et seulement si le nœud est une feuille de l’arbre. L’algorithme suivant oriente l’arbre et permet `a certains
RICM4, PolyTech’Grenoble — 2014 – 2015 APD — 1
nœuds de calculer le nombre de feuilles de l’arbre.
Variables pour tout processus p
1: fils ⊆ {1, ..., δp}ensemble de num´eros de canaux
2: p`ere,fr`ere ∈ {1, ..., δp} ∪ {⊥}
3: NF entier naturel
Algorithme pour tout processus p
4: fils ← ∅,p`ere ← ⊥,fr`ere ← ⊥,NF 0
5: Si Feuille alors
6: p`ere 1, NF 1
7: Envoyer hCPT,NFi`a p`ere
8: Fin Si
9: Pour toujours
10: eceptionner hCPT, f ide q
11: fils fils ∪ {q}
12: NF NF +f
13: Si |fils|=δpalors
14: fr`ere p`ere,p`ere ← ⊥
15: decide(NF)
16: Sinon
17: Si |fils|=δp1p`ere =alors
18: p`ere ← {1, ..., δp} \ fils
19: Envoyer hCPT,NFi`a p`ere
20: Fin Si
21: Fin Si
22: Fin Pour toujours
Question 2 (1 point) Ex´ecuter l’algorithme sur l’exemple de l’arbre donn´e en introduction.
(a) Que repr´esente NF ?
(b) Combien de nœuds ex´ecutent-ils la fonction decide ? et pour quelle valeur de param`etre ?
(c) Comment ces nœuds sont ils positionn´es dans l’arbre ?
(d) Que repr´esentent les variables p`ere,fr`ere et fils ?
On cherche `a prouver le bon fonctionnement de cet algorithme.
Question 3 (1.5 point) Tout nœud envoie au plus un message CPT. Prouver cette propri´et´e en raison-
nant directement sur le code.
On cherche `a montrer que tout nœud envoie exactement un message CPT. Pour cela, on a besoin d’intro-
duire une nouvelle mesure sur l’arbre qui s’appelle l’excentricit´e d’un nœud : e(p) repr´esente l’excentricit´e
du nœud p, c’est-`a-dire la distance maximum entre pet n’importe quel autre nœud.
Question 4 (1 point) Recopier l’arbre donn´e en illustration et calculer dessus l’excentricit´e pour chacun
des nœuds. Remarquer que
(a) Quand l’excentricit´e est maximum pour un nœud donn´e, ce nœud est une feuille. Donner un exemple.
(b) La r´eciproque est fausse. Justifier.
(c) Pour un processus pdonn´e, padmet au plus un voisin qtel que e(q)e(p). Donner deux exemples.
Ces propri´et´es sont vraies en g´en´eral et mˆeme si elles se d´emontrent facilement, nous les admettons dans ce
sujet. Vous pourrez les utiliser dans les raisonnements qui viennent.
RICM4, PolyTech’Grenoble — 2014 – 2015 APD — 2
Question 5 (4 points) Tout nœud envoie au moins un message CPT. La d´emonstration va se faire en
raisonnant par r´ecurrence sur l’excentricit´e des nœuds.
(a) Cas de base : prouver la proposition pour un processus ptel que e(p) est maximum.
(b) Pas de r´ecurrence : on suppose que la propri´et´e est v´erifi´ee pour tout processus qtel que e(q)k
(pour kdonn´e >0) et on consid`ere un processus pd’excentricit´e e(p) = k1.
(i) Que dire si pest une feuille ?
(ii) Dans le cas o`u pn’est pas une feuille, montrer que pa au moins δp1 voisins qui ont envoy´e un
message `a leur p`ere.
(iii) Terminer la d´emonstration du pas de r´ecurrence. Vous pourrez raisonner par l’absurde.
On peut d´eduire de cette question que tout nœud a en temps fini un p`ere ou un fr`ere et δp1 fils
diff´erents de son p`ere ou de son fr`ere. Il est aussi tr`es facile de constater que les liens vers le p`ere constituent
le chaˆınage inverse des liens induits par les fils. Autrement dit, pour deux nœuds voisins pet q, en temps
fini, si pest p`ere de qalors qest fils de p.
Question 6 (2 points) Exactement deux processus ex´ecutent decide(NF).Montrer cette proposition en
comptant le nombre de messages re¸cus.
Indication : utiliser que la somme des degr´es d’un graphe est ´egale `a deux fois le nombre d’arˆetes.
Question 7 (1.5 point) Les deux processus qui ex´ecutent decide(NF) sont voisins. Montrer cette pro-
position en comptant le nombre de messages envoy´es.
Question 8 (2 points) Vous venez de montrer que deux processus voisins ex´ecutent decide(NF)en
temps fini. Que vaut alors le param`etre NF ? Expliquez pourquoi.
3 Propager le nombre de feuilles
On cherche maintenant `a ´ecrire un algorithme qui, une fois l’algorithme pr´ec´edent termin´e, va propager
le nombre de feuilles calcul´e `a tous les nœuds de l’arbre.
On se place sous les mˆemes hypoth`eses que pr´ec´edemment. En suppl´ement, les nœuds sont munis des
variables p`ere,fils,fr`ere,NF qui ont les mˆemes types et signification que pr´ec´edemment. On suppose que les
variables sont positionn´ees de la fa¸con suivante :
Pour exactement deux nœuds voisins, Aet B, la variable p`ere vaut , la variable fr`ere de Avaut B
et vice versa, la variable NF contient le nombre de feuilles de l’arbre.
Pour les autres nœuds (diff´erents de Aet de B), la variable fr`ere vaut , les variables p`ere et fils
constituent une orientation des arˆetes de l’arbre avec pour racine Aou Bselon les cas.
Question 9 (3 points) ´
Ecrire un algorithme qui propage la valeur NF de Aet B`a tous les nœuds de
l’arbre. Combien de messages l’algorithme utilise-t-il ?
RICM4, PolyTech’Grenoble — 2014 – 2015 APD — 3
1 / 3 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 !