Algorithmique Distribuée Algorithmes de vagues

Documents pareils
Recherche dans un tableau

Propagation sur réseau statique et dynamique

Pourquoi l apprentissage?

L exclusion mutuelle distribuée

chapitre 4 Nombres de Catalan

Introduction aux algorithmes répartis

LE PROBLEME DU PLUS COURT CHEMIN

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, Cachan Cedex. Resume

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Cours de Génie Logiciel

Algorithmes d'apprentissage

Cours Informatique Master STEP

Arbres binaires de recherche

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Organigramme / Algorigramme Dossier élève 1 SI

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

Algorithmes de recherche

Examen Médian - 1 heure 30

Limites finies en un point

Resolution limit in community detection

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Algorithmique répartie

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Conception des systèmes répartis

Les diagrammes de modélisation

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

L apprentissage automatique

Parallélisme et Répartition

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Ebauche Rapport finale

Routage Statique. Protocoles de Routage et Concepts. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Programmation C++ (débutant)/instructions for, while et do...while

Initiation à la programmation en Python

Algorithmique et programmation : les bases (VBA) Corrigé

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet.

ACTIVITÉ DE PROGRAMMATION

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Raisonnement par récurrence Suites numériques

OASIS Date de publication

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Généralités véhicule

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Vers l'ordinateur quantique

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Conception de circuits numériques et architecture des ordinateurs


PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Représentation d un entier en base b

Cours d algorithmique pour la classe de 2nde

Modélisation multi-agents - Agents réactifs

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR


t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

6. Les différents types de démonstrations

Chapitre 2 Le problème de l unicité des solutions

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Le module Supply Chain pour un fonctionnement en réseau

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Les structures de données. Rajae El Ouazzani

Bernard HAMM, Évelyne LAVOISIER

Chapitre 2. Eléments pour comprendre un énoncé

CH.6 Propriétés des langages non contextuels

Cryptographie. Master de cryptographie Architectures PKI. 23 mars Université Rennes 1

Big Data et Graphes : Quelques pistes de recherche

Cours Fonctions de deux variables

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Chapitre 4 : Exclusion mutuelle

Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane

Peut-on tout programmer?

Systèmes et algorithmes répartis

Application 1- VBA : Test de comportements d'investissements

Alarme domestique- Présentation

Année Universitaire 2009/2010 Session 2 de Printemps

Conception d'un réseau de transport d'électricité

Université de La Rochelle. Réseaux TD n 6

Chapitre 1. Une porte doit être ouverte et fermée. 1.1 Les enjeux de l'informatique quantique

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Couples de variables aléatoires discrètes

Programmation Visual Basic. Visite guidée d'un programme Visual Basic 6.0

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

I. Introduction aux fonctions : les fonctions standards

Les processus légers : threads. Système L3, /31

Cryptographie et fonctions à sens unique

Chp. 4. Minimisation d une fonction d une variable

Chapitre 5 : Flot maximal dans un graphe

Université Paris-Dauphine DUMI2E 1ère année, Applications

