Exercice!2:!
!
L’algorithme!2!représente!la!version!synchrone!de!l’algorithme!du!plus!court!chemin.!Cet!algorithme!est!
incomplet!puisqu’il!ne!précise!pas!la!condition!d’arrêt.!!
- MSGi'(0)'='{}';'
- Pour!(tous!les!nœuds!de!N)!faire!envoyer!seti'(0)!aux!voisins!vi!
- t'='1;'
'
- Pour!(chaque!réception!de!MSGi(t-1))!faire!! //'t'>'0'
o seti'(t)!=!{}!;!
o Pour!(chaque!setj(t-1)!appartenant!à!MSGi'(t-1))!faire!
§ Pour!chaque!nœud!nk!appartenant!à!seti'(t-1)!faire!
• Si!(disti'(k)'>'t)!alors!
o disti!(k)!=!t!;!
o firsti!(k)!=!!nj;'
o seti'(t)'='seti'(t)+{nk}'
o Envoyer!seti'(t)!à!tous!les!voisins!de!ni!(ensemble!vi)!
o t!=!t!+!1;!
Algorithme!2!
!
1. Complétez!cet!algorithme!en!précisant!la!condition!d’arrêt!telle!que!vue!en!cours.!
2. Ecrivez!l’algorithme!correspondant!au!texte!en!gras!dans!l’algorithme!2.!
3. Pour! améliorer! les! performances! de! l’algorithme! 2,! l’une! des! idées! consiste! à! réduire,! dans! la!
limite! du! possible,! le! nombre! d’itérations! exécutées.! L’idée! est! de! revoir! la! condition! d’arrêt.!
Expliquez!comment!?!Ecrivez!la!nouvelle!version!de!cet!algorithme.!
4. Version! asynchrone.! Dans! l’algorithme! 2,! la! variable! t! est! considérée! comme! une! horloge!
commune!à!tous!les!nœuds!du!réseau.!Dans!cette!question,!on!se!propose!de!définir!une!horloge!
par!voisin!(au!niveau!de!chaque!nœud).!L’objectif!est!d’éviter!l’attendre!des!messages!de!tous!les!
voisins! avant! de! commencer! le! traitement.!Partant! de! cette! idée!(une! horloge! par! voisin),!
proposez!une!démarche!visant!à!concevoir!une!version!asynchrone!de!l’Algorithme!2.!
!
Exercice!3!
On! dispose! d’un! réseau! freenet! composé! de! cinq! nœuds!:! A,! B,! C,! D,! E.! Les! contenus! des! entrepôts! de!
chaque!nœud!sont!les!suivants!:!
!