Un algorithme distribué d énumération des noeuds d un réseau et application au calcul des distances entre 2 noeuds quelconques et du diamètre d un réseau LaBRI - Université de Bordeaux AlgoTel 2016 25 Mai 201
Plan Introduction 1 Introduction 2 4
Plan Introduction 1 Introduction 2 4
Le problème Introduction Etant donné un réseau : 1 attribuer un numéro de 1 à n (la taille du réseau) à chaque noeud, 2 utiliser cette énumération pour : calculer (tous) les plus courts chemins, calculer le diamètre du réseau, autres paramètres : la maille,...
Modèle Introduction Réseau de communication connexe modélisé par un graphe G = (V,E) : les noeuds communiquent par passage de messages, système synchrone : les noeuds commencent en même temps et opèrent par rondes synchrones anonymat : les noeuds n ont pas des identifiants différents, un noeud est dans un état Leader.
Modèle Introduction Complexité en temps : une ronde (pour un neoud) : 1. envoyer des messages à des voisins, 2. recevoir des messages des voisins,. réaliser un calcul local, complexité en temps : le nombre de rondes nécessaires pour que tous les noeuds terminent. Complexité en bits : dans chaque ronde, chaque noeud peut envoyer/recevoir un bit à/de chaque voisin, complexité en bits : le nombre de rondes nécessaires pour que tous les noeuds terminent.
Etat de l art Introduction Temps Taille des messages (nombre de bits) complexité en bits Almeida et al. O(D) O(n log n) O(Dn log n) Holzer and Wattenhofer (PODC 2012) O(n) O(log n) O(n log n) Peleg et al. O(n) O(log n) O(n log n) (ICALP12) Frischknecht et al. B Ω(n/B) (SODA 2012) Cet article O(n) O(1) O(n) Calcul du diamètre.
Plan Introduction 1 Introduction 2 4
Enumération distribuée DEA : un algorithme distribué qui attribue à chaque sommet du graphe un nombre unique dans {1,2,,n}, et tel que : la distance entre deux sommets ayant des numéros consécutifs est au plus, les messages échangés sont de taille O(1), la complexité en temps est en O(n). DEA opère en deux étapes : 1 calcul d un arbre couvrant BFS de G, dont la racine est le sommet Leader, 2 énumération des sommets de G selon une traversée spéciale (Algorithme Trav).
Enumération distribuée DEA : un algorithme distribué qui attribue à chaque sommet du graphe un nombre unique dans {1,2,,n}, et tel que : la distance entre deux sommets ayant des numéros consécutifs est au plus, les messages échangés sont de taille O(1), la complexité en temps est en O(n). DEA opère en deux étapes : 1 calcul d un arbre couvrant BFS de G, dont la racine est le sommet Leader, 2 énumération des sommets de G selon une traversée spéciale (Algorithme Trav).
Enumération distribuée DEA : un algorithme distribué qui attribue à chaque sommet du graphe un nombre unique dans {1,2,,n}, et tel que : la distance entre deux sommets ayant des numéros consécutifs est au plus, les messages échangés sont de taille O(1), la complexité en temps est en O(n). DEA opère en deux étapes : 1 calcul d un arbre couvrant BFS de G, dont la racine est le sommet Leader, 2 énumération des sommets de G selon une traversée spéciale (Algorithme Trav).
Enumération distribuée DEA : un algorithme distribué qui attribue à chaque sommet du graphe un nombre unique dans {1,2,,n}, et tel que : la distance entre deux sommets ayant des numéros consécutifs est au plus, les messages échangés sont de taille O(1), la complexité en temps est en O(n). DEA opère en deux étapes : 1 calcul d un arbre couvrant BFS de G, dont la racine est le sommet Leader, 2 énumération des sommets de G selon une traversée spéciale (Algorithme Trav).
Enumération distribuée DEA : un algorithme distribué qui attribue à chaque sommet du graphe un nombre unique dans {1,2,,n}, et tel que : la distance entre deux sommets ayant des numéros consécutifs est au plus, les messages échangés sont de taille O(1), la complexité en temps est en O(n). DEA opère en deux étapes : 1 calcul d un arbre couvrant BFS de G, dont la racine est le sommet Leader, 2 énumération des sommets de G selon une traversée spéciale (Algorithme Trav).
Enumération distribuée DEA : un algorithme distribué qui attribue à chaque sommet du graphe un nombre unique dans {1,2,,n}, et tel que : la distance entre deux sommets ayant des numéros consécutifs est au plus, les messages échangés sont de taille O(1), la complexité en temps est en O(n). DEA opère en deux étapes : 1 calcul d un arbre couvrant BFS de G, dont la racine est le sommet Leader, 2 énumération des sommets de G selon une traversée spéciale (Algorithme Trav).
Enumération distribuée DEA : un algorithme distribué qui attribue à chaque sommet du graphe un nombre unique dans {1,2,,n}, et tel que : la distance entre deux sommets ayant des numéros consécutifs est au plus, les messages échangés sont de taille O(1), la complexité en temps est en O(n). DEA opère en deux étapes : 1 calcul d un arbre couvrant BFS de G, dont la racine est le sommet Leader, 2 énumération des sommets de G selon une traversée spéciale (Algorithme Trav).
Enumération distribuée Algorithme Trav :
Enumération distribuée Algorithme Trav :
Enumération distribuée Algorithme Trav : 1
Enumération distribuée Algorithme Trav : 1 1
Enumération distribuée Algorithme Trav : 1 1 2
Enumération distribuée Algorithme Trav : 1 1 2
Enumération distribuée Algorithme Trav : 1 1 2 4
Enumération distribuée Algorithme Trav : 1 1 2 4 5
Enumération distribuée Algorithme Trav : 1 1 14 15 28 2 7 8 9 10 1 16 17 18 27 4 5 6 11 12 19 20 21 26 22 2 24 25
Enumération distribuée Algorithme Trav : Lemme. Pour tout sommet u, ν u est pair ssi u se trouve à un niveau pair et ν u est pair ssi u se trouve à un niveau impair. Corollaire. Pour tout sommet u, si ν u est pair (resp. impair) alors ν u est impair (resp. pair).
Enumération distribuée Algorithme Trav : 1 1 14 15 28 2 7 8 9 10 1 16 17 18 27 4 5 6 11 12 19 20 21 26 22 2 24 25
Enumération distribuée Algorithme Trav : 1 1 14 8 15 28 2 7 8 9 10 1 16 17 18 27 4 5 6 11 12 19 20 21 26 22 2 24 25
Enumération distribuée Algorithme Trav : 1 1 14 8 15 28 2 7 2 8 9 10 1 16 17 18 27 4 5 6 11 12 19 20 21 26 22 2 24 25
Enumération distribuée Algorithme Trav : 1 1 14 8 15 15 28 2 7 2 8 9 10 5 1 6 16 17 9 10 18 27 4 4 5 6 7 11 12 19 11 20 14 21 26 22 12 1 24 2 25
Enumération distribuée Algorithme Trav : 1 8 15 2 5 6 9 10 4 7 11 14 12 1
Enumération distribuée Lemme. Soit G un graphe connexe. La distance, dans G, entre deux sommets ayant des numéros consécutifs est d au plus. l algorithme est optimal : il n existe pas d énumération des noeuds telle que deux noeuds ayant des numéros consécutifs sont à distance au plus 2.
Application 1 : Calcul des plus courts chemins 1. Algorithme DistCal : Calcul des distance du leader aux autres sommets : t = 0
Application 1 : Calcul des plus courts chemins 1. Algorithme DistCal : Calcul des distance du leader aux autres sommets : t = 0 1 1
Application 1 : Calcul des plus courts chemins 1. Algorithme DistCal : Calcul des distance du leader aux autres sommets : t = 1 1; 2 1;2 2 = END 1 1 1 1 1
Application 1 : Calcul des plus courts chemins 1. Algorithme DistCal : Calcul des distance du leader aux autres sommets : t = 2 1; 2 1;2 2 = END 2 2 1;1 1;1 1;1 1;1 1;1 1 1 1 1 1
Application 1 : Calcul des plus courts chemins 1. Algorithme DistCal : Calcul des distance du leader aux autres sommets : t = 1; 2 1;2 2 = END 1;1;2 1;1;2 1;1;2 1;1;2 1;1;2 1;1 1;1 1;1 1;1 1;1 1 1
Application 1 : Calcul des plus courts chemins 1. Algorithme DistCal : Calcul des distance du leader aux autres sommets : t = 4 1; 2 1;2 2 = END 1;1;2 1;1;2 1;1;2 1;1;2 1;1;2 2 2 2 1;1;1 1;1;1 1;1;1 1;1;1 1;1;1 1;1 1;1
Application 1 : Calcul des plus courts chemins 1. Algorithme DistCal : Calcul des distance du leader aux autres sommets : t = 5 1; 2 1;2 2 = END = OK 1;1;2 1;1;2 1;1;2 1;1;2 1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1 1;1;1
Application 1 : Calcul des plus courts chemins 1. Algorithme DistCal : Calcul des distance du leader aux autres sommets : t = 6 1; 2 1;2 2 = END = OK 1;1;2 1;1;2 1;1;2 1;1;2 1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 2 1;1;1;1 1;1;1;1
Application 1 : Calcul des plus courts chemins 1. Algorithme DistCal : Calcul des distance du leader aux autres sommets : t = 7 1; 2 1;2 2 = END = OK 1;1;2 1;1;2 1;1;2 1;1;2 1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;1;2 1;1;1;1;2
Application 1 : Calcul des plus courts chemins 1. Algorithme DistCal : Calcul des distance du leader aux autres sommets : t = 8 1; 2 1;2 2 = END = OK 1;1;2 1;1;2 1;1;2 1;1;2 1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;1;2 1;1;1;1;2
Application 1 : Calcul des plus courts chemins 1. Algorithme DistCal : Calcul des distance du leader aux autres sommets : t = 9 1; 2 1;2 2 = END = OK 1;1;2 1;1;2 1;1;2 1;1;2 1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;1;2 1;1;1;1;2
Application 1 : Calcul des plus courts chemins 1. Algorithme DistCal : Calcul des distance du leader aux autres sommets : t = 10 1; 2 1;2 2 = END = OK 1;1;2 1;1;2 1;1;2 1;1;2 1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;1;2 1;1;1;1;2
Application 1 : Calcul des plus courts chemins 1. Algorithme DistCal : Calcul des distance du leader aux autres sommets : t = 11 1; 2 1;2 2 = END = OK 1;1;2 1;1;2 1;1;2 1;1;2 1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;2 1;1;1;1;2 1;1;1;1;2
Application 1 : Calcul des plus courts chemins 1. Algorithme DistCal : Calcul des distance du leader aux autres sommets : t = 11 1 1 1;1 1;1 1;1 1;1 1;1 1;1;1 1;1;1 1;1;1 1;1;1 1;1;1 1;1;1;1 1;1;1;1
Application 1 : Calcul des plus courts chemins 1. Algorithme DistCal : Calcul des distance du leader aux autres sommets : t = 11 1 1 2 2 2 2 2 4 4
Application 1 : Calcul des plus courts chemins Lemme. DistCal permet à chaque sommet de connaître sa distance au Leader. Sa complexité en temps et sa complexité en bits sont O(n).
Application 1 : Calcul des plus courts chemins 2. APSP : Calcul des plus courts chemins : 1 8 15 2 5 6 9 10 4 7 11 14 12 1
Application 1 : Calcul des plus courts chemins 2. APSP : Calcul des plus courts chemins : 0 t(v) = t(1) + 5(k 1) 5 70 5 20 25 40 45 10 15 0 50 65 55 60
Application 1 : Calcul des plus courts chemins 2. APSP : Calcul des plus courts chemins : 0 t = 0 5 70 5 20 25 40 45 10 15 0 50 65 55 60
Application 1 : Calcul des plus courts chemins 2. APSP : Calcul des plus courts chemins : 0 t = 1 5 70 5 20 25 40 45 10 15 0 50 65 55 60
Application 1 : Calcul des plus courts chemins 2. APSP : Calcul des plus courts chemins : 0 t = 1 5 70 5 20 25 40 45 10 15 0 50 65 55 60
Application 1 : Calcul des plus courts chemins 2. APSP : Calcul des plus courts chemins : 0 t = 2 5 70 5 20 25 40 45 10 15 0 50 65 55 60
Application 1 : Calcul des plus courts chemins 2. APSP : Calcul des plus courts chemins : 0 t = 5 70 5 20 25 40 45 10 15 0 50 65 55 60
Application 1 : Calcul des plus courts chemins 2. APSP : Calcul des plus courts chemins : 0 t = 4 5 70 5 20 25 40 45 10 15 0 50 65 55 60
Application 1 : Calcul des plus courts chemins 2. APSP : Calcul des plus courts chemins : 0 t = 5 5 70 5 20 25 40 45 10 15 0 50 65 55 60
Application 1 : Calcul des plus courts chemins 2. APSP : Calcul des plus courts chemins : 0 t = 6 5 70 5 20 25 40 45 10 15 0 50 65 55 60
Application 1 : Calcul des plus courts chemins Propriété. Si v initialise une vague alors tout sommet w à distance d de v la reçoit à l instant d et (éventuellement) à l instant d +1. Lemme. Les vagues commencées par deux sommets consécutifs n entrent jamais en collision.
Application 1 : Calcul des plus courts chemins 2. APSP : Calcul des plus courts chemins : 1 2
Application 1 : Calcul des plus courts chemins 2. APSP : Calcul des plus courts chemins : 1 d(v, i) = Ti t1 5(i 1) d(v, 1) = 0 5(1 1) = d(v, 2) = 6 0 5(2 1) = 1 2
Application 1 : Calcul des plus courts chemins Théorème Soit G un graphe de taille n avec un sommet distingué. Il existe un algorithme distribué synchrone calculant les plus cours chemins en O(n) rondes et ayant une complexité en bits égale à O(n).
Application 2 : Calcul du diamètre Principe : 1 chaque sommet calcule le maximum des distances (des sommets) de ses sous arbres au Leader; et l envoie à son père; 2 Le Leader centralise le calcul; Le Leader envoie le maximum à tous les sommets de l arbre.
Application 2 : Calcul du diamètre Théorème. Soit G un graphe de taille n avec un sommet distingué. Il existe un algorithme distribué synchrone permettant de calculer le diamètre D de G en O(n) rondes avec une complexité en bits égale à O(n). Chaque sommet connaît la valeur de D à la fin de l algorithme.
Plan Introduction 1 Introduction 2 4
Introduction La même énumération peut être utilisée pour : calculer la maille du graphe, déterminer les isthmes, déterminer les points d articulation.
Plan Introduction 1 Introduction 2 4
Bibliographie Introduction 1 Y. Métivier, J. M. Robson and A. Zemmari. A distributed enumeration algorithm and applications to all pairs shortest paths, diameter... Inf. Comput. 247: 141-151 (2016) 2 P. S. Almeida, C. Baquero, and A. Cunha. Fast distributed computation of distances in networks. CoRR, abs/1111.6087, 2011. D. Peleg, L. Roditty, and E. Tal. Distributed algorithms for network diameter and girth. In ICALP (2), pages 660-672, 2012. 4 S. Holzer and R. Wattenhofer. Optimal distributed all pairs shortest paths and applications. In PODC, pages 55-64, 2012. 5 S. Frischknecht, S. Holzer and R. Wattenhofer. Networks cannot compute their diameter in sublinear time. In SODA 2012, pages 1150-1162, 2012.
MERCI