Correction Code nécessaire à la compilation : let bs ="\\" let nl = "\n" ;; let appliquer = List.map ;; (* affichage d'un noeud *)

Transcription:

Algorithmique Distribuée Algorithmes de vagues Laurent PHILIPPE Master 2 Informatique Université de Franche-Comté UFR des Sciences et Techniques 2013 / 2014 Laurent PHILIPPE Algorithmes de vagues 1 / 50

Sommaire 1 Généralités 2 3 4 5 6 Laurent PHILIPPE Algorithmes de vagues 2 / 50

Les vagues Principe Un algorithme de vague sert à prendre une décision après avoir parcouru l'ensemble des processus Il s'applique (s'intègre) à un calcul distribué Généralités Cas d'utilisation possibles : Algorithmes de terminaison Diusion/Collecte d'information Démarrage de programmes distribués Algorithmes de synchronisation Souvent dépendants de la topologie du réseau. Laurent PHILIPPE Algorithmes de vagues 3 / 50

Les vagues Hypothèses La topologie réseau est : Fixe, aucun changement pendant le déroulement de l'algorithme Sans orientation, échanges duplexes Connectée, il y a un chemin entre chaque paires de processus Les échanges de messages sont asynchrones, ables Pas de données, ni d'horloge partagées Laurent PHILIPPE Algorithmes de vagues 4 / 50

Les vagues Hypothèses Le calcul distribué est noté C Le calcul est un ensemble d'évènements, partiellement ordonné par une relation de causalité Le nombre d'évènements du calcul C est C Les évènements du processus p sont notés C p Pour chaque processus, il existe un évènement interne appelé decide Laurent PHILIPPE Algorithmes de vagues 5 / 50

Les vagues Dénition Un algorithme de vagues échange un nombre ni de messages pour prendre une décision qui dépend causalement d'un évènement dans chaque processus. Propriétés Un algorithme de vague satisfait les trois propriétés suivantes : 1 Terminaison : chaque calcul est ni : C : C < 2 Décision : chaque calcul contient au moins un évènement decide : C : e C : e est un évènement de décision 3 Dépendance : dans chaque calcul chaque évènement decide est précédé par un évènement dans chaque processus : C : e C : (e est un évènement decide q P f C q : f e) Laurent PHILIPPE Algorithmes de vagues 6 / 50

Les vagues Dénitions Un calcul dans un algorithme de vagues est appelé une vague Une vague est donc un ot de contrôle qui passe par tous les sites d'un système distribué et qui a pour but de prendre une décision Une vague est lancée à l'initiative d'un initiateur α, elle est déclenchée par une condition (évènement local) et elle retourne à l'initiateur Les processus qui ne sont pas initiateurs sont appelés suiveurs, ils sont impliqués dans l'algorithme par la réception d'un message qui déclenche l'exécution de l'algorithme On appelle train de vagues une succession de vagues. Laurent PHILIPPE Algorithmes de vagues 7 / 50

Les vagues Propriétés des algorithmes Centralisé vs. Distribué : l'algorithme est démarré par exactement un initiateur ou par plusieurs. Topologie, déterminante pour la dénition de l'algorithme Données initiales : Identité du processus : chq processus connaît son nom unique Identité des voisins : chq processus connaît ses voisins Direction des liens : lorsque que les liens ne sont pas full-duplex ou lorsqu'une direction leur est attribuée dynamiquement Nombre des décisions, dans certains algorithmes le nombre de processus exécutant un évènement decide peut varier Complexité, en nombre de message, calcul, taille des données échangées Laurent PHILIPPE Algorithmes de vagues 8 / 50

Les vagues Primitives de vague Pour caractériser une vague, on dénit 4 primitives : lancer (pour α) ; retour (pour α) ; visite (pour i P et i α) ; faire_suivre (pour i P et i α) ; Propriétés On note x p i l'exécution de la p-ème vague sur le site i alors : p > 0, i α : lancer p α visite p i faire_suivre p i retour p α et p > 0 : retour p α lancer p+1 α Laurent PHILIPPE Algorithmes de vagues 9 / 50

Algorithme générique d'une vague Soit une vague avec v valeur initiale et v résultat après la vague Pour cα : début n répéter calcul locaux... v... lancer(v) retour(v ) jusqu'à une condition sur v visite(v) : pour ci avec i α début calcul locaux... n v... faire_suivre(v ) Laurent PHILIPPE Algorithmes de vagues 10 / 50

Sommaire 1 Généralités 2 3 4 5 6 Laurent PHILIPPE Algorithmes de vagues 11 / 50

Une vague sur un réseau complet Une clique est un réseau complet où un lien existe entre chaque paires de processus Algorithme simple : consultation (polling) L'initiateur demande à chaque voisin de répondre avec un message Il décide après la réception de tous les messages Laurent PHILIPPE Algorithmes de vagues 12 / 50

Une vague sur un réseau complet Exercice Écrire l'algorithme de polling Laurent PHILIPPE Algorithmes de vagues 13 / 50

Une vague sur un réseau complet Algorithme avec les 4 primitives var rec α : entier init 0 (* Seulement pour l'initiateur *) lancer(v) : pour c α début v... for q Neigh α do envoi jeton(v ) à q n while rec α < Neigh α do recevoir(jeton(v )) rec α = rec α + 1 decide(v ) visite(v) : pour c i avec i α début recevoir le jeton(v ) de α v... faire_suivre(v ) : envoyer le jeton(v ) à α n Laurent PHILIPPE Algorithmes de vagues 14 / 50

Sommaire 1 Généralités 2 3 4 5 6 Laurent PHILIPPE Algorithmes de vagues 15 / 50

Une vague sur un anneau Principe Anneau unidirectionnel : tous les sites i connaissent leur suivant succ i La visite des diérents sites se fait de manière séquentielle La vague est matérialisée par le passage d'un jeton (successeur) L'algorithme est centralisé Laurent PHILIPPE Algorithmes de vagues 16 / 50

Une vague sur un anneau Exercice Écrire l'algorithme de l'anneau Laurent PHILIPPE Algorithmes de vagues 17 / 50

Une vague sur un anneau Algorithme avec les 4 primitives lancer(v) : pour c α début v... envoyer le jeton(v ) à succ α n retour(v) : pour c α début recevoir le jeton(v ) decide(v ) n visite(v) : pour c i avec i α; début recevoir le jeton(v ) ; n faire_suivre(v ) :pour c i avec i α; début v... ; envoyer le jeton(v ) à succ i ; n Laurent PHILIPPE Algorithmes de vagues 18 / 50

Une vague sur un anneau Preuve que l'algorithme sur un anneau est un algorithme de vague Soit p 0 l'initiateur, chaque processus envoie au plus 1 message donc, au total, l'algorithme échange au plus N messages et le calcul est ni. Une conguration terminale est atteinte en un nombre ni d'étapes. Dans cette conguration : p 0 a déjà envoyé le jeton, il a dépassé l'instruction envoyer dans son programme. Aucun jeton n'est en transit sinon il pourrait être reçu et la conguration ne serait pas terminale Aucun processus ne possède le jeton sinon il n'aurait pas franchi l'instruction envoyer De ce fait p 0 a reçu le jeton et, puisque nous sommes en conguration terminale, il a exécuté l'instruction decide et la décision est vériée La réception et l'envoi du jeton pour les processus p p 0 précèdent la réception de p 0 donc la condition de dépendance est vériée. Laurent PHILIPPE Algorithmes de vagues 19 / 50

Sommaire 1 Généralités 2 3 4 5 6 Laurent PHILIPPE Algorithmes de vagues 20 / 50

Une vague sur un arbre Algorithme La racine de l'arbre est c α, Les messages circulent dans les deux sens, Un processus agrège les informations reçues à l'aide de la fonction V = agrege(v ), où V est l'ancienne valeur et V la nouvelle, Un processus remonte l'information vers son père si il a reçu tous les retours de tous ses ls, Exercice : écrire l'algorithme de vague pour les arbres dans le cas où l'initiateur est la racine et dans le cas où l'algorithme est initié par toutes les feuilles Laurent PHILIPPE Algorithmes de vagues 21 / 50

Une vague sur un arbre Algorithme initié par la racine lancer(v) : pour c α début v... x ls α : envoyer aller(v) à c x n retour(v ) : pour c α début x ls α recevoir(v ) de c x decide(v ) n visite(v) : pour c i avec i α début recevoir aller(v) de c perei x ls i : envoyer aller(v) à n c x faire_suivre(v ) : (pour i α) début x ls i recevoir valeur W de c x V = agregation(v, W ) envoyer retour(v ) à pere i n Note : la valeur V transmise en montée de l'arbre peut être changée par le processus. Laurent PHILIPPE Algorithmes de vagues 22 / 50

Une vague sur un arbre Algorithme d'arbre initié par (toutes) les feuilles : var req p [q], q Neigh p : booléen init faux (* req p [q] est vrai si p a reçu un message de q *) visite(v ) : début tant que (q : req p [q] = faux) > 1 faire reçoit < tok > de q ; rec p [q] = vrai n (* il n'y a plus qu'un q 0 avec req p [q 0 ] est faux *) envoie < tok > à q 0 tel que rec q [q 0 ] est faux reçoit < tok > de q 0 ; rec p [q 0 ] = vrai décide (* Retour de la décision aux autres processus *) pour q Neigh p, q q 0 faire envoie < tok > à q Laurent PHILIPPE Algorithmes de vagues 23 / 50

Une vague sur un arbre Exercice Dérouler l'algorithme des feuilles avec l'arbre suivant 1 2 8 3 4 5 9 10 6 7 11 Laurent PHILIPPE Algorithmes de vagues 24 / 50

Sommaire 1 Généralités 2 3 4 5 6 Laurent PHILIPPE Algorithmes de vagues 25 / 50

Algorithmes de vagues sur un réseau quelconque Principe Le réseau est un graphe Les processus sont connectés entre eux de manière quelconque Chaque processus connaît uniquement ses voisins Caractéristique Propriétés du réseau inuent sur les performances de l'algorithme Laurent PHILIPPE Algorithmes de vagues 26 / 50

Algorithme Echo Exercice L'algorithme est centralisé (lancé par un seul initiateur), L'initiateur diuse des messages < tok >, A la réception du premier message, le père du processus est déni, Chaque processus compte les messages reçus, Lorsqu'il a reçu autant de messages que de voisins, il renvoie le message < tok > à son père, Écrire l'algorithme, Laurent PHILIPPE Algorithmes de vagues 27 / 50

Algorithme Echo var rec p : entier init 0 (* Compte le nombre de messages reçus *) father p : P init udef Initiateur : début pour q Neigh p faire envoie < tok > à q n tant que rec p < Neigh p faire reçoit < tok > rec p = rec p + 1 decide() Non-initiateur : ; début reçoit < tok > de q ; father p = q; rec p = rec p + 1; n pour q Neigh p, q father p faire envoie < tok > à q tant que rec p < Neigh p faire reçoit < tok > de q ; rec p = rec p + 1; envoie < tok > à father p; Laurent PHILIPPE Algorithmes de vagues 28 / 50

Algorithmes de vagues sur un réseau quelconque Remarque Dénition implicite d'un arbre de recouvrement. Laurent PHILIPPE Algorithmes de vagues 29 / 50

L'algorithme Phase Généralités Algorithme décentralisé : un ou plusieurs initiateurs Sur un réseau quelconque, pour des liens unidirectionnels : les voisins de p sont répartis en deux ensembles : in-voisins de p : ceux qui peuvent envoyer un message à p out-voisins de p : ceux qui peuvent recevoir un message de p Nécessite pour les processus de connaître le diamètre du réseau D Mais l'algorithme fonctionne aussi avec une constante D > D à condition que tous les processus disposent de la même valeur, il est donc susant de connaître une borne supérieure Plus ecace si la valeur de D est exacte Laurent PHILIPPE Algorithmes de vagues 30 / 50

L'algorithme Phase Principe Chaque processus envoie exactement D messages à chaque out-voisin Le i + 1 ième message pour chaque out-voisin n'est envoyé qu'après avoir reçu i messages de chacun des in-voisins Nécessite pour les processus de connaître le diamètre du réseau D Mais l'algorithme fonctionne aussi avec une constante D > D à condition que tous les processus disposent de la même valeur, il est donc susant de connaître une borne supérieure Laurent PHILIPPE Algorithmes de vagues 31 / 50

Algorithme Phase cons D : entier (* le diamètre du réseau *) var rec p[q] : 0..D init 0 q In p (* Nombre de messages reçus de q *) env p : 0..D init 0 q Out p (* Nombre de messages envoyes de p *) In p et Out p (* Voisins de p *) début if p is initiateur then pour q Out p faire envoie < tok > à q env p = env p + 1 min q(rec p[q]) < D faire reçoit < tok > de q 0 rec p[q 0 ] = rec p[q 0 ] + 1 if (min q(rec p[q]) env p) (env p < D) then tant que for q Out p do envoie < tok > à q env p = env p + 1 n decide Laurent PHILIPPE Algorithmes de vagues 32 / 50

Algorithme Phase Exercice Dérouler l'algorithme Phase avec le graphe suivant 1 Laurent PHILIPPE Algorithmes de vagues 33 / 50

Sommaire 1 Généralités 2 3 4 5 6 Laurent PHILIPPE Algorithmes de vagues 34 / 50

Algorithmes de traversée Dénition Un algorithme de traversée est un algorithme vériant les propriétés suivantes : Il y a un seul initiateur qui lance une vague avec exactement 1 message Un processus qui reçoit un message, soit envoie un message soit décide L'algorithme termine chez l'initiateur Lorsque l'algorithme est terminé, chaque processus a au moins envoyé un message Laurent PHILIPPE Algorithmes de vagues 35 / 50

Algorithmes de traversée Propriétés Un algorithme de traversée est un algorithme vériant les propriétés suivantes : Dans une conguration atteignable d'un algorithme de traversée il y a : Soit un message en transit Soit un processus qui a reçu un message et qui n'en a encore pas envoyé En général le message est, encore, un jeton qui passe de processus en processus Laurent PHILIPPE Algorithmes de vagues 36 / 50

Algorithmes de traversée Dénition Parmi les algorithmes de traversée, la classe des algorithmes f -traversants est dénie par : à chaque vague au moins min(n, x + 1) processus ont été visités après f (x) passages de jeton. Par exemple l'algorithme sur l'anneau est un algorithme x-traversant car x + 1 processus ont traité le jeton après x étapes et tous les processus l'ont fait après N étapes. Laurent PHILIPPE Algorithmes de vagues 37 / 50

Algorithmes de traversée Traversée d'un réseau complet La traversée d'un réseau complet peut-être réalisée par une consultation séquentielle : Les messages sont envoyés un par un Le voisin suivant n'est consulté que lorsque le voisin courant a répondu au message Parcours des voisins un par un Laurent PHILIPPE Algorithmes de vagues 38 / 50

Algorithmes de traversée Théorème L'algorithme de consultation séquentielle est un algorithme 2x-traversant pour les réseaux complets Preuve : Quand l'algorithme termine chez l'initiateur, chaque processus a envoyé une réponse. Le (2x 1) ième message est la consultation de q x et le 2x ième message est sa réponse. Ainsi quand 2x messages ont été échangés les x + 1 processus p, q 1,..., q x ont été visités. Laurent PHILIPPE Algorithmes de vagues 39 / 50

Algorithmes de traversée Algorithme de Tarry de réseaux quelconques Basé sur un jeton Il est formulé à partir de deux règles : R1 : un processus ne transmet jamais le jeton deux fois sur le même lien R2 : un processus suiveur transmet le jeton à son père (le voisin dont il a reçu le jeton) seulement si il n'y a plus de lien permettant de respecter R1 Laurent PHILIPPE Algorithmes de vagues 40 / 50

Algorithme de Tarry var util p[q] : booléen init faux q Vois p (* Indique si le voisin a été visité *) pere p : processus init indef Pour l'initiateur, exécute début perep = p n choisir q Vois p util p[q] = vrai envoi( jeton ) à q A la réception du jeton en p depuis q 0 début if pere p = indef then pere p = q 0 if q Vois p : util p[q] then decide else if q Vois p : (q father p!util p[q]) then choisit q Vois p pere p/!util p[q] util p[q] = vrai envoi( jeton ) à q else util p[father p] = vrai envoi( jeton ) à pere p n Laurent PHILIPPE Algorithmes de vagues 41 / 50

Sommaire 1 Généralités 2 3 4 5 6 Laurent PHILIPPE Algorithmes de vagues 42 / 50

Propriété structurelle des vagues Lemme 1 Chaque évènement d'un calcul est précédé par un évènement dans un initiateur : e C, p, initiateur, et f C p : f e Preuve : On choisit f, un élément minimal de l'historique de e :f e et f : f f. Cet élément existe car l'historique est nie On en déduit que f est le premier élément de p, sinon f existerait. Or le premier évènement d'un suiveur est un évènement de réception qui doit être précédé par un évènement d'émission. Donc si p est un suiveur il existe un évènement avant f, ce qui contredit l'hypothèse p est un initiateur Laurent PHILIPPE Algorithmes de vagues 43 / 50

Arbre de recouvrement pour vague à 1 initiateur Lemme 2 Soit C une vague avec 1 initiateur p et, pour chaque suiveur q soit father q le voisin par lequel q reçoit le message du premier évènement. Alors le graphe T = (P, E T ) avec E T = {qr : q p r = father q } est une arbre de recouvrement dont la racine est p Preuve : Comme il y a un noeud de plus que d'arêtes dans E T, il sut de montrer que T ne possède pas de cycle. Ce qui est vérié car, pour e q premier évènement de q ; qr E T e r e q et est un ordre partiel. Laurent PHILIPPE Algorithmes de vagues 44 / 50

Un évènement envoi précède toute décision Lemme 3 Dans la clause Dépendance l'évènement f peut-être un évènement envoi pour tous les processus autres que celui où l'évènement decide à lieu : soit C une vague et d p C un évènement decide de p alors q p : f C p : f d p f est un évènement envoi Preuve : Comme C est une vague il existe un f C q : f d p. On choisit f le dernier évènement de C q qui précède d p. La dénition de la causalité implique qu'il existe une séquence f = e 0,..., e k = d p telle que i < k : e i et e i+1 sont soit des évènements consécutifs d'un même processus soit un couple envoi recoit. Comme f est le dernier évènement de q qui précède d p alors e 1 qui suit f se déroule dans un autre processus que q et donc f est un évènement envoi Laurent PHILIPPE Algorithmes de vagues 45 / 50

Borne inférieure sur la complexité des vagues Algorithmes à 1 initiateur Soit C une vague avec un initiateur p, tel qu'un évènement de décision d p se produit dans p. Alors C implique au moins N messages. Preuve : D'après le lemme 1 chaque évènement de C est précédé par un évènement dans p. En appliquant le même raisonnement que dans le lemme 3 il est facile de montrer qu'au moins un évènement envoi a lieu dans p. D'après le lemme 3 un évènement d'envoi a lieu dans chaque processus autre que p, donc le nombre de message minimum est au moins N Laurent PHILIPPE Algorithmes de vagues 46 / 50

Borne inférieure sur la complexité des vagues Algorithmes sur un réseau quelconque Soit A un algorithme de vague pour un réseau quelconque sans connaissance à priori de l'identité des voisins, alors A échange au moins E messages à chaque calcul. Preuve : Soit C une vague dans laquelle moins de E messages sont échangés. Il y a donc une arrête xy qui n'est pas parcourue. Soit le réseau E obtenu par l'insertion d'un processus z entre x et y. Comme les processus n'ont pas connaissance de l'identité de leurs voisins, alors l'état initial de x et y dans E est le même que dans E. Donc les évènements se déroulent de la même manière et l'évènement decide n'est pas précédé par un évènement dans z. Laurent PHILIPPE Algorithmes de vagues 47 / 50

Algorithmes de parcours Dénition Les algorithmes de parcours (traversal algorithms) forment une sous-classe des algorithmes de vagues où : Il n'y a qu'un seul initiateur, qui est le seul processus qui décide Tous les évènements sont totalement ordonnés par ordre de causalité Laurent PHILIPPE Algorithmes de vagues 48 / 50

Algorithmes PIF Dénition D'une manière générale les algorithmes de vagues sont ceux dont on a besoin pour diuser une information à tous les processus d'un réseau et où certains processus doivent recevoir une notication lorsque la diusion est terminée. Propagation of Information with Feedback (PIF) La notication de la n de diusion est considéré comme l'évènement decide Laurent PHILIPPE Algorithmes de vagues 49 / 50

Référence Gerard Tel. Introduction to distributed Algorithms, Cambridge Hall. Laurent PHILIPPE Algorithmes de vagues 50 / 50