Algorithmique distribuée
Étude de complexité TD2
Consignes
précisément, il faut envoyer votre code ainsi qu’un petit fichier texte qui explique ce que vous avez
fait à chaque étape et les résultats obtenus. La partie “mathématique” n’est pas à rendre, mais je
vous demande d’essayer d’y travailler sincèrement au moins 10 minutes.
1 L’algorithme
On se propose d’étudier la complexité en temps du dernier algorithme de comptage étudié
précédemment. Pour rappel, cet algorithme est à initialisation uniforme : tous les sommets dé-
marrent dans l’état compteur avec la valeur 1, signifiant que chacun s’est déjà lui-même compté.
Algorithm 1 Comptage du nombre de sommets (avec compteurs fusionnants et circulants)
Etats initiaux : 1pour tous les sommets.
Règle de fusion : i6= 0 j6= 0 i+j0
Règle de circulation : i6= 0 0 0 i
Pour rappel, on considère un ordonnancement aléatoire comme suit. À chaque étape, une
arête est sélectionnée au hasard (uniformément). Si la règle de fusion est applicable sur cette
arête, elle est appliquée. Sinon, si la règle de circulation est applicable, elle est appliquée.
2 Travail à faire
On s’intéresse au temps d’exécution moyen qu’il faut jusqu’à ce qu’il reste un seul compteur.
En terme mathématique, on parle d’espérance du nombre d’étapes. On se concentrera ici sur
un cas particulier très simple, où le graphe est à la fois statique (il ne change pas) et complet (il
existe une arête entre chaque paire de sommet).
Bien évidemment, le nombre d’étape dépend du nombre de sommet ndans le réseau. On
cherchera donc à analyser son espérance en fonction de npour émettre une conjecture, par
exemple est-ce linéaire en n, est-ce logarithmique, quadratique, cubique, exponentiel ou autre ?