Rencontres Francophones pour les Aspects Algorithmiques des Té lécommunications

Dimension: px
Commencer à balayer dès la page:

Download "Rencontres Francophones pour les Aspects Algorithmiques des Té lécommunications"

Transcription

1 Rencontres Francophones pour les Aspects Algorithmiques des Té lécommunications mai 2013 France

2 Table des matières Tolérer les fautes Byzantines dans les graphes planaires, A. Maurer [et al.]...1 Large scale analysis of HTTP Adaptive Streaming over the Mobile Networks, A. Gouta [et al.]... 5 Algorithme autostabilisant avec convergence sûre construisant une (f,g)-alliance, S. Devismes [et al.] 9 Dynamic clustering of evolving networks: Some results on the line, C. Fernandes [et al.] Fast Near-Optimal Algorithm for Delivering Multiple Live Video Channels in CDNs, J. Liu [et al.]..20 Routage multi-flots e?conome en e?nergie dans les re?seaux de capteurs et actionneurs, N. Gouvy [et al.]...24 FixMe : détection répartie de défaillances isolées, E. Anceaume [et al.]...28 Routage sécurisé et résilient pour réseaux de capteurs sans fils, K. Altisen [et al.]...32 Algorithme exact et approché pour le calcul de l'hyperbolicité d'un graphe, N. Cohen [et al.]...36 Optimisation de la qualité de service par l'utilisation de mémoire cache, R. Leone...40 Une approche à base de similarité pour la détection de communautés egocentrées, M. Danisch [et al.]. 44 Verification formelle et robots mobiles, L. Millet [et al.] Spéculation et auto-stabilisation, S. Dubois [et al.] Diverse Routing with Star SRLGs, J. Bermond [et al.] De la difficulté de garder ses amis (quand on a des ennemis)!, A. Chaintreau [et al.] Explorer une grille avec un minimum de robots amnésiques, F. Petit [et al.]...64 Acheminement de messages instantanément stabilisant pour arbres couvrants, F. Petit [et al.]...68 Link Quality Metrics in Large Scale Indoor Wireless Sensor Networks, A. Bildea [et al.]...72 Consensus pair-à-pair asynchrone dans les variétés, A. Bellachehab [et al.]...76 Transport point à multipoint dans des réseaux sans fil multi-bandes, H. Khalife [et al.] Fractional Combinatorial Games on Graphs, R. Pardo soares...84 Accélération matérielle pour le traitement de trafic sur FPGA, T. Groléat [et al.] Algorithme distribué de routage compact en temps optimal, C. Glacet [et al.]...92 Topology versus Link Strength for Information Dissemination in Networks, L. Severini [et al.] Collusions entre fournisseurs de services et de contenus dans les réseaux, A. Reiffers [et al.] Diffusion probabiliste dans les réseaux dynamique, A. Clementi [et al.] Contenu généré par les utilisateurs : une étude sur DailyMotion, Y. Carlinet [et al.] Réduction de la consommation d'énergie des réseaux cellulaires hétérogènes, A. Ouni [et al.] Fast Collaborative Online Graph Exploration, D. Dereniowski [et al.] Exploration des graphes dynamiques T-intervalle-connexes : le cas de l'anneau, D. Ilcinkas [et al.]. 120 Supra-extensibilité des réseaux P2P, F. Baccelli [et al.] Sur la complexité du routage OSPF, F. Giroire [et al.] I

3 Tolérer les fautes Byzantines dans les graphes planaires Alexandre Maurer 1,2 et Sébastien Tixeuil 1,2,3 1 Laboratoire d Informatique de Paris 6 (LIP6) 2 Laboratory of Information, Network and Communication Sciences (LINCS) 3 Institut Universitaire de France (IUF) On s intéresse au problème de la diffusion d information dans un réseau sujet à des fautes Byzantines : certains nœuds peuvent avoir un comportement malveillant arbitraire. On considère ici les solutions entièrement décentralisées. Une solution récente garantit une diffusion fiable sur une topologie de tore lorsque D > 4, D étant la distance minimale entre deux nœuds Byzantins. Dans ce papier, nous généralisons ce résultat aux graphes planaires 4-connexes. On montre que la diffusion peut être rendue fiable lorsque D > Z, Z étant le nombre maximal d arêtes par polygone. On montre également que cette borne ne peut être améliorée sur cette classe de graphes. Notre solution a la même complexité en temps qu une diffusion simple. Par ailleurs, c est la première solution où la mémoire requise augmente linéairement avec la taille des informations, et non plus exponentiellement. Keywords: Tolérance aux fautes Byzantines, protocole de diffusion, réseaux multi-sauts, réseaux asynchrones 1 Introduction Motivations Dans un monde où les réseaux deviennent de plus en plus grands, des erreurs locales de fonctionnement sont inévitables. Ces erreurs peuvent avoir des origines diverses : bug informatique, débordement de file, attaque extérieure... Afin d englober toutes les erreurs possibles, on considère ici le modèle le plus général : le modèle Byzantin [LSP82], où les nœuds fautifs ont un comportement totalement arbitraire. Autrement dit, tolérer les fautes Byzantines implique de garantir qu il n existe aucune stratégie, aussi improbable soit-elle, leur permettant de déstabiliser le réseau. On s intéresse ici au problème de la diffusion : un nœud (la source) souhaite communiquer une information à l ensemble du réseau. Notre but est de garantir que les nœuds corrects recevront toujours la bonne information, sans jamais être abusés par les nœuds Byzantins. Solutions existantes Une solution classique est d utiliser de la cryptographie asymétrique à base de clés publiques et privées [DH76]. Toutefois, outre une certaine puissance de calcul, cela requiert une infrastructure centralisée initialement fiable afin de distribuer les clés. Nous nous intéressons ici aux solutions totalement décentralisées. Plusieurs solutions [Koo04, BV05, NT09] nécessitent un grand nombre de voisins par nœud, et ne peuvent tolérer plus d une faute Byzantine sur des topologies faiblement connectées telles que le tore (voir Figure 2). D autres solutions tolèrent un grand nombre de fautes sur une grille [MT12a, MT13], mais offrent seulement des garanties probabilistes. Une solution récente [MT12b] garantit une diffusion fiable sur un tore lorsque D > 4, D étant la distance minimale entre deux nœuds Byzantins. Notre contribution Dans ce papier, nous généralisons le résultat [MT12b] aux graphes planaires 4- connexes (voir Figure 2). On montre que notre solution de diffusion est fiable lorsque D > Z, Z étant le nombre maximal d arêtes par polygone. On montre également qu aucun algorithme ne peut améliorer cette borne pour cette classe de graphes. Par ailleurs, on montre que si le délai entre deux activations successives 1/131

4 Alexandre Maurer et Sébastien Tixeuil est borné, la diffusion s effectue en un temps O(d), d étant le diamètre du réseau. Enfin, on montre que la solution présentée dans ce papier requiert beaucoup moins de mémoire que les précédentes. Organisation du papier Dans la Section 2, nous présentons les hypothèses et décrivons le protocole exécuté par les nœuds corrects. Dans la Section 3, nous prouvons les propriétés annoncées. Enfin, dans la Section 4, nous montrons une amélioration en terme de mémoire requise. Nous ne donnons ici qu une esquisse des preuves, mais les versions complètes sont dans le rapport technique disponible à l adresse : FIGURE 1: Tore (droite) et graphe planaire 4-connexe (gauche) 2 Hypothèses et protocole Hypothèses On considère que le graphe du réseau est planaire, c est-à-dire qu il admet une représentation dans le plan où les arêtes ne se croisent pas. Les arêtes délimitent des polygones (voir Figure 2). Le graphe est 4-connexe : pour déconnecter le graphe, au moins 4 nœuds doivent être enlevés. Soit Z 3 le nombre maximal d arêtes par polygone, et Y 4 le nombre maximal d arêtes par nœud. Certains nœuds sont Byzantins et peuvent avoir un comportement arbitraire. Les autres sont corrects et suivent le protocole décrit ci-après. On considère un réseau asynchrone : tout message envoyé finira par être reçu, mais cela peut se faire dans n importe quel ordre. Chaque nœud a un identifiant unique, et les canaux sont authentifiés : lorsqu un nœud reçoit un message d un voisin, il connait l identité de ce voisin. Principe du protocole Le protocole est sensiblement le même que dans [MT12b]. Le principe est que, pour accepter une information, un nœud doit la recevoir d un voisin direct, mais aussi d un autre nœud situé à au plus Z 2 sauts. L idée sous-jacente est que si D > Z, les nœuds Byzantins ne pourront jamais coopérer pour faire accepter une fausse information à un nœud correct. Les messages échangés par le protocole sont de la forme (m, S), m étant l information prétendument diffusée par la source, et S l ensemble des nœuds ayant retransmis cette information. Un nœud correct possède, pour chaque voisin q, une variable Rec(q) pour stocker le dernier message envoyé par q. Description du protocole 1. La source envoie une information m 0 à ses voisins. 2. Les voisins corrects de la source acceptent m 0 et envoient (m 0,ø) à leurs propres voisins. 3. Les autres nœuds corrects ont le comportement suivant : Lorsque (m,s) est reçu d un voisin q / S, avec card(s) Z 3 : stocker (m,s) dans Rec(q) et envoyer (m,s {q}) aux voisins. Lorsqu il existe m, p, q et S tels que q p, q / S, Rec(q) = (m,ø) et Rec(p) = (m,s) : accepter m, envoyer (m,ø) aux voisins et s arrêter. 2/131

5 Tolérer les fautes Byzantines dans les graphes planaires 3 Propriétés Théorème 1 Si D > Z, tous les nœuds corrects reçoivent et acceptent l information diffusée par la source, et uniquement cette information. Esquisse de la preuve On montre d abord, comme évoqué plus haut, que l hypothèse D > Z empêche les nœuds Byzantins de collaborer pour faire accepter une fausse information à un nœud correct. Par conséquent, si un nœud accepte une information, ce sera nécessairement la bonne. Reste à montrer que tout nœud correct reçoit effectivement cette information. On introduit pour cela la notion de chemin polygonal. Un chemin polygonal est une série de polygones connectés par une arête, tels que tous les nœuds de ces polygones soient corrects. On montre tout d abord qu avec l hypothèse D > Z, il existe toujours un chemin polygonal connectant un nœud correct donné à la source. On montre ensuite par récursion que la bonne information se diffuse au moins le long de ce chemin polygonal, sinon par un chemin polygonal plus court. Théorème 2 Si on a seulement D Z, aucun protocole ne peut garantir une diffusion correcte pour la classe des graphes planaires 4-connexes. Esquisse de la preuve Considérons le réseau suivant : FIGURE 2: Cas critique pour D Z Dans ce réseau, on a D = Z = 4, donc a bien D Z. Quatre nœuds isolent la partie grise du reste du réseau : deux sont corrects, et deux sont Byzantins. Comme il y a une parfaite symétrie entre ces deux paires de nœuds, les nœuds extérieurs ne pourront jamais déterminer la bonne information avec certitude. Par conséquent, la borne sur D ne peut être améliorée. Théorème 3 Si le délai entre deux activations d un même nœud est borné, alors la diffusion s effectue en un temps linéaire O(d), d étant le diamètre du réseau. Esquisse de la preuve Soit T une borne supérieure du délai entre deux activations. Soit p un nœud situé à L 1 sauts de la source. En reprenant la preuve du Théorème 1, on montre qu il existe un chemin polygonal de Y 3 ZL polygones corrects connectant p à la source. On montre ensuite que tous les nœuds d un polygone correct acceptent la bonne information en un temps Z 2 T. On montre finalement par récursion que p accepte l information en un temps Y 3 Z 3 T L. Comme L d, et comme Y, Z et T sont bornés, la diffusion s effectue en un temps linéaire O(d). La complexité en temps est donc la même qu un protocole de diffusion basique, où toute information reçue est immédiatement retransmise. 3/131

6 4 Mémoire requise Alexandre Maurer et Sébastien Tixeuil Pour finir, montrons une amélioration de notre protocole en terme de mémoire requise. Dans les solutions existantes [Koo04, BV05, NT09, MT12a, MT12b, MT13], les nœuds peuvent stocker autant d informations m que nécessaire. Ainsi, comme les nœuds Byzantins peuvent potentiellement diffuser toutes les fausses informations possibles, il faut prevoir O(2 M ) bits de mémoire par nœud, M étant le nombre de bits maximal d une information m. Dans notre protocole, nous avons fait la modification suivante : au lieu de stocker tous les messages reçus, nous stockons uniquement le dernier message reçu de la part d un voisin q dans la variable Rec(q). Ainsi, les noeuds requièrent une mémoire de seulement O(M) bits. Quand à la mémoire requise dans les canaux, elle est également de O(M) bits, pour peu que le délai d activation des nœuds corrects soit compris dans un intervalle [T 1,T 2 ], T 1 > 0. Les canaux liés à des nœuds Byzantins peuvent être débordés sans conséquence, leurs messages étant déjà arbitraires. La mémoire locale requise augmente donc linéairement avec M, et non plus exponentiellement. 5 Conclusion Dans ce papier, nous avons généralisé la condition sur la distance entre les nœuds Byzantins à une classe de graphes planaires, et montré son optimalité. Notre solution a la même complexité en temps qu une diffusion simple, et permet d importantes économies en terme de mémoire locale utilisée. Un problème ouvert est d étendre cette condition à des graphes plus généraux. Par ailleurs, bien que l on ait déjà une complexité en temps linéaire, des optimisations sont envisagées pour réduire le temps de réception. Références [BV05] [DH76] [Koo04] [LSP82] Vartika Bhandari and Nitin H. Vaidya. On reliable broadcast in a radio network. In Marcos Kawazoe Aguilera and James Aspnes, editors, PODC, pages ACM, W. Diffe and ME. Hellman. New directions in cryptography. IEEE Transactions on Information Theory, Chiu-Yuen Koo. Broadcast in radio networks tolerating byzantine adversarial behavior. In Soma Chaudhuri and Shay Kutten, editors, PODC, pages ACM, Leslie Lamport, Robert E. Shostak, and Marshall C. Pease. The byzantine generals problem. ACM Trans. Program. Lang. Syst., 4(3) : , [MT12a] Alexandre Maurer and Sébastien Tixeuil. Limiting byzantine influence in multihop asynchronous networks. IEEE International Conference on Distributed Computing Systems (ICDCS 2012), [MT12b] Alexandre Maurer and Sébastien Tixeuil. On byzantine broadcast in loosely connected networks. International Symposium on Distributed Computing (DISC 2012), [MT13] [NT09] Alexandre Maurer and Sébastien Tixeuil. A scalable byzantine grid. International Conference on Distributed Computing and Networking (ICDCN 2013), Mikhail Nesterenko and Sébastien Tixeuil. Discovering network topology in the presence of byzantine nodes. IEEE Transactions on Parallel and Distributed Systems (TPDS), 20(12) : , December /131

7 Large scale analysis of HTTP Adaptive Streaming over the Mobile Networks Nathalie Amann, 2 Ali Gouta, 1,2 Dohy Hong, 3 Anne-Marie Kermarrec, 1 and Yannick Le Louedec 2 1 Inria Rennes-Bretagne Atlantique, Rennes/ 2 Orange Labs, Lannion/ 3 N2Nsoft, Paris HTTP Adaptive Streaming technology (HAS) is getting widely adopted by Content Providers, Content Delivery Network service providers (CDN) and Telecom Operators (Telcos). In HAS, video contents are segmented into chunks which sizes usually range between 2 and 10 seconds worth of audiovisual content. These chunks are then delivered upon user requests. This specific delivery scheme controlled by the client and the increasing number of HTTP requests raise new challenges in terms of content caching strategies. In this paper, we analyze the users behavior when requesting HAS-based content by considering a real HAS dataset collected in France over the Mobile Networks of a major French Telecom Operator. These observations led us to propose several possibilities to enhance the content caching strategies in such mobile networks. Keywords: Adaptive streaming, catch-up, live, dataset, caching 1 Introduction The proliferation of mobile smart phones is significantly changing the mobile communication landscape. Smart phones are now commonly used by users to watch TV programs either in live or on-demand. In this paper, we conduct an in-depth analysis of the mobile clients behavior when requesting HAS content, using a real HAS dataset collected in France over the Mobile Networks of a major French Telecom Operator. Based on the patterns observed in this analysis, we investigate through simulations the opportunity to enhance the caching strategies for HAS-based contents. 2 Data set We have deployed 5 network probes on the Gi interfaces of the 5 GGSNs deployed by the Mobile Operator. We captured a total of 8,131,747 HTTP adaptive streaming sessions from 485,544 unique active clients, over 3G/HSPA/HSPA+ and 2G (EDGE) radio access networks during the measurement period. The Data collection was conducted over a period of 6 weeks and one day, from February 28th to April 10th, These HAS sessions were mainly Apple HTTP Live Streaming (HLS) sessions and Microsoft smooth streaming (HSS) sessions. The probe system identifies an HAS session by the first HTTP-GET request on the first chunk for which the URL address ends either with a.ts for a HLS stream, or with a.ism for a HSS stream. Each HAS session corresponds to the set of chunks sent to the same client over a period of time. The probe system captures all headers containing useful information from the packets carrying these chunks, such as the packet size and the sequence number. All information is aggregated per TCP connection and exported into a database, from where it is analysed. Each TCP connection corresponds to one chunk. This means that the number of requested chunks during one HAS session is equal to the number of persistent TCP connections established between the server and the client over a period of time. In the remainder of the paper we focus on the Apple HLS sessions, as they represent more than 99% 5/131

8 Nathalie Amann, Ali Gouta, Dohy Hong, Anne-Marie Kermarrec, and Yannick Le Louedec of the HAS sessions in the collected dataset. They correspond mainly to Live sessions : where clients watch a live TV program, and Catch-up TV sessions : where clients watch on-demand videos previously broadcasted in live. 3 HAS traffic analysis We analyze in Figure 1(a) the access frequency measured at a granularity of one hour of the top-0.6%, top-1%, top-5%, top-17% and top-100% most requested catch-up TV videos over the whole period of data collection. For instance, in order to compute the access frequency of the top-5% most requested catch-up TV videos at day 7 we concentrate on the 5% catch-up TV videos which were most requested over the whole period of data collection ; the access frequency is then the sum of the total number of requests observed for each of these videos at day 7 following the time of the first user request for these considered videos. We observe that the popularity of these catch-up TV videos is age-sensitive : the clients requests fade significantly as time goes on. The number of requests for such contents decreases with a ratio of 1/8 just 2 days after they were made available to the mobile audience. It further decreases with a ratio of 1/10 the seventh day and 1/40 the eight day. This drastic popularity decrease between day 7 and day 8 is partly due to the fact that some content providers purge all 7-day old catch-up TV videos from their catalogue. Another reason is that viewers are not likely to watch the same video multiple times as they do for mutable web objects. This Fetch-at-most-once like behavior was initially introduced by Gummadi et al. [SOS03] while trying to understand the file popularity paradigm in P2P downloads. Throughout our dataset, we were able to validate this assumption for catch-up TV contents and we found out that in average 82-percentile of the clients do request at most once a given catch-up TV video, while around 97-percentile of the clients do request the same content at most 3 times. access frequency (granularity 1 hour) Top-100% catch-up TV Top-17% most popular catch-up TV Top-5% most popular catch-up TV Top-1% most popular catch-up TV Top-0.6% most popular catch-up TV P(X<N) catch-up TV live Lognormal_catch-up TV Lognormal_live CDF Live catch-up TV Days (a) Nb chunks per session N chunks per session (b) CDF of number of chunks per session for Live and VoD HAS sessions N chunks per session (c) Nb chunks per session Figure 1: Chunk properties Figure 1(b) represents the Cumulative Distribution Function (CDF) of the number of requested chunks per HAS session, for both live TV and catch-up TV videos. Using the Maximum Likelihood Estimation (MLE) we determined that log-normal distribution laws are best matching the respective CDFs of the live TV and catch-up TV video sessions. Then we applied the Kolmogorov Serminov goodness-of-fit (KS) test to assess the accuracy of the estimated parameters of these lognormal laws. The KS test is well adapted here given the high number of samples of catch-up TV sessions and Live sessions within the dataset. The estimated parameters of the log-normal laws and the results of the KS test are provided in Table 1, showing a confidence level of up to 95%. We also note on Figure 1(b) that the CDFs diverge from the log-normal laws when the HAS sessions exceed 6/131

9 Large scale analysis of HTTP Adaptive Streaming over the Mobile Networks σ µ test statistic p value Lognormal live Lognormal catch-up TV Table 1: estimated parameters of the KS-test 1000 chunks. A minority of clients keeps on requesting chunks over a much longer period than the others, and some of them until the end of the video. In the case where the chunks are delivered by edge servers - belonging for example to a CDN or a set of transparent caching servers - such a tailed profile could degrade the caching efficiency of these edge servers. This degradation would be even amplified as the cache size of these edge servers is limited and their caching replacement algorithm is highly reactive to the end user requests. For instance, if an edge server is configured with the LRU caching algorithm (Least Recently Used), any request for a chunk located at the end of a video will make this server cache this chunk and set it at the top of its LRU ranking. Then, even if there is no further request for that chunk, it will remain for a while in the cache until being purged, possibly at the expense of other more frequently requested chunks. It is therefore worth to investigate the interest of adapting caching algorithms so that they do not cache as a priority the last and very infrequently requested chunks from the HAS videos. Figure 1(b) shows also that 90% of live and catch-up video sessions do not exceed 100 chunks, which corresponds in the case of Apple HTTP Live to 16 minutes worth of video content (each chunk having 10 seconds of video content). Authors in [SIG06] analyzed sessions duration collected from PowerInfo VoD system and found out that 52.55% of the sessions do not exceed 10 minutes. In contrast, we find that for the same duration 80% of the HAS sessions are composed of 60 chunks. This may be explained by the fact that the PowerInfo VoD system is used to deliver a highest diversity of content types, including short videos and premium movies, while in our case, the dataset corresponds to TV contents offered by the telecom operator for free. At last, the range where the CDFs of the live and catch-up TV HAS sessions differ most is on the first 25 chunks of the sessions. We zoom on this range in Figure 1(c). Clearly, the proportion of Live sessions within the range of 1 to 8 chunks per session is much higher than the proportion of Live sessions lasting from 9 to 25 chunks per session. This may be explained by the fact that the users start by spending some time in discovering or recognizing the program broadcasted in live. After this discovery phase, if they do not like the program, they rather give up or switch to another live program. We also found that for this considered range, the CDF of the catch-up sessions is below the CDF of Live sessions. This indicates that users spend more time watching catch-up TV video contents than watching live programs. 4 Caching chunk-based contents We now investigate the opportunity to enhance the caching efficiency of the edge servers involved in the delivery of the chunks by extending their cache replacement algorithm with a chunk-position threshold beyond which these edge servers would not cache any chunk. The evaluation relies on a trace-driven simulation which is based on a seven-day trace from the collected HAS dataset, constituted of 29,921,935 HTTP client requests. The trace file contains information about the timestamp of each new session, the video identifier, and the number of chunks requested by the clients in each session. We simulate the scenario where all HAS traffic gets forwarded via a proxycache deployed just above the 5 GGSNs. For sake of simplicity the simulation relies on the following assumptions : The videos are encoded at 500kbps and all chunks are 10 seconds worth of video content. We only consider the Catch-up TV sessions and we use LRU as a cache replacement algorithm. Figure 2 represents the average hit-ratio and average update-ratio for different values of the cache capicity (C) and the value of the threshold (c th ). The cache hit-ratio represents the ratio of requests succefully handled by the cache and the cache update-ratio represents the ratio of requests causing a cache miss and thus additional network trafic to update the cached objects. 7/131

10 Nathalie Amann, Ali Gouta, Dohy Hong, Anne-Marie Kermarrec, and Yannick Le Louedec hit-ratio C = 5Gb C = 50Gb C = 500Gb C = 10 3 Gb c i update-ratio C = 5Gb C = 50Gb C = 500Gb C = 1000Gb c i (a) Cache Hit-ratio with respect to c i (b) Cache Update-ratio with respect to c i hit-ratio per chunk c th =1 th = c th = th =100 th =150 c 0.2 th =200 c th =inf chunk i Figure 2: Hit-ratio and update hit-ratio per chunk c th =1 th = c th = th =100 th =150 c 0.2 th =200 c th =inf chunk i hit-ratio per chunk 0.6 c 0.5 th =1 th = c th =60 th = th =150 c 0.2 th =200 c th =inf chunk i (a) size = 50 Gb (b) size = 500 Gb (c) size = 1000 Gb Figure 3: Hit-ratio per chunk position Figure 2(a) shows that for small cache sizes (C < 50Gb) setting C th to 100 leads to approximately the same average cache hit ratio as if there were no chunk-position threshold (i.e.c th = ), while Figure 2(b) shows that this allows to save up to 50% on cache-update ratio. For larger cache sizes (C > 50Gb), setting C th to 200 leads to approximately the same cache hit ratio as if there were no chunk-position threshold (i.e.c th = ), while this allows to gain 20% on the cache update-ratio. This can contribute to reduce significantly the cache replacement processing time, especially in large caches where the object lookup time is critical. Figure 3 depicts the average cache hit-ratio for each position of the chunks in the temporal sequence of the videos they belong to (i.e. the average cache hit-ratio for each chunk i during the whole simulation). We call this the cache hit ratio per chunk position, and we note c i the position of the i st chunk from the content in the dataset. We note that setting a chunk threshold (c th ) improves the cache hit ratio per chunk position for all chunks which positions c i are below this chunk threshold (c i < c th ). The gain on the cache hit ratio per chunk position may reach up to 20% if the chunk threshold (c th ) is set low (e.g.c th = 10). When setting the threshold to up to 60 chunks per session (80% of the catch-up TV sessions) we may improve up to 5% the average cache hit-ratio for all chunk i earlier than c th = 60. Conclusion : This paper presents the analysis of a large and recent dataset of HAS sessions in French mobile networks, which is a crucial pre-requisite to improve their performances. So this paper shows how fine tuning the caching logic with respect to the specific timing patterns of the HAS sessions leads to significant gains on the caching efficiency. Références [SIG06] Understanding user behavior in large-scale video-on-demand systems, available at [SOS03] Measurement modeling and analysis of a peer-to-peer file-sharing workload, available at gribble/papers/p118-gummadi.pdf. 8/131

11 Algorithme autostabilisant avec convergence sûre construisant une ( f, g)-alliance Fabienne Carrier 1, Ajoy K. Datta 2, Stéphane Devismes 1, Lawrence L. Larmore 2 et Yvan Rivierre 1 1 VERIMAG, Université Grenoble 1, France 2 School of Computer Science, UNLV, Las Vegas, USA Nous proposons un algorithme distribué, autostabilisant et silencieux avec convergence sûre qui calcule une ( f, g)- alliance minimale dans un réseau asynchrone identifié, où f et g sont deux fonctions associant à chaque nœud un entier positif ou nul qui vérifient : pour tout nœud p, f (p) g(p) et δ p g(p), où δ p est le degré du nœud p dans le réseau. Keywords: système distribué, autostabilisation, convergence sûre, ( f,g)-alliance. 1 Introduction L autostabilisation est un paradigme général permettant de concevoir des algorithmes distribués tolérant les fautes transitoires. Une faute transitoire est une panne non-définitive qui altère le contenu du composant du réseau (processus ou canal de communication) où elle se produit. En supposant que les fautes transitoires n altèrent pas le code de l algorithme, un algorithme autostabilisant retrouve de lui-même, et en temps fini, un comportement normal dès lors que les fautes transitoires ont cessé. L autostabilisation ne fait aucune hypothèse sur la nature ou l ampleur des fautes transitoires qui frappent le système. Ainsi, l autostabilisation permet à un système de récupérer de l effet de ces fautes d une manière unifiée. Cependant, l autostabilisation a quelques inconvénients ; le plus important étant sûrement la perte de sûreté temporaire, i.e., suite à des fautes transitoires, il y a une période temporaire appelée phase de stabilisation au cours de laquelle le système n offre aucune garantie de sûreté. Plusieurs approches dérivées de l autostabilisation ont été introduites pour offrir des propriétés supplémentaires lors de la phase de stabilisation, e.g., la superstabilisation, la contention de fautes ou encore la convergence sûre. Nous considérons ici la notion de convergence sûre. Pour la plupart des problèmes, il est souvent difficile de concevoir des algorithmes autostabilisants assurant un temps de stabilisation réduit, même lorsque peu de fautes touchent le réseau. L importance du temps de stabilisation est souvent dûe à la complexité de la spécification que l algorithme doit satisfaire. Ainsi, le but d un algorithme autostabilisant avec convergence sûre est en premier lieu de converger rapidement d une configuration quelconque vers une configuration dite légitime réalisable, où une qualité de service minimum est garantie ; lorsqu une telle configuration est atteinte, l algorithme doit, tout en restant dans l ensemble des configurations légitimes réalisables, continuer à converger vers un sous-ensemble particulier de ces configurations, appelé sous-ensemble des configurations légitimes optimales, où une spécification plus complexe est garantie. L autostabilisation avec convergence sûre est particulièrement intéressante pour résoudre les problèmes de construction de structure. Par exemple, des solutions autostabilisantes avec convergence sûre ont été proposées pour le calcul d un ensemble dominant minimal [2], d un ensemble dominant faiblement connecté approximant l optimum [3], ou encore d un ensemble dominant connecté approximant l optimum [4]. Dans cet article, nous nous intéressons au calcul d une ( f,g)-alliance. Soit G = (V,E) un graphe nonorienté. Soit f et g deux fonctions qui associent un entier positif ou nul à chaque nœud de V. Un sousensemble de nœuds A est une ( f,g)-alliance de G ssi : ( p V \ A, N p A f (p)) ( p A, N p A g(p)) 9/131

12 Fabienne Carrier, Ajoy K. Datta, Stéphane Devismes, Lawrence L. Larmore et Yvan Rivierre où N p désigne l ensemble des voisins de p dans G. De plus, A est une ( f,g)-alliance minimale si aucun de ses sous-ensembles propres n est une ( f, g)-alliance. Les ( f, g)-alliances généralisent plusieurs notions issues de la théorie des graphes, qui sont notamment utilisées dans le domaine des systèmes distribués. Considérons un sous-ensemble de nœuds S et notons δ p le degré d un nœud p : 1. S est un ensemble dominant (minimal) ssi S est une (1,0)-alliance (minimale) ; 2. S est un ensemble k-dominant (minimal) ssi S est une (k,0)-alliance (minimale) ; 3. S est un ensemble k-tuple dominant (minimal) ssi S est une (k,k 1)-alliance (minimale) ; 4. S est une alliance défensive (minimale) ssi S est une ( f,0)-alliance (minimale), telle que p V, f (p) = δ p /2 ; 5. S est une alliance offensive (minimale) ssi S est une (1,g)-alliance (minimale), telle que p V, g(p) = δ p /2. Contributions. Nous proposons un algorithme distribué, autostabilisant et silencieux qui calcule une ( f,g)-alliance minimale dans un réseau asynchrone identifié, où f et g sont deux fonctions de V dans N vérifiant les deux contraintes suivantes : (1) f g, i.e., p V, f (p) g(p) ; et (2) p V,δ p g(p). La classe des ( f, g)-alliances minimales vérifiant f g englobe les ensembles dominants, k-dominants et k- tuple dominants minimaux, ainsi que les alliances défensives minimales. Cependant, les alliances offensives minimales ne font pas partie de cette classe. Notre algorithme garantit une convergence sûre dans le sens où à partir d une configuration quelconque, il calcule tout d abord une ( f, g)-alliance (pas nécessairement minimale) en au plus 4 rondes, puis il supprime des éléments de l alliance jusqu à obtenir une ( f, g)-alliance minimale. Le temps de stabilisation global étant d au plus 8n + 4 rondes, où n est le nombre de nœuds. Notre algorithme est écrit dans le modèle à états. Il est prouvé en supposant un démon distribué inéquitable (l hypothèse la plus faible du modèle). Il nécessite O(logn) bits de mémoire par processus et son temps de stabilisation en termes d étapes de calcul est O( 3 n), où est le degré du réseau. État de l art. Les ( f,g)-alliances ont été introduites dans [1]. Dans le même article, les auteurs proposent plusieurs algorithmes distribués non-autostabilisants pour ce problème et ses variantes. À notre connaissance, il n y avait pas jusqu alors de travaux proposant des algorithmes autostabilisants pour les ( f, g)-alliances. Cependant, il existe des algorithmes autostabilisants pour des instances particulières de ( f,g)-alliances. L article le plus proche de nos travaux est certainement celui de Kakugawa et al [2]. Dans cet article, les auteurs proposent un algorithme autostabilisant avec convergence sûre pour calculer un ensemble dominant minimal d un réseau synchrone en O(D) rondes, où D est le diamètre du réseau. Plan. Dans la section 2, nous décrivons brièvement le modèle dans lequel notre algorithme est écrit. Dans la section 3, nous rappelons une propriété sur laquelle notre algorithme se fonde. Nous présentons les idées principales de notre algorithme dans la section 4. Nous concluons avec des perspectives dans la section 5. 2 Modèle à états Nous considérons des réseaux bidirectionnels de n processus (ou nœuds) où chaque processus peut communiquer directement avec un ensemble restreint d autres processus appelés voisins. Les processus sont identifiés de manière unique. Dans la suite, nous ne distinguerons pas un processus de son identité. Ainsi, selon le contexte, p désignera soit un processus, soit son identité. Les processus communiquent par le biais de variables de communication localement partagées : chaque processus détient un nombre fini de variables, chacune de domaine fini, dans lesquelles il peut lire et écrire. De plus, il peut lire les variables de ses voisins. Les variables d un processus définissent son état. Une configuration est un vecteur contenant un état de chaque processus. L exécution d un algorithme est une suite d étapes atomiques : à chaque étape, s il existe. Nous considérons la définition qui dit que S est k-dominant ssi tout nœud hors de S a au moins k voisins dans S.. Un algorithme silencieux converge vers une configuration dite terminale où les valeurs des variables de communication de tous les processus ne changent plus.. Cette contrainte assure l existence d une solution.. Pour plus de détails voir le rapport technique en ligne (www-verimag.imag.fr/tr/tr pdf). 10/131

13 ( f,g)-alliance autostabilisante avec convergence sûre des processus dits activables souhaitant modifier leur état, alors un sous-ensemble non-vide de ces processus est activé. En une étape atomique, chaque processus activé lit ses propres variables, ainsi que celles de ses voisins, puis modifie son état. Nous supposons ici que les processus sont activés de manière asynchrone sans hypothèse d équité particulière (i.e., le démon est inéquitable). Toute configuration où aucun processus n est activable est dite terminale. Nous calculons le temps de stabilisation suivant deux métriques : le nombre d étapes atomiques et le nombre de rondes. Cette dernière métrique permet de mesurer le temps d exécution rapporté au processus le plus lent. Ainsi, la première ronde d une exécution termine dès lors que tous les processus continûment activables depuis le début de l exécution ont été activés au moins une fois, la seconde ronde commence immédiatement après, etc. 3 Minimalité et 1-minimalité Une ( f,g)-alliance A est 1-minimale ssi p A, A \ {p} n est pas une ( f,g)-alliance, i.e., la suppression d un seul élément de A provoque la perte de la propriété. Étonnamment, une ( f, g)-alliance 1-minimale n est pas nécessairement une ( f,g)-alliance minimale [1]. Cependant, nous avons la propriété suivante : Propriété 1 ([1]) Soit f et g deux fonctions associant un entier positif ou nul à chaque nœud. 1. Toute ( f,g)-alliance minimale est aussi 1-minimale ; 2. Si f g, alors toute ( f,g)-alliance 1-minimale est aussi minimale. 4 Principes de l algorithme Notre algorithme prend en entrée les deux fonctions f et g et calcule une seule variable de sortie par processus p : le booléen p.ina, qui est vrai ssi p est dans l alliance. Soit γ une configuration. Nous notons A γ l ensemble {p V, p.ina = vrai dans γ} (nous omettons l indice γ lorsque le contexte est clair). Notre algorithme converge, à partir d une configuration quelconque, vers une configuration terminale où A γ est une ( f,g)-alliance 1-minimale. Ainsi, puisque nous supposons que f g, A γ est aussi une ( f,g)-alliance minimale. La configuration initiale étant quelconque, un processus peut avoir à quitter ou rejoindre l alliance en cours d exécution. L idée intuitive pour obtenir la convergence sûre est qu il doit être plus difficile pour un processus de quitter l alliance que de la rejoindre. Ainsi, cela permet de converger rapidement vers une configuration où A est une ( f,g)-alliance, mais pas nécessairement une ( f,g)-alliance minimale. 4.1 Quitter l alliance Pour obtenir la 1-minimalité, un processus p est autorisé à quitter l alliance si les deux conditions suivantes sont vérifiées : Condition 1 : p aura au moins f (p) voisins dans l alliance après l avoir quittée ; Condition 2 : chaque voisin q de p aura encore assez de voisins (i.e., f (q) ou g(q), en fonction de la valeur de q.ina) dans l alliance une fois p hors de l alliance. Vérifier la condition 1. Pour assurer la première condition, nous avons introduit un mécanisme qui impose que les suppressions dans A soient localement séquentielles, c est-à-dire qu à chaque étape de l exécution, au plus un processus quitte l alliance dans le voisinage de chaque processus. Ainsi, si un processus p souhaite quitter l alliance, il a seulement besoin de vérifier que son nombre de voisins dans l alliance, NbA(p) = {q N p,q.ina}, est supérieur ou égal à f (p) avant de quitter l alliance. Alors, s il quitte effectivement l alliance, il est le seul dans son voisinage à pouvoir le faire et ainsi la condition 1 reste vraie. Pour réaliser les suppressions localement séquentielles, chaque processus q dispose d un pointeur q.choice. q affecte à q.choice s il ne peut autoriser aucun voisin à quitter l alliance, c est-à-dire s il est dans l alliance (resp. hors de l alliance) et NbA(q) g(q) (resp. NbA(q) f (q)). Dans le cas contraire, q désigne l un de ses voisins qui appartient à l alliance pour l autoriser à la quitter. Ainsi, pour quitter l alliance, tout processus p ne doit autoriser aucun voisin à quitter l alliance (p.choice = ) et doit recevoir l autorisation de tous ses voisins ( q N p,q.choice = p). 11/131

14 Fabienne Carrier, Ajoy K. Datta, Stéphane Devismes, Lawrence L. Larmore et Yvan Rivierre Vérifier la condition 2. Cette condition est aussi garantie par le fait qu un processus p peut quitter l alliance seulement s il a une autorisation de chacun de ses voisins q. Un voisin q donne une telle autorisation à p seulement s il a assez de voisins dans l alliance sans tenir compte de p. Ainsi, q exécute q.choice q où q est l un de ses voisins seulement si q est dans l alliance et que, sans q, q a toujours assez de voisins dans l alliance. Il est possible qu un voisin q de q ne puisse quitter l alliance dans ce cas, q est dit occupé parce qu au moins une des deux conditions suivantes est vraie : (a) NbA(q ) < f (q ). Dans ce cas, q n a pas assez de voisins dans l alliance pour être hors de l alliance. (b) au moins un voisin de q a besoin que q reste dans l alliance. Si nous laissons les processus désigner avec leur pointeur choice de tels processus occupés, cela peut mener à un interblocage. Nous utilisons une variable booléenne supplémentaire q.busy pour informer les voisins de q que celui-ci est occupé, c est-à-dire qu il vérifie la condition (a) ou la condition (b). Ainsi, un processus q n a pas le droit de désigner un voisin q tel que q.busy = vrai. La condition (a) est évaluée par q en lisant sa variable ina et celles de ses voisins. En revanche, la condition (b) nécessite que q ait accès au statut (ina) et au nombre de voisins dans l alliance de chacun de ses voisins. Cette dernière information nécessite l introduction d une nouvelle variable, notée nba, dans laquelle chaque processus maintient son nombre de voisins dans l alliance. Si q a plusieurs candidats, c est-à-dire des voisins dans l alliance qui ne sont pas occupés, alors il choisit celui avec l identité la plus petite. Il reste un problème : q peut être le candidat de son propre candidat. Nous résolvons ce problème en ajoutant la condition suivante : si q est lui-même candidat, il désigne un candidat à condition que celui-ci ait une identité plus petite que la sienne. Enfin, il est possible qu un processus q change la valeur de son pointeur alors que, simultanément, l un de ses voisins, q, quitte l alliance. Dans ce cas, la condition 2 peut être violée. En effet, q choisit un candidat en supposant que q reste dans l alliance. Cette situation ne peut se présenter que si la valeur précédente de q.choice était q. Pour éviter une telle situation, nous forçons un processus à réinitialiser son pointeur à, afin d interdire à tout voisin de quitter l alliance, avant d envisager de désigner un nouveau candidat. 4.2 Rejoindre l alliance Un processus p hors de l alliance doit rejoindre l alliance si : 1. il n a pas assez de voisins dans l alliance, i.e., NbA(q) < f (q), ou 2. l un de ses voisins a besoin que p joigne l alliance. Chaque processus peut évaluer la première condition en lisant sa variable ina et celles de ses voisins. Pour la seconde condition, un processus p doit lire dans l état de chaque voisin q, (i) son statut q.ina et (ii) son nombre de voisins dans l alliance q.nba. Enfin, notez que pour empêcher un processus d entrer et sortir indéfiniment de l alliance, nous imposons qu un processus ne puisse rentrer dans l alliance qu une fois que tous ses voisins arrêtent de le désigner (cela introduit un retard d au plus une ronde). 5 Perspectives La perspective immédiate de ce travail est d étudier la possibilité de réduire le temps de stabilisation global à O(D) rondes, où D est le diamètre du réseau. Ensuite, il serait intéressant de trouver un algorithme autostabilisant avec convergence sûre construisant des ( f,g)-alliances sans l hypothèse f g. Références [1] M. C. Dourado, L. D. Penso, D. Rautenbach, and J. L. Szwarcfiter. The south zone : Distributed algorithms for alliances. In SSS, pages , [2] H. Kakugawa and T. Masuzawa. A self-stabilizing minimal dominating set algorithm with safe convergence. In IPDPS, [3] S. Kamei and H. Kakugawa. A self-stabilizing approximation algorithm for the minimum weakly connected dominating set with safe convergence. In WRAS, pages 57 67, [4] S. Kamei and H. Kakugawa. A self-stabilizing 6-approximation for the minimum connected dominating set with safe convergence in unit disk graphs. Theoretical Computer Science, 428 :80 90, /131

15 Dynamic clustering of evolving networks: some results on the line Cristina G. Fernandes 1, Marcio T.I. Oshiro 1, and Nicolas Schabanel 2 1 Department of Computer Science, University of São Paulo, Rua do Matão, 1010, São Paulo, Brazil. cris/ and oshiro/ 2 CNRS, Université Paris Diderot, LIAFA, Case 7014, Paris Cedex 13, France; and IXXI, Université de Lyon, 46 allée d Italie, Lyon, France. nschaban Understanding the dynamics of evolving social/infrastructure networks is a central challenge in many applied areas such as epidemiology, viral marketing, city planification, etc. During the last decade, a massive amount of data has been collected on such networks that still resist to analysis. In this article, we propose to use the data on the dynamics to find better partitions of the network into groups by requiring the groups to be stable over time. For that purpose, we introduce a dynamic version of the k-clustering problem which includes a cost for every point that moves from one cluster to another. We show that this yields in many realistic situations better fitting solutions than optimizing independently various snapshots of the network. We present a first non-trivial exact algorithm for this problem when the points move along a line ; this algorithm runs in polynomial time when k and the time horizon are bounded by a constant. We conclude with a series of surprising results on the complexity of the structure of optimal solutions for the line case. 1 Introduction During the last decade, a massive amount of data has been collected on diverse networks such as web links, nation- or world-wide social networks, online social networks (Facebook or Twitter for example), social encounters in hospitals, schools, companies, or conferences (e.g. [5, 7]), and other real-life networks. Those networks evolve with time, and their dynamics have a considerable impact on their structure and effectiveness (e.g. [6, 4]). Understanding the dynamics of evolving networks is a central question in many applied areas such as epidemiology, vaccination planning, anti-virus design, management of human resources, viral marketing, facebooking, etc. Algorithmic approaches have for instance been successful in yielding useful insights on several real networks such as zebras social interaction networks [8]. But the dynamics of real-life evolving networks are not yet well understood, partly because it is difficult to observe and analyze such large networks sparsely connected over time. Some basic facts have been observed (such as the preferential attachment or copy-paste mechanisms) but more specific structures remain to be discovered. In this article, we propose to adapt the problem of k-clustering to these evolving networks. We show that requiring the solution to be stable over time yields in many realistic situations better fitting solutions than optimizing independently various snapshots of the network. More precisely, we focus on the k-clustering problem of points moving in a metric space : we look for the best partition of the points in k groups (called clusters) over time minimizing a tradeoff between two objectives. The first objective is the span of the clusters (the sum of their diameter), which ensures that each cluster should contain points which are close to each other. The second objective is the instability of the clusters over time, measured as the number of points changing from one cluster to another over time. We argue that incorporating this stability requirement in the objective function helps in many realistic situations to obtain better solutions (see Section 2). This work was supported by the ANR Magnum grant and partially by CNPq / and Proj. MaCLinC of NUMEC/USP. 13/131

16 Cristina G. Fernandes, Marcio T.I. Oshiro, and Nicolas Schabanel t = 1 t = 2 t = 3 Optimal dynamical 6-clustering (a) The classroom. Optimal static 6-clustering Optimal dynamical 2-clustering (b) Two groups crossing. Optimal static 2-clustering FIGURE 1: Dynamic versus static clustering (some of these examples are from [3]). Our approach differs from the few existing traditional algorithmic approaches to dynamic settings because they ignore the stability of the solution. We show that offline static algorithms that construct an independent optimal solution for each snapshot of the network yield results that, in a large variety of realistic situations, are not only unstable (and thus arbitrarily bad for our objective), but also undesirable with respect to network dynamics analysis. Online greedy-type solutions such as [1] are also excessively pessimistic : we have access to the whole evolution of the network over time (as given by experiments such as [7]) and we can thus anticipate future changes. Our results. After introducing the model, we present a series of examples demonstrating that this problem produces solutions which are fitting better to a dynamic network than previous clustering problems. Then, we focus on the case of points moving along the line and exhibit a first non-trivial exact algorithm, which is polynomial when the number of clusters and the time horizon are bounded by a constant. We then present a series of surprising results on the complexity of the structure of optimal solutions in even very restricted cases of the line case. 2 Dynamic k-clustering problem 2.1 Definition We present a dynamic extension of the problem studied in [2]. Let (X,d) be a metric space. For a given n, an n-configuration in X is a sequence of n not necessarily distinct points in X. A k-clustering is a sorted partition of [n] = {1,...,n} into k sets, that is, it is a sequence of disjoint subsets of [n] whose union is [n]. Each subset C in a k-clustering is called a cluster, and the diameter of C for an n-configuration (p 1,..., p n ) is the maximum distance between two points in C, that is, max{d(p i, p j ) : i, j C}. If C is empty, we say its diameter is zero. The cost of a k-clustering for an n-configuration is the sum of the diameters of its clusters. Given a positive integer T, for each t = 1,...,T, let (p t 1,..., pt n) be an n-configuration in X. Such a sequence of n-configurations is called a dynamic setting (of n points) and represents the movement of n points in the metric space (X,d). It is denoted shortly by P = (p t i ) 1 i n,1 t T. A dynamic k-clustering C = (Cl t) 1 l k,1 t T of the dynamic setting P consists of a sequence of k-clusterings of [n], one for each of the n-configurations (p t 1,..., pt n), for t = 1,...,T. The cost of a dynamic clustering takes into account two objectives : the total span of its clusters and their instability over time. The instability of a dynamic clustering can be measured in several ways. In this paper, we adopt the number of times a point changes from a cluster to another over time, that is, the instability of a dynamic k-clustering C = (Cl t) 1 l k,1 t T is the number of pairs (i,t), for i in [n] and 1 t < T, such that i C t j but i Ct+1 j. For a constant c > 0, we define the cost of C as c times the instability of C plus the sum of the cost of each of its clusterings (which happens to be the sum of the diameter of each Cl t ). The constant c allows one to put more or less weight on the instability cost with respect to the clustering cost. A similar formulation of the problem was also introduced in [3]. 2.2 Examples The two examples in Fig. 1 show that dynamic k-clustering differs significantly from static k-clustering of every snapshot and furthermore yields more desirable partitions of the network. Example 1(a) shows the 14/131

17 Dynamic clustering of evolving networks: some results on the line case of a classroom where the students are split into five groups and the teacher move from one group to the other cyclically. When the number of students is large, an optimal static 6-clustering will isolate four groups and split one in two halves in every snapshots ; whereas the optimal dynamic 6-clustering will isolate every group of students and put the teacher in a sixth cluster, shedding more light on the dynamics of this network. Example 1(b) shows the case of two large groups of people crossing each other (in a street for instance) : an optimal static 2-clustering would first output the two groups, then split the union of the two groups in two halves regardless of the original groups, then split again the two groups ; whereas the dynamic 2-clustering would keep the same groups for the whole time period. Again, the dynamic 2-clustering yields a better understanding of the situation. The following fact generalizes this example to show that the sequence of T optimal static k-clusterings may yield an arbitrarily bad solution to the dynamic problem. Fact 1 The ratio of the cost of an optimal dynamic k-clustering of n points and a sequence of optimal static k-clusterings can be as large as Ω(n). 3 Exact algorithms for the line 3.1 Dynamic k-clustering on the line We consider the case where the metric space is the line. That is, the dynamic setting consists of points that move on the line : p t i R for all t and i. For all t, let πt be the permutation of [n] that stably sorts p t 1,..., pt n, i.e. such that p t π t p t π 1 t and, additionally, if pt n π t = p t i π t and i < j then π t i < πt j. (In other j words, π t i is the index of the i-th point from the left at time t.) Lemma 2 The cost of any optimal dynamic k-clustering for a dynamic setting of n points on the line of time-length T is fully characterized by the indices of the two extreme points of each cluster. Moreover, a corresponding optimal dynamic k-clustering can be recovered in O(nk 2 T ) time by dynamic programming. We are thus left with enumerating all the possible extremities for the k clusters. There are less than ( n k) 2 n 2k /k! 2 choices for t = 1 and less than k! ( n k) 2 n 2k /k! choices for t 2 (since the labels of the cluster matter as soon as t 2 as the following facts will demonstrate). It follows that : Theorem 3 There is an O(n 2kT +1 k 2 T /k! T +1 )-time algorithm that solves exactly the dynamic k-clustering problem for a dynamic setting of n points on the line for T units of time. This running time is polynomial in n if k and T are bounded by a constant. Note that this algorithm always outperforms the brute-force enumeration of all the k nt /k! possible k- clustering sequences (running in O(k nt kt ) time). 3.2 Surprising facts on optimal dynamic clusterings on the line For each t, an interval (k,n)-cover of n points at time t is a sequence of k pairs (a t l,bt l ) l=1.. k such that a t l, bt l [n], the at l are pairwise distinct for l [k], the b t l are pairwise distinct for l [k], a t l bt l, and k l=1 [at l,bt l ] [n]. We say (at l,bt l ) l=1.. k,t=1.. T is an interval (k,n)-cover sequence if, for t = 1,...,T, each (a t l,bt l ) l=1.. k is an interval (k,n)-cover of the n points at time t. By Lemma 2, a dynamic k-clustering on [n] can be represented by an interval (k,n)-cover. The following lemma shows that almost every interval (k, n)-cover sequence can correspond to an optimal dynamic (k + 1)-clustering of a dynamic setting of n points on the line (including sequences where all intervals are concentric!). Lemma 4 For every n 2k and every interval (k,n)-covers sequence (a t l,bt l ) l=1.. k,t=1.. T, there exists a dynamic setting of n points on the line of time-length T + 1 for which, for t = 1.. T, a t l and bt l for l = 1.. k are the extremities of the k first clusters of the only optimal dynamic (k + 1)-clustering (of the optimal dynamic k-clustering when n = 2k). We restrict attention to the particular case in which the trajectories of the n points in the line do not cross each other. That is, the permutation π t is the identity at every time t. One may hope that, if the trajectories of the n points never cross, the k clusters may keep the same relative order. This is unfortunately not the case, as the next example shows. 15/131

18 Cristina G. Fernandes, Marcio T.I. Oshiro, and Nicolas Schabanel Fact 5 There exists a dynamic setting of five points on the line with non-crossing trajectories for which the order of the clusters in the only optimal dynamic 2-clustering changes. This can be generalized to a dynamic setting of n points on the line with n 5, k 2, and T 2. So, even when the trajectories are non-crossing, it is not straightforward to design a dynamic programming algorithm that runs in time polynomial in n, k, and T. Non-crossing trajectories have however a simpler structure for T = 2 or k = 2, but, surprisingly, not as soon as k 4 and T 3! An interval (n,k)-cover is non-overlapping if its intervals are pairwise disjoint. Fact 6 Consider a dynamic setting of n points on the line having non-crossing trajectories. If T = 2 or k = 2, then there is an optimal dynamic k-clustering which consists in a sequence of non-overlapping interval (n,k)-covers. Fact 7 There is an instance with n = 7 points, k = 4 clusters, and T = 3, with non-crossing trajectories, for which all optimal dynamical 4-clusterings have two clusters that overlap at some time t. When trajectories are non-crossing, the span of a dynamic k-clustering may have some laminar structure, i.e., at each time step the spans of every pair of clusters are either disjoint or included one into the other, and moreover with every point belonging to the cluster with smallest span that contains it. If this were true, then we would have a much better algorithm, running in polynomial time in n and linear time in T. Theorem 8 When trajectories are non-crossing, there is an algorithm that computes an optimal laminar dynamic k-clustering in O((k!) 2 n 4k 4 T ) time and O(k!n 2k 2 T ) space. 4 Conclusion We believe that this problem is a key to the understanding of real-life evolving network, such as social interactions. It appears to have very intriguing behavior even in the simpler case of the line. Although running in polynomial time for fixed k and T, our algorithms need still to be improved to be fitted for real-life data collections which are typically huge. One may thus consider aiming at faster algorithms approximating the optimum. In other ongoing work, [3] develops an approximation algorithm and suggests that there might be some strong inapproximability results related to this problem but the situation needs yet to be clarified. Références [1] M. Charikar, C. Chekuri, T. Feder, and R. Motwani. Incremental clustering and dynamic information retrieval. In STOC 97, pages , [2] Moses Charikar and Rina Panigrahy. Clustering to minimize the sum of cluster diameters. In STOC 01, pages 1 10, [3] David Eisenstat, Claire Mathieu, and Nicolas Schabanel. Ongoing work on dynamic clustering of evolving graph, [4] Jon M. Kleinberg. The small-world phenomenon and decentralized search. SIAM News, 37(3), [5] Mark E. J. Newman. The structure and function of complex networks. SIAM Review, 45(2) : , [6] Romualdo Pastor-Satorras and Alessandro Vespignani. Epidemic spreading in scale-free networks. Physical Review Letters, 86 : , [7] J. Stehlé, N. Voirin, A. Barrat, C. Cattuto, L. Isella, J.-F. Pinton, M. Quaggiotto, W. Van den Broeck, C. Régis, B. Lina, and P. Vanhems. High-resolution measurements of face-to-face contact patterns in a primary school. PLoS ONE, 6(8) :e23176, [8] C. Tantipathananandh, T. Y. Berger-Wolf, and D. Kempe. A framework for community identification in dynamic social networks. In KDD, pages , /131

19 Dynamic clustering of evolving networks: some results on the line A Omitted proofs and results Proof of Fact 1. Let ε 1/12 and consider the following dynamic setting of n = 2m points in the real line during T = 2τ time steps, with m 2. At time t = 1, point i is at position ( 1) i εc for i = 1,...,m, and at position (2 + ( 1) i ε)c for i = m + 1,...,2m ; at time t = 2, each point i is at position (1 + ( 1) i )εc ; at time t = 3, point i is at position (2 + ( 1) i ε)c for i = 1,...,m, and at position ( 1) i εc for i = m + 1,...,2m (see Fig. 1(b)). An optimal dynamic 2-clustering for this dynamic setting consists of the two clusters {1,...,m} and {m+1,...,2m} at every time, for a total cost of 3 4εc < c, with no instability cost (any other solution would pay either a span of (2 2ε)c at time 1 or 3, or a moving cost of at least c at some time t). However, the optimal static 2-clustering is {1,...,m} and {m+1,...,2m} for times t = 1 and 3, but {1,3,...,2m 1} and {2,4,...,2m} at time t = 2. The resulting dynamic cost of this sequence of optimal static 2-clusterings is thus 8εc plus 2mc for the instability, i.e., 8εc + nc = Ω(n). Proof of Lemma 2. Let a t l and b t l for t = 1.. T be the indices of the candidate extreme points of the clusters in a dynamic k-clustering. Let us show how to determine a minimum cost dynamic k-clustering C = (Cl t) 1 l k,1 t T for which a t l and bt l are the indices of the left and right most points in Ct l for all l and t. The total span of the clusters of any such dynamic k-clustering is exactly t=1 T k l=1 (pt π t p t b t π t ). So the l a t l minimum cost is achieved by the dynamic k-clustering of minimum instability. The minimum instability cost can be computed by dynamic programming. First, note that, once the extremes of the clusters are fixed, the number of cluster changes of each point does not interfere with the number of cluster changes of any other point. Thus we fix attention to one point at a time. At time t, point π t i belongs to one of the clusters l such that a t l i bt l. If point j is covered by the interval of cluster l at time t, then let γ(t, j,l) be the minimum number of cluster changes from instant 1 to t that allows point j to be in cluster l at time t. Else, let γ(t, j,l) be. Then, for each i and l, γ(1,π 1 i,l) is 0 if a1 l i b 1 l and is otherwise ; and, for every t 2, γ(t,π t i,l) = min l {γ(t 1,πt i,l ) + c 1 l l } if a t l i bt l and is otherwise. A simple dynamic program computes γ(t, j,l) for t = 1.. T, for each j and l independently, in O(nk 2 T ) time. The instability cost of the corresponding optimal dynamic k-clustering is then given by n j=1 min 1 l k γ(t, j,l). Proof of Lemma 4. Consider the following dynamic setting with ε < 1/(k + 1)nT. At time t = 0, for i = 1.. k, points 2i 1 and 2i are at positions 2ic εc/2 and 2ic + εc/2 respectively ; points i > 2k are all at position 2(k + 1)c. At time t = 1.. T, points 2i 1 and 2i are at positions a t i εc and bt iεc respectively, for i = 1.. k, and points i > 2k are at positions φ t i εc, where φt is any injection from {2k + 1,...,n} to [n] {a t 1,bt 1,...,at k,bt k }. Now, note that the total cost of the constant dynamic (k + 1)-clustering ({1,2},{3,4},...,{2k 1,2k}, {2k+1,...,n}) t=0.. T is at most kεc+0+t (k+1)(n 1)εc+0 (k+1)nt εc. Any other dynamic (k+1)- clustering either has a cluster of diameter at least (2 ε)c c at time 0 or pays c for at least one cluster change at some t 1, and thus costs at least c > (k + 1)nT εc. It follows that the constant dynamic (k + 1)- clustering ({1,2},{3,4},...,{2k 1,2k},{2k + 1,...,n}) t=0.. T is the only optimal solution and its k first clusters match the interval (k,n)-cover for the time period t = 1.. T. Observe that when n = 2k, the (k+1)-st cluster is always empty and thus a k-clustering is enough. A.1 Non-crossing trajectories Proof of Fact 5. The positions of the points 1 to 5 are, respectively, 0,3c,3c,3c,3c at time t = 1, and 3c,3c,3c,3c,6c at time t = 2. Then, the dynamic 2-clustering ( {1},{2,3,4,5}, {5},{1,2,3,4} ) costs only two cluster changes, for a total of 2c, whereas any other dynamic 2-clustering either spans over a distance at least 3c or involves more than two cluster changes. Note that the second cluster jumps over the first at time t = 2 in the unique optimal solution, and we can keep them alternating by repeating the sequence. We say an interval (k,n)-cover (a l,b l ) l=1.. k is non-overlapping if the intervals [a l,b l ] for l = 1,...,k are pairwise disjoint. 17/131

20 Cristina G. Fernandes, Marcio T.I. Oshiro, and Nicolas Schabanel Fact 9 (three useful facts) (a) If two clusters A, B [n] of an n-configuration overlap, then diam(a B) diam(a) + diam(b). (b) If two clusters A, B [n] of an n-configuration overlap, and A and B are a non-overlapping partition of A B, then diam(a ) + diam(b ) diam(a) + diam(b). (c) If C, C, C are three k-clusterings of [n], then instability(c,c ) instability(c,c ) + instability(c,c ). Proof. If clusters A and B overlap, their convex hulls [a,a ] and [b,b ] intersect. Let (p 1,..., p n ) be the n-configuration. It follows that diam(a B) = p max(a,b ) p min(a,b) p a p a + p b p b = diam(a) + diam(b). Also, if A and B are a non-overlapping partition of A B, and their convex hulls are [c,c ] and [d,d ], with c < d, then diam(a )+diam(b ) = p c p c + p d p d = p c p min(a,b) + p max(a,b ) p d p max(a,b ) p min(a,b) = diam(a B) diam(a) + diam(b). Now, every point that moves from one cluster in C to another in C in the cluster sequence C,C has to change of cluster from C to C or from C to C in the cluster sequence C,C,C. The result follows. Fact 10 Consider a dynamic setting of n points on the line of time-length 2 having non-crossing trajectories. There is an optimal dynamic k-clustering that is a sequence of non-overlapping interval (n,k)-covers. Proof. Consider an optimal dynamic k-clustering and the corresponding sequence of interval (n, k)-covers (a t l,bt l ) l=1.. k for t = 1,2. If these interval (n,k)-covers are non-overlapping, then there is nothing to prove. Otherwise, we can repeat the following process until there is no more overlapping intervals in the covers. Suppose w.l.o.g. that at time t = 2 there are overlapping intervals [a 2 i,b2 i ] and [a2 j,b2 j ]. If [a1 i,b1 i ] and [a 1 j,b1 j ] overlap as well, we merge these two clusters, setting at i = min{at i,at j } and bt i = max{bt i,bt j } and cluster j empty, for t = 1,2. By Fact 9(a), the resulting span cost does not increase, and also the instability does not increase by this change, so the resulting dynamic k-clustering is also optimal. On the other hand, if intervals [a 1 i,b1 i ] and [a1 j,b1 j ] do not overlap, we may assume w.l.o.g. that a1 i < a 1 j. Now, by Fact 9(b), any non-overlapping partition of the union of clusters i and j at time t = 2 has a total span cost at most as large as the sum of the spans of [a 2 i,b2 i ] and [a2 j,b2 j ]. We proceed as follows to ensure that the instability does not increase. First, note that any point in cluster i (resp. j) at t = 2 that does not belong to cluster i (resp. j) at t = 1 can be placed in cluster j (resp. i) instead at t = 2 for no extra instability cost. We thus partition the union of clusters i and j at time t = 2 as follows : the left part is the set of indices in clusters i and j at time t = 2 less than or equal to b 1 i, and the right part is the set of indices in clusters i and j at time t = 2 larger than b 1 i. Of course these two sets are non-overlapping. Replacing clusters i and j by these two sets does not increase the total span cost or the instability, so the resulting dynamic k-clustering is also optimal. Fact 11 Consider a dynamic setting of n points on the line having non-crossing trajectories. If k = 2, then there is an optimal dynamic k-clustering which consists in a sequence of non-overlapping interval (n, k)- covers. Proof. Consider any solution with two clusters. If the two clusters overlap at all time step, then merging them will reduce the cost since the total span decreases at every time step (by Fact 9) and the merging induces no instability cost. We may now assume that there is a time step t 0 where the convex hulls of the two clusters are disjoint. We then proceed iteratively to untie the clusters. Assume w.l.o.g. that the two clusters C1 t+1 and C2 t+1 are overlapping at some time t + 1 but C1 t and Ct 2 are not at time t. We then create the following dynamic 2-clusters sequence Ĉ : Ĉi t = Ci t for all t t + 1 and set Ĉi t+1 = Ci t, for i {1,2}. The total spans of Ĉ and C are identical at every time t t + 1 and the total span of Ĉ is strictly less than in C at time t + 1. Regarding the instability cost, instability(ĉ) = instability(c) + instability(c t+1,c t+2 ) instability(c t,c t+1 ) instability(c t+1,c t+2 ). But by Fact 9, instability(c t,c t+2 ) instability(c t,c t+1 ) + instability(c t+1,c t+2 ). It follows that instability(ĉ) instability(c). The total cost of Ĉ is thus strictly less than the cost of C. The proof concludes by recurrence and time reversal. 18/131

21 Dynamic clustering of evolving networks: some results on the line t = 1 t = 2 t = 3 FIGURE 2: An example of 7 points with non-crossing trajectories for which the only two optimal dynamic 4-clusterings are all overlapping (the clusters are square, round, diamonds and pentagons in the picture ; black edges indicate cluster changes). Proof of Fact 7. Consider the following instance for the 4-clustering of n = 7 points with T = 3 : t p 1 p 2 p 3 p 4 p 5 p 6 p When > 3c, there are exactly two optimal dynamic 4-clustering of this instance, and they costs exactly 3c : [[1],[2,3],[4,5],[6,7];[1],[2,3,6],[4,5],[7];[1,2],[3,4,5],[6],[7]] and [[1],[2,3],[4,5],[6,7];[1],[2,6],[3,4,5],[7];[1,2],[3,4,5],[6],[7]]. Clusters 2 and 3 overlap at time t = 2 in both solutions. Figure 2 illustrates one of the two optimal solutions. We say that a k-clustering C is laminar if 1) for all i j, the open convex hulls C i and C j are either disjoint or one contains the other, and 2) every point belongs to the cluster of smallest diameter whose convex hull covers it. Open question 1 Is there always an optimal k-clustering which is laminar when the trajectories of the n points on the line are non-crossing for arbitrary T? It is the case for all optimal solutions? Proof of Theorem 8. Since every point belongs at every time step to the smallest cluster that covers it in a laminar dynamic k-clustering, a dynamic k-clustering is entirely determined that the positions of the two extremities of the k clusters and their numbering at every time step. There are thus K k!n 2k 2 possible laminar k-clusterings at every time step. Let us number this possible k-clustering from 1 to K and denote by opt[ j,t] the minimal cost of a sequence of laminar clustering from time 1 to t yielding to the j-th k-clustering at time ( t. Clearly opt[ j,1] is ) the total span of the clusters in the k-clustering j. And opt[ j,t + 1] = min 1 l K opt[l,t] + instability( j,l). The optimal value of a laminar dynamic k-clsutering is then min 1 j K opt[ j,t ]. A simple dynamical program computes then an optimal laminar k-clustering in O(K 2 (T 1)) = O(k! 2 n 4k 4 T ) time and O(KT ) = O(k!n 2k 2 T ) space. 19/131

22 Fast Near-Optimal Algorithm for Delivering Multiple Live Video Channels in CDNs Jiayi Liu and Gwendal Simon Telecom Bretagne (Institut Mines-Telecom), Rennes, France La popularité croissante des applications vidéos et le développement de technologies de diffusion de flux à débits variables ont un impact fort sur la charge imposée à l infrastructure des réseaux de diffusion de contenus (CDN). Dans ce papier, nous abordons le problème de l utilisation optimale du réseau de diffusion dans le modèle discret de diffusion de flux. Nous formulons le problème générique, puis nous proposons un algorithme rapide et quasi-optimal dans le cas où les équipements du réseau de diffusion ont la même capacité de transmission. Keywords: Video streaming, CDN, Approximate Algorithm 1 Introduction Content Delivery Networks (CDNs) should support a sharp increase in live video streaming consumption. In addition, CDNs have to deal with the growing adoption of rate-adaptive streaming techniques such as the recent MPEG Dynamic Adaptive Streaming over HTTP (DASH) standard. In DASH, a server can offer multiple representations of the same video channel. The server thus provides clients the flexibility of choosing the video representation that fits their device capabilities and their network capacity. DASH conveniently addresses the problem of delivering videos to a heterogeneous population of clients, but DASH imposes the whole set of representations (with an aggregated bit-rate over 30 Mbps) to be sent from the CDN sources to the CDN edge-servers. As a consequence, the traffic within CDN infrastructure explodes [Ing12]. A new challenge is thus to cope with under-provisioned CDN infrastructures. The previous theoretical works related to live streaming in CDNs have highlighted the main characteristics of these networks, in particular the 3-tier topology (origin servers, reflectors and edge-servers) [NSS10], and the restriction on the upload capacity of the equipment [ZAB + 12, ASV11]. The goal of these previous works is to reduce the transmission cost of video delivery. However, the development of peering agreements between CDN and network operators has reduced the importance of transmission cost in CDN. In the meantime, the concerns related to the capacity of CDN infrastructure are growing. In this paper, we neglect transmission costs and we focus instead on video delivery in a network where the upload capacity of equipments is limited. This problem is in essence similar as the one that is adressed in a series of works related to the streaming capacity of networks [SLC + 11, ZLW11], which aim to determine the maximum bit-rate that can be delivered to all nodes in a network. Both problems aim at optimizing the utilization of network resources in the context of data streaming. These works however use an idealized model where data streams are infinitely divisible. In comparison, a CDN has to deliver a set of independent non-divisible data streams, which need to be either delivered in whole, or not delivered at all. The goal is to maximize the number of delivered streams in the network, which we refer to as the discretized streaming model. In this paper, we introduce an optimization problem, which is the generic formulation of the discretized streaming capacity problem. The practical goal of this problem is to maximize the number of delivered streams in CDN infrastructure, with regard to some preferences set by the CDN provider and subject to the limited upload capacity of CDN equipments. This problem is NP-complete (due to lack of place, we do not give the proof in this paper). We then present a fast near-optimal algorithm, which applies to a practical case where all intermediate equipments have similar upload capacity. This scenario is motivated by the observation that CDN providers tend to use one customized type of equipments, for example the 20/131

23 Jiayi Liu and Gwendal Simon Netflix appliance hardware [net12a]. In this paper, we develop the theoretical analysis of this algorithm, the practical evaluation being skipped due to lack of room. 2 System model and problem definition We consider a typical 3-tier CDN topology (e.g. Akamai [NSS10]). There are three types of communication devices : a small number of sources, a medium size network of reflectors, and a large number of edge servers. The topology of a CDN is modeled by a directed graph G = (V,E), where V represents the communication devices, and E represents the communication links. Let V S,V R,V E V be the set of sources, reflectors and edge servers, respectively. They are constrained by their uplink capacity c(v), v V. There are three types of possible connections in E : E SR connects sources to reflectors, E RR allows communication between reflectors, and E RE delivers the various representations of the live stream to the edge servers. The live streams consist of l different channels. The raw video of each channel is transcoded into k representations, where the bit-rate of the i-th representation, 1 i k, is λ i. For simplicity of notation hereafter we denote by [m] the integer interval {1,...,m}. Also, let d i j be the i-th representation of the j-th channel, i [k], j [l]. Each representation d i j, i [k], j [l], is delivered through a set of trees in the network. We denote by T i j the set of delivery trees for d i j. Ultimately a CDN provider would like every edge server to receive all the representations it requires. This however might not be possible due to the capacity constraint of the CDN infrastructure. In such case, the CDN provider leverages statistics to prioritize the delivery [NSS10]. The preferences of edge servers in respect to the available representations is captured in a utility score, such that α i u j is the utility score that edge server u assigns to representation d i j. To evaluate the performance of a delivery scheme, the idea is thus to evaluate a utility score function α u (X u ) for each edge server u V E as follows : α u (X u ) = i [k] j [l] α i u j xu i j where X u is an indicator matrix of size k l such that x i j u has a value of 1 if u receives d i j and 0 otherwise. The Maximum Average Utility Score (MAUS) problem is essentially the maximization of the average utility score function of the edge servers, as summarized below. Problem 2.1 (MAUS). Given the topology and capacity constraints of a CDN, find delivery tree sets, {T i j } i [k], j [l], such that u VE α u (X u ) is maximized. Please note that this problem is a general optimization problem. We proved that this problem is NPcomplete based on a reduction from 3-SAT. Due to the space limitation, we could not provide the proof here (full paper under revision). 3 A fast near-optimal algorithm for practical scenario We focus on a practical scenario where all equipments are homogeneous. This scenario is typical from companies that deploy an infrastructure using customized routers. For example, the CDN providers in charge of delivering worldwide popular events (e.g., Olympic Games) develop the infrastructure according to the specific needs of the event and based on a set of homogenous equipments. This homogeneity results in a similar upload capacity, i.e. c(v) = C, v V S V R (in the case of Netflix, C = 10 Gbps [net12a]). We present now the algorithm that constructs delivery trees in a CDN with uniform equipment capacity C. The algorithm is based on the following two principles : (i) use a single delivery tree for d i j ; (ii) associate every reflector to at most one delivery tree. Then, the general idea is to deliver the representations in a greedy manner according to their potential revenue at the edge servers, i.e. we would like to deliver first the representations with the highest utility score per rate unit (uspru). For every edge server u and every representation d i j, we compute the uspru of receiving d i j at u as uspru(u,d i j ) = α i u j /λ i. The internals of representation d i j, i [k], j [l], delivery are as follows (illustrated in FIGURE 1). First d i j is forwarded from some source node to a single reflector. Then, d i j is disseminated through a tree 21/131

24 Algorithms for Multiple Video Channels in CDNs source intermediate reflectors border reflectors edge servers structure of reflectors, until they reach the edge servers. We refer to the reflectors which are connected to the edge servers as the border reflectors. Due to the capacity bound of C, every reflector can only forward a representation to C/λ i other reflectors. We denote by δ i this fan-out limitation. Also, let m i j be the number of border reflectors in T i j. Note that in order to serve g i j edge servers with d i j we need m i j = g i j /δ i border reflectors. FIGURE 1: T i j construction : δ i = 3, m i j = 4, g i j = 11, and 2 intermediate nodes. Lemma 3.1. In order to serve g i j edge servers, m i j 1 δ i 1 intermediate reflectors are required in T i j. Démonstration. For simplicity of notation we omit the subscript ( i j ). First we create m border reflectors and connect them to the g edge servers, with at most δ connections at each border reflector. Next, we define U as the set of reflectors in T that currently do not have a parent in T ; in the beginning U holds all the border reflectors. We build T in an iterative bottom-up fashion. At every step we : (a) choose δ nodes from U, denote them as A (if U < δ then A = U) ; (b) create a new reflector v (c) connect v to every reflector u A ; (d) update U by removing the subset A and adding v. This process continues until there is only one reflector in U, which is then connected to an arbitrary source node. It is easy to observe that the total number of intermediate reflectors used in the above construction is m 1 δ 1. Now we only need to decide on the number of edge servers g i j that will receive d i j, for every i [k], j [l]. We do it by iteratively going over the values of uspru in decreasing order. For every uspru(u,d i j ), if there are enough unused reflectors to support the possible increase in reflectors in T i j, they are added to T i j. The required increase in T i j is computed according to Lemma 3.1 for g i j + 1 edge servers. This continues until we reach the x -th uspru such that either all the requested representations are served to all the edge servers, or the representation in the considered uspru cannot be served due to lack of reflectors. Let R(x) be the number of reflectors that have been allocated after the x highest uspru-s have been processed. We have : R(x) = k i=1 l j=1 ( ) gi j (x)/δ i 1 g i j (x)/δ i 1 + δ i 1 where g i j (x) is the number of edge servers with a processed uspru related to representation d i j. Then, x = arg max x kl V E {R(x) V R }. In the following, we provide formal theoretical analysis about the running time and the approximation ratio of our algorithm. For the running time, there are two major parts : (a) creating and sorting uspru ; (b) building delivery trees. The first part takes O(k l V E log(k l V E )) time, whereas the second part is linear in k l V E. Therefore the running time of our algorithm is O(k l V E log(k l V E )). Then, we compare the utility score achieved by our algorithm S, and the best possible one (optimal) S. We denote by λ the bit-rate of the highest representation, that is λ = max i [k] λ i. Theorem 3.2. S ( 1 2λ C kl V R ) S. Démonstration. We start by drawing an upper bound on S. We define Q(x) the total capacity used by the representations that correspond to the first x uspru-s, and α(x) the sum of the utility scores that are fulfilled after the delivery of the first x uspru representations. The maximum available capacity at the reflectors is V R C. Clearly, if there existed x X such that Q(x ) = V R C, then the highest achievable utility would have been at most α(x ) ; this is because we deliver the representations in the decreasing order of uspru. However, x might not exist ; let z be the last uspru entry such that Q(z ) V R C. Let α z be the utility score of the z uspru. We can obtain an upper bound, S α(z ) + ( V R C Q(z ))α z. Now, let us focus on evaluating the score S obtained by our algorithm. Our construction incurs some capacity wastage as a result of using intermediate reflectors. In every delivery tree T i j there are m i j border 22/131

25 Jiayi Liu and Gwendal Simon reflectors, with at least m i j 1 of them delivering d i j to δ i edge servers each. Let φ i j be the capacity used in T i j to deliver d i j. We have φ i j (m i j 1)δ i λ i (m i j 1)(C λ i ). Now, we have to consider the unused capacities. Let σ i j be the capacity that is not used to deliver d i j to the edge servers in T i j ; this includes the overall capacity of intermediate nodes and the unused capacity by the border reflectors. According to Lemma 3.1 there are m i j + m i j 1 δ i 1 reflectors in T i j. We derive ) ( mi j 1 ( σ i j = = m i j + mi j 1 δ i 1 δ i 1 C +C λ i = C φ i j mi j 1 C/λ i 1 mi j 1 m i j + δ i 1 ) C (m i j 1)(C λ i ) C +C λ i 2(m i j λ i +C). The last inequality is due to the assumption that C λ i, for any i [k]. Let Φ be the total capacity used by the algorithm to deliver the representations to the edge servers ; we have Φ = k l i=1 j=1 φ i j = V R C k l i=1 j=1 σ i j V R C 2( V R max i [k] λ i klc). As the algorithm greedily delivers the uspru entries in decreasing order, the utility score is at least times the best possible one, which is the upper bound of S. We can therefore conclude, S Φ V R C S V R C 2( V R λ klc) S = (1 2λ V R C C kl ) S. V R Φ V R C 4 Conclusions and future work This paper depicts theoretical outcomes, but practical performances are excellent in realistic settings. For example upon the assumption of the highest representation bit-rate to be λ = 7 Mbps, and the capacity of reflectors to be C = 10 Gbps, with k = 10 (representations) and l = 3 (channels), the approximation ratio varies from for a CDN with 500 reflectors, to for larger CDNs with 5000 reflectors. As future direction for this work, it would be interesting to propose solutions for the general problem. In addition, the overall performance can benefit from non-centralized computation of delivery trees. Finally, it is of great importance to explore the computation of the utility score, which is influenced by a large number of parameters, especially in the context of DASH where the demand from clients may change very quickly. Références [ASV11] Micah Adler, Ramesh K. Sitaraman, and Harish Venkataramani. Algorithms for optimizing the bandwidth cost of content delivery. Computer Networks, 55(18) : , [Ing12] Mathew Ingram. You think the internet is big now? akamai needs to grow 100-fold. Om Malik, Jun http ://is.gd/3vtzpc. [net12a] Netflix Open Connect Appliance Hardware, http ://is.gd/1aomd9. [net12b] Netflix Open Connect Peering Guidelines, http ://goo.gl/zizna. [NSS10] Erik Nygren, Ramesh K. Sitaraman, and Jennifer Sun. The Akamai network : a platform for high-performance internet applications. Op. Sys. Rev., 44(3) :2 19, [SLC + 11] Sudipta Sengupta, Shao Liu, Minghua Chen, Mung Chiang, Jin Li, and Philip A. Chou. Peerto-peer streaming capacity. IEEE Trans. on Information Theory, 57(8) : , [ZAB + 12] Fen Zhou, Shakeel Ahmad, Eliya Buyukkaya, Gwendal Simon, and Raouf Hamzaoui. Minimizing Server Throughput for Low-Delay Live Streaming in Content Delivery Networks. In ACM NOSSDAV, [ZLW11] Can Zhao, Xiaojun Lin, and Chuan Wu. The streaming capacity of sparsely-connected P2P systems with distributed control. In INFOCOM, /131

26 Routage multi-flots économe en énergie dans les réseaux de capteurs et actionneurs N. Gouvy 1,2 and E. Hamouda 3 and N. Mitton 2 and D. Zorbas 2 1 LIFL, Université Lille 1 2 Inria Lille Nord Europe 3 Université de Californie L introduction d actionneurs dans les réseaux de capteurs a entrainé l émergence d un nouveau genre de protocoles de routage. Ceux-ci utilisent la mobilité contrôlée des actionneurs afin d adapter dynamiquement la topologie du réseau au trafic en relocalisant les nœuds sur le chemin de routage pour diminuer le coût des transmissions radio. Or, dans les réseaux de capteurs, il y a souvent plusieurs nœuds pour reporter un même évènement à la station de base. Dès lors, lorsque les différents chemins sont proches, certains nœuds appartiennent à plusieurs d entre eux. Ils vont alors sans cesse être relocalisés sur les différents chemins et mourir prématurément. En réponse à ce problème, nous proposons PAMAL le premier protocole de routage qui relocalise et sait détecter et tirer partie des intersections des chemins de routage de manière complètement locale. Une fois une intersection détectée entre deux chemins, PAMAL va provoquer leur fusion, et ce de plus en plus prêt des sources au cours et du temps. Les résultats de simulations montrent que ce comportement associé à un mécanisme d agrégation permet d améliorer la durée de vie du réseau de 37%. Keywords: routage, mobilité contrôlée, intersections, agrégation, réseaux de capteurs 1 Introduction Les avancées de l électronique et des technologies radio basse-consommation ont rendu possible l émergence des réseaux de capteurs sans fil. Ces réseaux sont constitués d un ensemble de capteurs indépendants alimentés par batterie qui collaborent via le médium radio. Ces réseaux ont des applications d importance (surveillance de feu de forêt, de champs de bataille) qui rendent cruciales un fonctionnement le plus durable possible. Une approche couramment employée pour améliorer la durée de vie d un réseau de capteurs consiste à augmenter la densité en capteurs, ceci afin de diminuer les portés de communications. Mais l augmentation de densité provoque parallèlement une augmentation des interférences. Une approche plus récente consiste à déployer des actionneurs, c est-à-dire de capteurs à mobilité contrôlée, approche qui permet des résultats supérieurs [WSC08]. Il n existe cependant qu une poignée de protocoles de routages tirant parti des actionneurs. Leur principe est similaire : aligner les nœuds sur la droite virtuelle formée par le nœud source S et la destination D. Or, dans un réseau de capteurs, il y a une forte probabilité qu un même événement soit détecté par plusieurs capteurs proches, qui vont alors chacun émettre des données à router vers la destination. De par leur origine géographique proche, on observe dans le réseau plusieurs chemins de routage d autant plus proches qu on se rapproche de la destination. Il y a alors une forte probabilité que certains nœuds du réseau puissent appartenir à plusieurs chemins de routage, et donc être relocalisés alternativement sur chacun d entre eux par les différents routages. Ces relocalisations vont provoquer la mort prématurée de ces nœuds et interrompre le routage. C est pourquoi nous proposons PAMAL (PAth Merging ALgorithm). PAMAL est un protocole de routage géographique pour actionneurs qui optimise la topologie du réseau. Mais PAMAL va aussi détecter et tirer parti de ces intersections des chemins de routage. PAMAL va faire stopper les oscillations des Nœuds d Intersections (NI). Ces NI vont alors avertir leur voisinage immédiat de les considérer comme une destination temporaire. Cela va alors modifier les relocalisations des nœuds situés en amont des NI. PAMAL va dès lors provoquer la fusion deux à deux des différents chemins de routage qui s entrecroisent, et ce de plus en plus loin de la destination. C est cette partie fusionnée, sur laquelle une agrégation des paquets est réalisée, qui Ce travail est partiellement financé par le CPER NPDC/FEDER Campus Intelligence Ambiante et l ANR BinThatThinks 24/131

27 N. Gouvy and E. Hamouda and N. Mitton and D. Zorbas va permettre d économiser en énergie. L article est organisé comme suit : la section 2 décrit le protocole CoMNet que PAMAL étend. Dans la section 3 nous détaillons la gestion des intersections faite par PAMAL. Les résultats de simulation de PAMAL sont détaillés dans la section 4. Enfin nous concluons dans la section 5. 2 Prérequis PAMAL est une extension du protocole CoMNet [EMSR11]. Ce dernier est un protocole de routage géographique pour réseau de capteurs et actionneurs ayant une approche coûts sur progrès[kns06]. Ainsi, un nœud U ayant un paquet à router jusqu au nœud D choisit comme prochain saut son voisin V -plus proche de D que lui-même- qui minimise le ratio du cout global sur le progrès effectué vers la destination. On entend par coût global la somme des coûts de transmission C s (.) et de relocalisation de V en V noté C m ( VV )). Autrement dit, est élu le voisin V de U qui minimise l équation suivante : v = min C s( UV ) + C m ( VV ) UD V D CoMNet intègre plusieurs schémas de relocalisation des nœuds pour s adapter aux mieux aux différents cas possibles : CoMNet ORouting on the Move qui aligne les nœuds sur la droite virtuelle (SD) CoMNet Move (DSr) aligne les nœuds sur la droite (SD) tout en les espaçant de façon égale. CoMNet Move r selon lequel V est relocalisé à l intersection entre la droite formée par (VD) et le cercle centré en u et de rayon fixé. 3 PAMAL S1 B Dans PAMAL, lorsqu un nœud détecte qu il reçoit des paquets d origines différentes, il devient un IN. C Il va arrêter d osciller entre les différentes relocalisations IN1 issues des différents chemins et commencer à A IN agréger les paquets des deux chemins. Ainsi, dans la K L D Figure 1 le nœud E reçoit des paquets provenant des S2 IN2 chemins S1...D et S2...D. Le nœud C, appartenant Y Z au chemin S1...D, demande à E de se relocaliser en E1. Alors que Z, appartenant à S2...D), lui demande de se relocaliser en E2. E va alors devenir un IN et FIGURE 1: Intersection des chemins S1...D et S2...D en E. arreter d osciller entre E1 et E2 et va se relocaliser Apparition d un IN qui se relocalise et agrège les paquets. en l isobarycentre de E1, E2, E. Les paquets routés sur la partie commune aux deux chemins IN...D sont agrégés. Une fois arrivé en sa nouvelle position, l IN avertit son voisinage de son existence et de sa position. Tous les nœuds qui reçoivent ce message sont alors informés que quand ils doivent router un paquet venant de S1 ou S2 vers D, ils doivent le faire passer par l IN. L IN remplace alors la destination D dans leurs schémas de relocalisation. La Figure 2 propose un agrandissement de la Figure 1. Le nœud E est devenu IN et s est relocalisé. Il en avertit ses voisins. L apparition de l IN va alors provoquer une relocalisation de C sur la droite (B IN) et non plus sur (S1 IN), et une relocalisation de Z sur (Y IN) au lieu de (S2 IN) et faire FIGURE 2: L apparition de l IN modifie les calculs des fusionner les chemins de routage S1...D et S2...D. schémas de relocalisations 25/131

28 Routage multi-flots économe en énergie L IN remplaçant la destination -localement- il provoque une fusion des chemins de routage en amont de sa position. Cette fusion peut permettre l émergence d un autre IN pour les mêmes sources/destination encore plus en amont. Dans cette hypothèse, l ancien IN, qui recevrait alors des paquets déjà agrégés, avertit son voisinage qu il n est plus un IN et reprend un comportement standard. Routage après routage, la partie fusionnée des chemins de routage s agrandit. Le comportement d un nœud qui reçoit un paquet est détaillé dans l Algorithme 1. Algorithm 1 ondatapacketreceive(p) - Executé par un nœud U 1: originepaquetprecedent {initialisé au démarage à -1} 2: if estunni(u) then 3: if estaggrege(p) then 4: redevientstandard(u); 5: end if 6: else if originepaquetprecedent = 1 then 7: originepaquetprecedent origine(p); 8: else if origin(p)! = previousorigin then 9: demarreaggregation(u); 10: devientin(u); 11: end if 12: transmet(p); 4 Résultats Nous évaluons les performances de PAMAL comparées à CoMNet, le protocole de routage pour actionneurs le plus efficace de notre connaissance. Les simulations, réalisées sur le simulateur WSNET, ont été effectuées sur des topologies de 500x500m avec des nœuds uniformément et aléatoirement répartis. Des densités en capteurs allant de 15 á 30 ont été considérées, ainsi que des paquets de taille 200 ou 400 octets avec une entête de 40 octets. Le facteur d agrégation a été fixé à 1 pour 2. Intersection Frequency (in %) CoMNet, C s (.)=C m (.) CoMNet, C s (.)>>C m (.) CoMNet, C s (.)<<C m (.) Network Lifetime (in Seconds) CoMNet w/. Aggregation 200B CoMnet w/. Aggregation 400B ComNet 200B ComNet 400B PAMAL 200B PAMAL 400B Network average degree Average Network Degree FIGURE 3: Fréquence d intersection de chemins avec deux sources et une destination aléatoires. FIGURE 4: Durée de vie du réseau. La Figure 3 montre que la fréquence d intersection de deux chemins de routage formés par deux sources et une unique destination toutes aléatoirement choisies selon la densité des topologies selon l importance relative des coûts de transmission C s (.) ou de relocalisation C m (.). Les résultats confirment l intérêt de PAMAL avec jusqu à 25% des topologies (aléatoires) présentant des intersections. Dans la Figure 4 on peut observer la durée de vie moyenne du réseau en fonctionde sa densité, de la taille des paquets routés et du protocole employé. On appelle durée de vie moyenne du réseau la moyenne des dates maximales de réception par la destination d un paquet pour chacune des sources. Si on observe un léger gain grâce. http ://wsnet.gforge.inria.fr 26/131

29 N. Gouvy and E. Hamouda and N. Mitton and D. Zorbas à l utilisation de l agrégation (CoMnet vs CoMNet w/. aggregation), on constate un gain allant jusqu à 37% en utilisant PAMAL au lieu de CoMNet : le mécanisme de fusion de chemins permet une économie d énergie significative qui permet au réseau de fonctionner plus longtemps. Length of merged part (in Hops) CoMNet, C s (.)=C m (.) PAMAL, C s (.)=C m (.) CoMNet, C s (.)>>C m (.) PAMAL, C s (.)>>C m (.) CoMNet, C m (.)>>C s (.) PAMAL, C m (.)>>C s (.) Length of merged part (in Hops) CoMNet, C s (.)=C m (.) PAMAL, C s (.)=C m (.) CoMNet, C s (.)>>C m (.) PAMAL, C s (.)>>C m (.) CoMNet, C m (.)>>C s (.) PAMAL, C m (.)>>C s (.) Time (in Second) Time (in Second) FIGURE 5: Longueur de chemin fusionnée, densité 15, taille des paquets routés 200 octets FIGURE 6: Longueur de chemin fusionnée, densité 15, taille des paquets routés 400 octets Cette fusion des chemins au fur et à mesure des routages est confirmée par les Figures 5 et 6. Plus précisément on observe que la longueur du chemin commun augmente plus rapidement avec PAMAL que CoMNet et reste significativement plus longue grâce au principe des IN, et quelque soit la densité, ou la taille des paquets. Quand les nœuds commencent à mourir, cette partie fusionnée tend à se réduire avec CoMNet alors qu elle réaugmente dans PAMAL une fois que la détection d un IN a eu lieu. 5 Conclusions Dans ce papier nous avons introduit PAMAL. PAMAL est un un protocole de routage pour réseau de capteurs et actionneurs qui tire parti de la mobilité contrôlée des actionneurs pour optimiser la topologie du réseau d un point de vue énergétique. Grâce à l intégration d un mécanisme de détection des intersections, il permet de mettre un terme aux oscillations des nœuds appartenant à plusieurs chemins de routage qui visent une même destination. Il provoque ensuite la fusion de ces différents chemins, la longueur fusionnée allant croissant au cours du temps, tout en y réalisant une agrégation de paquets. De plus, PAMAL reste purement local, et donc adapté à de multiples topologies réseaux. Nos résultats montrent que PAMAL améliore significativement la durée de vie du réseau. En effet, la durée de vie moyenne d un réseau de capteurs avec deux sources émettant vers une même destination augmente de 37% grâce à la gestion des intersections. Les résultats confirment une fusion des chemins de routage, la partie fusionnée étant de plus en plus longue au fur et à mesure des routages. C est une amélioration significative par rapport aux protocoles existants. Nos futurs travaux se concentreront sur l augmentation du taux de livraison des protocoles de routage dans les réseaux d actionneurs. Références [CSR04] J. Carle and D. Simplot-Ryl. Energy-efficient area monitoring for sensor networks. Computer, 37(2), [EMSR11] E. Hamouda Elhafsi, N. Mitton, and D. Simplot-Ryl. Energy efficient mobile routing in actuator and sensor networks with connectivity preservation. In ADHOC-NOW, [KNS06] J. Kuruvila, A. Nayak, and I. Stojmenovic. Progress and location based localized power aware routing for ad hoc sensor wireless networks. Int. Journal on Distributed Sensor Networks, (IJDSN), 2, [WSC08] W. Wei, V. Srinivasan, and K-C. Chua. Extending the lifetime of wireless sensor networks through mobile relays. IEEE/ACM Trans. on Networking, 16(5), /131

30 FixMe : détection répartie de défaillances isolées E. Anceaume 1, E. Le Merrer 2, R. Ludinard 3, B. Sericola 3, G. Straub 2 1 CNRS UMR 6074 IRISA, 2 Technicolor Rennes, 3 INRIA Rennes Bretagne-Atlantique, Dans cet article, nous nous intéressons au problème de la détection de défaillances dans les réseaux large-échelle. La résolution de ce problème est une des clés de la réduction des coûts de maintenance des opérateurs télécom ou des opérateurs over-the-top. Dans ce contexte, nous présentons une solution distribuée permettant de détecter et distinguer les défaillances isolées des défaillances de groupe en O(logN) messages, où N est le nombre de noeuds dans le système. Keywords: Système réparti, réseau logique, détection d erreur, large échelle 1 Introduction De nos jours, les équipements connectés sont de plus en plus présents chez l utilisateur. Ces équipements fournissent des services au travers du réseau. L opérateur, en déployant ses solutions souhaite être capable de s assurer du bon fonctionnement de ses applications ou équipements afin d être capable de réagir rapidement en cas de dysfonctionnement. Cette tâche consiste à surveiller de manière continue le comportement de chacun des équipements. Cependant, la taille de la population à surveiller pose une réelle limite et de ce fait des solutions proactives sont proposées pour pallier ce problème. Ainsi, les opérateurs déploient des centres de support permettant aux utilisateurs détectant un dysfonctionnement d appeler et d être pris en charge. Les équipes de support peuvent alors se connecter sur les équipements terminaux et investiguer les causes du dysfonctionnement. Cependant, la notification de dysfonctionnement est laissée à l appréciation de l utilisateur. Il arrive donc que le support soit mobilisé alors qu il n y a pas de problème réel, mobilisant ainsi inutilement des ressources. Par contre, dans le cas d une réelle défaillance, la notification n intervient qu après que l utilisateur en ait pris conscience, augmentant ainsi significativement le temps de prise en charge. Il semble donc intéressant de proposer de nouvelles techniques pour la surveillance afin de réduire les délais de prise en charge des notifications et diminuer les détections inutiles réduisant ainsi le coût induit par les tâches de surveillance et de support. Le nombre potentiellement grand d équipements à surveiller plaide en faveur d une gestion décentralisée au niveau même des équipements ciblés par la tâche de surveillance. Cependant, l opérateur ne maîtrise pas nécessairement l intégralité du réseau d interconnexion et donc de ce fait ne peut pas collecter d informations au niveau de celui-ci. Le déport de la tâche de surveillance au niveau des équipements terminaux a déjà été envisagé et des procédures standards [Bro] existent pour la plupart des équipements déployés mais sont désactivées dans la pratique. En effet, les équipements peuvent alors détecter une défaillance alors que celle-ci est en fait située dans le réseau. Dans ce cas, des milliers d alarmes inutiles sont envoyées à l opérateur. Les équipements n étant pas capables de déterminer si l origine du problème se situe dans l équipement ou dans le réseau, l opérateur désactive cette fonctionnalité afin d éviter l envoi massif d alarmes. Il serait donc intéressant d être capable de distinguer au niveau de l équipement si la défaillance est isolée ou si elle impacte un grand ensemble de nœuds, on parle alors de défaillance globale. Cette distinction permettrait alors aux seuls nœuds concernés par une défaillance locale d envoyer une alarme. Dans cet article, nous proposons une solution visant à faire la distinction entre défaillances isolées et défaillances globales au niveau des équipements terminaux et nous proposons FixMe, 28/131

31 E. Anceaume, E. Le Merrer, R. Ludinard, B. Sericola, G. Straub y 1 Cell4 Cell5 y 1 Cell4 Cell5 Cell3 s hook Cell3 O Cell3 1 2 Cell2 Seed x 1 O Cell1 1 2 Cell2 Figure 1: FixMe avant (à gauche) et après (à droite) une opération split x 1 une solution de surveillance répartie auto-organisante, dynamique et passant à l échelle. Dans la suite de l article, nous décrivons l architecture de FixMe ainsi que l utilisation qui en est faite pour distinguer les défaillances isolées des défaillances globales. 2 Architecture de FixMe On considère un ensemble de N nœuds connectés au réseau et pouvant communiquer ensemble. Chaque nœud du système possède un identifiant unique obtenu au moyen d une fonction de hachage et a accès à un ensemble de D services au travers du réseau. Pour chacun de ces services, un nœud p est capable de calculer la valeur à l instant t de deux fonctions Q i (p, t) et A i (p, t). La fonction Q i (p, t) représente la qualité d expérience du service i perçue à l instant t par le nœud p. On peut considérer sans perte de généralité que les valeurs prises par Q i (p, t) appartiennent à l intervalle [0, 1]. On définit alors la position d un nœud p à l instant t par Q(p, t) = (Q 1 (p, t),..., Q D (p, t)). D autre part, chaque segment de qualité est séparé en n i intervalles correspondant à des classes de qualités du service i. La fonction A i (p, t) est utilisée pour la détection d anomalies. Celle-ci est alimentée par les valeurs de Q i des instants précédents. Cette fonction dépend du type de service considéré et peut être une fonction de seuil très simple ou une détection plus évoluée du type Holt-Winters ou Cusum. On considère ici que la sortie de ces fonctions est un booléen permettant de caractériser la variation de qualité comme une anomalie. De manière similaire à CAN [RFH + 01], FixMe organise les nœuds du système dans un espace euclidien torique à D dimensions [0, 1] D. Chaque dimension i est découpée en n i intervalles. Ainsi l espace initial est partitionné en zones élémentaires appelées buckets correspondant au produit cartésien de D intervalles élémentaires. Le partitionnement de l espace en buckets est statique et est un paramètre du système. FixMe place les nœuds dans cet espace en fonction de la position Q(p, t) = (Q 1 (p, t),..., Q D (p, t)) de chacun. Ainsi, quand un nœud entre dans le système, il est inséré dans l unique bucket correspondant à sa position. Un bucket contenant plus de S min nœuds est appelé seed. L état d un bucket (seed ou non seed) varie dynamiquement en fonction du nombre de nœuds qu il contient. FixMe partitionne de manière dynamique l espace en cellules dont le bucket est l unité élémentaire. Une cellule est un hyper-rectangle de l espace contenant au plus un seed. Les seeds sont représentés dans la Figure 1 par les carrés noirs et les cellules par les zones de couleurs. Les cellules sont connectées entre elles par les nœuds présents dans les seeds. Ainsi lorsqu un nœud perçoit une variation de sa qualité, il effectue une requête de lookup aux nœuds du seed de sa cellule qui l orientent vers le seed de la cellule la plus proche de sa nouvelle position. En agissant ainsi de proche en proche le nœud arrive alors à atteindre sa nouvelle cellule en O(logN) messages. Le détail des algorithmes et des complexités se trouve dans [ALS + 12]. Lorsqu un nœud se déplace dans FixMe, il peut s insérer dans un bucket contenant déjà S min nœuds. Le bucket devient alors un seed et FixMe sépare la cellule en deux nouvelles cellules en fonction des positions des seeds dans la cellule initiale. Chaque seed prévient les cellules voisines 29/131

32 FixMe : détection répartie de défaillances isolées Figure 2: CAN (au centre) et FixMe (à droite) avec une distribution non-uniforme des nœuds(à gauche) de cette séparation. Le processus de notification des cellules voisines nécessite l envoi de O(D) messages. La Figure 1 illustre la séparation de deux cellules : S min nœuds sont présents dans la cellule 3 dans un bucket différent du seed. Lorsqu un nouveau nœud entre dans ce bucket, celui-ci devient un seed et la cellule 3 se sépare en deux nouvelles cellules 1 et 3 en fonction des positions des seeds. À l inverse, lorsqu un nœud quitte un seed contenant S min nœuds, ce seed redevient un bucket classique et la cellule qui le contient n a plus de seed. Dans ce cas, les nœuds du bucket déterminent la position du hook de la cellule. Le hook de la cellule est le premier bucket, dans l ordre lexicographique, voisin d un des coins de la cellule n appartenant pas à celle-ci. La cellule contenant le hook prend alors en charge la responsabilité de la cellule dépourvue de seed. Les deux cellules peuvent éventuellement être fusionnées en une seule si leur géométrie le permet. Enfin les cellules voisines sont notifiées de la disparition du seed. Cette notification requiert dans le pire des cas l envoi de 2Dn D 1 log(n/2) messages avec n = max 1 i D n i. Les hooks sont représentés dans la Figure 1 par les triangles noirs. On voit par exemple que la cellule 5 est sous la responsabilité du seed de la cellule 2 mais ces cellules ne sont pas géométriquement unifiables. À l inverse quand la cellule 1 sur la figure de droite disparaît, la cellule 3 prend en charge son espace en unifiant les deux cellules comme on le voit sur la figure de gauche. Traditionnellement, les systèmes qui utilisent des approches de ce type organisent les nœuds en fonction de leurs identifiants issus d une fonction de hachage [RFH + 01]. Celle-ci ayant la propriété de distribuer uniformément les identifiants sur l espace d adressage, le placement qui en résulte est alors également uniforme. Dans le cas présent, nous ne bénéficions pas de cette propriété. En effet, comme les nœuds se placent en fonction de mesures de qualités perçues et que celles-ci n ont aucune raison d être uniformément réparties, il se crée potentiellement des endroits du système qui sont fortement peuplés et d autres dépourvus de nœuds. La Figure 2 illustre ce phénomène : lorsque les nœuds sont placés suivant une répartition non uniforme (à gauche), le comportement de CAN se dégrade (au centre), augmentant ainsi significativement le nombre de zones traversées lors d un lookup, contrairement à FixMe (à droite) qui se stabilise dès que les cellules ne contiennent plus qu un bucket, limitant ainsi la longueur des chemins empruntés par un lookup. Afin de conserver les propriétés de passage à l échelle de FixMe, nous proposons d organiser les nœuds au sein de chaque seed en utilisant un réseau structuré. De nombreuses solutions de la littérature peuvent être employées, mais il faut cependant garder à l esprit que des mouvements massifs de nœuds peuvent se produire dans le cas de défaillances réseau. Il est ainsi indispensable de choisir des structures résistantes au churn et qui n organisent pas les nœuds en fonction de critères géographiques. 3 Défaillances isolées Nous décrivons maintenant l algorithme 1 utilisé par FixMe pour déterminer si une défaillance est isolée ou non. Celui-ci est exécuté périodiquement par chaque nœud et repose sur trois tâches 30/131

33 E. Anceaume, E. Le Merrer, R. Ludinard, B. Sericola, G. Straub Data : T : délai nécessaire pour que chacun des nœuds se soit réplacé dans l overlay τ : seuil pour considérer une défaillance comme isolée Output : p est replacé dans l overlay à l endroit adéquat et a envoyé une alerte en cas de détection de défaillance isolée. begin Task 1 r r+1; oldposition p.bucket ; newposition Q(p,r); newbucket p.lookup(newposition); if newbucket p.bucket then p.leave(); p.join(r,p); end EndTask if i, 1 i D, A i(p, r)=true then Task 2 h H(oldposition, newposition, r 1); p.incrementvalue(h); EndTask Wait Until T; Task 3 n p.cell.seed.get(h); if n τ then send FixMe msg to Management Operator; end EndTask end end Algorithme 1 : p.updateposition(r :round) élémentaires : déplacement, diagnostique et alerte. Soit le nœud p exécutant l algorithme pendant la ronde r ; ce nœud calcule sa nouvelle position Q(p, r). Soient b r, c r, s r représentant respectivement le bucket auquel appartient p à l instant r, la cellule en charge de b r et le seed en charge de c r. Si b r est différent de b r 1 alors p quitte b r 1 et rejoint b r. Si la variation de qualité est suffisamment importante pour être considérée comme une anomalie, alors il existe un service i tel que A i (p, r) = True. Dans ce cas, p cherche à déterminer si cette anomalie est isolée ou non en exécutant la tâche 2. Les nœuds de s r sont organisés en DHT suivant leurs identifiants. Le nœud p calcule une clé aléatoire H(b r 1, b r, r 1) où H est une fonction de hachage. Ensuite p contacte le nœud n de s r en charge de cette clé pour incrémenter la valeur d un compteur initialisé à zéro au début de la ronde (ligne 15 de l algorithme). Après un délai T, nécessaire au replacement de chaque nœud du système, p contacte de nouveau le nœud n pour obtenir la valeur du compteur (ligne 19). Si cette valeur est inférieure à τ, paramètre du système, alors p considère cette défaillance comme isolée et envoie une alerte à l opérateur. Nous montrons dans [ALS + 12] que l algorithme 1 permet de détecter les défaillances isolées de manière répartie avec un coût de O(logN) messages où N est le nombre de nœuds dans le système. Nous envisageons à présent d évaluer la performance et la précision des algorithmes proposés au moyen d une étude probabiliste. Références [ALS + 12] E. Anceaume, R. Ludinard, B. Sericola, E. Le Merrer, and G. Straub. FixMe : A Self-organizing Isolated Anomaly Detection Architecture for Large Scale Distributed Systems. In Proceedings of the 16th International Conference On Principles Of Distributed Systems (OPODIS), page 12, Rome, Italie, December [Bro] Broadband Forum. TR-069 CPE WAN Management Protocol Issue 1, Amend.4, [RFH + 01] Sylvia Ratnasamy, Paul Francis, Mark Handley, Richard M. Karp, and Scott Shenker. A scalable content-addressable network. In SIGCOMM, pages , /131

34 Routage sécurisé et résilient pour réseaux de capteurs sans fil K. Altisen, S. Devismes, R. Jamet et P. Lafourcade VERIMAG, Centre Équation - 2, avenue de Vignate, GIÈRES Nous proposons un algorithme résilient et sécurisé pour le routage dans les réseaux de capteurs sans fil. Il garantit la confidentialité des données routées, ainsi que l authenticité et l intégrité des messages les transportant. Ces propriétés ont été prouvées avec CryptoVerif. Nos résultats expérimentaux montrent que la résilience de notre algorithme face à plusieurs scénarios d attaque est meilleure que celle de plusieurs autres protocoles de routage, surtout dans des réseaux peu denses. De plus, notre algorithme s adapte face aux attaquants dont le comportement évolue au cours du temps. Keywords: routage, réseaux de capteurs, sécurité, résilience. 1 Introduction Les réseaux de capteurs sans fil sont des réseaux maillés, formés de nombreux capteurs. Ces capteurs fonctionnent grâce à des batteries. Ils sont limités en mémoire et en capacité de calcul. Enfin, ils communiquent par radio. Le routage est un problème central dans ces réseaux. Nous considérerons ici le routage convergent : il y a un nœud particulier dans le réseau, appelé puits, et toutes les données des autres nœuds, appelés sources, sont destinées à ce puits. Les caractéristiques des réseaux de capteurs sans fil en font des systèmes propices aux attaques. Nous considérons ici un scénario critique où un intrus a compromis plusieurs nœuds. L intrus contrôle entièrement les nœuds compromis ; en particulier, il a à la fois accès aux données internes de ces nœuds (e.g., les clés cryptographiques) et aux messages qu ils ont reçus. L attaquant peut alors perturber le routage à deux niveaux. Il peut s attaquer aux données, e.g., contrefaire des messages afin de faire livrer des informations erronées à l application. Il peut également attaquer le routage même, e.g., il peut perdre des messages ou en créer pour dégrader la qualité de service du réseau. Nous proposons un algorithme de routage convergent, SR3 (Secure Resilient Reputation-based Routing), qui lutte à la fois contre les attaques au niveau des paquets et au niveau routage. SR3 utilise des primitives cryptographiques adaptées aux réseaux de capteurs sans fil [3] cryptographie symétrique, nonces (des valeurs aléatoire fraîches et imprédictibles) et fonctions de hachage pour assurer plusieurs propriétés de sécurité : la confidentialité des données routées et l impossibilité de contrefaire des messages les transportant (cette propriété implique l authenticité et l intégrité de ces messages). Ensuite, SR3 résiste aux attaques au niveau routage en assurant un bon niveau de résilience. Cette notion a été définie comme la capacité d un réseau à continuer de fournir une qualité de service raisonnable lorsque celui-ci subit des attaques [4]. Dans notre cas, la résilience est mesurée en fonction du taux global de livraison des messages et de l équité entre les différents taux des nœuds honnêtes. Nous confrontons expérimentalement SR3 à plusieurs protocoles : des protocoles classiques comme la marche aléatoire uniforme (RW), le routage géographique (GFG) et le routage gradient (GBR) ; ainsi que des protocoles dont l objectif est la résilience. Pour ces derniers, nous considérons les trois solutions (RGBR, PRGBR et PRDGBR) proposées dans [4]. Ces algorithmes sont des variantes du protocole GBR, qui routent les messages suivant un arbre couvrant en largeur enraciné au puits. Ces trois variantes consistent à introduire de l aléa et des duplications dans GBR. Notre étude montre que la résilience de SR3 est meilleure que celle de ces différents protocoles. De plus, contrairement à ces algorithmes, SR3 s adapte face aux attaquants dont le comportement évolue au cours du temps. 2 Présentation de SR3 Nous considérons des réseaux connexes bidirectionnels, où tous les nœuds honnêtes ont régulièrement des données à router vers le puits. Chaque nœud dispose d un identifiant unique, d une clé partagée avec le puits, et peut se servir de cryptographie symétrique, de fonctions de hachage et de nonces. Les nœuds 32/131

35 K. Altisen, S. Devismes, R. Jamet et P. Lafourcade connaissent également leurs voisins. Le code de notre algorithme, ainsi que les détails de notre modélisation et de nos preuves sont disponibles dans notre rapport technique [1]. Principe. Introduire de l aléa dans un algorithme de routage est intéressant pour sa résilience car cela rend le routage imprévisible par l attaquant. Ainsi, SR3 est conçu comme une marche aléatoire renforcée, se fondant sur un mécanisme de réputation pour calculer la probabilité de choisir un voisin au prochain saut. L idée est d augmenter la probabilité de router un message via un voisin si celui-ci se comporte bien. Pour cela, SR3 s appuie sur des accusés de réception. Notre algorithme assure que pour chaque accusé de réception valide reçu, le message correspondant a bien été livré au puits. De cette manière, le nœud pourra légitimement augmenter sa confiance envers le voisin à qui il a envoyé le message en premier. Après un certain temps, tous les nœuds routeront de préférence leurs messages via leurs voisins de confiance. Ainsi, les messages auront tendance à suivre des routes qui les amènent sûrement au puits. SR3 se fonde sur des nonces. Chaque message routé par SR3 est identifié par un nonce N v, qui est généré par le nœud initiateur v. Le nœud v chiffre ce nonce avec les données à envoyer, à l aide de la clé qu il partage avec le puits, k vs. Le chiffrement C et l identifiant du nœud v sont ensuite routés vers le puits. Une fois le message validé, le puits produit l accusé de réception N v,v. Ce dernier est renvoyé à l émetteur initial v. Ainsi, à la réception de l accusé, v est certain que le puits a reçu le message. Cependant, un attaquant peut modifier à l aveugle le contenu d un paquet reçu. Pour éviter que le puits ne livre des informations erronées à l application, nous ajoutons au message une empreinte H du nonce N v, créée avec une fonction de hachage publique. À la réception d un message, le puits déchiffre C avec la clé de l émetteur prétendu pour obtenir N v, et y applique la fonction de hachage. Le résultat doit être égal à H pour que le message soit considéré valide. De cette manière, si un attaquant altère le chiffrement C ou l identité de l émetteur d un message, le puits détecte ces changements et rejette le message. Mécanisme de réputation. À la réception d un accusé de réception, le nœud v ayant initié le routage du message correspondant m peut conclure que m a été livré. Dans ce cas, v augmente la probabilité associée au voisin à qui m a été envoyé en premier. Pour ce faire, lors du premier envoi de m, v stocke le nonce de m et l identifiant du premier destinataire dans une liste L Queue. À la réception d un accusé de réception, v vérifie s il est le destinataire de l accusé, puis si le nonce est contenu dans L Queue. Dans ce cas, v récupère l identifiant du voisin correspondant, augmente sa réputation et supprime l entrée de L Queue. Si v est le destinataire de l accusé de réception, mais que la liste ne contient pas l entrée correspondante, l accusé est simplement ignoré. À cause des limitations de mémoire, la taille de L Queue est bornée à s Q éléments. Quand un nœud doit router un message mais que la liste est pleine, l élément le plus ancien est effacé. De cette manière les informations les plus récentes sont prioritaires. Nous remarquons également que les messages perdus ou dont l accusé a été perdu finissent par être supprimés de la liste. Enfin, il est possible qu un message de données m retourne au nœud v qui l a généré, à cause d un cycle dans le réseau. Dans ce cas, la validité du message est vérifiée, puis le routage de m est réinitialisé et l ancienne entrée dans L Queue est remplacée par la nouvelle. Évaluation de la réputation. Pour choisir le prochain nœud à qui va être envoyé un message, un nœud effectue un choix aléatoire parmi ses voisins, pondéré par leur réputation. La réputation d un voisin correspond au nombre d occurrences de son identifiant dans la liste L Routing : à chaque réception d un accusé de réception validant la livraison d un message, le nœud initiateur augmente sa confiance envers le voisin choisi comme premier relais en ajoutant son identifiant dans cette liste. Le choix du prochain saut suit la loi de probabilité suivante : pour un nœud v, soit X la variable aléatoire qui représente le voisin de v à qui envoyer le message. Soit δ v le nombre de voisins de v, L Routing x le nombre d occurrences d un nœud x dans L Routing, et L Routing le nombre total d éléments de cette liste. La probabilité de faire suivre un message à x est : Pr(X = x) = L Routing x +δ 1 v L Routing +1. Intuitivement, si un nœud doit router un message, il va choisir une valeur au hasard parmi L Routing ou un joker. Si un identifiant de nœud est tiré, le message lui sera transmis. Dans le cas du joker, un voisin sera choisi uniformément au hasard. Ainsi, plus le nœud fait confiance à un voisin, plus il lui transmettra de messages. Cependant, il y a toujours une probabilité positive de choisir un nœud sans considérer les réputations. Afin d assurer une résilience forte face aux attaquants qui changent de comportement au fil du temps, L Routing est une liste FIFO de taille bornée par s R. Ainsi, les informations stockées seront toujours les plus 33/131

36 Routage sécurisé et résilient pour réseaux de capteurs sans fil fraîches. De cette manière, si un attaquant se comporte bien dans un premier temps, sa réputation sera bonne. Si ensuite, il décide de perdre des messages, sa réputation baissera graduellement grâce aux accusés de réception des messages passant par d autres chemins. Routage des accusés de réception. Un accusé de réception n est émis que si le message correspondant m a été livré par le puits. Nous pouvons donc supposer que le chemin suivi par m est sûr. Comme nos liens sont bidirectionnels, nous routons l accusé de réception autant que possible suivant le chemin inverse de m. Pour ce faire, chaque message de données laisse une trace de son passage dans tous les nœuds qui le relaient. Cette trace est stockée au niveau de chaque nœud dans la liste L AckRouting : après chaque réception d un message, les nœuds relais stockent l empreinte du nonce du message et l identifiant du voisin qui l a relayé précédemment. Ces informations seront ensuite réutilisées pendant le routage des accusés de réception : quand un nœud v reçoit un accusé de réception, il calcule l empreinte du nonce de cet accusé de réception, et cherche dans L AckRouting si le chemin correspondant est connu. Si c est le cas, l accusé de réception est relayé au nœud associé. Sinon, il est renvoyé à un voisin choisi uniformément au hasard. Si un message de donnée boucle et revisite un nœud, l information la plus pertinente sur sa provenance est la plus ancienne. Par conséquent, lors des ajouts dans L AckRouting, le nœud doit toujours vérifier s il possède déjà une information sur ce message : si c est le cas, l ancienne entrée est conservée. Les accusés de réception peuvent cependant être perdus par des nœuds compromis. Afin d éviter d encombrer la mémoire des nœuds avec les informations de routage pour ces accusés, L AckRouting est de taille maximale s A, et les ajouts dans une liste pleine suppriment les plus anciens éléments. Enfin, un attaquant peut contrefaire un accusé de réception avec un faux destinataire. Ces faux accusés de réception peuvent être relayés indéfiniment. Puisqu un nœud ne peut pas faire confiance à ses voisins, nous ne pouvons pas nous baser sur eux pour savoir si un accusé doit être relayé ou stoppé. Pour contourner ce problème, chaque nœud choisit de ne pas retransmettre un accusé de réception avec une probabilité N 1, où N est une borne supérieure sur le nombre de nœuds. Ainsi, un accusé de réception fera en moyenne N sauts avant d être supprimé. Un avantage de ce mécanisme est qu il favorise les routes courtes. En effet, les accusés de réception suivant des routes longues seront souvent supprimés avant d atteindre leur destination. Or, la longueur de la route suivie par un accusé est corrélée à la longueur de la route suivie par le message correspondant. Ainsi, la réputation des voisins participant à des routes longues sera peu souvent renforcée. Sécurité. Nous avons analysé les propriétés de sécurité de SR3 à l aide de CryptoVerif [2]. À partir de jeux créés en fonction du protocole, des propriétés désirées et des primitives cryptographiques utilisées, CryptoVerif détermine une borne sur la capacité d un attaquant à casser ces propriétés. Cette borne dépend des tailles de paramètres et des propriétés des primitives cryptographiques utilisées. Nous avons prouvé trois propriétés de SR3 : premièrement, le protocole garantit la confidentialité des données routées. Deuxièmement, il est impossible de contrefaire des messages de données (cette propriété implique l authenticité et l intégrité de ces messages). Troisièmement, il est impossible de créer un accusé de réception pour un message qui n a pas encore été livré au puits. 3 Analyse expérimentale Méthodologie et paramètres. Nous avons évalué expérimentalement la résilience de SR3 face à RW, GFG, GBR et ses variantes (RGBR, PRGBR, PRDGBR) dans divers scénarios d attaque. Nous avons utilisé Sinalgo, un simulateur de réseaux de capteurs sans fil. Nous ne présenterons ici que quelques résultats représentatifs, les autres étant disponibles dans le rapport technique [1]. Pour nos simulations, nous considérons des réseaux à disque unitaire connexes et générés en positionnant des nœuds uniformément au hasard sur une surface carrée. Les nœuds compromis sont choisis aléatoirement parmi les capteurs, et le puits est placé au centre de l aire de simulation. Les communications sont asynchrones et FIFO, les temps de transfert suivent une distribution exponentielle, de même que l intervalle entre deux générations de message pour un nœud. Nos simulations durent le temps de traiter messages, et nous testons 20 topologies pour chaque expérience. SR3 requiert quatre paramètres : N (une borne supérieure sur le nombre de nœuds du réseau), et les bornes sur les tailles de chaque liste (s R, s Q et s A ). Dans chaque simulation, N est fixé au nombre de nœuds dans le réseau. Nous fixons respectivement s R, s Q et s A à 10, 3 et 5 éléments. Ces valeurs ont été déterminées par une évaluation expérimentale détaillée dans le rapport technique [1], et garantissent de bonnes performances en gardant la consommation mémoire faible. Résultats. La figure 1a présente les taux de livraison de messages observés dans les réseaux de degré moyen 34/131

37 K. Altisen, S. Devismes, R. Jamet et P. Lafourcade Taux de livraison moyen GFG GBR RGBR PRGBR PRDGBR RW SR3 Taux de livraison moyen GFG GBR RGBR PRGBR PRDGBR RW SR Nombre de noeuds Degre moyen du reseau (a) Taux de livraison moyen, 30% BH, δ = 8 (b) Taux de livraison moyen, 30% BH, n = Proportion de noeuds (%) Taux de livraison des messages ]x-( )..x] Le x ieme message a ete traite GFG GBR RGBR PRGBR PRDGBR RW SR GFG GBR RGBR PRGBR PRDGBR RW SR3 (c) Distribution des taux de livraison, 30% BH, n=200, δ=32 (d) Taux de livraison moyen par paquets de messages, 5% WH BH, 5% BH, n = 200, δ = 8 δ = 8, confrontés à 30% de blackholes (BH), i.e., des nœuds compromis qui perdent tous les messages qu ils reçoivent. En faisant varier le nombre de nœuds dans le réseau, on remarque que SR3 donne toujours un taux de livraison supérieur aux autres protocoles de notre panel. L écart se creuse encore dans les grands réseaux. La figure 1b montre les taux de livraison de messages observés dans les réseaux de 200 nœuds, confrontés à 30% de blackholes, en faisant varier δ de 8 à 32. Encore une fois, SR3 offre les meilleures performances. De plus, comme RW et GFG, nous remarquons que SR3 est peu sensible aux variations de δ. Au contraire, les taux observés pour GBR et ses variantes sont faibles dans les réseaux de faible densité. Dans les réseaux très denses, les performances de PRDGBR se rapprochent de SR3. Cependant, PRDGBR duplique les messages à chaque saut, ce qui entraîne un surcoût de communication important. Nous avons ensuite mesuré l équité de SR3, i.e., à quel point les nœuds honnêtes ont des taux de livraison comparables. La figure 1c présente la distribution des taux de livraison des nœuds dans des réseaux de 200 nœuds et de degré moyen 32. GBR n est pas équitable, puisqu on distingue clairement deux classes de nœuds : ceux dont tous les messages sont livrés et ceux dont tous les messages sont perdus. À l inverse, SR3 est équitable, puisque presque tous les nœuds ont un taux de livraison proche de 80%. Nous avons ensuite évalué l adaptativité de SR3. La figure 1d présente le taux de livraison moyen par fenêtre glissante de messages dans un réseau de 200 nœuds et de degré moyen 8, face à 5% de blackholes et 5% de wormholes, qui se comportent initialement comme des nœuds directement connectés au puits (générant une excellente réputation), puis comme des blackholes après le premier tiers de la simulation. Notre protocole récupère effectivement un bon taux de livraison rapidement après le changement de comportement, ce qui n est pas le cas pour les autres protocoles. Enfin, nous avons constaté que des attaquants ne bloquant qu une partie des messages (selective forwarding), ou déclarant plusieurs identités (nœuds Sybil) n ont pas spécialement d impact sur notre protocole par rapport aux autres présentés ici. Nous avons également évalué les performances de SR3 dans les réseaux sans attaquants, et nos résultats indiquent des routes de longueur raisonnable : par exemple, dans des réseaux de 400 nœuds et de degré moyen 8, les routes ont une longueur moyenne de 20 sauts. Références [1] K. Altisen, S. Devismes, R. Jamet, and P. Lafourcade. SR3 : A secure and resilient reputation-based routing protocol. Technical report, Verimag, January rjamet/sr3/. [2] B. Blanchet. A computationally sound mechanized prover for security protocols. IEEE Trans. Dependable Sec. Comput., 5(4) : , [3] T. Eisenbarth and S. Kumar. A survey of lightweight-cryptography implementations. Design & Test of Computers, IEEE, 24(6) : , [4] O. Erdene-Ochir, A. Kountouris, M. Minier, and F. Valois. Enhancing resiliency against routing layer attacks in wireless sensor networks : Gradient-based routing in focus. International Journal On Advances in Networks and Services, 4(1, 2) :38 54, /131

38 Algorithme exact et approché pour le calcul de l hyperbolicité d un graphe Nathann Cohen 1, David Coudert 2 et Aurélien Lancin 2 1 LRI, Université Paris-Sud 11, France 2 COATI, INRIA, I3S, CNRS, Univ. Nice Sophia, France. Nous proposons un nouvel algorithme exact pour calculer l hyperbolicité sur des graphes de grande taille. La complexité temporelle de cet algorithme est fonction de la distribution des plus courts chemins dans les composantes biconnexes du graphe, ainsi que de la valeur de l hyperbolicité. Dans le pire cas, cet algorithme prendra un temps en O ( n 4), mais il est bien plus efficace en pratique. Il nous a en effet permis de calculer la valeur exacte de l hyperbolicité pour l ensemble des cartes Internet CAIDA et DIMES. Nous proposons également un algorithme approché avec un facteur multiplicatif, ou avec une constante additive donné en entrée. Keywords: Hyperbolicité, algorithme, graphe, approximation 1 Introduction De nombreuses propriétés structurelles de grands graphes, en particulier de l Internet, ont été étudiés ces dernières années en vue de mieux comprendre leur structures, de les modéliser et de proposer de nouveaux algorithmes de routages. Dans cet article, nous nous intéressons à la notion d hyperbolicité, introduite par Gromov [Gro87], qui indique la différence entre la mesure des distances dans le graphe et dans un arbre. Par exemple, lorsque la topologie de l Internet est plongée dans un espace hyperbolique, il a été montré qu un algorithme de routage glouton utilisant les coordonnées des sommets et les distances entre sommets dans cet espace métrique a une faible élongation (stretch) par rapport aux plus courts chemins [BPK10, PKBV09]. Cette notion fournit aussi des informations sur la dispersion des plus courts chemins (distance entre les sommets de deux plus courts chemins de s à t). C est donc une notion importante pour la conception d algorithmes de routage. Une définition de l hyperbolicité δ d un graphe, appelée condition des 4 points, est la suivante : Soit G un graphe connexe et d(a,b) la distance entre les sommets a et b de G. Definition 1. Un graphe G = (V,E) est dit δ-hyperbolique si pour tout quadruplet a, b, c, d V, les deux plus grandes des sommes S 1 = d(a,b) + d(c,d), S 2 = d(a,c) + d(b,d), et S 3 = d(a,d) + d(b,c) diffèrent d au plus 2δ. L hyperbolicité de G désigne la valeur du plus petit δ vérifiant cette définition. L arbre et la clique sont 0-hyperbolique, le cycle d ordre n est approximativement (n/4)-hyperbolique, et la grille n m avec n m est n 1-hyperbolique. Ceci indique bien la dispersion des plus courts chemins dans la grille. Dans cet article, nous cherchons à déterminer la valeur exacte de l hyperbolicité du graphe des systèmes autonomes (AS) de l Internet qui avait été estimée avec des heuristiques [dmsv11]. Or, le meilleur algorithme théorique exact a une complexité en O ( n 3.69) [FIV12], ce qui est prohibitif sur les graphes considérés. En effet, ceci représente O(10 16 ) opérations pour la composante biconnexe principale de la carte des AS fourni en juin 2012 par CAIDA (25815 sommets). Dans cet article, nous proposons un nouvel algorithme exact combinant des méthodes de décomposition (section 2) et un ordre de parcours des données permettant de couper l espace de recherche (section 3). Si cet algorithme a une complexité théorique de O(n 4 ), il est très efficace en pratique (section 4) et nous a permis de déterminer l hyperbolicité de toutes les cartes des AS collectées par CAIDA en un temps raisonnable. De plus, cet algorithme peut-être utilisé comme un algorithme d approximation avec un facteur multiplicatif ou une constante additive donnés. 36/131

39 2 Méthodes de décomposition Nathann Cohen, David Coudert et Aurélien Lancin Rappelons tout d abord que l hyperbolicité d un graphe est la valeur maximale de l hyperbolicité parmi toutes ses composantes biconnexes. En effet, supposons l existence dans un graphe G d un point d articulation x séparant deux composantes biconnexes B 1 et B 2. Si a,b,c B 1 et d B 2 alors S 1 = d(a,b)+d(c,d) = d(a,b) + d(c,x) + d(x,d), S 2 = d(a,c) + d(b,d) = d(a,c) + d(b,x) + d(x,d), et S 3 = d(a,d) + d(b,c) = d(a,x)+d(x,d)+d(b,c). La valeur calculée pour le quadruplet a,b,c,d est la même que pour le quadruplet a,b,c,x. Si au contraire a,b B 1 et c,d B 2, alors la valeur calculée sera nulle. En effet, par l inégalité triangulaire nous avons S 1 = d(a,b) + d(c,d) (d(a,x) + d(b,x)) + (d(c,x) + d(d,x)) = S 2 = S 3. Montrons maintenant comment utiliser des cliques-séparatrices du graphe dans le calcul de l hyperbolicité. Si X V est une clique séparant le graphe G = (V,E), alors le sous graphe G[V \ X] possède au moins deux composantes connexes distinctes A et B. Prenons a 1,a 2 A et b 1,b 2 B, posons S 1 = d(a 1,a 2 ) + d(b 1,b 2 ), S 2 = d(a 1,b 1 ) + d(a 2,b 2 ), et S 3 = d(a 1,b 2 ) + d(a 2,b 1 ), et montrons que la valeur calculée pour ce quadruplet est δ(a 1,a 2,b 1,b 2 ) 1. Si S 1 S 2 S 3, soit x 1 X un sommet d un plus court chemin de a 1 à b 1. Nous avons d(a 1,b 1 ) = d(a 1,x 1 ) + d(x 1,b 1 ). De même, soit x 2 X tel que d(a 2,b 2 ) = d(a 2,x 2 ) + d(x 2,b 2 ). Nous avons d(a 1,a 2 ) d(a 1,x 1 ) d(x 2,a 2 ) et d(b 1,b 2 ) d(b 1,x 1 ) d(x 2,b 2 ) et donc S 2 = d(a 1,b 1 ) + (a 2,b 2 ) = d(a 1,x 1 ) + d(x 1,b 1 ) + d(a 2,x 2 ) + d(x 2,b 2 ) d(a 1,a 2 ) + d(b 1,b 2 ) 2 = S 1 2. Nous obtenons δ(a 1,a 2,b 1,b 2 ) (S 1 S 2 )/2 1. Si S 1 S 3 S 2, le même raisonnement donne δ(a 1,a 2,b 1,b 2 ) 1. Si S 2 S 3 S 1, nous utilisons d(a 1,x 2 ) d(a 1,x 1 ) + 1 et d(a 2,x 1 ) d(a 2,x 2 ) + 1 pour montrer que S 2 S et donc que δ(a 1,a 2,b 1,b 2 ) (S 2 S 3 )/2 1. Corollary 2. Soient G = (V,E) un graphe biconnexe, X un clique-séparateur de G, et A i V avec i 2 les parties connexes de G séparées par X. Alors δ(g) max { 1,max i=1,2, k δ(g[a i X]) }. Ceci nous permet d utiliser une décomposition du graphe par des clique-séparatrices, ce qui se calcule en temps linéaire [Tar85]. Plus généralement, on peut montrer que si le séparateur a diamètre k, alors les valeurs calculées sur les quadruplets qu il sépare sont au plus k : c est ce qui a été utilisé dans [CDE + 08] pour montrer qu un graphe de treelength k est k-hyperbolique. Il n est cependant pas possible d étendre immédiatement cette technique à des séparateurs de diamètre 2 puisqu il s agirait de résoudre un problème difficile [HvtHM + 12]. 3 Algorithme pour le calcul de l hyperbolicité L idée de l algorithme est de parcourir les quadruplets en commençant par ceux pouvant fournir la plus grande valeur d hyperbolicité. Plus précisément, nous parcourons les quadruplets de façon à ce que le quadruplet a,b,c,d soit testé avant le quadruplet a,b,c,d si min(d(a,b),d(c,d)) > min(d(a,b ),d(c,d )). Ceci repose sur le lemme 3 qui montre en outre que δ D/2, où D est le diamètre du graphe. Lemma 3. Soient G = (V,E) un graphe connexe, a,b,c,d V, S 1 = d(a,b)+d(c,d), S 2 = d(a,c)+d(b,d), et S 3 = d(a,d) + d(b,c). Si S 1 max{s 2, S 3 }, alors δ(a,b,c,d) min{d(a,b), d(c,d)}/2. Démonstration. S 2 +S 3 = (d(a,c) + d(b,d))+(d(a,d) + d(b,c)) = (d(a,c) + d(b,c))+(d(a,d) + d(b,d)). L inégalité triangulaire permet de déduire S 2 + S 3 2 d(a,b). Comme S 1 max{s 2, S 3 }, nous avons 2 δ(a,b,c,d) = S 1 max{s 2, S 3 } S 1 (S 2 + S 3 )/2 S 1 d(a,b) = d(c,d). De la même manière 2 δ(a,b,c,d) d(a,b). Grace au lemme 3, à chaque étape de l algorithme, d(c,d) est une borne supérieure de la valeur de δ (a,b,c,d). Si la borne inférieure courante est δ, aucun quadruplet tel que d(c,d) δ ne peut être utilisé pour améliorer la borne inférieure. L exploration des quadruplets est ainsi coupée. Comme notre algorithme peut avoir à parcourir les ( n 2) paires de sommets (notamment lorsque G est chordal), sa complexité dans le pire des cas est de O(n 4 ). L exécution de notre algorithme requiert le calcul de la matrice des distances et le tri des paires de sommets par ordre de distances décroissantes (ceci revient à associer à chaque entier l la 37/131

40 Algorithme exact et approché pour le calcul de l hyperbolicité d un graphe Algorithm 1: Hyperbolicité Require: G = (V,E) est un graphe biconnexe. Ensure: δ, l hyperbolicité de G (avec δ = 2δ ). 1: Soit paires la liste des ( n 2) paires de sommets triée par distances décroissantes 2: δ := 0 3: for 0 i < ( n 2) do 4: (c, d) := paires[i] 5: if d(c,d) δ then 6: break 7: for 0 j < i do 8: (a,b) := paires[ j] 9: δ := max{δ,δ (a,b,c,d)} 10: if d(a,b) δ then 11: break 12: return δ /2 FIGURE 1: Nombre de quadruplets testés pour atteindre des bornes inférieures et supérieures sur l hyperbolicité de cartes CAIDA. Les bornes inférieures évoluent de gauche à droite, et de droite à gauche pour les bornes supérieures. liste des paires de sommets à distance l). Ces opérations ont respectivement une complexité en O(n(n + m)) et O(n 2 ) pour des graphes à n sommets et m arêtes. La complexité théorique de l algorithme peut être paramétrée par la valeur optimale de l hyperbolicité et la distribution des distances. Notons P l le nombre de paires (a,b) telles que d(a,b) = l. L algorithme ne considère que les paires de paires ((a,b),(c,d)) telles que D d(c,d) = l 2 d(a,b) = l 1 2δ. En particulier, pour les grilles n n où l hyperbolicité est donnée par le quadruplet (0, 0),(0, n 1),(n 1, 0),(n 1,n 1), l algorithme termine après avoir testé un seul quadruplet. Proposition 4. Etant donné un graphe δ-hyperbolique de( diamètre D( avec P l paires de sommets à distance l, la complexité des lignes 2-12 de l algorithme est en O D l 1 =2δ P Pl1 1 l D l 2 =l 1 +1 P l 2 )). A chaque étape de l algorithme, d(c,d)/2 est une borne supérieure et δ /2 une borne inférieure. Nous pouvons donc obtenir une approximation du résultat à un facteur multiplicatif ou à une constante additive en stoppant l exécution de l algorithme lorsque l approximation demandée est prouvée. 4 Résultats expérimentaux Notre algorithme est maintenant disponible dans Sage [S + 13] et Grph. Nous avons utilisé l implémentation de Sage pour calculer l hyperbolicité de l ensemble des 190 cartes CAIDA des AS de 2004 à 2012 (Fig. 2). Les temps de calculs vont de quelques secondes pour les cartes d hyperbolicité 3 à 8 jours pour la carte de 2012 d hyperbolicité 2. Nous observons bien une augmentation du temps de calcul avec la taille du graphe et la diminution de la valeur de l hyperbolicité. De plus, une grande partie du temps est passée à prouver l optimalité de la solution (Fig. 1). Les résultats complets avec certificats (quadruplets tels que δ(a, b, c, d) = δ pour chaque carte) sont disponibles dans [CCL12]. Les méthodes de décompositions de la section 2 permettent de réduire significativement la taille des graphes à considérer. Par exemple, la carte CAIDA du 01/06/2012 a sommets, sa composante biconnexe principale , et en éliminant itérativement tous les sommets simpliciaux (dont le voisinage est une clique), nous obtenons un graphe à sommets sur lequel nous appliquons l algorithme. En dehors de l observation que l hyperbolicité des cartes des AS de l Internet a globalement diminuée au cours du temps de 2.5 à 2, nous avons identifié la présence d un grand nombre de sommets simpliciaux (de l ordre de 16% des sommets), principalement des triangles. Ceci donne des informations supplémentaires pour la modélisation de ces graphes et la conception d algorithmes de routage. La figure 3 montre l hyperbolicité moyenne (sur 100 graphes) et le nombre de quadruplets testés par l algorithme pour des graphes aléatoires du modèle Barabasi-Albert. Ces graphes sont construits par attachement préférentiel, chaque nouveau sommet étant connecté à k sommets existants avec une probabilité. 38/131

41 Nathann Cohen, David Coudert et Aurélien Lancin FIGURE 2: Evolution de l hyperbolicité pour les cartes des AS de CAIDA depuis (a) Hyperbolicité moyenne (b) Nombre de quadruplets testés FIGURE 3: Barabasi-Albert. proportionnelle au degré de ces sommets. Les résultats montrent que notre algorithme ne visite qu une petite partie des quadruplets (moins de 0.1%). Les irrégularités dans les courbes s expliquent par l évolution de la distribution des distances corrélée à la valeur de l hyperbolicité. Il nous reste à établir analytiquement le temps d exécution de l algorithme sur ces graphes. Références [BPK10] [CCL12] [CDE + 08] [dmsv11] [FIV12] M. Boguna, F. Papadopoulos, and D. Krioukov. Sustaining the Internet with Hyperbolic Mapping. Nature Communications, 1(62), Oct N. Cohen, D. Coudert, and A. Lancin. Exact and approximate algorithms for computing the hyperbolicity of large-scale graphs. Rapport de recherche RR-8074, INRIA, September V. Chepoi, F. F. Dragan, B. Estellon, M. Habib, and Y. Vaxès. Notes on diameters, centers, and approximating trees of delta-hyperbolic geodesic spaces and graphs. Electronic Notes in Discrete Mathematics, 31 : , F. de Montgolfier, M. Soto, and L. Viennot. Treewidth and hyperbolicity of the internet. In 10th IEEE International Symposium on Network Computing and Applications (IEEE NCA), pages 25 32, Boston, H. Fournier, A. Ismail, and A. Vigneron. Computing the Gromov hyperbolicity of a discrete metric space. Technical Report arxiv : , ArXiv, October [Gro87] M. Gromov. Hyperbolic groups. Essays in Group Theory, 8 :75 263, [HvtHM + 12] P. Heggernes, P. van t Hof, D. Marx, N. Misra, and Y. Villanger. On the parameterized complexity of finding separators with non-hereditary properties. In WG, pages , [PKBV09] F. Papadopoulos, D. Krioukov, M. Boguna, and A. Vahdat. Greedy forwarding in scale-free networks embedded in hyperbolic metric spaces. SIGMETRICS Performance Evaluation Review, 37(2) :15 17, [S + 13] W. A. Stein et al. Sage Mathematics Software (Version 5.6). The Sage Development Team, [Tar85] R. E. Tarjan. Decomposition by clique separators. Discrete Mathematics, 55(2) : , /131

42 Optimisation de la qualité de service par l utilisation de mémoire cache Rémy Léone, Paolo Medagliani, Jérémie Leguay Thales Communications and Security, 4 avenue des Louvresses, Gennevilliers, France Nous nous intéresserons dans cet article à l utilisation de mémoire cache pour améliorer l utilisation des ressources dans un réseau de capteurs. Plusieurs clients souhaitent consulter la même information au sein d un réseau contraint en énergie. Afin d éviter les requêtes redondantes, nous utiliserons un serveur proxy intelligent capable de décider quand transférer la requête au réseau de capteurs ou d y répondre directement avec des informations mémorisée pour une durée de validité donnée. Nous verrons d abord comment l information est mise à la disposition de ce serveur, puis comment les informations venant d autres couches logiques peuvent contribuer à prendre des décisions de communications et de configuration plus intelligentes, par exemple comment mettre en place une stratégie d optimisation qui nous permettra d augmenter la durée de vie du réseau ou la satisfaction utilisateur, exprimée par la fraicheur des informations disponibles. Nous verrons aussi comment maximiser les deux en utilisant des solutions optimales non dominées de Pareto. Keywords: Réseaux de capteurs, mémoire cache, CoAP, économies d énergie 1 Introduction Les réseaux de capteurs sont une des composantes de l Internet des objets. Cependant ils sont soumis le plus souvent à des contraintes énergétiques, des liens de communications instables et des taux d erreurs de transmissions importants. Afin de résoudre ces problèmes, des systèmes d exploitation [DGV04] et des protocoles adaptés tels que X-MAC, 6LowPAN, RPL et CoAP [She12] sont utilisés. Une mémoire cache est également mise en place à l entrée des réseaux de capteurs pour éviter de trop soliciter les noeuds. Nous proposons dans ce travail d étendre le rôle et la gestion de cette mémoire cache pour adapter l utilisation et la configuration des ressources disponibles en fonction de la demande. Cet article présente en particulier une stratégie pour améliorer la qualité de service d un réseau de capteurs en adaptant dynamiquement les paramètres de la mémoire cache en fonction d informations en provenance de différentes couches logiques. 2 Système de cache avancé (concepts et problématiques) CoAP servers CoAP router Border router RPL root CoAP HTTP Cache Pub/sub register FIGURE 1: Représentation de notre architecture Comme présenté dans la Figure 1, le réseau est composé d un ensemble de nœuds connectés entre eux formant un arbre ayant pour racine un routeur de bordure, qui envoie et reçoit les paquets vers l extérieur. Chaque nœud i a m i enfants au sein de l arbre de routage. La passerelle est un serveur capable de recevoir des requêtes et de les traduire dans un format adapté. Ces requêtes seront ensuite envoyées au routeur de bordure du réseau de capteurs suivant une fréquence r i que l on peut mesurer. Nous supposerons par la suite que le rythme des requêtes venant de l extérieur suit une loi de Poisson de paramètre λ i. 40/131

43 Rémy Léone, Paolo Medagliani, Jérémie Leguay La passerelle implémente un mécanisme de cache lui permettant de garder en mémoire les résultats des requêtes passées pendant une durée de vie c i. Une requête concernant une ressource i venant de l extérieur depuis moins de c i sera traitée par la passerelle sans solliciter le réseau de capteurs. Étant critiques, ces paramètres c i doivent être choisis avec précision. Un c i trop petit rendra la mémoire cache inefficace ; à l inverse une durée de cache trop longue risquera de donner des valeurs non pertinentes pour les applications. Stratégiquement placé entre l offre et la demande, le cache peut contenir d autres informations utiles telles que la topologie du réseau, les services offerts par les noeuds, les applications extérieurs qui les utilisent, les paramètres de la couche MAC, l energie résiduelle des noeuds. Dans les approches classiques, ces informations ne sont pas recoupées afin d agir sur la politique de cache et la configuration du réseau. C est l objectif que nous allons poursuivre car des économies d énergie importantes sont à réaliser quand une vue globale du système est disponible. 3 Performance d un cache simple Dans un premier temps, nous étudions le fonctionnement d un cache simple. Nous pouvons d ores et déjà voir que les intérêts immédiats du cache comprennent une réduction des délais de réponse et une supervision facilitée de notre réseau de capteur vis a vis des notifications et de la topologie. 3.1 Modèle théorique Si la ressource demandée par le client n est pas dans le cache ou que la donnée présente est trop vieille, le serveur va faire une requête sur la ressource en question. Soit T i le temps moyen entre 2 requêtes arrivant sur la passerelle pour une ressource i, comme énoncé dans [LML12], le temps d attente entre 2 requêtes consécutives transmises aux capteurs est de : { c i r i = T i T i T i si T i c i sinon. (1) Le temps entre chaque requête est modélisé par un temps d attente exponentiel de paramètre λ i. Dans la mesure où les requêtes sont aléatoires et uniformément réparties entre les différents nœuds on démontre [LML12] que le temps d arrivée entre deux requêtes est une loi exponentielle de paramètres T = NT i = N λ i. On peut définir MR (cache Miss Ratio) comme la probabilité qu une requête ne puisse pas être satisfaite par les informations disponibles dans le cache. Ainsi, MR corresponds à la probabilité que le temps entre chaque arrivée d une requête soit plus grande que c i : MR = c i e t T T dt = e T. (2) Ainsi on déduit CH (Cache Hit) qui est le complémentaire de MR : CH = 1 e c i T. 3.2 Implémentation et résultats de la simulation CH λ i = 2, sim. λ i = 2, theo. λ i = 1, sim. λ i = 1, theo. λ i = 0.5, sim. λ i = 0.5, theo c i [s] FIGURE 2: Cache Hit (CH) en fonction de c i, durée de validité d une information. 41/131 c i Nous considérons que la durée de vie du résearu est le temps qui sépare son démarrage du premier arrêt définitif d au moins un des nœuds, que tous les nœuds démarrent avec la même énergie initiale. Le réseau que nous utilisons est composé de 12 nœuds fixes connectés via un arbre. Des requêtes sont générées et envoyées vers la passerelle qui décide de celles à traiter en utilisant le cache. Les nœuds économisent de l énergie en utilisant ContikiMAC en tant que protocole d accès à la couche de liaison. Ce protocole introduit des cycles de veille pour allumer périodiquement l interface radio. On

44 Optimisation de la qualité de service par l utilisation de mémoire cache suppose que les transmissions sont effectives et sans erreurs. On suppose que la simulation commence lorsque le réseau est stable. Dans la Figure 2 nous pouvons voir que plus λ i est élevé, plus le cache est intéressant. Il l est d autant plus que les constantes de temps c i sont élevées, car les probabilités d accéder au cache augmentent et ainsi le nombre de requêtes transférées vers le réseau de capteurs diminue. Il est à noter que dans l hypothèse d un rythme de requête élevé, il est particulièrement intéressant de mettre en cache. En raison des collisions de paquets et des situations de trafic élevé, l énergie consommée lors de ces situations est considérable. Ainsi en plus des requêtes qui sont économisées on gagne également sur les couts liés aux collisions de paquets. 4 Adaptation du cache pour optimiser la satisfaction utilisateur Afin d avoir une utilisation plus efficace des ressources, nous allons élaborer une technique utilisant à la fois les volontés des utilisateurs mais aussi les objectifs de l application à rester en fonctionnement pour une certaine durée de vie. L optimisation a deux buts, le premier est de fournir une configuration de durée de cache admissible pour les exigences de satisfaction de l utilisateur. Le second but, réciproque du premier, est d estimer quel peut être la satisfaction de l utilisateur pour une durée de vie du réseau imposée. 4.1 Modélisation de la satisfaction utilisateur Nous introduisons les quantités c imin et c imax représentant les bornes admissibles d une valeur c i. Ces valeurs exogènes au problème dépendent fortement de l application en question. Une valeur haute de c i sera utilisée pour des nœuds ayant peu d énergie. Par contre, une valeur c i petite sera pour des informations devant être aussi fraiches que possible. Pour un intervalle de temps [c imin,c imax ], nous pouvons voir que les meilleures durées de vie possible sont obtenues quand c i = c imax mais cela se fait généralement au détriment de la satisfaction de l utilisateur. Il est nécessaire d introduire également une métrique de satisfaction de l utilisateur. Pour notre modélisation nous allons considérer que plus une information donnée à l utilisateur est fraiche, plus ce dernier est satisfait. Cependant, à rythme de requête égal, une durée de vie dans le cache courte signifie plus de requêtes pour le réseau contraint et donc un coût énergétique plus important. γ i = c i max c i c imax c imin 100 (3) En particulier, une satisfaction de 0% quand c i = c imax et une satisfaction de 100% quand c i = c imin. 4.2 Analyse énergétique et modélisation du réseau Les nœuds utilisent ContikiMAC comme protocole d accès à la couche liaison afin d éviter les collisions de transmissions et contrôler l accès au médium. L utilisation de l interface radio étant le principal consommateur de la batterie dans nos simulations, nous avons d analysé ce protocole afin d estimer la durée de vie du réseau. Il y a 4 états possibles pour un nœud utilisant ContikiMAC : (i) transmission, (ii) réception, (iii) mode sommeil et (iv) écoute du canal avec les consommations énergétiques suivantes : Ω Ti, Ω Ri, Ω Si, et Ω CLi (dimension :[W]), respectivement. Ω toti = Ω Si + Ω CLi + Ω Ti + Ω Ri (4) où : Ω Si est l énergie consommée pendant la période de sommeil du i-ème nœud ; Ω CLi est l énergie demandée pour écouter le canal sur une période fixée ; Ω Ri est l énergie utilisée pour la réception d un paquet ; Ω Ti est l énergie utilisée pour transmettre un paquet. Nous ne pouvons pas agir efficacement sur les termes Ω Si et Ω CLi car ils dépendent fortement du protocole MAC utilisé. C est sur Ω Ti etω Ri que nous allons agir via notre cache. Une modélisation plus précise peut être trouvé dans [LML12]. Il est également nécessaire de prendre en compte la topologie du réseau puisque les messages relayés par un nœud affectent tous les nœuds dont il dépends pour la transition de ses paquets. Le modèle devenant complexe dans le cas général, nous avons donc développé une calcul approché de la consommation énergétique qui intègre la topologie du réseau. 42/131

45 Rémy Léone, Paolo Medagliani, Jérémie Leguay 4.3 Résultats Afin de trouver un compromis acceptable entre durée de vie du réseau et satisfaction utilisateur, nous utilisons une méthode d optimisation multiobjectif NSGA II (Non-dominated Sorting Genetic Algorithm II) [DPAM02] combinée à une modélisation exposée en détail dans [LML12]. Lifetime [days] Pareto front γ [%] FIGURE 3: Front des optimums de Pareto Comme présenté dans la Figure 3, nous obtenons pour chaque durée de vie admissible la meilleure satisfaction utilisateur γ i possible [LML12]. Nous obtenons ainsi un front de Pareto permettant de choisir parmi les solutions optimales celle qui est adaptée à notre application en fonction des informations provenant des différentes couches logiques. La raison pour laquelle nous obtenons un front de Pareto en forme de droite affine provient de nos hypothèses de départ. En effet, le rythme d arrivée des requêtes est supposé uniforme, et tous les nœuds sont identiques. Dans ces conditions, nous obtenons une loi linéaire sur les défauts de cache et la consommation du réseau qui en dépend. Cependant, dans le cas où la couche MAC pourrait être dynamiquement configurée en fonction des informations disponibles, la relation serait beaucoup plus complexe et la modélisation linéaire impossible. 5 Conclusions et perspectives Cet article a présenté une stratégie pour améliorer la qualité de service d un réseau de capteurs en adaptant dynamiquement les paramètres de la mémoire cache en fonction d informations en provenance de différentes couches logiques du système. En premier lieu, nous avons vu qu un cache standard aidait à économiser significativement de l énergie puisqu il empêche les communications redondantes triviales. Puis nous avons introduit un modèle d optimisation exploitant les différents critères des utilisateurs ainsi que les informations extraites du cache. Ce qui nous a permis de configurer de manière optimale la gestion de la durée de vie des informations au sein du cache. Une ouverture possible de ces travaux serait d étudier les mécanismes de gestion des routes en temps réel au sein du réseau en tenant compte des informations obtenues dans le cache. La passerelle pourrait décider de temporiser certaine requêtes afin de synchroniser les requêtes avec l état des nœuds dans le réseau. En outre, il serait également possible en connaissant la topologie du réseau de connaitre les modifications de topologie à faire afin d obtenir un réseau plus résilient. Une autre ouverture serait d avoir une méthode de calcul exacte pour le calcul d optimisation. Enfin, une exploitation de nos simulations sur une plateforme de plus grande envergure, telle que Senslab, permettrait d obtenir des informations supplémentaires sur la consommation énergétique physique des capteurs. Références [DGV04] A. Dunkels, B. Gronvall, and T. Voigt. Contiki-a lightweight and flexible operating system for tiny networked sensors. pages , [DPAM02] K. Deb, A. Pratap, S. Agarwal, and T. Meyarivan. A fast and elitist multiobjective genetic algorithm : NSGA-II. IEEE Trans. on Evolutionary Computation, 6(2) : , April [LML12] [She12] R. Léone, P. Medagliani, and J. Leguay. Optimizing QoS in Wireless Sensors Networks Using a Caching Platform Z. Shelby. Constrained Application Protocol (CoAP). Internet-Draft draft-ietf-core-coap-13, Internet Engineering Task Force, March Work in progress. 43/131

46 Une approche à base de similarité pour la détection de communautés egocentrées Maximilien Danisch 1, Jean-Loup Guillaume 1 et Bénédicte Le Grand 2 1 LIP6, Université Pierre et Marie Curie, 4 Place Jussieu, Paris, France 2 CRI, Université Paris 1 Panthéon-Sorbonne, 90 rue de Tolbiac, Paris, France Nous proposons ici une approche performante pour déplier la structure communautaire egocentrée d un sommet. Nous montrons que, bien que chaque sommet d un réseau appartienne en général à plusieurs communautés, il est souvent possible d identifier une communauté unique si l on considère deux sommets bien choisis. La méthodologie que nous proposons repose sur cette notion de communauté multi-egocentrée ainsi que sur l utilisation d une mesure de similarité dérivée de techniques de dynamique d opinion, la carryover opinion. Cette approche pallie les limites des fonctions de qualité traditionnellement utilisées pour la détection de communautés egocentrées, et consiste à étudier les irrégularités dans la décroissance de cette mesure de similarité. Keywords: détection de communautés, communauté egocentrée, communauté multi-egocentrée, mesure de similarité 1 Introduction De nombreux réseaux réels, tels que des réseaux sociaux ou des réseaux informatiques, peuvent être modélisés par des grands graphes, souvent appelés graphes de terrain. Ces réseaux réels ont été fortement étudiés ces dernières années, du fait de l augmentation du nombre de jeux de données disponibles et du besoin de compréhension de tels systèmes dans de très nombreux contextes. La notion de communauté est centrale dans ce contexte et la recherche d algorithmes efficaces pour identifier automatiquement de telles communautés constitue un défi, comme l atteste l article de synthèse de [FOR10]. Dans des systèmes réels, les communautés se chevauchent naturellement. Par exemple dans un réseau social chaque individu appartient à plusieurs communautés : famille, collègues, groupes d amis, etc. La découverte de tous ces groupes dans de grands graphes est complexe et, outre le problème de l efficacité du calcul, l interprétation d une structure en communautés recouvrantes peut être difficile. Certains travaux ont cependant abordé ce problème, par exemple [PAL05]. Une simplification consiste à se limiter à un partitionnement, dans lequel chaque sommet appartient à une et une seule communauté. Ce problème est également complexe et il n y a pas encore de solution parfaite, mais de nombreuses définitions et algorithmes associés existent. La définition communément acceptée est la modularité [GIR02], qui privilégie les communautés plus denses qu attendues et la méthode de Louvain [BLO08] fait partie des quelques méthodes très efficaces pour optimiser la modularité. Une approche intermédiaire pour conserver le réalisme des communautés recouvrantes tout en simplifiant un peu le problème consiste à se concentrer sur un seul sommet et à tenter d identifier l ensemble des communautés auxquelles il appartient, aussi appelées communautés egocentrées. L approche classique consiste à partir d un groupe de sommets (qui ne contient initialement que le sommet considéré en général), puis à ajouter ou enlever des sommets à ce groupe itérativement pour optimiser une fonction de qualité donnée [CLA05, FRI11, NGO12]. Ce type d approche souffre généralement de deux défauts majeurs : (i) il existe souvent des paramètres d échelle cachés qui on tendance à privilégier une certaine taille ou densité de communauté ; (ii) L optimisation de la fonction de qualité est aussi très complexe du fait de la nature non-convexe de l espace d optimisation.. Ce travail est partiellement soutenu par l Agence Nationale pour la Recherche, projet DynGraph ANR-10-JCJC Une communauté est intuitivement définie comme un groupe de sommets fortement connectés entre eux mais peu liés au reste. 44/131

47 Maximilien Danisch, Jean-Loup Guillaume et Bénédicte Le Grand Dans cet article nous proposons une approche orthogonale basée sur la détection d irrégularité dans la décroissance d une mesure de similarité entre sommets. Nous explicitons les résultats de notre approche en l appliquant à un réseau réel contenant l ensemble des pages de wikipedia (2 millions de pages) et les liens hypertextes entre ces pages (40 millions de liens) [PAL08]. 2 Méthodologie Notre approche nécessite l utilisation d une mesure de similarité pour évaluer la proximité entre deux sommets donnés et nous utilisons pour cela la carryover opinion, introduite dans [DAN12], pour sa rapidité d exécution. Étant donné un sommet u, nous mesurons sa similarité à tous les autres sommets du graphe puis nous trions les similarités obtenues par ordre décroissant. Si l on observe des irrégularités dans la décroissance de la courbe de similarité en fonction du rang cela met en évidence l existence de communautés. Plus précisément, si plusieurs sommets sont également similaires au sommet u alors que le reste des sommets est peu similaire, on observe un plateau sur la courbe suivi d une décroissance brusque, les sommets du plateau forment alors une communauté de u. Cependant, la similarité en fonction du rang décroit le plus souvent de manière régulière en suivant une loi sans échelle, i.e., aucune taille caractéristique ne peut être extraite de la mesure, ce qui signifie que le sommet appartient à plusieurs communautés de différentes tailles, ou n appartient à aucune communauté. Pour remédier à ce problème nous proposons de choisir un autre sommet v, et de chercher une communauté egocentrée à la fois sur u et sur v (la notion de communauté multi-egocentrée a été introduite dans [DAN12]). Pour cela nous calculons pour tous les sommets du graphe le minimum de leur similarité à u et à v, ce minimum représentant combien le sommet considéré est proche de u ET de v, comme illustré sur la figure 1. À nouveau, une irrégularité dans la décroissance des scores indique une communauté. (a) (b) (c) FIGURE 1: (1a) et (1b) : similarité de chaque sommet du graphe au sommet pointé par une flèche, plus un sommet est sombre, plus son score est élevé. (1c) : minimum des scores de (1a) et (1b) qui permet de voir l émergence de la communauté centrale. Le graphe considéré est l union de 4 graphes aléatoires se chevauchant sur 5 sommets avec une probabilité d existence de lien de 0,2. Plus en détail, pour un sommet u donné l algorithme consiste à : 1. Choisir un ensemble de sommets candidats moyennement similaires à u. En effet si un sommet est trop peu similaire (resp. trop similaire) à u, il ne partagera aucune communauté (resp. beaucoup de communautés) avec u. Le but étant que les deux sommets n en partagent qu une. 2. Pour chaque sommet candidat v, chercher une communauté multi-egocentrée sur u et v : Pour chaque sommet du graphe, calculer le minimum de sa similarité à u et à v. Trier les valeurs obtenues par ordre décroissant. Si la pente maximale de la courbe de similarité en fonction du rang est plus grande qu un certain seuil, alors une communauté est détectée, composée des sommets situés avant cette pente. Si u appartient à la communauté détectée, alors la communauté est conservée. 3. Nettoyage et étiquetage des communautés trouvées : 45/131

48 Structures communautaires egocentrées Plusieurs candidats peuvent donner naissance à des communautés très similaires. Afin d éliminer ce bruit, on peut faire l intersection des communautés très similaires afin de n en garder qu une. À l inverse, si une communauté n est similaire à aucune autre elle est éliminée. On a en effet observé que cela se produit quand la pente maximale détectée est faible et on peut donc assimiler cela à un erreur. La communauté reçoit le label du sommet le mieux classé. 3 Résultats et validation Nous présentons ici les résultats pour un unique sommet du réseau wikipedia, la page Chess Boxing pour laquelle les résultats sont très pertinents, facilement interprétables et validables manuellement. Pour le sommet Chess Boxing, nous avons utilisé l algorithme présenté précédemment sur 3000 sommets candidats choisis aléatoirement entre le centième et le dix-millième les plus similaires à Chess Boxing. Sur les 3000 tentatives, 770 ont abouti à l identification de plateaux suivis de décroissances nettes, fournissant autant de communautés. La figure 2 présente la matrice des similarités de Jaccard (similarité entre deux ensembles) entre ces 770 groupes. Sur ces 770 communautés, la phase de nettoyage élimine directement 6 communautés qui ne sont similaires à aucune autre et sont donc assimilées à des erreur de l algorithme de détection de pente (une vérification manuelle confirme que ces communautés n ont pas de sens) (a) (b) FIGURE 2: (2a) : matrice des distances de Jaccard des 770 communautés, réordonnée pour que les groupes similaires soient proches. Un groupe de 716 communautés émerge. (2b) : zoom sur la partie supérieure gauche de la matrice permettant de mieux voir les autres groupes de communautés. On y observe 4 autres groupes de communautés et 6 communautés très peu similaires aux autres. On détecte également 5 groupes de communautés très similaires, mais peu similaires aux autres. L intersection des communautés à l intérieur de chaque groupe donne une communauté étiquetée (avec le label du sommet le mieux classé). Les 5 communautés identifiées sont : Enki Bilal (35 sommets), Uuno Turhapuro (26 sommets), Da Mystery of Chessboxin (254 sommets), Gloria (55 sommets) et Queen s Gambit (1619 sommets). Toutes ces communautés sont clairement liées au Chess Boxing tout en étant sur des sujets très différents. De manière surprenante l algorithme ne trouve aucune communauté liée à la boxe. Ceci pourrait être un problème de l algorithme, mais la page wikipedia de Chess Boxing indique que la plupart des pratiquant ont un passé dans les échecs et apprennent la boxe par la suite. Ils peuvent donc être plus importants dans. Le ChessBoxing est un sport mêlant échecs et boxe avec des rounds alternés. 46/131

49 Maximilien Danisch, Jean-Loup Guillaume et Bénédicte Le Grand le monde des échecs que dans celui de la boxe. Ceci pourrait expliquer que le sommet Chess Boxing est dans la communauté des échecs, mais à la limite de celle de la boxe. 4 Conclusion et perspectives Nous avons proposé un algorithme qui permet d identifier les communautés egocentrées pour un sommet d un graphe. Notre approche est basée sur la recherche d irrégularités dans la décroissance des valeurs d une mesure de similarité. L algorithme est efficace en temps et permet de trouver les communautés d un sommet sur des graphes contenant des millions de sommets. En utilisant la notion de communautés multi-egocentrées, l algorithme identifie dans un premier temps des sommets candidats pouvant permettre à l identification de communautés, puis cherche des communautés centrées sur notre cible et sur ces candidats, et procède enfin à une phase de nettoyage et d étiquetage des communautés. Bien que cet algorithme soit performant en l état, de nombreuses pistes d amélioration sont possibles. Tout d abord, la détection de communautés se base sur la recherche de plateaux et de décroissances fortes. La méthode actuelle peut être améliorée, notamment par la recherche de plusieurs décroissances, ce qui permettrait de trouver plusieurs communautés à des échelles différentes pour un même candidat. De plus, l algorithme utilise pour l instant une notion de communauté bi-centrée or, il est possible que certaines communautés n apparaissent que centrées sur 3 sommets ou plus. Cette généralisation doit être validée sur des exemples de petites tailles car le temps de calcul sera fortement augmenté à moins d améliorer très significativement la méthode de sélection des candidats. Une approche pourrait être de considérer que si un candidat v a fourni de bons résultats alors des sommets qui lui sont très similaires n apporteront pas de nouvelle information. Cette notion de rapidité de l algorithme est centrale car on souhaite généralement suivre l évolution des communautés sur plusieurs instants il est important que les calculs soient aussi efficaces que possible. Enfin, nous avons observé que l algorithme peut avoir des difficultés à identifier de petites communautés si elles sont proches de grosses communautés. Pour cette raison, tenter d appliquer l algorithme à des sommets très populaires tels que Biology ou Europe ne conduit qu à une grosse communauté, alors que l on s attendrait à trouver divers sous-domaines de la biologie ou différents pays européens. Une piste d amélioration pourrait consister à relancer récursivement l algorithme sur des communautés identifiées pour trouver des sous-communautés. Références [BLO08] Vincent D. Blondel, Jean-Loup Guillaume, Renaud Lambiotte and Etienne Lefebvre. Fast unfolding of communities in large networks. J. Stat. Mech. (2008). [CLA05] Aaron Clauset. Finding local community structure in networks. PHYSICAL REVIEW E 72, , [DAN12] M. Danisch, J.-L. Guillaume and B. Le Grand. Towards multi-ego-centered communities : a node similarity approach. Int. J. of Web Based Communities (2012) [FOR10] Santo Fortunato. Community detection in graphs. Physics Reports 486, (2010) [FRI11] Adrien Friggeri, Guillaume Chelius, Eric Fleury. Triangles to Capture Social Cohesion. IEEE (2011). [GIR02] M. Girvan and M. E. J. Newman. Community structure in social and biological networks. PNAS June 11, 2002, Biometrika, vol. 99 no. 12, pp [NGO12] Blaise Ngonmang, Maurice Tchuente, and Emmanuel Viennet. Local communities identification in social networks. Parallel Processing Letters, 22(1), March [PAL05] Palla, G., I. Derenyi, I. Farkas and T. Vicsek. Uncovering the overlapping community structure of complex networks in nature and society. Nature [PAL08] Gergely Palla, Illes J. Farkas1, Peter Pollner, Imre Derenyi and Tamas Vicsek. Fundamental statistical features and self-similar properties of tagged networks. New J. Phys (2008) 47/131

50 Vérification formelle et robots mobiles Laure Millet 1 et Béatrice Bérard 1 et Maria Potop-Butucaru 1 et Yann Thierry-Mieg 1 et Sébastien Tixeuil 1 1 LIP6,UPMC, 4 Place Jussieu, Paris, France Les tâches susceptibles d être exécutées par des robots mobiles sont de plus en plus nombreuses et en complexité croissante. Jusqu à présent, les réseaux de robots ont été étudiés de manière empirique et la plupart des résultats ont été validés principalement par des simulations ou des preuves partielles. Nous proposons la première méthode automatique de modélisation et de vérification formelle de tels systèmes. L utilisation de méthodes automatiques de vérification permet de s assurer du bon fonctionnement d algorithmes quand la mise en place de preuves est très complexe notamment dans un environnement asynchrone. Keywords: Robots mobiles, Exploration de graphes, Vérification, Model-Checking 1 Introduction De nombreuses applications utilisent des groupes de robots qui s auto-organisent pour résoudre un objectif commun, en l absence d agent de coordination. Bien que ces robots évoluent dans un espace euclidien à deux dimensions, il est plus facile de représenter une version discrétisée de cet espace. La représentation consiste alors en un graphe où l espace est partitionné, chaque noeud du graphe représentant un emplacement, et chaque arc représentant la possibilité pour un robot de se déplacer d un noeud vers un autre. Nous considérons un système distribué de k robots dont les capacités sont restreintes : ces robots sont anonymes et identiques, ils ne peuvent être distingués les uns des autres et exécutent le même protocole. Ils ne mémorisent pas les actions précédemment exécutées, n ont aucun sens de l orientation et ne peuvent communiquer entre eux. Cependant, ils ont la capacité d observer leur environnement et de voir l agencement des autres robots. Ils fonctionnent selon un cycle composé de trois phases : Look, Compute et Move. Pendant la première phase, les robots examinent le monde qui les entoure. Les informations ainsi collectées leur permettent de calculer, lors de la phase Compute, un futur mouvement qui sera rendu effectif dans la dernière phase. Ce modèle synchrone, appelé SYm (ou ATOM), a été introduit par Suzuki & Yamashita puis amélioré par Prencipe & al. en un modèle asynchrone, appelé CORDA, afin de prendre en compte le comportement asynchrone des systèmes distribués. Parmis les nombreuses tâches qui ont été étudiées dans le cadre d un environnement discret, nous nous intéressons à l exploration perpétuelle d un environnement inconnu : chaque noeud du graphe doit être visité infiniment souvent. Plus spécifiquement, nous étudions ici l exploration d un anneau. De nombreux travaux traitent de l exploration d un anneau [FPS12]. Cependant, les preuves des résultats présentés ne sont pas automatiques, ce qui peut être source d erreurs, en particulier dans le cadre asynchrone. Nous examinons ici l article de Blin & al. [BMPT10], où les auteurs démontrent que trois robots déterministes sont nécessaires et suffisants pour explorer un anneau de taille n 10, et que le nombre maximal de robots pour explorer un anneau est k = n 5 si k et n sont premiers entre eux. Les auteurs fournissent des algorithmes pour explorer un anneau avec des nombres minimaux et maximaux de robots. Afin de vérifier automatiquement le bon fonctionnement d algorithmes répartis, nous proposons la première méthode formelle de modélisation et de vérification de tels protocoles, en utilisant les algorithmes de [BMPT10] comme étude de cas. La modélisation appropriée du système et la formalisation du problème permettent l utilisation du model-checking comme technique automatique de vérification. Cette technique a permis de mettre en évidence la correction de ces algorithmes dans un environnement synchrone et a révélé un contre-exemple dans un environnement asynchrone. Ceci a permis d effectuer une correction éclairée. 48/131

51 Laure Millet et Béatrice Bérard et Maria Potop-Butucaru et Yann Thierry-Mieg et Sébastien Tixeuil 2 Modélisation du système Le système est modélisé par un ensemble fini d automates, représentant le fonctionnement des robots dans les modèles d exécution SYm et CORDA. Les composants du système sont les robots et les degrés d asynchronie de l environnement (les modèles d exécution), ce dernier étant représenté par un ordonnanceur. Modélisation des robots. On rappelle que les robots sont identiques et exécutent le même algorithme déterministe. Un même automate, représenté dans la Figure 1, peut donc décrire le comportement de chacun des robots. Le robot commence par observer son environnement (transition Look), puis il calcule son futur emplacement (transition Compute), et il finit par effectuer le mouvement pré-calculé (transition Move). En pratique, l état Ready to move est divisé en autant d états que de mouvements possibles, selon le protocole par lequel le robot calcule sa future position. Ready to look Look Ready to compute Compute Ready to move Move FIGURE 1: L automate modélisant le comportement d un robot Dans ce modèle les contraintes de temps sont abstraites (temps de calcul, vitesse d un robot). On suppose que les actions sont instantanées et que chaque cycle se termine en un temps fini. On s intéresse tout particulièrement aux phases Look et Move, le calcul d une future position pouvant être comprise comme une réinterprétation de la vue prise par un robot. La transition Compute a donc été combinée à son prédecesseur pour obtenir une transition LC. Modélisation de l ordonnanceur. L ordonnanceur choisit l ordre avec lequel les robots vont exécuter leurs actions afin de respecter les modèles d exécution SYm ou CORDA. Il est également modélisé par un automate fini. Contrairement aux robots qui ont toujours le même comportement, l automate de l ordonnanceur varie en fonction du modèle d exécution choisi et du nombre de robots, comme le montre la Figure 2. Notons Rob l ensemble des robots du système. La phase LC (resp. Move) du ième robot est représentée par l action LC i (resp. Move i ). Pour un sous-ensemble Sched Rob, on définit : LC i (respectivement Move i ) la synchronisation des actions LC i (resp. Move i ). i Sched i Sched Le modèle d exécution SYm a deux variantes, SYm synchrone (tous les robots sont synchronisés à chaque phase) et SYm semi- synchrone (un sous-ensemble de robots est synchronisé à chaque phase). L automate correspondant à l ordonnanceur pour le modèle semi-synchrone est décrit dans la Figure 2a, il contient un cycle pendant lequel un sous-ensemble Sched des robots Rob est choisi afin d être synchronisé sur les phases suivantes. L état Sched chosen est divisé en 2 k états, afin de représenter tous les sous ensembles Sched Rob. Pour représenter la variante totalement synchrone, le sous-ensemble choisi est toujours Sched = Rob. Avec cette variante tous les cycles sont identiques. Move Done Choose Sched Sched chosen LC i i Sched LC Done Act Done Choose Sched Sched chosen Move i i Sched (a) SYm Semi-synchrone Act i i Sched (b) CORDA FIGURE 2: Les automates des ordonnanceurs 49/131

52 Vérification formelle et robots mobiles Dans le modèle d exécution CORDA, totalement asynchrone, il n y a pas de règle d ordonnancement, ce qui peut produire des exécutions où un robot change de position selon une observation qui n est plus à jour. L ordonnanceur correspondant est décrit par l automate de la Figure 2b. À chaque cycle, un sous ensemble Sched Rob est ordonnancé, puis chaque robot de ce sous-ensemble exécute la prochaine action selon son état local (Act i peut être LC i ou Move i ). Modélisation du système. Le système est obtenu par un produit synchronisé entre les différents automates, auquel on ajoute les configurations des robots sur le graphe. Dans un graphe de n noeuds il y a ( n) k configurations possibles, le nombre d états du système résultant est donc multiplié par le nombre de configurations. De plus, le nombre de transitions partant d un état dépend du nombre de mouvements réalisables sur la configuration de cet état. On s aperçoit rapidement que, même en choisissant un fort niveau d abstraction, grâce auquel seules les spécificités comportementales des robots qui permettent de vérifier le protocole sont exprimées, l automate du système est sujet à une forte explosion combinatoire. 3 Vérification et étude de cas L intérêt de notre démarche est illustré par la vérification du Min-Algorithm présenté dans [BMPT10]. Pour cette étude de cas, il faut extraire de la spécification du problème, puis formaliser, les propriétés qui doivent être satisfaites. Nous avons choisi la logique LTL pour cette formalisation. Spécification du problème. Le problème traité dans [BMPT10] est L exploration perpétuelle exclusive défini comme suit : pour tout graphe G de taille n et une configuration initiale où plusieurs robots n occupent pas le même noeud, un protocole permet d effectuer une exploration perpétuelle exclusive s il satisfait les deux propriétés suivantes : (i) exclusion, plusieurs robots ne visiteront pas le même noeud et ne traverseront pas le même arc au même moment et (ii) vivacité, tous les noeuds du graphe seront visités infiniment souvent. Dans les modèles d exécution partiellement asynchrones, il est possible que l ordonnanceur choisisse de ne jamais sélectionner un ou plusieurs voire tous les robots. Afin de palier ces cas où aucune progression n est possible pour l algorithme, une propriété d équité doit être ajoutée. Cette propriété demande que tous les robots soit ordonnancés infiniment souvent. La propriété de vivacité ne peut être satisfaite que sur les exécutions satisfaisant la propriété d équité. Min-Algorithm. Les auteurs de cet algorithme garantissent qu il permet à trois robots d effectuer une exploration perpétuelle exclusive sur tout anneau de taille au moins 10, lorsque le nombre de robots et la taille de l anneau sont premiers entre eux. L algorithme repose sur une classification des configurations et une reconnaissance des classes de configurations. Il est présenté dans les tableaux 1 and 2, repris de l article original. Une configuration est définie par une liste non orientée de symboles R et F indexés par des entiers : R i représente i noeuds consécutifs occupés, et F j représente j noeuds consécutifs libres. Legitimate Phase : z {0,1,2,3,4} RL1 : : (R 2,F 2,R 1,F z ) (R 1,F 1,R 1,F 2,R 1,F z 1 ) RL2 : : (R 1,F 1,R 1,F 2,R 1,F z ) (R 2,F 3,R 1,F z ) RL3 : : (R 2,F 3,R 1,F z ) (R 2,F 2,R 1,F z+1 ) TABLE 1: Rules of Min-Algorithm legitimate phase Vérification. L implantation de l algorithme s est effectuée avec le langage DiVinE, en ajoutant des gardes sur les transitions, afin de restreindre les mouvements des robots. Pour chaque configuration observée, l algorithme autorise certains robots à se déplacer selon des règles préétablies (l ajout de gardes permettant de reconnaitre ces configurations). Pour vérifier le bon fonctionnement de l algorithme, nous avons utilisé le model-checker associé à Di- VinE [BBvR10], avec une taille d anneau égale à 10, qui est la plus petite taille d anneau pour lequel cet 50/131

53 Laure Millet et Béatrice Bérard et Maria Potop-Butucaru et Yann Thierry-Mieg et Sébastien Tixeuil Convergence Phase : Execution starting from special configurations. RC1 : : (R 2,F y,r 1,F z ) (R 2,F min(y,z),r 1,F max(y,z)+1 ) with y z {1,2,3} RC2 : : (R 1,F x,r 1,F y,r 1,F y ) (R 1,F x,r 1,F y 1,R 1,F y+1 ) with x y 0 RC3 : : (R 1,F x,r 1,F y,r 1,F z ) (R 1,F x 1,R 1,F y+1,r 1,F z ) with x < y < z RC4 : : (R 3,F z ) (R 2,F 1,R 1,F z 1 ) when 1 robot executes (R 1,F 1,R 1,F 1,R 1,F z 2 ) when 2 robots execute RC5 : : (R 2,F 1,R 1,F z ) (R 2,F 2,R 1,F z 1 ) TABLE 2: Rules of Min-Algorithm convergence phase RC4 RC2 RL1 RL2 RL2 RC4 RC1 RC4 FIGURE 3: Contre-exemple algorithme doit fonctionner. Alors que l algorithme est correct lorsque les robots sont synchrones, DiVinE a produit un contre-exemple pour CORDA, parmi les combinaisons de mouvements possibles. Ce contre exemple est une exécution aboutissant à une collision, comme le montre la Figure 3. Dans cette figure, chaque anneau représente une configuration. Un changement de configuration apparait lorsqu un robot se déplace. Pour chaque configuration, une flèche pleine représente un calcul, une flèche en pointillé représente un calcul basé sur une vue obsolète. Grâce à ce contre-exemple l algorithme a pu être corrigé en modifiant la règle RC5 par : 4 Conclusion RC5 :: (R 2,F 1,R 1,F z ) (R 1,F 1,R 1,F 1,R 1,F z 1 ) Nous avons proposé la première méthode de modélisation et de vérification formelle pour des réseaux de robots synchrones et asynchrones dans un espace discretisé. Nous avons mis en pratique cette technique en vérifiant les algorithmes proposés dans [BMPT10]. Nous avons prouvé que le Min-algorithm ne fonctionnait qu avec des robots synchrones, alors qu il était prouvé correct dans un modèle synchrone. Notre technique a permis de corriger cet algorithme pour qu il fonctionne aussi dans le cadre asynchrone. À l avenir, nous souhaiterions vérifier d autres algorithmes (déterministes ou probabilistes), sur différents graphes, et pour différentes tâches. De plus, plutôt que de vérifier des stratégies existantes, il serait intéressant de considérer aussi un problème de synthèse, en cherchant à produire automatiquement une stratégie certifiée correcte. Références [BBvR10] J. Barnat, L. Brim, M. Češka, and P. Ročkai. DiVinE : Parallel Distributed Model Checker (Tool paper). In Parallel and Distributed Methods in Verification and High Performance Computational Systems Biology (HiBi/PDMC 2010), pages 4 7. IEEE, [BMPT10] L. Blin, A. Milani, M. Potop-Butucaru, and S. Tixeuil. Exclusive perpetual ring exploration without chirality. Distributed Computing, pages , [FPS12] Paola Flocchini, Giuseppe Prencipe, and Nicola Santoro. Distributed Computing by Oblivious Mobile Robots. Synthesis Lectures on Distributed Computing Theory. Morgan & Claypool Publishers, /131

54 Spéculation et auto-stabilisation Swan Dubois et Rachid Guerraoui École Polytechnique Fédérale de Lausanne (Suisse), L auto-stabilisation garantit qu à la fin d une faute transitoire, un système réparti retrouve de lui-même un comportement correct en un temps fini. La spéculation consiste à garantir que le système soit correct pour toute exécution mais possède des performances significativement meilleures pour un sous-ensemble d exécutions qui sont supposées plus probables. Un protocole spéculatif est donc à la fois robuste et efficace en pratique. Nous introduisons ici la notion de spéculation en auto-stabilisation en présentant un protocole spéculativement stabilisant d exclusion mutuelle. Ce dernier stabilise pour toute exécution et son temps de stabilisation est optimal pour les exécutions synchrones. Keywords: Spéculation, Tolérance aux fautes, Auto-stabilisation, Exclusion mutuelle. 1 Motivations L approche spéculative [5] repose sur l existence d un compromis permanent entre la robustesse et l efficacité des protocoles répartis. En effet, il est demandé aux applications réparties de tolérer à la fois un grand nombre de conditions difficiles (répartition des données, asynchronisme, fautes...) ainsi que de fournir les meilleures performances possibles (principalement en temps). Cependant, garantir la robustesse du protocole repose sur des mécanismes comme la synchronisation ou la réplication qui induisent généralement de mauvaises performances. L approche spéculative suppose alors que, même si des exécutions présentant de mauvaises conditions sont toujours possibles, certaines exécutions favorables (par exemple synchrones et sans fautes) sont plus probables. L idée est alors de garantir que le protocole restera correct quelles que soient les conditions de l exécution mais sera optimisé pour un sous-ensemble d exécutions qui sont les plus probables en pratique. L objectif de cet article est d exploiter cette approche en auto-stabilisation. L auto-stabilisation [2] est une technique de tolérance aux fautes transitoires (i.e. de durée finie). Un système auto-stabilisant garantit qu à la fin d une faute transitoire (qui peut corrompre de manière arbitraire l état du système), il retrouvera un comportement correct en un temps fini et sans aide extérieure. Dans cet article, nous définissons une nouvelle variante de l auto-stabilisation dans laquelle la mesure principale de performance, le temps de stabilisation, est vue comme une fonction de l adversaire et non comme une valeur unique. Nous associons à chaque adversaire (connu également sous le nom d ordonnanceur ou démon) le pire temps de stabilisation du protocole sur l ensemble des exécutions décrites par cet adversaire. Nous pouvons alors définir un protocole spéculativement stabilisant comme un protocole auto-stabilisant sous un adversaire donné mais qui présente un temps de stabilisation significativement meilleur sous un autre adversaire (plus faible). De cette manière, nous nous assurons que le protocole stabilise sur un large ensemble d exécutions mais est efficace sur un ensemble d exécutions plus restreint (mais plus probables). Bien que cette notion de spéculation soit nouvelle dans le domaine de l auto-stabilisation, certains protocoles existants vérifient notre définition, en quelque sorte par accident. Par exemple, la complexité du protocole d exclusion mutuelle de Dijkstra [2] tombe en n étapes sous le démon synchrone (où n est le nombre de processeurs). Cependant, ce résultat n est pas optimal. La contribution principale de cet article est un nouveau protocole d exclusion mutuelle spéculativement stabilisant. Nous prouvons que son temps de stabilisation pour les exécutions synchrones est de diam(g)/2 étapes (où diam(g) est le diamètre du système), ce qui améliore significativement la borne du protocole de Dijkstra. En fait, nous prouvons que cela est optimal car nous présentons un résultat de borne inférieure sur le temps de stabilisation de l exclusion mutuelle pour les exécutions synchrones. Ce résultat est intéressant en lui-même étant donné qu il est indépendant de la spéculation. Pour finir, notre protocole ne requiert aucune hypothèse sur la topologie du système contrairement à celui de Dijkstra. 52/131

55 2 Modèle et définitions Swan Dubois et Rachid Guerraoui Nous considérons un système réparti, i.e. un graphe non orienté connexe g où les sommets représentent les processeurs et les arêtes représentent les liens de communication. Deux processeurs u et v sont voisins si l arête (u,v) existe dans G. L ensemble des voisins de v est noté vois(v). Le nombre de processeurs et le diamètre du système sont respectivement notés n et diam(g). Chaque processeur v possède une identité unique id v ID. Sans perte de généralité, nous supposons que ID = {0,...,n 1}. Les variables d un processeur définissent son état. L ensemble des états des processeurs du système à un instant donné forme la configuration du système. L ensemble des configurations du système est noté Γ. Nous prenons comme modèle de calcul le modèle à états. Les variables des processeurs sont partagées : chaque processeur a un accès direct en lecture aux variables de ses voisins. En une étape atomique, chaque processeur peut lire son état et ceux de ses voisins et modifier son propre état. Un protocole est constitué d un ensemble de règles de la forme < garde > < action >. La garde est un prédicat sur l état du processeur et de ses voisins tandis que l action est une séquence d instructions modifiant l état du processeur. À chaque étape, chaque processeur évalue ses gardes. Il est dit activable si l une d elles est vraie. Il est alors autorisé à exécuter son action correspondante (en cas d exécution simultanée, tous les processeurs activés prennent en compte l état du système du début de l étape). Les exécutions du système (séquences d étapes) sont gérées par un ordonnanceur (ou démon) : à chaque étape, il sélectionne au moins un processeur activable pour que celui-ci exécute sa règle. Cet ordonnanceur permet de modéliser l asynchronisme du système. Il existe de nombreuses variantes de démons (cf. [4]). Dans cet article, nous utiliserons le démon synchrone (à chaque étape, l ensemble des processeurs activables sont sélectionnés par le démon), noté ds, et le démon inéquitable distribué (aucune contrainte n est donnée au démon), noté did. Nous définissons l ordre partiel suivant sur l ensemble des démons : d d si l ensemble des exécutions autorisées par d est inclus dans celui des exécutions autorisées par d. Le démon d est alors dit plus faible que d. Définition 1 (Auto-stabilisation [2]) Un protocole réparti π est auto-stabilisant pour la spécification spec sous un démon d si, partant de toute configuration de Γ, toute exécution de π sous d contient une configuration à partir de laquelle toute exécution de π sous d vérifie spec. Nous notons temps stab(π,d) le temps de stabilisation de π sous d. Nous pouvons à présent introduire la définition principale de cet article qui formalise la notion de spéculation en auto-stabilisation. Définition 2 (Stabilisation spéculative) Pour deux démons d et d vérifiant d d, un protocole réparti π est (d,d, f )-spéculativement stabilisant pour la spécification spec si : (i) π est auto-stabilisant pour spec sous d et (ii) f est une fonction telle que : temps stab(π,d)/temps stab(π,d ) Ω( f ). 3 Exclusion mutuelle L exclusion mutuelle est un problème fondamental qui consiste à assurer que tout processeur peut exécuter infiniment souvent une section particulière de son code, appelée section critique, avec la garantie qu il n y ait jamais deux processeurs qui exécutent simultanément leur section critique. Notre contribution sur ce problème est de présenter un nouveau protocole auto-stabilisant sous le démon inéquitable distribué qui présente un temps de stabilisation optimal sous le démon synchrone. Nous adoptons la spécification suivante de l exclusion mutuelle. Pour chaque processeur v, nous définissons un prédicat privilege v. Un processeur v est privilégié dans une configuration γ si et seulement si privilege v = vrai dans γ. Si un processeur v est privilégié dans une configuration γ et que v est activé durant l étape (γ,γ ), alors v exécute sa section critique durant cette étape. Spécification 1 (Exclusion mutuelle spec EM ) Une exécution e vérifie spec EM si au plus un processeur est privilégié dans toute configuration de e (sûreté) et si tout processeur exécute infiniment souvent sa section critique dans e (vivacité). Notre protocole est basé sur un protocole d unisson auto-stabilisant [1]. Ce problème consiste à assurer, sous le démon inéquitable distribué, des garanties sur les horloges logiques des processeurs. Chaque processeur possède un registre qui stocke la valeur actuelle de son horloge logique. Un protocole d unisson assure alors que la différence entre les horloges de processeurs voisins est toujours bornée et que chaque horloge est infiniment souvent incrémentée. Dans la suite, nous résumons les résultats de [1]. 53/131

56 Spéculation et auto-stabilisation Unisson. Une horloge bornée X = (H,φ) est un ensemble fini H = cerise(α,k) (paramétré par deux entiers α 1 et K 2) doté d une fonction d incrémentation φ définie comme suit. Soit c un entier. Notons c l unique élément de [0,...,K 1] tel que c = c mod K. Nous définissons la distance d K (c,c ) = min{c c,c c} sur [0,...,K 1]. Deux entiers c et c sont localement comparables si d K (a,b) 1. Nous définissons alors la relation d ordre local l comme suit : c l c si et seulement si 0 c c 1. Définissons cerise(α,k) = { α,...,0,...,k 1}. Soit φ la fonction définie par : { (c + 1) si c < 0 φ : c cerise(α,k) (c + 1) mod K sinon La paire X = (cerise(α,k),φ) est une horloge bornée de valeur initiale α et de taille K (voir Figure 1). Une valeur d horloge c cerise(α, K) est incrémentée quand cette valeur est remplacée par φ(c). Une ré-initialisation de X est une opération consistant à remplacer toute valeur de cersie(α,k) \ { α} par α. Soient respectivement init X = { α,...,0} et stab X = {0,...,K 1} les ensembles de valeurs initiales et correctes de X. Nous notons init X = init X \ {0}, stab X = stab X \ {0} et init l ordre total naturel sur init X. FIGURE 1: Une horloge bornée X = (cerise(α,k),φ) avec α = 5 et K = 12 Soit un système réparti dans lequel tout processeur v a un registre r v stockant une valeur d une horloge bornée X = (H,φ) avec H = cerise(α,k). Nous définissons une configuration légitime pour l unisson comme une configuration dans laquelle v V, u vois(v),(r v stab X ) (r u stab X ) (d K (r v,r u ) 1). En d autres termes, une configuration légitime est une configuration telle que toute valeur d horloge est correcte et l écart entre les valeurs d horloges de processeurs voisins est borné par 1. Nous notons Γ 1 l ensemble des configurations légitimes pour l unisson. Il est important de noter que l on a, pour toute configuration de Γ 1 et toute paire de processeurs (u,v), d K (r u,r v ) diam(g). Spécification 2 (Unisson spec UA ) Une exécution e vérifie spec UA si toute configuration de e appartient à Γ 1 (sûreté) et que l horloge de tout processeur est infiniment souvent incrémentée dans e (vivacité). Dans [1], les auteurs proposent un protocole d unisson auto-stabilisant sous le démon inéquitable distribué. L idée principale est de ré-initialiser l horloge de tout processeur qui détecte une violation locale de la condition de sûreté (i.e. l existence d un voisin ayant une valeur d horloge non localement comparable). Autrement, un processeur est autorisé à incrémenter son horloge (que sa valeur soit correcte ou initiale) seulement si cette dernière a la valeur minimale localement. Le choix des paramètres α et K est crucial. En particulier, pour rendre le protocole auto-stabilisant sous le démon inéquitable distribué, ces paramètres doivent satisfaire α trou(g) 2 et K > cyclo(g), où trou(g) et cyclo(g) sont deux constantes liées à la topologie de g. Plus précisément, trou(g) est la taille du plus grand trou de g (i.e. du plus long cycle sans corde), si g contient un cycle, 2 sinon. cyclo(g) est la caractéristique cyclomatique de g (i.e. la longueur du plus long cycle de la plus petite base de cycles de g), si g contient un cycle, 2 sinon. En réalité, [1] prouve que prendre α trou(g) 2 assure que le protocole converge en un temps fini vers une configuration de Γ 1 et que prendre K > cyclo(g) assure que chaque processeur incrémente infiniment souvent son horloge. Par définition, nous savons que trou(g) et cyclo(g) sont majorés par n. Protocole d exclusion mutuelle. L idée principale de notre protocole est d exécuter l unisson autostabilisant de [1] présenté précédemment, avec une taille d horloge particulière et d accorder le privilège à un processeur seulement lorsque son horloge atteint une certaine valeur. La taille de l horloge doit être suffisante pour assurer qu au plus un processeur soit privilégié dans toute configuration de Γ 1. Si la définition du prédicat privilege garantit cette propriété, alors la stabilisation de notre protocole découle de celle de l unisson sous-jacent. Plus précisément, nous choisissons une horloge bornée X = (cerise(α,k),φ) avec α = n et K = (2.n 1)(diam(g) + 1) + 2 et nous définissons privilege v (r v = 2.n + 2.diam(g).id v ). Notre protocole, 54/131

57 Swan Dubois et Rachid Guerraoui Algorithme 1 EM SS : Protocole d exclusion mutuelle pour le processeur v Constantes : id v ID n N X = (cerise(n,(2.n 1)(diam(g) + 1) + 2),φ) diam(g) N Variable : r v X : registre de v Prédicats : privilege v (r v = 2.n + 2.diam(g).id v ) correct v (u) (r v stab X ) (r u stab X ) (d K (r v,r u ) 1) touscorrects v u vois(v),correct v (u) etapenorm v touscorrects v ( u vois(v),r v l r u ) reinit v touscorrects v (r v / init X ) etapeconv v r v initx u vois(v),(r u init X r v init r u ) Règles : NA :: etapenorm v r v := φ(r v ) CA :: etapeconv v r v := φ(r v ) RA :: reinit v r v := n baptisé EM SS (pour Exclusion M utuele Spéculativement Stabilisante) est présenté en Algorithme 1. Ce protocole est identique à celui de [1] excepté pour la taille de l horloge et la définition du prédicat privilege (qui n interfère pas avec le protocole). Il est à noter que, par définition du prédicat privilege, deux processeurs ne peuvent pas être simultanément privilégiés dans une configuration de Γ 1 (dans laquelle l écart entre leurs horloges est d au plus diam(g)). L auto-stabilisation du protocole d unisson de [1] permet alors de déduire le théorème suivant (dont la preuve détaillée est disponible dans [3]). Théorème 1 EM SS est un protocole auto-stabilisant pour spec ME sous did. L analyse du temps de stabilisation de notre protocole est disponible dans [3]. Pour le cas du démon synchrone, elle repose sur l observation que, dans le pire cas, un seul processeur ré-initialise son horloge durant la première étape d une exécution synchrone et que des sections critiques concurrentes ne sont possibles que tant que cette ré-initialisation n a pas atteint tous les processeurs, ce qui prend au plus diam(g)/2 étapes dans une exécution synchrone. Pour le cas du démon inéquitable distribué, nous utilisons le fait que le temps de stabilisation de l unisson majore celui de notre protocole. Théorème 2 temps stab(em SS,ds) diam(g)/2 et temps stab(em SS,did) O(diam(g).n 3 ) Le résultat de borne inférieure suivant nous montre l optimalité de notre protocole spéculativement stabilisant pour les exécutions synchrones (sa preuve est disponible dans [3]). Il repose sur l existence d historiques indistinguables pour tout protocole qui convergerait plus rapidement, ce qui permet de construire un contre-exemple à la stabilisation du protocole. Théorème 3 Tout protocole π auto-stabilisant pour spec ME vérifie temps stab(π,ds) diam(g)/2. 4 Perspectives Cet article ouvre une nouvelle voie de recherche en auto-stabilisation en introduisant la notion de stabilisation spéculative. Nous appliquons cette notion au problème de l exclusion mutuelle en fournissant le premier protocole spéculativement stabilisant qui soit optimal pour les exécutions synchrones. Il serait intéressant d appliquer cette approche à d autres problèmes fondamentaux, d optimiser les protocoles auto-stabilisants pour différents adversaires et de fournir un outil de composition qui fournirait de manière automatique des protocoles spéculativement stabilisants. Références [1] C. Boulinier, F. Petit, and V. Villain. When graph theory helps self-stabilization. In PODC, pages , [2] E. Dijkstra. Self-stabilizing systems in spite of distributed control. CACM, 17(11) : , [3] S. Dubois and R. Guerraoui. Introducing speculation in self-stabilization. Rapport technique HAL, , [4] S. Dubois and S. Tixeuil. A taxonomy of daemons in self-stabilization. Rapport technique HAL, , [5] B. Lampson. Lazy and speculative execution in computer systems. In ICFP, pages 1 2, /131

58 Diverse Routing with Star SRLGs Jean-Claude Bermond 1 and David Coudert 1 and Gianlorenzo D Angelo 2 and Fatima-Zahra Moataz 1 1 COATI, INRIA, I3S(CNRS/UNS), Sophia Antipolis, France 2 Department of Mathematics and Informatics, University of Perugia, Perugia, Italy La notion de groupe de liens partageant un risque (Shared Risk Link Group, SRLG) a été introduite pour modéliser des problèmes de tolérance aux pannes simultanées d ensembles de liens d un réseau. Dans ce contexte, le problème du routage diversifié est de trouver un ensemble de chemins SRLG-disjoints entre une paire donnée de nœuds du réseau. Ce problème a été prouvé NP-complet en général [7] et certains cas polynomiaux ont été caractérisés [2]. Nous avons étudié le problème du routage diversifié dans les réseaux satisfaisant la propriété d étoile [9]. Dans un réseau satisfaisant la propriété d étoile, un lien peut être affecté par plusieurs SRLGs, mais tous les liens affectés par un même SRLG sont incidents à un même sommet. Nous avons trouvé des contre-exemples à l algorithme polynomial proposé dans [9] pour le calcul de paires de chemins SRLG-disjoints dans les réseaux satisfaisants la propriété d étoile. Puis, nous avons prouvé que ce problème est en fait NP-difficile. Plus généralement, nous avons montré que le problème du routage diversifié dans les réseaux avec la propriété d étoile est NP-difficile, APX-difficile, et W [1]-difficile lorsque le paramètre est le nombre de chemins SRLG-disjoints. Enfin, nous avons caractérisé de nouvelles instances polynomiales, en particulier lorsque le degré maximum des sommets est 4, ou lorsque le réseau est acyclique. Keywords: SRLG, Diverse Routing, Colored Graph 1 Introduction To ensure reliable communications, many protection schemes have been proposed. One of the most used, called dedicated path protection, consists in computing for each demand both a working and a protection path. A general requirement is that these paths have to be diversely routed, so that at least one of them can survive a single failure in the network. This method works well in a single link failure scenario, as it consists in finding two edge-disjoint paths between a pair of nodes. This is a well-known problem in graph theory for which there exist efficient polynomial time algorithms. However, the problem of finding two diversely routed paths between a pair of nodes becomes much more difficult in case of multiple correlated link failures that can be captured by the notion of SRLG (Shared Risk Link Group). In fact, an SRLG is a set of network links that fail simultaneously when a given event (risk) occurs. The scope of this concept is very broad. It can correspond, for instance, to a set of fiber links of an optical backbone network that are physically buried at the same location and therefore could be cut simultaneously (i.e. backhoe or JCB fade). It can also represent links that are located in the same seismic area, or radio links in access and backhaul networks subject to localized environmental conditions affecting signal transmission, or traffic jam propagation in road networks. Note that a link can be affected by more than one risk. In practice, the failures are often localized and common SRLGs are SRLGs verifying the star property [9] (coincident SRLGs in [5]). Under this property, all links of a given SRLG share an endpoint. Such failure scenarios can correspond to risks arising in router nodes like card failures or to the cut of a conduit containing links issued from a node (see Figure 1). Related work In the context of SRLG, basic network connectivity problems have been proven much more difficult to address than their counterparts for single failures. For instance, the problem of finding a SRLG-shortest Full version of this work is available in [1]. 56/131

59 Jean-Claude Bermond and David Coudert and Gianlorenzo D Angelo and Fatima-Zahra Moataz l 1 l 2 l 3 l 4 l 5 l 6 l 1 l 2 l 3 l 4 l 5 l 6 r 4 P ort1 v P ort2 P ort3 l 7 l 8 r 1 v r 2 r 3 l 7 l 8 FIGURE 1: Example of localized risks : link l 4 shares risk r 2, corresponding to Port 2 failure, with l 5 and l 6, and shares risk r 4, corresponding to a conduit cut, with links l 2 and l 3. st-path which is a path from node s to node t having the minimum number of risks has been proven NP-hard and hard to approximate in general. However, the problem can be solved in polynomial time in two generic practical cases corresponding to localized failures : when all risks verify the star property [3] and when risks are of span 1 (i.e. when a link is affected by at most one risk and links sharing a given risk form a connected component [2]). The diverse routing problem in presence of SRLGs consists in finding two SRLG-disjoint paths between a pair of vertices (i.e. paths having no risk in common). It has been proven NP-complete in general [7, 6, 8, 10] and many heuristics have been proposed. The problem is polynomial in some specific cases of localized failures : when SRLGs have span 1 [2], and in a specific case of SRLGs having the star property [4] in which a link can be affected by at most two risks and two risks affecting the same link form stars at different nodes (this result also follows from results of [2]). Our results We studied the diverse routing problem when SRLGs have the star property and there are no restrictions on the number of risks per link. This case has been studied in [9] in which the authors claim that the diverse routing problem with the star property can be solved in polynomial time. Unfortunately their algorithm is not correct ; indeed we exhibited counterexamples for which their algorithm concludes to the non existence of two SRLG-disjoint paths although two such paths exist. We proved that the problem is in fact NP-complete (again, contradicting the supposed polynomiality of the algorithm of [9], unless P = NP). On the positive side, we showed that the diverse routing problem can be solved in polynomial time in particular subcases which are relevant in practice. Namely, we solved the problem when the number of SRLGs is bounded by a constant, when the maximum degree is at most 4 or when the input network is a directed acyclic graph. Finally, we considered the problem of finding the maximum number of SRLG-disjoint paths. This problem has been shown to be NP-hard in [8]. We proved that it is also NP-hard under the star property. 2 Diverse Routing with star SRLGs Counterexample Luo and Wang have published in [9] an algorithm to find a pair of SRLG-disjoint paths with minimum total cost from a source s to a destination t in graphs with SRLGs satisfying the star property. We have proved the incorrectness of their algorithm with counterexamples. Figure 2 shows a counterexample where we have 2 specific risks r 1 and r 2 r 1 forming a star in v. We obviously have two SRLG-disjoint paths P 1 = {s,a,z,w,u,v,b,t} and P 2 = {s,a,w,u,v,b,t} but if we ran the algorithm of [9], it will terminate concluding that no two SRLG-disjoint paths exist (see full version in [1] for more details). 57/131

60 Diverse Routing with Star SRLGs a w u b s z t a u r 2 r 1 r 2 r 1 r 2 r 1 v b FIGURE 2: Example 2 Model and problem statement To state precisely our results we use the multi-colored graph model [2, 9]. In the multi-colored graph model, the network is modeled by a graph mg = (V,E) and the set of SRLGs by a set of colors R which is a covering of E. Each SRLG is modeled by a distinct color and an edge modeling a network link subject to different SRLGs will be assigned as many colors as SRLGs. In such a model, the star property corresponds to the fact that all the edges with the same color are incident to a common vertex and so form a star. In what follows we denote by the maximum degree, by c the maximum colored degree (the number of colors incident to a node), by E(c) the set of edges having color c R, by R (e) the set of colors associated with edge e E, by CPE = max e E R (e) the maximum number of colors per edge, and by EPC = max c R E(c) the maximum number of edges having the same color. Given a multi-colored graph mg and two vertices s and t. We say that two st-paths P 1 and P 2 are colordisjoint if ( e P1 R (e)) ( e P2 R (e)) = /0. The diverse routing problem defined in the introduction consists then in finding k color-disjoint paths and can be formulated formally as follows : Problem 1 (k-diverse Colored st-paths, k-dcp). Given a multi-colored graph mg and two vertices s and t, are there k color-disjoint st-paths from s to t? Another related problem we studied aims at finding the maximum number of color-disjoint paths and can be stated formally as follows : Problem 2 (Max Diverse Colored st-paths, MDCP). Given a multi-colored graph mg and two vertices s and t, find the maximum number of color-disjoint st-paths. NP-completeness Theorem. The k-dcp problem is NP-complete for any fixed constant k 2, even if all the following properties hold : the star property ; the maximum degree is fixed with 6 + k ; CPE, EPC and c are fixed with either [CPE 4, EPC 2, and c 14 + k] or [CPE 2, EPC 4 and c 2 + k]. we proved the above theorem by using a reduction from the problem of finding a T -compatible path (or a path avoiding forbidden transitions), which was proved NP-complete in [11]. Let G = (V,E) be an undirected graph. A transition in v V is a pair of edges incident to v. To each vertex v we associate a set T (v) of admissible (or allowed) transitions in v. We call transition system the set T = {T (v) v V }. Let G = (V,E) be a graph and T a transition system. A path P = {v 0,e 1,v 1,...,e k,v k } in G, with v i V, e i E, is said to be T -compatible if, for every 1 i k 1, the pair of edges {e i,e i+1 } is an admissible transition, i.e. {e i,e i+1 } T (v i ). Problem 3 (T -Compatible path, T -CP). Given a graph G = (V,E), two vertices s and t in V, and a transition system T, does G contain a T -compatible path from s to t? The reduction consists in transforming an instance T -CP on a graph G to an instance of 2-DCP on a colored graph mg. The transformation is such that every edge in G is substituted by 2 paths, of length 2 each, in 58/131

61 Jean-Claude Bermond and David Coudert and Gianlorenzo D Angelo and Fatima-Zahra Moataz Graph EPC CPE k-dcp MDCP Undirected Strongly NP-hard Not approximable 4 2 for 6 + k within O( V ) Directed 3 any any Solvable in O( V + Optimum in O( V + E ) time E ) time = 4 any any Solvable in O( V + 2-approximation in E ) time for k = 2 O( V + E ) time R = O(1), any any any Solvable in O( V + Optimum in even without E ) time O(( V + E )log ) star time Solvable Strongly NP-hard DAG unbounded 2 unbounded in O( V E 2k ) time Not approximable within O( V ) unbounded 3 APX-hard unbounded unbounded W[1]-hard TABLE 1: Summary of complexity results. mg and colors are assigned in mg such that two color-disjoint paths can cross a vertex in mg if and only if a path in G can cross the same vertex using an allowed transition (see full version in [1] for more details). 3 Conclusion Our results give an almost complete characterization of the problem of finding SRLG-disjoint paths in networks with SRLGs satisfying the star property. We summarize them all in Table 1. Références [1] J-C. Bermond, D. Coudert, G. D Angelo, and F. Z. Moataz. Diverse Routing with the star property. Research Report RR-8071, INRIA, September [2] D. Coudert, P. Datta, S. Perennes, H. Rivano, and M-E. Voge. Shared risk resource group : Complexity and approximability issues. Parallel Processing Letters, 17(2) : , June [3] D. Coudert, S. Perennes, H. Rivano, and M-E. Voge. Shared risk resource groups and colored graph : Polynomial and FPT optimisation problems. Submitted. [4] P. Datta and A.K. Somani. Graph transformation approaches for diverse routing in shared risk resource group (SRRG) failures. Computer Networks, 52(12) : , August [5] J. Doucette and W. Grover. Shared-risk logical span groups in span-restorable optical networks : Analysis and capacity planning model. Photonic Network Communications, 9(1) :35 53, [6] G. Ellinas, E. Bouillet, R. Ramamurthy, J-F. Labourdette, S. Chauduri, and K. Bala. Routing and restoration architectures in mesh optical networks. Optical Networks Magazine, pages , January [7] J.Q. Hu. Diverse routing in mesh optical networks. IEEE Transactions on Communications, 51 : , March [8] G. Li, C. Kalmanek, and R. Doverspike. Fiber span failure protection in mesh optical networks. Optical Networks Magazine, pages 21 31, May [9] X. Luo and B. Wang. Diverse routing in WDM optical networks with shared risk link group (SRLG) failures. In Proc. DRCN, pages IEEE, October [10] E. Modiano and A. Narula-Tam. Survivable lightpath routing : a new approach to the design of WDM-based networks. IEEE Journal of Selected Areas in Communication, 20(4) : , May [11] S. Szeider. Finding paths in graphs avoiding forbidden transitions. Discrete Applied Mathematics, 126(2 3) : , /131

62 De la difficulté de garder ses amis (quand on a des ennemis)! Augustin Chaintreau 1 and Guillaume Ducoffe 1,2 and Dorian Mazauric 1,3 1 Columbia University, Computer Science Department, New York 2 École Normale Supérieure de Cachan 3 Laboratoire d Informatique Fondamentale de Marseille, équipe ACRO Nous nous intéressons aux processus locaux de formation des groupes de partage d information dans les réseaux sociaux. Le réseau est modélisé par un graphe arête-valué où le poids (positif ou négatif) d une arête représente l utilité que les deux sommets ont s ils se trouvent dans un même groupe. Nous supposons que les groupes de partage forment une partition des sommets. Le processus local de formation des groupes est basé sur l optimisation de l utilité individuelle de chaque sommet. Soit k la taille maximale d une coalition. Un sous-ensemble d au plus k personnes peut rejoindre un groupe existant ou créer un nouveau groupe si, et seulement si, leurs utilités respectives augmentent strictement. Ce changement est appelé une k-déviation. Une partition est k-stable si, et seulement si, il n y a pas de k-déviation possible. Kleinberg et Ligett ont montré que si les poids sont et 1 (ennemis et amis), alors il existe toujours une partition k-stable pour tout k 1. Ils ont également montré que pour k {1,2,3}, le nombre maximum de déviations avant d atteindre une partition k-stable est polynomial. La polynomialité du temps de convergence dans le cas le pire pour k = 4 a été laissée comme problème ouvert. Nous montrons que ce dernier peut être Ω(n clog(n) ) avec c une constante et n le nombre de sommets. De plus, nous prouvons une formule close pour k {1,2}, une meilleure borne inférieure pour k = 3 et des résultats d existence et de complexité pour des poids généraux. Keywords: partage d information, réseaux sociaux, algorithme local, stabilité, temps de convergence. 1 Introduction. Contexte et motivation. Qui reçoit de moi une idée augmente son instruction sans diminuer la mienne. De cet idéal énoncé par Thomas Jefferson on peut retenir que partager de l information produit parfois un bénéfice mutuel. L importance d être bien informé motive une palette d activité sociale (groupes, communautés, réseautage), récemment transformés par des outils en lignes, avec un net risque de surexposition. Facebook, Twitter, Weibo simplifient le partage et suppriment les frontières géographiques ou de classes. Mais ils transforment aussi le contexte de cette information, traditionnellement contrôlée par la diffusion entre cercles et groupes sociaux qui tiennent à l écart ceux que l on ne veut pas tenir informés de tout, voire du tout. Comment se constituent ou pourrait mieux se constituer des groupes de partage d information dans un graphe où les arêtes représentent soit un bénéfice mutuel, soit une incompatibilité? Éviter les paires incompatibles en formant des partitions où l information se propage peut sembler efficace. Assigner ces groupes par un algorithme de coloration de graphe, par contre, semble simpliste et peut se révéler instable car les noeuds, suivant leurs intérêts, peuvent dévier vers une configuration qui les favorisent. Nous étudions la dynamique, encore inconnue, de ce jeu distribué. Modélisation du réseau social et des groupes. Le réseau est modélisé par un graphe arêtevalué G = (V, E,w) avec V représentant l ensemble des utilisateurs. Le poids w u,v (positif ou négatif) entre deux sommets u et v représente l utilité engendrée pour u et v si ces deux derniers partagent de l information. Nous supposons que le graphe est complet en ajoutant des arêtes de poids 0 si nécessaire. Nous notons W l ensemble des poids pris par les arêtes. La Figure 1(a) 60/131

63 Augustin Chaintreau and Guillaume Ducoffe and Dorian Mazauric v3 4 2 u1 3 v2 v3 4 2 u1 3 v déviation 3 3 u2 u v1 Arêtes u2 u Poids v1 - > Utilité globale = 24 (optimal) Stable pour k=1,2, Utilité globale = 20 Stable pour tout k 1 1 (a) L instance de gauche représente un graphe arête-valué avec W = {,2,3,4}. La partition décrite à droite est 1- stable mais il n existe pas de partition 2-stable pour cette instance. (b) Exemple de 4-déviation avec W = {,1}. La partition de gauche est 3-stable mais pas 4-stable, et l utilité globale est maximale. La partition de droite est 4-stable mais l utilité globale a diminué. FIGURE 1: Deux instances du problème de partage d information dans les réseaux sociaux. (gauche) représente un exemple de graphe valué avec W = {,2,3,4}. Un poids entre deux sommets représente le cas où les deux utilisateurs sont ennemis et ne veulent en aucun cas partager de l information. Nous supposons enfin que les groupes de partage forment une partition des sommets. Autrement dit, un sommet appartient à un unique groupe. Étant donnée une partition C, l utilité f u (C) d un sommet u est la somme des poids des arêtes adjacentes à u dans son groupe. Formellement f u (C) = v C(u) w u,v où C(u) représente l ensemble des sommets dans le même groupe que u. L utilité du sommet v 3 pour la partition décrite dans la Figure 1(a) (droite) est 6. Notons que deux sommets ennemis (poids ) ne sont jamais dans le même groupe mais que deux sommets liés par un poids négatif (autre que ) peuvent être dans un même groupe en raison de compensations. Processus local et optimisation individuelle. La dynamique du système est la suivante. Initialement, chaque utilisateur forme un groupe seul. Soit k 1 la taille maximale constante d une coalition. Étant donnés des groupes de partage, un sous-ensemble d au plus k utilisateurs peut rejoindre un groupe existant ou créer un nouveau groupe si, et seulement si, leurs utilités respectives augmentent strictement. Ce changement est appelé une k-déviation. La partition est k-stable si, et seulement si, il n y a pas de k-déviation possible. La partition décrite dans la Figure 1(a) (droite) est 1-stable. En effet, aucun sommet ne peut créer un nouveau groupe seul et augmenter strictement son utilité. De plus, aucun sommet ne peut rejoindre (seul) un groupe existant car soit un ennemi y est présent soit il aurait une utilité strictement positive mais inférieure à son utilité courante. En revanche, cette partition n est pas 2- stable car les deux sommets v 1 et v 2 peuvent former une coalition et rejoindre le groupe formé par u 3. L utilité de v 1 passe de 4 à 5 et l utilité de v 2 passe de 5 à 6. Plus généralement, il est possible d observer que cette instance n admet pas de partition 2-stable. Stabilité et temps de convergence. Un problème important est de caractériser les classes d instances admettant une partition k-stable. Pour ces instances, il est alors intéressant de déterminer si une partition k-stable est atteignable par le processus dynamique opérant dans le système. Pour ces instances, nous nous sommes intéressés au temps de convergence du processus dynamique (nombre de k-déviations avant d obtenir la k-stabilité) dans le pire des cas notamment. Travaux existants. Kleinberg et Ligett ont montré dans [KL10] que si W = {,1}, alors il existe toujours une partition k-stable pour tout k 1. Cette classe d instances peut correspondre au cas où il n y a que des amis et des ennemis, et où, pour des raisons de vie privée, un individu ne veut surtout pas partager d information avec un ennemi. Pour ces instances particulières, ils ont montré que le temps de convergence est polynomial pour k {1,2,3}. Ils ont en revanche laissé ouvert le problème de la polynomialité du temps de convergence pour k = 4. Contributions. Nous avons montré que, pour k = 4 et W = {,1}, le temps de convergence pouvait être Ω(n clog(n) ) avec c une constante et n le nombre d utilisateurs. Pour k {1,2}, nous avons prouvé une formule close pour le nombre exact de k-déviations dans le pire des cas (Ta- 61/131

64 De la difficulté de garder ses amis (quand on a des ennemis)! bleau 1). De plus, nous avons montré que pour W = {,0,1}, il existe pour tout réseau, une partition 1 et 2-stable (avec des temps de convergence polynomiaux) mais que certains réseaux n admettent pas de partition 3-stable. Cette classe d instances modélise le cas où les utilisateurs peuvent avoir des relations neutres. Plus généralement, nous montrons des résultats d existence pour des poids généraux (Tableau 2) et nous prouvons que le problème de décider s il existe une partition k-stable est NP-complet en général. L intégralité de nos résultats et de nos preuves se trouve dans [DMC12]. 2 Temps de convergence pour l ensemble de poids W = {,1}. Pour l ensemble de poids W = {,1}, nous représentons toute partition C par un vecteur de partition Λ = (λ n,...,λ 1 ) de taille n où λ i représente le nombre de groupes de taille exactement i pour tout 1 i n. Nous avons montré que, pour tout k 1 et pour toute partition, n importe quelle k-déviation augmente le vecteur de partition selon l ordre lexicographique. Donc le processus local converge toujours vers une partition k-stable. Autrement dit, il n y a pas de cycle de k-déviations pouvant empêcher le processus d atteindre une partition k-stable. Un paramètre important est alors le nombre maximal de k-déviations avant d atteindre la k- stabilité. Étant donnés k 1 et n 1, nous notons L(k,n) ce temps de convergence, dans le pire des cas, pour un graphe avec au plus n sommets. Notons que L(k,n) L(k,n) pour tout k k 1 et pour tout n 1. Kleinberg et Ligett ont montré dans [KL10] que L(1,n) = O(n 2 ), L(2,n) = O(n 2 ) et L(3,n) = O(n 3 ). Pour k {1,2}, leur preuve s appuie sur le fait que la somme des utilités augmente strictement après n importe quelle k-déviation. Le résultat s obtient ensuite en remarquant que cette somme est bornée supérieurement par O(n 2 ) car l utilité individuelle est bornée supérieurement par n 1. Pour k = 3, ils ont montré que la somme des carrés des utilités augmente toujours strictement après n importe quelle k-déviation (l utilité globale peut ne pas augmenter) et donc que L(3,n) = O(n 3 ). Ils ont en revanche laissé ouvert le problème de la polynomialité pour k = 4. Dans ce cas, toute fonction (additive) potentielle bornée par un polynôme peut décroître strictement pour certaines 4-déviations. Nous avons résolu le problème ouvert de [KL10] en montrant que L(k,n) n est pas polynomial pour tout k 4. Théorème 1 L(4,n) = Ω(n clog(n) ) avec c une constante. En utilisant les techniques développées dans la preuve du Théorème 1, nous avons également prouvé une borne inférieure pour k = 3 : L(3,n) = Ω(n 2 ). Nous avons également prouvé que L(k,n) = O(e n ) améliorant la meilleure borne supérieure exponentielle connue. La preuve s appuie sur le fait que le nombre de vecteurs de partitions différents est O(e n ). Rappelons qu un vecteur de partition augmente strictement selon l ordre lexicographique après n importe quelle k-déviation. Pour améliorer les bornes supérieures, nous avons montré que nous pouvons nous ramener au cas W = {1}. Autrement dit, pour tout k 1 et pour tout n 1, L(k,n) est atteint pour W = {1}. Nous avons alors prouvé que L(1,n) = L(2,n) en montrant que cette valeur était égale à la longueur de la plus longue chaine dans le treillis des partitions. Utilisant les résultats de [GK86, GK93], nous déduisons la formule close : Théorème 2 L(1,n) = L(2,n) = 2( m+1 m(m+1) 3 ) + mr, où r et m sont les uniques solutions de n = 2 + r, 0 r m. Cela implique que L(1,n) = L(2,n) 2 3 n n quand n est grand. Le Tableau 1 résume les résultats des travaux existants et nos contributions. 3 Existence de partition k-stable pour des poids généraux. Étant donné un ensemble de poids W, k(w) est défini de la manière suivante : pour tout k k(w), il existe une partition k-stable pour tout graphe et il existe un graphe qui n est pas 62/131

65 Augustin Chaintreau and Guillaume Ducoffe and Dorian Mazauric k Littérature Nos résultats 1 O(n 2 ) 2 3 n3/2 2 O(n 2 ) 2 3 n3/2 3 O(n 3 ) Ω(n 2 ) 4 O(2 n ) Ω(n clog(n) ), O(e n ) TABLE 1: Temps de convergence maximal L(k, n) pour W = {,1}. W k(w) {, a,b}, 0 < a < b 1 {, N,0,1} 2 {,b}, b > 0 W N ; W N N {N} TABLE 2: Existence de partition k-stable représenté par k(w). (k(w) + 1)-stable. S il existe une partition k-stable pour tout k 1, nous définissons k(w) = (e.g. k({,1}) = ). Nous avons prouvé que k(w) 1 pour tout W, c est-à-dire qu il existe tojuours une partition 1- stable. Nous avons ensuite caractérisé les ensembles W tels que k(w) =. Précisément k(w) = W = {,b} avec b > 0, W N ou W N {N}. Nous avons également montré que si nous ajoutons des relations neutres entre individus à la classe d instances ennemis et amis, alors la 3-stabilité n est plus garantie. Autrement dit, pour W = {,0,1}, il existe un graphe G qui n admet pas de partition 3-stable et il existe toujours une partition 2-stable (avec temps de convergence polynomial). De plus, nous avons prouvé que k({,0,1}) = k({, N,0,1}). Enfin pour W = {, a,b}, 0 < a < b, nous avons montré que k(w) = 1. Le Tableau 2 résume nos résultats. Pour conclure, nous avons démontré que le problème de décider s il existe une partition k- stable est NP-complet. Nous avons utilisé le problème de l ensemble indépendant de cardinalité maximale dans notre réduction. Théorème 3 Pour tout W contenant et pour tout k > k(w), étant donné un graphe G avec les poids W, le problème de décider s il existe une partition k-stable pour G est NP-complet. 4 Extensions et travaux futurs. En plus de poursuivre notre étude pour des poids généraux, nous proposons d étudier la formation des groupes de partage dans les réseaux sociaux lorsque les sommets peuvent appartenir à plusieurs groupes différents. Certains réseaux n admettant pas de configuration k-stable dans le cas de la partition, peuvent maintenant avoir une configuration k-stable. Mais nos premiers résultats montrent également que cela peut rendre le réseau instable. En effet, la 3-stabilité n est plus garantie pour l ensemble de poids W = { M,1} lorsque les sommets appartiennent à deux groupes. Une autre extension intéressante est de prendre en compte des utilités transitives. Un utilisateur peut ne pas vouloir être dans un groupe comprenant simultanément une personne de son cercle amical et une personne de son cercle professionnel (alors que les utilités respectives sont intrinsèquement positives). Nous envisageons une modélisation à base d hypergraphes. Références [DMC12] Guillaume Ducoffe, Dorian Mazauric, and Augustin Chaintreau. Convergence of coloring games with collusions. Technical report, Columbia University, August available at augustin/pub/dmc.tr13.pdf. [GK86] [GK93] [KL10] C Greene and D J Kleitman. Longest chains in the lattice of integer partitions ordered by majorization. Eur. J. Comb., 7(1) :1 10, January Eric Goles and Marcos A. Kiwi. Games on line graphs and sand piles. Theoretical Computer Science, 115(2) : , Jon M Kleinberg and Katrina Ligett. Information-Sharing and Privacy in Social Networks. paper in progress (available at arxiv.org/abs/ ), Le poids N > 0 est plus grand que n fois la valeur absolue du poids négatif le plus petit (différent de ). 63/131

66 Explorer une grille avec un minimum de robots amnésiques Stéphane Devismes 1, Anissa Lamani 2, Franck Petit 3, Pascal Raymond 1 et Sébastien Tixeuil 3 1 VERIMAG UMR 5104, Université Joseph Fourier, Grenoble 2 MIS, Université de Picardie Jules Verne, Amiens 3 LIP6 UMR 7606, UPMC Sorbonne Universités, Paris Nous nous intéressons à l exploration finie d une grille i j par une équipe de k robots autonomes, asynchrones et amnésiques i et j représentent le nombre de lignes et de colonnes de la grille avec 1 i j. Nous montrons que k = 3 robots sont nécessaires et suffisants pour résoudre le problème dans les modèles asynchrone et semi-synchrone, sauf si j 2 ou si i = j = 3, auxquels cas k doit respectivement être égal à i j ou au moins égal à 5. Keywords: exploration, grille, robots, minimalité 1 Introduction Nous considérons k robots (ou agents) autonomes se déplaçant dans une grille i j non orientée telle que i et j représentent le nombre de lignes et de colonnes de la grille par convention, nous supposons 1 i j. Nous nous intéressons au problème de l exploration finie d une telle grille : à partir d une configuration où les k robots sont arbitrairement placés sur des nœuds distincts, la grille doit être entièrement visitée par les robots, avant que ceux-ci ne s arrêtent définitivement. Plus précisément, la terminaison doit être certaine et lors de cette terminaison, chaque nœud de la grille doit avoir été visité par au moins un des robots. Les robots que nous considérons sont dotés de capteurs visuels et d actionneurs de mouvement. Leur programme consiste à exécuter infiniment souvent le cycle OCD constitué des trois phases suivantes : Observation, Calcul et Déplacement. Durant la phase d observation, le robot prend connaissance de son environnement à l aide de ses capteurs visuels. Ensuite, en fonction de l environnement perçu, le robot décide de se déplacer sur l un des nœuds adjacents ou de rester sur place. Les robots n ayant pas accès à un dispositif partagé de synchronisation, les trois phases sont exécutées de manière complètement asynchrone par chacun des robots. Cependant, nous supposons qu un robot ne peut pas être vu en transit entre deux nœuds adjacents. Par ailleurs, rien ne permet de distinguer un robot d un autre et tous exécutent le même programme. De plus, les robots sont amnésiques, c est-à-dire que leur mémoire est volatile et s efface complètement entre deux cycles OCD. Enfin, les robots sont dénués de tout moyen de communication direct. En revanche, lors de la phase d observation, ils perçoivent la grille dans son intégralité et sont capables de déterminer pour chaque nœud s il contient 0, 1 ou plusieurs robots. Néanmoins, ils ne disposent d aucun dispositif qui leur permettrait de déterminer une quelconque orientation de la grille ou d identifier les nœuds a priori. Ainsi, suite à une observation, il se peut que plusieurs arêtes adjacentes au nœud occupé par le robot lui semblent identiques, i.e. le robot se situe alors sur un axe de symétrie de la configuration. Dans ce cas, si le robot décide de bouger, il peut traverser l une ou l autre des arêtes : nous considérons alors le pire cas où le choix de l arête traversée est décidé par un adversaire. L exploration finie par k robots a été étudiée pour des anneaux de n nœuds [1, 2, 3]. Dans [1], les auteurs montrent que le problème peut être résolu de manière déterministe seulement si k et n sont premiers entre La version longue de cet article a été présentée lors de SSS Cette hypothèse est à la fois usuelle et non restrictive dans ce type de modèle. D une part, elle simplifie les algorithmes. D autre part, elle peut être levée facilement : le robot peut décider de ne pas bouger lorsqu il observe que des robots ne sont pas sur des nœuds. 64/131

67 Stéphane Devismes, Anissa Lamani, Franck Petit, Pascal Raymond et Sébastien Tixeuil eux. Ils proposent d ailleurs un algorithme pour ce cas, celui-ci nécessite en plus que k soit au moins égal à 17. Il est prouvé dans [2] que 4 robots sont nécessaires et suffisants pour résoudre l exploration avec une probabilité 1 de terminaison dans le modèle semi-synchrone, sans l hypothèse de primalité entre k et n. Dans le modèle semi-synchrone, à chaque instant t, un adversaire sélectionne un sous-ensemble non vide de robots, lesquels exécutent intégralement le cycle OCD entre t et t + 1 ; de plus, l adversaire doit sélectionner tout robot infiniment souvent. Enfin, un algorithme déterministe dans le modèle asynchrone utilisant un minimum de robots, i.e., 5, est proposé dans [3]. Suivant le résultat de [1], cet algorithme ne considère que des anneaux de taille non divisible par 5. Dans cet article, nous démontrons que seuls k = 3 robots sont nécessaires et suffisants pour résoudre l exploration (déterministe) finie d une grille i j avec 1 i j dans les modèles asynchrone et semisynchrone, sauf si 1 i j 2 ou si i = j = 3. Dans le premier de ces deux derniers cas, k doit être égal à i j ; dans le second, k doit être au moins égal à 5. Nos résultats sont constructifs puisque nous proposons des algorithmes dans le modèle asynchrone utilisant le minimum de robots pour chacun des cas. 2 Bornes inférieure Nous nous plaçons tout d abord dans le modèle semi-synchrone. Par définition, toute impossibilité constatée dans ce modèle est également valide dans le modèle asynchrone. Dans la suite, lorsque plusieurs robots sont localisés sur un même nœud de la grille, nous disons qu ils forment une tour. Dans [2], les auteurs montrent dans le modèle semi-synchrone que l amnésie des robots impose de construire une mémoire implicite au moyen des configurations du système afin de se souvenir quels nœuds ont été visités. Leurs résultats permettent d énoncer la remarque suivante : Remarque 1 Un algorithme (déterministe ou probabiliste) d exploration finie fonctionnant sur une grille i j et utilisant k robots termine dans une configuration sans tour si et seulement si k = i j. En d autres termes, le seul algorithme d exploration fonctionnant sans construire de tour est l algorithme trivial où il y a autant de robots que de nœuds. La remarque 1 nous permet également d affirmer qu il faut au moins 2 robots (afin de pouvoir former une tour) pour explorer toute grille constituée d au moins 3 nœuds. Ensuite, en supposant que 2 robots soient suffisants, nous pouvons construire une exécution séquentielle possible e constituée d un préfixe sans tour et d une configuration terminale contenant une tour telle que e termine sans que la grille ait été entièrement visitée. D où : Théorème 1 Il n existe pas d algorithme (déterministe ou probabiliste) d exploration finie fonctionnant sur une grille i j telle que i j 3 qui utilise moins de 3 robots. La grille 2 2 étant aussi un anneau de 4 nœuds, le résultat de [2] nous permet d affirmer que 4 robots sont nécessaires (et suffisants) pour visiter une telle grille. Ainsi : Théorème 2 L exploration finie (déterministe ou probabiliste) d une grille i j telle que 1 i j 2 est possible si et seulement si k = i j. Les théorèmes 1 et 2 nous donnent la condition nécessaire de notre résultat global à l exception de la grille 3 3. En supposant k = 3 robots, nous avons montré qu il existe toujours des exécutions où au plus 3 nœuds sont visités avant de créer une tour d au moins deux robots. Nous avons ensuite utilisé un model-checker qui nous a permis de générer de manière exhaustive toutes les classes de configurations atteignables par tout algorithme en partant de n importe quelle configuration contenant une tour d au moins deux robots. Nous avons ainsi montré qu aucune des classes générées ne permettait de terminer l exploration sans oublier de nœuds. En supposant k = 4 robots, il est facile de montrer que l exploration peut ne pas terminer. En effet, en partant d une configuration où les 4 robots sont initialement situés sur les nœuds médian des 4 bords, quel que soit l algorithme, les choix de l adversaire peuvent toujours mener à une configuration où soit chaque robot est dans un coin distinct, soit les robots forment tous une tour sur le nœud central de la grille. Dans ces deux cas, les choix de l adversaire peuvent ensuite forcer les déplacements des quatre robots pour revenir à la configuration initiale. Les robots étant amnésiques, l exécution ne termine alors jamais.. La version détaillée de cet article est disponible sur raymond/misc/robots/ 65/131

68 Explorer une grille avec un minimum de robots amnésiques 3 Exploration avec trois robots Nous considérons maintenant le modèle asynchrone et nous proposons deux algorithmes (déterministes) d exploration finie de grilles i j n utilisant que 3 robots. Le premier fonctionne sur toute grille i j où j 3 et j = 3 i / {2,3}. La grille 2 3 fait l objet du second algorithme proposé dans cette section. Algorithme général. L algorithme fonctionne selon les 3 phases suivantes : Mise-en-place : De loin la plus ardue, cette phase fait l objet d explications un peu plus détaillées ci-dessous. Partant d une configuration quelconque sans tour, elle vise à mettre les 3 robots dans un des coins d un des plus longs bords de la grille comme présenté dans la figure 1. Orientation : Cette phase succède à la Mise-en-place. Cette phase est constituée d un seul mouvement : le robot situé dans coin de la grille se déplace sur le nœud voisin contenant un robot et construit ainsi une tour. La figure 2 présente un exemple de configuration obtenue. Grâce à cette tour nous obtenons un système de coordonnées implicite, comme décrit dans la figure. Exploration : La phase d exploration utilise le système de coordonnées défini lors de la phase précédente pour explorer toute la grille sauf les nœuds (0,0), (0,1) et (0,2) dont on sait qu ils sont déjà visités. Durant cette phase, le robot initialement en (0,2) se déplace comme décrit en figure 3. Il se déplace toujours vers le nœud (voisin) successeur de sa position courante suivant l ordre : (x,y) (x,y ) y < y [y = y (x = x y mod 2 = 0 x < x y mod 2 = 1 x > x )]. L exploration se termine lorsqu il a atteint le nœud maximum dans cet ordre. (0,0) (0,1) (0,2) (0,3) (0,4) (0,5) (0,6) (0,0) (0,1) (0,2) (0,3) (0,4) (0,5) (0,6) (1,0) (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (1,0) (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (2,0) (2,1) (2,2) (2,3) (2,4) (2,5) (2,2) (2,0) (2,1) (2,2) (2,3) (2,4) (2,5) (2,2) (3,0) (3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (3,0) (3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (4,0) (4,1) (4,2) (4,3) (4,4) (4,5) (4,6) (4,0) (4,1) (4,2) (4,3) (4,4) (4,5) (4,6) FIGURE 1: Mise-en-place FIGURE 2: Orientation FIGURE 3: Exploration L espace alloué ne nous permet pas de décrire chaque phase en détail. Les phases d orientation et d exploration ne réclamant guère plus d explication, nous nous concentrons donc sur les grandes lignes de la stratégie mise en œuvre lors de la phase Mise-en-place. L algorithme réalise cette phase sans créer de tour, ce qui assure que cette phase est distincte des deux autres. Pour cela, il distingue trois classes de configurations. La première de ces trois classes (appelons la L) regroupe toutes les configurations où un seul robot est localisé dans un coin de la grille. Appelons ce robot r 1. Dans ce cas, le but est d amener les deux autres robots (r 2 et r 3 ) sur l un des plus longs côtés adjacents à r 1 remarquons qu il peut y en avoir 2 dans le cas d une grille carré (i = j). Les déplacements de r 2 et r 3 sont ordonnés en fonction de la distance de Manhattan qui les séparent de r 1. Les deux robots rejoignent le nœud libre le plus proche sur le côté ciblé via le plus court chemin, avec priorité au robot le plus proche de r 1, s il y en a un. Une fois que les robots sont tous sur le côté ciblé, ils se regroupent de manière à former la configuration finale attendue. Bien sûr, cette stratégie peut être mise à mal par des situations particulières. Si r 2 et/ou r 3 sont localisés sur le plus petit côté adjacent à r 1, ils doivent au préalable s écarter du bord d un saut sur le côté, le cas échéant en évitant tout nœud déjà occupé. Toujours dans la classe L, quelques cas de symétries peuvent aussi se produire, en particulier lorsque la grille est carrée. La situation la plus caractéristique est lorsque r 2 et r 3 sont chacun sur les bords orthogonaux se croisant là où est r 1. Si la distance les séparant de r 1 est supérieure à 1 (ils ne sont pas sur les nœuds adjacents à celui de r 1 ), c est alors r 1 qui brise la symétrie en s écartant du coin (le choix de la direction est fait par l adversaire). Si r 2 et r 3 sont voisins de r 1, alors r 2 et r 3 ont pour consigne de s écarter de r 1 en restant sur leur bord. Si les deux agissent de manière synchrone, alors on retrouve le cas précédent (et c est r 1 qui finalement brise la symétrie), sinon la symétrie est directement brisée (soit r 2 soit r 3 n est plus voisin de r 1 ). La seconde classe de configurations, la classe C, regroupe les configurations où plusieurs robots sont situés sur des coins. Lorsqu il y en a exactement deux, c est au troisième robot de briser la symétrie si 66/131

69 Stéphane Devismes, Anissa Lamani, Franck Petit, Pascal Raymond et Sébastien Tixeuil nécessaire. S il y en a 3, c est le robot du milieu (situé à l intersection des deux côtés où sont positionnés les 3 robots) qui brise la symétrie. Enfin, il ne reste plus qu une seule classe de configurations, la classe N où aucun des coins n est occupé. Là encore, c est une stratégie basée sur un ordonnancement des 3 robots qui est mise en œuvre, elle-même fondée sur les distances des robots par rapport aux coins. Les cas de symétries sont une nouvelle fois brisés en élisant un des 3 robots. En particulier, si deux robots sont équidistants d un même coin, c est le troisième robot qui est élu pour briser la symétrie. Lorsque les 3 robots sont équidistants de 3 coins distincts, c est le robot le plus proche du coin situé entre les deux autres coins qui est élu. Algorithme pour la grille 2 3. La première étape de cet algorithme consiste aussi à aligner les trois robots. S ils ne sont pas alignés dès le départ, alors deux sont sur le même grand bord et le troisième se déplace alors pour compléter l alignement. Ensuite, le robot du milieu bouge vers un de ces voisins pour créer une tour (le choix de voisin est opéré par l adversaire). Enfin, le robot resté seul explore l autre grand bord et l algorithme termine. Les deux stratégies décrites dans cette section nous permettent d établir le théorème suivant : Théorème 3 Les deux algorithmes décrits dans la section 3 résolvent de manière déterministe le problème de l exploration finie avec seulement 3 robots pour toute grille i j telle que j 3 et j = 3 i 3. 4 Exploration de la grille 3 3 avec cinq robots L algorithme (toujours dans le modèle asynchrone) fonctionne en 2 phases : la 1 phase de Préparation qui a pour but d amener les 2 5 robots dans l une des 3 configurations de départ de la phase d Exploration. Ces 3 configurations, ainsi 3 que la phase d exploration sont décrites par la figure 4. La phase de préparation utilise le fait qu avec 5 robots, il FIGURE 4: Phase d exploration en partant d une configuration 1, 2 ou 3. est souvent possible de désigner une ligne, dite ligne directrice, contenant le maximum de robots et d utiliser cette ligne pour orienter la grille 3 3 et amener les 5 robots à former l une des 3 configurations attendues. Nous utilisons le terme souvent car il y a des configurations pour lesquelles aucune ligne directrice ne peut pas être déterminée. C est par exemple le cas (i) lorsque les 5 robots occupent 2 côtés adjacents ou bien (ii) lorsque 4 robots sont sur les 4 coins, le cinquième étant au centre. Mais il est toujours possible de casser la symétrie et ainsi d aller vers l une des 3 configurations recherchées. Par exemple, le cas (i) est résolu en éloignant les 2 robots situés sur les 2 coins vers les 2 côtés opposés. Le cas (ii) est quand à lui résolu en déplaçant le robot situé au centre vers l un des bords. Théorème 4 L algorithme décrit dans la section 4 résout de manière déterministe le problème de l exploration finie avec seulement 5 robots sur la grille 3 3. Références [1] Paola Flocchini, David Ilcinkas, Andrzej Pelc, and Nicola Santoro. Computing without communicating : Ring exploration by asynchronous oblivious robots. Algorithmica, pages 1 22, [2] Stéphane Devismes, Franck Petit, and Sébastien Tixeuil. Optimal probabilistic ring exploration by semi-synchronous oblivious robots. In Proceedings of the International Colloquium on Structural Information and Communication Complexity (SIROCCO 2009), volume 5869 of Lecture Notes in Computer Science, pages Springer-Verlag Berlin Heidelberg, [3] Anissa Lamani, Maria Potop-Butucaru, and Sébastien Tixeuil. Optimal deterministic ring exploration with oblivious asynchronous robots. In Proceedings of the International Colloquium on Structural Information and Communication Complexity (SIROCCO 2010), volume 6058 of Lecture Notes in Computer Science, pages Springer Berlin / Heidelberg, /131

70 Acheminement de messages instantanément stabilisant pour arbres couvrants Alain Cournier 1, Swan Dubois 2, Anissa Lamani 1, Franck Petit 3 et Vincent Villain 1 1 MIS, Université de Picardie Jules Verne, France 2 Ecole Polytechnique Fédérale de Lausanne, Suisse 3 UPMC Sorbonne Universités & Inria, France Nous présentons un protocole instantanément stabilisant d acheminement de messages au sein de structures couvrantes arborescentes de réseaux. Notre protocole utilise l information fournie par un algorithme de calcul de tables de routage auto-stabilisant s appuyant sur cette structure. Le fait que le protocole soit instantanément stabilisant signifie que tout message émis après les fautes est acheminé à son destinataire, y compris lorsque les tables de routage ne sont pas stabilisées. Notre algorithme présente l avantage que le nombre de tampons est indépendant de tout paramètre global du réseau comme le nombre de nœuds ou le diamètre. En effet, nous montrons que le problème peut être résolu en utilisant un nombre constant de tampons par lien de communication de la structure couvrante. Cette propriété lui confère l avantage de tolérer le passage à l échelle. Keywords: Acheminement de message, Stabilisation instantannée, Tolérance aux fautes 1 Introduction Nous assistons ces dernières années à l évolution de systèmes distribués à large échelle, par exemple les réseaux pair-à-pair. Leur taille et des considérations de performances imposent que ces systèmes s appuient sur des structures couvrantes souvent utilisées comme des tables de hachage ou des index distribués. Nous nous concentrons sur les structures arborescentes. Parmi les grands défis à considérer dans le développement de tels systèmes se trouvent (i) le passage à l échelle, (ii) la tolérance aux fautes et (iii) la prise en compte de la dynamicité, c est-à-dire la propension du système à résister aux changements topologiques (ajout ou suppression de nœuds ou de liens). Les techniques utilisées pour tolérer les pannes sont habituellement classées en deux grandes familles. La première consiste à faire en sorte que les fautes soient masquées aux utilisateurs. Mais cette approche requiert souvent des mécanismes d accord fondés sur de lourds échanges de messages du type question/réponse impliquant un grand nombre de nœuds. Ils s avèrent assez peu adaptés aux très grands systèmes dynamiques. La seconde famille est l auto-stabilisation qui garantit que si le système se trouve dans un état arbitraire, il retrouve de lui-même un comportement répondant à ces spécifications en un temps fini. L auto-stabilisation se révèle donc être une approche naturelle pour développer des protocoles résistants aux fautes transitoires. En outre, l auto-stabilisation se montre également être une bonne technique pour tolérer les passages à l échelle et la dynamicité du système, en particulier lorsque les protocoles ne requièrent pas la connaissance d un ou plusieurs paramètres globaux du système comme le nombre de nœuds ou le diamètre du réseau. Nous nous intéressons au problème de la communication point-à-point dans les systèmes à large échelle. Certains nœuds du système (appelés nœuds émetteurs) souhaitent envoyer des messages à d autres (appelés nœuds destinataires). Le problème consiste à délivrer tous ces messages en un temps fini. Ce problème englobe en réalité deux sous problèmes : (i) le problème du routage calcul du chemin à suivre par les messages de l émetteur vers le destinataire et (ii) le problème d acheminement de messages gestion des Ce travail a été financé par le projet ANR SPADES (08-ANR-SEGI-025, Une version plus longue a été présentée à ICDCN 2012, Hong Kong. La version détaillée est disponible à l adresse suivante : http: //hal.inria.fr/inria /131

71 Alain Cournier, Swan Dubois, Anissa Lamani, Franck Petit et Vincent Villain ressources allouées au transport de messages. Le routage est fortement relié au problème de la construction d arbres couvrants. Il existe de nombreuses solutions auto-stabilisantes permettant de résoudre le problème du routage [6]. Des solutions auto-stabilisantes ont été proposées pour résoudre le problème d acheminement de message dans [1, 7], mais elles ont l inconvénient de ne pas pouvoir éviter l éventuelle perte de messages, même après l arrêt des fautes. La stabilisation instantanée [2] est une branche de l auto-stabilisation. Elle garantit que le système, indépendamment de son état initial, a toujours un comportement répondant à ses spécifications. Dans le contexte qui nous intéresse, ceci veut dire qu un protocole d acheminement de messages instantanément stabilisante associée à un algorithme de routage auto-stabilisant garantit que tout message émis après une faute transitoire ou un changement topologique est délivré à sa destination en un temps fini. Ceci contraste avec une solution qui n est que simplement auto-stabilisante (sans être instantanément stabilisante) car elle garantit uniquement que le nombre de messages non délivrés est borné. Les premiers algorithmes d acheminement instantanément stabilisant fournis par la littérature [4, 5] nécessitent un nombre de tampons par nœud proportionnel respectivement au nombre de nœuds et au diamètre du réseau, ce qui ne permet pas le passage à l échelle du réseau. Pour remédier à cela, dans [3], nous avons proposé une solution ne nécessitant qu un nombre de tampons par nœud proportionnel au degré du nœud. Malheureusement, cette solution n est pas satisfaisante puisque qu elle nécessite que la structure couvrante soit réduite à (ou traitée comme) une chaîne. Dans cet article, nous fournissons un protocole d acheminement instantanément stabilisant nécessitant un nombre constant de tampons par lien de communication de la structure couvrante. Cette propriété lui confère l avantage de tolérer le passage à l échelle. Dans ce qui suit, nous nous attachons à présenter notre solution de manière synthétique. 2 Présentation synthétique Nous supposons l existence d un algorithme de calcul des tables de routage auto-stabilisant s exécutant en parallèle de notre algorithme. Nous supposons que tout nœud p a accès aux tables de routage qui retournent pour toute destination d l identité du voisin par lequel un message de destination d doit transiter. Notons δ(p) le degré d un nœud p. Chaque nœud p a (i) un tampon interne, (ii) δ(p) tampons d entrée lui permettant de recevoir des messages de ses voisins (pour chaque voisin q de p, le tampon d entrée de p connecté au lien (p,q) est noté IN p (q)), et (iii) δ(p) tampons de sortie permettant au nœud p d envoyer des messages à ses voisins (pour q N p, le tampon de sortie de p connecté au lien (p,q) est noté OUT p (q)). En d autres termes, chaque nœud p possède 2δ(p) + 1 tampons. La génération d un nouveau message se fait toujours dans le tampon de sortie du lien (p,q) où q est le voisin indiqué par la table de routage par lequel doit transiter le message afin de parvenir à sa destination. L idée de l algorithme est la suivante : quand un nœud veut générer un nouveau message, il consulte sa table de routage pour déterminer par quel voisin doit transiter le message pour atteindre sa destination. Une fois ce message généré, il est routé selon les tables de routage : notons nb(m,b) le tampon dans lequel doit être transmis un message m actuellement stocké dans le tampon b. Nous avons alors les deux propriétés suivantes : (i) pour tout message m, nb(m,in p (q)) = OUT p (q ) où q est le prochain nœud par lequel m doit transiter pour atteindre sa destination (d après la table de routage) et (ii) pour tout message m, nb(m,out p (q)) = IN q (p). En d autres termes, (i) signifie que si un message m est dans un tampon d entrée de p (IN p (q)) et que p n est pas la destination de m, p consulte ses tables de routage pour déterminer le prochain nœud q par lequel le message doit transiter. Le message est alors copié dans le tampon de sortie de p le reliant à q (OUT p (q)). D autre part, (ii) signifie que, si un message m est dans un tampon de sortie de p (OUT p (q)) et que p n est pas la destination de m, il sera copié dans le tampon d entrée de q (IN q (p)). Notez que lorsque les tables de routage sont correctes et que tous les messages sont dans la bonne direction (c est-à-dire correctement routés vers leur destinataire), (i) n est jamais vérifié pour q = q. Néanmoins, cela peut être le cas lorsque les tables de routage sont en cours de stabilisation et s il y a des messages routés dans la mauvaise direction, c est-à-dire dirigé dans un sous arbre qui ne contient pas la destination. Avant de continuer l explication de notre solution, revenons d abord sur la progression de message dans les tampons. Un tampon est dit libre si et seulement s il ne contient aucun message ou s il contient le même 69/131

72 Acheminement de messages instantanément stabilisant pour arbres couvrants p4 e r p2 b c u p3 d p4 B p2 b c e p3 d B m a r a p1 Initiator p1 Initiator (a) Exemple de circuit complet (b) Tampon libre sur un chemin p4 i h B k z r p2 w b c e d p3 p4 i h k z p2 b r c e d p3 m a p1 Initiator Path of the token circulation B Last buffer on the path of the token circulation (c) Example de sous-circuit Token 1 Token 2 (d) Exemple d interblocage entre circulations de jetons m p1 a FIGURE 1: Quatre exemples associés à la circulation de jeton. message que le tampon d entrée auquel il est relié. Par exemple, si IN p (q) = OUT q (p) alors OUT q (p) est dit libre. Dans le cas contraire, le tampon est dit occupé. La progression des messages implique le remplissage et la libération de tampons, c est-à-dire que chaque tampon est alternativement libre et occupé. Ce mécanisme induit clairement que des emplacements libres se déplacent dans le graphe formé par les tampons, un emplacement libre correspondant à un tampon libre à un instant donné. Dans la suite, nous appelons arc actif un arc entre deux tampons dont le tampon source est occupé. Dans ce cas, si le sous-graphe constitué par les arcs actifs comporte des circuits alors nous sommes en présence d une situation d interblocage. L état initial étant arbitraire et les tables de routage stabilisant en un temps fini, ce type de circuit ne peuvent apparaître que sur un préfixe fini de l exécution (voir Figure 1, (a)). Étant donné la topologie arborescente de notre système, l existence d un circuit implique l existence de deux messages m et m tels que : nb(m,in p (q)) = OUT p (q) et nb(m,in p (q )) = OUT p (q ) (voir Figure 1, (a)). La localité de l information implique qu il est impossible pour un nœud p de connaitre l existence d un circuit. Il peut juste suspecter la présence d un cycle dans le cas où un message m dans son tampon d entrée IN p (q) doit être copié dans OUT p (q). Pour s en assurer, p initie un mécanisme de requête fondé sur une circulation de jeton. Il suit les arcs actifs en commençant par le tampon qui contient le message m. De cette manière, p détecte en un temps fini un tampon vide (voir Figure 1) ou un circuit. Notez que deux types de circuits existent : (i) le circuit complet impliquant le premier tampon contenant le message m visité par le jeton (voir Figure 1, (a)) ou (ii) le sous-circuit n impliquant pas ce tampon (voir Figure 1, (c)). Lorsque la circulation de jeton détecte un tampon vide (désignons ce tampon par B), l idée est de faire avancer les messages sur le chemin de la circulation de jeton pour permettre à l emplacement vide initialement sur B d avancer. De la sorte, nous nous assurons que OUT p (q) sera libre en un temps fini ce qui permettra à p de copier le message m directement dans OUT p (q) (cette action ayant la priorité sur toutes les autres actions touchant OUT p (q)). Si la circulation de jeton détecte un circuit, deux sous-cas sont possibles : (i) le circuit détecté est complet et (ii) le circuit détecté est un sous-circuit. Dans le cas (i), le but sera de libérer le tampon OUT p (q) si le nœud p est celui qui a détecté le cycle (p 1 dans la Figure 1, (a)). Dans le cas (ii), le nœud ayant le dernier tampon B visité par la circulation de jeton est celui qui détecte le cycle (nœud p 2 dans la Figure 1, (c)). Notez que B est dans ce cas un tampon d entrée. Le but est de libérer le tampon de sortie B par lequel le message présent dans B doit transiter afin d atteindre sa destination (OUT p2 (p 3 ) dans la Figure 1, (c)). Notez que B a été visité par la circulation de jeton. Dans les deux cas, le nœud qui détecte 70/131

73 Alain Cournier, Swan Dubois, Anissa Lamani, Franck Petit et Vincent Villain p4 h i k Free Buffer z p2 r b c e d p3 Initiator of T2 p4 h i k Free Buffer z p2 r b c e d p3 Initiator of T2 z p4 h z i r e p2 k b c d p3 w a p1 Token Circulation T1 m Token Circulation T2 Initiator of T1 w a p1 Token Circulation T1 m Token Circulation T2 Initiator of T1 w a p1 Active buffer graph m (a) (b) (c) FIGURE 2: Trois exemples de problèmes. le cycle copie le message du tampon d entrée correspondant (IN p (q) ou B) dans son tampon interne. En faisant cela, le nœud libère son tampon d entrée. L idée est alors de faire avancer les message tout au long du chemin de la circulation de jeton pour faire avancer l emplacement vide qui a été créé. Cela assure que le tampon de sortie visé sera libre en un temps fini (OUT p (q) ou B ). Le message dans le tampon interne peut alors être copié dans l emplacement vide se trouvant dans le tampon de sortie. Plusieurs circulations de jeton peuvent être initiées et exécutées en parallèle. Afin d éviter des situations d interblocage entre elles (voir Figure 1, (d)), chaque circulation de jeton comporte l identifiant de son nœud initiateur. Une circulation de jeton ayant l identifiant id sera autorisée à passer par un tampon déjà visité par une autre circulation de jeton ayant l identifiant id si id < id. Notez que cela peut engendrer la perte d emplacement vide récupéré par une circulation de jeton donnée. A titre d exemple, dans la Figure 2, on peut observer que l emplacement vide généré par T 1 est pris par T 2. En faisant avancer les message sur le chemin de T 2, un nouveau circuit est créé impliquant p 1 et p 4. Si on suppose que cette situation se produit à nouveau de sorte que le tampon interne de p 4 devient occupé et que p 4 et p 1 soient simultanément dans un autre circuit, le système est alors interbloqué. Notez que ce circuit ne peut être supprimé étant donné qu aucun message valide ne peut être supprimé. Nous devons donc éviter qu une telle configuration survienne. Pour cela, lorsqu une circulation de jeton détecte un tampon vide ou un circuit, elle parcours le chemin inverse afin de valider celui-ci, interdisant ainsi à toute autre circulation de jeton d utiliser ses tampons. Notez que le jeton revient à l initiateur de la circulation de jeton. L initiateur renvoie encore le jeton afin de vérifier que tout le chemin de la circulation de jeton a été bien validé (i.e. que la circulation de jeton n a pas fusionné avec une autre qui était présente dans la configuration initiale). Nous dirons alors que le chemin a été confirmé. Une fois le chemin confirmé, l emplacement vide peut être créé et déplacé afin de libérer le tampon de sortie du nœud visé. Références [1] B. Awerbuch, B. Patt-Shamir, and G. Varghese. Self-stabilizing end-to-end communication. Journal of High Speed Networks, 5(4) : , [2] A. Bui, A. Datta, F. Petit, and V. Villain. Snap-stabilization and pif in tree networks. DC, 20(1) :3 19, [3] A. Cournier, S. Dubois, A. Lamani, F. Petit, and V. Villain. Snap-stabilizing linear message forwarding. In SSS, pages , [4] A. Cournier, S. Dubois, and V. Villain. A snap-stabilizing point-to-point communication protocol in messageswitched networks. In IPDPS, pages 1 11, [5] A. Cournier, S. Dubois, and V. Villain. How to improve snap-stabilizing point-to-point communication space complexity? TCS, 412(33) : , [6] Shlomi Dolev. Self-stabilizing routing and related protocols. Journal of Parallel and Distributed Computing, 42(2) : , [7] E. Kushilevitz, R. Ostrovsky, and A. Rosén. Log-space polynomial end-to-end communication. In STOC 95 : Proceedings of the twenty-seventh annual ACM symposium on Theory of computing, pages ACM, /131

74 Link Quality Metrics in Large Scale Indoor Wireless Sensor Networks Ana Bildea, Olivier Alphand, Andrzej Duda 1 1 Grenoble Institute of Technology, CNRS, Grenoble Informatics Laboratory, UMR 5217, France. Pouvoir estimer la qualité d un lien sur la base d un minimum de paquets est essentiel pour un réseau de capteur sans fil multisaut en environnement indoor compte tenu du coût énergétique de cette estimation et de ses conséquences sur la stabilité des routes construites sur ces liens. Notre étude s appuie ainsi sur des expérimentations intensives menées sur une plateforme Senslab ([Sen]) qui nous ont permis de trouver des lois de distribution suivies par les métriques physiques (RSSI, LQI) pour 3 catégories de liens (bons, mauvais, intermédiaires) regroupés par plage de PRR (Packet Reception Ratio). Sur la base de ces distributions, nous observons comment elles peuvent nous aider à discriminer les différents liens et ainsi les utiliser dans de futures expérimentations pour améliorer l efficacité de protocoles de routage de réseaux de capteurs dans le choix des liens. Keywords: Received Signal Strength indicator (RSSI), Link quality indicator (LQI), Link quality, Indoor Senslabtestbed, Wireless sensor networks (WSN) 1 Introduction Much research has considered the problem of characterizing wireless links to derive metrics allowing finding the best routes in wireless networks. In this paper, we report on the results of measurements on a indoor wireless sensor network testbed that we use to characterize wireless links. Our goal is to find a way of detecting good links in comparison to weak ones, a recent approach in routing (LOADng) in opposition to traditional metrics such as ETX. We have done extensive experiments on the SensLab platform and recorded two main hardware metrics: RSSI (Received Signal Strength Indicator) and LQI (Link Quality Indicator). LQI gives an estimate of how easily a received signal can be demodulated by accumulating the magnitude of the error between ideal constellations and the received signal over the 64 symbols immediately following the sync word. In a typical indoor environment, the metrics fluctuate due to reflections, fading, diffraction, and interference so that we need to characterize the quality of reception in terms of RSSI and LQI in a statistical way. 2 Experimental Set Up We have run experiments on the Strasbourg platform of Senslab [Sen] composed of 240 WSN430 nodes distributed across 3 trays at different heights. Each tray contains 80 nodes arranged in a regular grid (10x8) with a distance between each node of about 1m (cf. the topology of the testbed in Fig. 1). A node is composed of a MSP430F1611 CPU (48KB ROM, 10KB RAM) and a CC1101 radio operating at 868MHz. Its transmission power ranges between -30dBm and 10dBm, and the reception sensitivity is set to -88dBm. In a single experiment, we use one tray at a time, i.e. 80 nodes. We observe the quality of transmission of a node that broadcasts a total of 5000 packets of 110 bytes each 0.5s. There is no other ongoing transmissions so there is no interference nor contention between nodes. When one node broadcasts its packet, the other 79 nodes are active and ready to receive they log LQI and RSSI of the received packet. The receiver nodes do not acknowledge frames so that the MAC layer does not retransmit frames in case of failed transmissions. At the end of the experiment, we compute the Packet Reception Ratio (PRR) of each 72/131

75 Ana Bildea, Olivier Alphand, Andrzej Duda link as the proportion between the number of correctly received packets to the total number of sent packets. We assume that all nodes can potentially communicate so that the number of unidirectional links is 6320 (80 sender nodes times 79 receiver nodes). We run the experiments with two levels of the transmission power: 0dBm and -10dBm. The bit rate is 60kb/s and nodes use the 2FSK modulation. Fig. 2 summarizes the parameters of the experiments. Simulated area 10m x 8m x 3m Number of nodes 3 x 80 Environment: testbed Senslab Strasbourg Traffic type, inter packet rate broadcast, 0.5s Number of packets 5000 Topology grid Figure 1: Topology of the second tray of Senslab testbed in Strasbourg (transmission power: 0dBm) Figure 2: Collision free scenario on a WSN430, CC1101-based testbed. Fig. 1 presents some example links of Node 14 labeled with the measured PRR (the figure does not present all links of the node). 3 Link Characterization We consider three main categories of link quality: good links with a PRR above the 80%, intermediate with the PRR between 20% and 80%, and bad ones with PRR below 20% (such categories appear in previous studies [WLMP10, SDTL10] and the thresholds may be more strict, e.g. 90% 10%). We have observed that links under 80% exhibit a high LQI variance, which justifies the definition of intermediate links. Table 1 gives the proportion of links in each category (over all 6320 unidirectional links). Parameters good: PRR 80% intermediate: 20% PRR < 80% bad: 0 < PRR < 20% PRR = 0% 110 bytes, 0.5s, 0dBm 49% 13% 18% 20% 110 bytes, 0.5s, -10dBm 45% 11% 16% 28% Table 1: Proportion of links in each category, variable transmission power. PRR = 0% corresponds to the case in which a given node did not receive any packet. We can observe that there is a large proportion of good links and decreasing the transmission power to -10dBm only slightly affects the proportion of good links. 3.1 Fitting PRR Distribution To further characterize PRR in function of RSSI and LQI, we look for continuous distributions that fit the best the measured values of PRR. The goal is to predict PRR or at least the link category based on the observed values of RSSI and LQI. We have considered as candidate distributions the most common fifty 73/131

2 players Ages 8+ Note: Please keep these instructions for future reference. WARNING. CHOKING HAZARD. Small parts. Not for children under 3 years.

2 players Ages 8+ Note: Please keep these instructions for future reference. WARNING. CHOKING HAZARD. Small parts. Not for children under 3 years. Linja Game Rules 2 players Ages 8+ Published under license from FoxMind Games NV, by: FoxMind Games BV Stadhouderskade 125hs Amsterdam, The Netherlands Distribution in North America: FoxMind USA 2710 Thomes

Plus en détail

MAT 2377 Solutions to the Mi-term

MAT 2377 Solutions to the Mi-term MAT 2377 Solutions to the Mi-term Tuesday June 16 15 Time: 70 minutes Student Number: Name: Professor M. Alvo This is an open book exam. Standard calculators are permitted. Answer all questions. Place

Plus en détail

THÈSE. présentée à TÉLÉCOM PARISTECH. pour obtenir le grade de. DOCTEUR de TÉLÉCOM PARISTECH. Mention Informatique et Réseaux. par.

THÈSE. présentée à TÉLÉCOM PARISTECH. pour obtenir le grade de. DOCTEUR de TÉLÉCOM PARISTECH. Mention Informatique et Réseaux. par. École Doctorale d Informatique, Télécommunications et Électronique de Paris THÈSE présentée à TÉLÉCOM PARISTECH pour obtenir le grade de DOCTEUR de TÉLÉCOM PARISTECH Mention Informatique et Réseaux par

Plus en détail

Le contrôle qualité sur les données fastq

Le contrôle qualité sur les données fastq Le contrôle qualité sur les données fastq TP detection exome Plan Théorie 1: le format FastQ et l'encodage des qualités Session pratique 1: conversion des qualités (fichier illumina.fastq) Théorie 2: le

Plus en détail

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces Micro-ordinateurs, informations, idées, trucs et astuces Utiliser une WebCam Auteur : François CHAUSSON Date : 8 février 2008 Référence : utiliser une WebCam.doc Préambule Voici quelques informations utiles

Plus en détail

Solution d hébergement de "SWIFTAlliance ENTRY R7" Politique de Sauvegarde et de Restauration

Solution d hébergement de SWIFTAlliance ENTRY R7 Politique de Sauvegarde et de Restauration Solution d hébergement de "SWIFTAlliance ENTRY R7" Politique de Sauvegarde et de Restauration Avril 2012 I- Introduction Le présent document présente la politique de sauvegarde et de restauration à adopter

Plus en détail

eid Trends in french egovernment Liberty Alliance Workshop April, 20th 2007 French Ministry of Finance, DGME

eid Trends in french egovernment Liberty Alliance Workshop April, 20th 2007 French Ministry of Finance, DGME eid Trends in french egovernment Liberty Alliance Workshop April, 20th 2007 French Ministry of Finance, DGME Agenda What do we have today? What are our plans? What needs to be solved! What do we have today?

Plus en détail

CONTRAT D ETUDES - LEARNING AGREEMENT

CONTRAT D ETUDES - LEARNING AGREEMENT CONTRAT D ETUDES - LEARNING AGREEMENT Règles générales La présence aux séances d enseignement des modules choisis est obligatoire. Chaque module comporte des séances de travail encadrées et non encadrées

Plus en détail

Application Form/ Formulaire de demande

Application Form/ Formulaire de demande Application Form/ Formulaire de demande Ecosystem Approaches to Health: Summer Workshop and Field school Approches écosystémiques de la santé: Atelier intensif et stage d été Please submit your application

Plus en détail

IPv6. Internet Control Message Protocol ICMPv6. Objectif: Comparer ICMPv4 avec ICMPv6

IPv6. Internet Control Message Protocol ICMPv6. Objectif: Comparer ICMPv4 avec ICMPv6 IPv6 Internet Control Message Protocol ICMPv6 Objectif: Comparer ICMPv4 avec ICMPv6 v.1b IPv6 Théorie et Pratique & Microsoft Introduction to IPv6 1 ICMPv6 (RFC 2463) Trois fonctions déjà présentes en

Plus en détail

Assoumta Djimrangaye Coordonnatrice de soutien au développement des affaires Business development support coordinator

Assoumta Djimrangaye Coordonnatrice de soutien au développement des affaires Business development support coordinator 2008-01-28 From: [] Sent: Monday, January 21, 2008 6:58 AM To: Web Administrator BCUC:EX Cc: 'Jean Paquin' Subject: RE: Request for Late Intervenorship - BCHydro Standing Offer C22-1 Dear Bonnie, Please

Plus en détail

Instructions Mozilla Thunderbird Page 1

Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Ce manuel est écrit pour les utilisateurs qui font déjà configurer un compte de courrier électronique dans Mozilla Thunderbird et

Plus en détail

APPENDIX 6 BONUS RING FORMAT

APPENDIX 6 BONUS RING FORMAT #4 EN FRANÇAIS CI-DESSOUS Preamble and Justification This motion is being presented to the membership as an alternative format for clubs to use to encourage increased entries, both in areas where the exhibitor

Plus en détail

RFP 1000162739 and 1000163364 QUESTIONS AND ANSWERS

RFP 1000162739 and 1000163364 QUESTIONS AND ANSWERS RFP 1000162739 and 1000163364 QUESTIONS AND ANSWERS Question 10: The following mandatory and point rated criteria require evidence of work experience within the Canadian Public Sector: M3.1.1.C / M3.1.2.C

Plus en détail

2002 Maritime Mathematics Competition Concours de Mathématiques des Maritimes 2002

2002 Maritime Mathematics Competition Concours de Mathématiques des Maritimes 2002 2002 Maritime Mathematics Competition Concours de Mathématiques des Maritimes 2002 Instructions: Directives : 1 Provide the information requested below Veuillez fournir les renseignements demandés ci-dessous

Plus en détail

GREDOR Gestion des Réseaux Electriques de Distribution Ouverts aux Renouvelables

GREDOR Gestion des Réseaux Electriques de Distribution Ouverts aux Renouvelables GREDOR Gestion des Réseaux Electriques de Distribution Ouverts aux Renouvelables Can operational planning decrease distribution costs? - La gestion prévisionnelle pour diminuer les coûts de distribution?

Plus en détail

The new consumables catalogue from Medisoft is now updated. Please discover this full overview of all our consumables available to you.

The new consumables catalogue from Medisoft is now updated. Please discover this full overview of all our consumables available to you. General information 120426_CCD_EN_FR Dear Partner, The new consumables catalogue from Medisoft is now updated. Please discover this full overview of all our consumables available to you. To assist navigation

Plus en détail

Les licences Creative Commons expliquées aux élèves

Les licences Creative Commons expliquées aux élèves Les licences Creative Commons expliquées aux élèves Source du document : http://framablog.org/index.php/post/2008/03/11/education-b2i-creative-commons Diapo 1 Creative Commons presents : Sharing Creative

Plus en détail

Konstantin Avrachenkov, Urtzi Ayesta, Patrick Brown and Eeva Nyberg

Konstantin Avrachenkov, Urtzi Ayesta, Patrick Brown and Eeva Nyberg Konstantin Avrachenkov, Urtzi Ayesta, Patrick Brown and Eeva Nyberg Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire

Plus en détail

AINoE. Rapport sur l audition d AINoE Paris, 18 juin 2003

AINoE. Rapport sur l audition d AINoE Paris, 18 juin 2003 AINoE Abstract Interpretation Network of Excellence Patrick COUSOT (ENS, Coordinator) Rapport sur l audition d AINoE Paris, 18 juin 2003 Thématique Rapport sur l audition d AINoE Paris, 18 juin 2003 1

Plus en détail

Sujet de TPE PROPOSITION

Sujet de TPE PROPOSITION Single photon source made of single nanodiamonds This project will consist in studying nanodiamonds as single photon sources. The student will study the emission properties of such systems and will show

Plus en détail

PC industriels et disques associés

PC industriels et disques associés Technical Service Bulletin PRODUIT DATE CREATION DATE MODIFICATION FICHIER PC INDUSTRIEL 23/03/2010 201005 REV A PC industriels et disques associés English version follows. SF01 (du 4 au 8 janvier 2010)

Plus en détail

CUMULUS BASIC INSTALLATION GUIDE FOR AERCUS INSTRUMENTS MODELS WS3083, WS2083 AND WS1093

CUMULUS BASIC INSTALLATION GUIDE FOR AERCUS INSTRUMENTS MODELS WS3083, WS2083 AND WS1093 CUMULUS BASIC INSTALLATION GUIDE FOR AERCUS INSTRUMENTS MODELS WS3083, WS2083 AND WS1093 System Requirements Cumulus is a Windows application and runs on XP to Windows 10 inclusive (and the server versions).

Plus en détail

Please find attached a revised amendment letter, extending the contract until 31 st December 2011.

Please find attached a revised amendment letter, extending the contract until 31 st December 2011. Sent: 11 May 2011 10:53 Subject: Please find attached a revised amendment letter, extending the contract until 31 st December 2011. I look forward to receiving two signed copies of this letter. Sent: 10

Plus en détail

90558-CDT-06-L3French page 1 of 10. 90558: Listen to and understand complex spoken French in less familiar contexts

90558-CDT-06-L3French page 1 of 10. 90558: Listen to and understand complex spoken French in less familiar contexts 90558-CDT-06-L3French page 1 of 10 NCEA LEVEL 3: FRENCH CD TRANSCRIPT 2006 90558: Listen to and understand complex spoken French in less familiar contexts New Zealand Qualifications Authority: NCEA French

Plus en détail

AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr)

AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr) AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr) Doc.No. : EUM/OPS/TEN/13/706466 Issue : v3 Date : 7 May 2014 WBS : EUMETSAT Eumetsat-Allee 1, D-64295 Darmstadt, Germany Tel: +49 6151 807-7 Fax: +49

Plus en détail

Smile Mobile Dashboard

Smile Mobile Dashboard Smile Mobile Dashboard 1. Magento Extension The iphone and Android applications require access to data from your Magento store. This data is provided through an extension, available on Magento Connect

Plus en détail

DynDNS. Qu est-ce que le DynDNS?

DynDNS. Qu est-ce que le DynDNS? DynDNS. Qu est-ce que le DynDNS? Le DynDNS (Dynamic Domain Name Server) sert à attribuer un nom de domaine à une adresse ip dynamique. Chaque ordinateur utilise une adresse ip pour communiquer sur le réseau.

Plus en détail

CONSULTATION PUBLIQUE DE L'IBPT CONCERNANT LA MISE EN ŒUVRE D'UN MODELE COLLECTING POUR LES SERVICES A VALEUR AJOUTEE ET INTERNET

CONSULTATION PUBLIQUE DE L'IBPT CONCERNANT LA MISE EN ŒUVRE D'UN MODELE COLLECTING POUR LES SERVICES A VALEUR AJOUTEE ET INTERNET CONSULTATION PUBLIQUE DE L'IBPT CONCERNANT LA MISE EN ŒUVRE D'UN MODELE COLLECTING POUR LES SERVICES A VALEUR AJOUTEE ET INTERNET INSTITUT BELGE DES SERVICES POSTAUX ET DES TELECOMMUNICATIONS 14 MARS 2001

Plus en détail

Date: 09/11/15 www.crmconsult.com Version: 2.0

Date: 09/11/15 www.crmconsult.com Version: 2.0 Date: 9/11/2015 contact@crmconsult.fr Page 1 / 10 Table des matières 1 SUGARPSHOP : SCHEMA... 3 2 PRESENTATION... 4 3 SHOPFORCE WITH SCREENSHOTS... 5 3.1 CLIENTS... 5 3.2 ORDERS... 6 4 INSTALLATION...

Plus en détail

Haslingden High School French Y8 Block C Set 1 HOMEWORK BOOKLET

Haslingden High School French Y8 Block C Set 1 HOMEWORK BOOKLET Haslingden High School French Y8 Block C Set 1 HOMEWORK BOOKLET Name: Form: Subject Teacher: Date Given: Date to Hand in: Level: Effort: House Points: Comment: Target: Parent / Guardian Comment: Complete

Plus en détail

Examen Master IFI, 2ème année, Parcours CSSR 2010/2011 Tous documents autorisés

Examen Master IFI, 2ème année, Parcours CSSR 2010/2011 Tous documents autorisés Examen Master IFI, 2ème année, Parcours CSSR 2010/2011 Tous documents autorisés F. Baude et al. 29 Novembre 2010, Durée 3 heures Exercice 1 (3 points) Design a probe-echo algorithm to count the number

Plus en détail

6. Les désastres environnementaux sont plus fréquents. 7. On ne recycle pas ses déchets ménagers. 8. Il faut prendre une douche au lieu d un bain.

6. Les désastres environnementaux sont plus fréquents. 7. On ne recycle pas ses déchets ménagers. 8. Il faut prendre une douche au lieu d un bain. 1. Notre planète est menacée! 2. Il faut faire quelque chose! 3. On devrait faire quelque chose. 4. Il y a trop de circulation en ville. 5. L air est pollué. 6. Les désastres environnementaux sont plus

Plus en détail

AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr)

AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr) AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr) Doc.No. : EUM/OPS/TEN/13/706466 Issue : v2 Date : 23 July 2013 WBS : EUMETSAT Eumetsat-Allee 1, D-64295 Darmstadt, Germany Tel: +49 6151 807-7 Fax:

Plus en détail

GRAPHIC STANDARDS MANUAL

GRAPHIC STANDARDS MANUAL GRAPHIC STANDARDS MANUAL CHARTE GRAPHIQUE This Graphic Standards Manual is aimed at the relays of the Europe Direct information network. They are members of a single family dedicated to the same aim: the

Plus en détail

French 2208A. French for Healthcare Le français de la santé

French 2208A. French for Healthcare Le français de la santé French 2208A French for Healthcare Le français de la santé Professeur : Heures de bureau : Iryna Punko disponible tous les jours par courriel, sauf le week-end. Préalable - Fr 1900 E ou Fr 1910, ou permission

Plus en détail

GCSE Bitesize Controlled Assessment

GCSE Bitesize Controlled Assessment GCSE Bitesize Controlled Assessment Model 2 (for A/A* grade) Question 3 Subject: Topic: French Writing In this document you will find practical help on how to improve your grade. Before you start working

Plus en détail

L intégration socioscolaire des jeunes Québécois d origine chinoise : le rôle des écoles ethniques complémentaires

L intégration socioscolaire des jeunes Québécois d origine chinoise : le rôle des écoles ethniques complémentaires L intégration socioscolaire des jeunes Québécois d origine chinoise : le rôle des écoles ethniques complémentaires Ming Sun Université de Montréal Haï Thach École Chinoise (Mandarin) de Montréal Introduction

Plus en détail

Exemple PLS avec SAS

Exemple PLS avec SAS Exemple PLS avec SAS This example, from Umetrics (1995), demonstrates different ways to examine a PLS model. The data come from the field of drug discovery. New drugs are developed from chemicals that

Plus en détail

EIGHTH SESSION. "Project Management"

EIGHTH SESSION. Project Management EIGHTH SESSION "Project Management" Objectifs : L objectif de cette scéance est d apprendre à analyser et à planifier un projet. A cette fin nous étudierons : 1) la méthode des chemins critiques (CPM)

Plus en détail

(Programme de formation pour les parents ~ Training program for parents)

(Programme de formation pour les parents ~ Training program for parents) PODUM-INFO-ACTION (PIA) La «carte routière» pour les parents, sur l éducation en langue française en Ontario A «road map» for parents, on French-language education in Ontario (Programme de formation pour

Plus en détail

openoffice 40 manual

openoffice 40 manual openoffice 40 manual Print and Online Should you be particular with knowing everything concerning this openoffice 40 manual, you have to look for these details. OPENOFFICE 40 MANUAL Here are one of the

Plus en détail

Mesure Measurement Réf 322 033 Etiquettes Terre, Jupiter, Mars, Français p 1 Lune pour dynamomètre 10 N English p 4 Earth, Jupiter, Mars, Moon,

Mesure Measurement Réf 322 033 Etiquettes Terre, Jupiter, Mars, Français p 1 Lune pour dynamomètre 10 N English p 4 Earth, Jupiter, Mars, Moon, Mesure Measurement Français p 1 English p 4 Version : 8006 Etiquettes Terre, Jupiter, Mars, Lune pour dynamomètre 10 N Earth, Jupiter, Mars, Moon, labels for 10 N dynamometer Mesure Etiquettes Terre, Jupiter,

Plus en détail

C est quoi, Facebook?

C est quoi, Facebook? C est quoi, Facebook? Si tu as plus de 13 ans, tu fais peut-être partie des 750 millions de personnes dans le monde qui ont un compte Facebook? Et si tu es plus jeune, tu as dû entendre parler autour de

Plus en détail

Publication IEC 61000-4-3 (Edition 3.0 2008) I-SH 01

Publication IEC 61000-4-3 (Edition 3.0 2008) I-SH 01 Publication IEC 61000-4-3 (Edition 3.0 2008) I-SH 01 Electromagnetic compatibility (EMC) Part 4-3: Testing and measurement techniques Radiated, radio-frequency, electromagnetic field immunity test INTERPRETATION

Plus en détail

ENSE3 - API/CSPI et Master Automatique - 2008/2009

ENSE3 - API/CSPI et Master Automatique - 2008/2009 ENSE3 - API/CSPI et Master Automatique - 28/29 DS Commande robuste - - 19 janvier 29 Nom Prénom Signature ATTENTION: Mettre votre nom et répondre directement sur les feuilles de l énoncé. Justifiez vos

Plus en détail

Archived Content. Contenu archivé

Archived Content. Contenu archivé ARCHIVED - Archiving Content ARCHIVÉE - Contenu archivé Archived Content Contenu archivé Information identified as archived is provided for reference, research or recordkeeping purposes. It is not subject

Plus en détail

Excellence dedicated to nuclear medicine, public health and environment

Excellence dedicated to nuclear medicine, public health and environment Excellence dedicated to nuclear medicine, public health and environment TOC 1. Introduction 2. Quick win 3. External events not in the original design basis 3. Costs 4. Perspectives Excellence dedicated

Plus en détail

Promotion of bio-methane and its market development through local and regional partnerships. A project under the Intelligent Energy Europe programme

Promotion of bio-methane and its market development through local and regional partnerships. A project under the Intelligent Energy Europe programme Promotion of bio-methane and its market development through local and regional partnerships A project under the Intelligent Energy Europe programme Contract Number: IEE/10/130 Deliverable Reference: W.P.2.1.3

Plus en détail

Practice Exam Student User Guide

Practice Exam Student User Guide Practice Exam Student User Guide Voir la version française plus bas. 1. Go to http://training.iata.org/signinup 2. Enter your username and password to access your student profile Your profile was created

Plus en détail

Product Platform Development: A Functional Approach Considering Customer Preferences

Product Platform Development: A Functional Approach Considering Customer Preferences Product Platform Development: A Functional Approach Considering Customer Preferences THÈSE N O 4536 (2009) PRÉSENTÉE le 4 décembre 2009 À LA FACULTé SCIENCES ET TECHNIQUES DE L'INGÉNIEUR LABORATOIRE DES

Plus en détail

Testing : A Roadmap. Mary Jean Harrold. Présentation de Olivier Tissot

Testing : A Roadmap. Mary Jean Harrold. Présentation de Olivier Tissot Testing : A Roadmap Mary Jean Harrold Présentation de Olivier Tissot Testing : A Roadmap I. L auteur II. Introduction sur les test : les enjeux, la problématique III. Les tests : roadmap IV. Conclusion

Plus en détail

How To connect to TonVPN Max / Comment se connecter à TonVPN Max

How To connect to TonVPN Max / Comment se connecter à TonVPN Max How To connect to TonVPN Max / Comment se connecter à TonVPN Max Note : you need to run all those steps as an administrator or somebody having admin rights on the system. (most of the time root, or using

Plus en détail

Gestion des revenus. Référé par les services de la Protection de l enfance

Gestion des revenus. Référé par les services de la Protection de l enfance Gestion des revenus Référé par les services de la Protection de l enfance Qu est-ce que la gestion des revenus (Income Management)? La Gestion des revenus (Income Management) est un moyen pour vous aider

Plus en détail

IPv6. Internet Control Message Protocol ICMPv6. Objectif: Comparer ICMPv4 avec ICMPv6

IPv6. Internet Control Message Protocol ICMPv6. Objectif: Comparer ICMPv4 avec ICMPv6 IPv6 Internet Control Message Protocol ICMPv6 Objectif: Comparer ICMPv4 avec ICMPv6 v.1c IPv6 Théorie et Pratique & Microsoft Introduction to IPv6 1 ICMPv6 (RFC 4443) Messages de service de IPv6 Trois

Plus en détail

C est quoi, Facebook?

C est quoi, Facebook? C est quoi, Facebook? aujourd hui l un des sites Internet les plus visités au monde. Si tu as plus de 13 ans, tu fais peut-être partie des 750 millions de personnes dans le monde qui ont une page Facebook?

Plus en détail

WEB page builder and server for SCADA applications usable from a WEB navigator

WEB page builder and server for SCADA applications usable from a WEB navigator Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB WEB page builder and server for SCADA applications usable from a WEB navigator opyright 2007 IRAI Manual Manuel

Plus en détail

COMPILING SCALA FOR THE JAVA VIRTUAL MACHINE

COMPILING SCALA FOR THE JAVA VIRTUAL MACHINE COMPILING SCALA FOR THE JAVA VIRTUAL MACHINE THÈSE N O 3302 (2005) PRÉSENTÉE À LA FACULTÉ INFORMATIQUE ET COMMUNICATIONS Institut d'informatique fondamentale SECTION D'INFORMATIQUE ÉCOLE POLYTECHNIQUE

Plus en détail

THE EVOLUTION OF CONTENT CONSUMPTION ON MOBILE AND TABLETS

THE EVOLUTION OF CONTENT CONSUMPTION ON MOBILE AND TABLETS THE EVOLUTION OF CONTENT CONSUMPTION ON MOBILE AND TABLETS OPPA investigated in March 2013 its members, in order to design a clear picture of the traffic on all devices, browsers and apps. One year later

Plus en détail

Evaluation de la prime de risques de la vente d une bande d énergie nucléaire

Evaluation de la prime de risques de la vente d une bande d énergie nucléaire 28/3/2011 ANNEXE 6 (Source: Electrabel) Evaluation de la prime de risques de la vente d une bande d énergie nucléaire Si nous vendons une bande d énergie nucléaire à certains clients, que nous garantissons

Plus en détail

Florida International University. Department of Modern Languages. FRENCH I Summer A Term 2014 FRE 1130 - U01A

Florida International University. Department of Modern Languages. FRENCH I Summer A Term 2014 FRE 1130 - U01A Florida International University Department of Modern Languages FRENCH I Summer A Term 2014 FRE 1130 - U01A Class time: Monday, Tuesday, Wednesday, Thursday; 6:20 P.M. - 9:00 P.M. Instructors: Prof. Jean-Robert

Plus en détail

MPLS, GMPLS et NGN. Sécurité MPLS. Jacques BAUDRON ixtel octobre 2009 jacques.baudron@ixtel.fr. Ingénierie Conseils Services Télécommunications

MPLS, GMPLS et NGN. Sécurité MPLS. Jacques BAUDRON ixtel octobre 2009 jacques.baudron@ixtel.fr. Ingénierie Conseils Services Télécommunications MPLS, GMPLS et NGN Sécurité MPLS Jacques BAUDRON ixtel octobre 2009 jacques.baudron@ixtel.fr 1 Contents Treats Requirements VPN Attacks & defence 3 8 14 19 2 3 Threats Threats Denial of service Resources

Plus en détail

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on ONTARIO Court File Number at (Name of court) Court office address Applicant(s) (In most cases, the applicant will be a children s aid society.) Full legal name & address for service street & number, municipality,

Plus en détail

David Marsden Labour market segmentation in Britain: the decline of occupational labour markets and the spread of entry tournaments

David Marsden Labour market segmentation in Britain: the decline of occupational labour markets and the spread of entry tournaments David Marsden Labour market segmentation in Britain: the decline of occupational labour markets and the spread of entry tournaments Article (Accepted version) (Refereed) Original citation: Marsden, David

Plus en détail

Photo Manipulations in the 2011 CES

Photo Manipulations in the 2011 CES Canadian Election Study Methodological Briefs Methodological Brief #2013-A Photo Manipulations in the 2011 CES Patrick Fournier, Université de Montréal Stuart Soroka, McGill University Fred Cutler, University

Plus en détail

INDUSTRIAL PC 13/11/2007 19/11/2007. Nouveau PC Industriel sur Imprimantes RIP4

INDUSTRIAL PC 13/11/2007 19/11/2007. Nouveau PC Industriel sur Imprimantes RIP4 Technical Service Bulletin FILE CONTROL CREATED DATE MODIFIED DATE FOLDER INDUSTRIAL PC 13/11/2007 19/11/2007 662-02-27011B Nouveau PC Industriel sur Imprimantes RIP4 English version follows. Objet du

Plus en détail

RESULTING FROM THE ANTI-SEMITIC LEGISLATION IN FORCE DURING THE OCCUPATION. (Decree 99-778 of September 10, 1999) QUESTIONNAIRE. Family Name...

RESULTING FROM THE ANTI-SEMITIC LEGISLATION IN FORCE DURING THE OCCUPATION. (Decree 99-778 of September 10, 1999) QUESTIONNAIRE. Family Name... COMMISSION FOR THE COMPENSATION OF VICTIMS OF SPOLIATION RESULTING FROM THE ANTI-SEMITIC LEGISLATION IN FORCE DURING THE OCCUPATION (Decree 99-778 of September 10, 1999) Case Number : (to remind in all

Plus en détail

Hydro-Québec Distribution

Hydro-Québec Distribution Hydro-Québec Distribution 2004 Distribution Tariff Application Demande R-3541-2004 Request No. 1 Reference: HQD-5, Document 3, Page 6 Information Requests HQD says that it will be required to buy energy

Plus en détail

A partir de ces différents matériels, l administrateur a déterminé huit configurations différentes. Il vous demande de les compléter.

A partir de ces différents matériels, l administrateur a déterminé huit configurations différentes. Il vous demande de les compléter. Exonet - Ressources mutualisées en réseau Description du thème Propriétés Intitulé long Formation concernée Présentation Modules Activités Compétences ; Savoir-faire Description Ressources mutualisées

Plus en détail

Classification. Session organisée par Charles Bouveyron et Francois Caron et Marie Chavent

Classification. Session organisée par Charles Bouveyron et Francois Caron et Marie Chavent Classification Session organisée par Charles Bouveyron et Francois Caron et Marie Chavent La classification a pour objet de regrouper des données en classes possédant des caractéristiques similaires. La

Plus en détail

Formation en conduite et gestion de projets. Renforcer les capacités des syndicats en Europe

Formation en conduite et gestion de projets. Renforcer les capacités des syndicats en Europe Formation en conduite et gestion de projets Renforcer les capacités des syndicats en Europe Pourquoi la gestion de projets? Le département Formation de l Institut syndical européen (ETUI, European Trade

Plus en détail

Forthcoming Database

Forthcoming Database DISS.ETH NO. 15802 Forthcoming Database A Framework Approach for Data Visualization Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH for the degree of Doctor of

Plus en détail

Nouvelles classes de problèmes pour la fouille de motifs intéressants dans les bases de données 2

Nouvelles classes de problèmes pour la fouille de motifs intéressants dans les bases de données 2 Nouvelles classes de problèmes pour la fouille de motifs intéressants dans les bases de données 2 Lhouari Nourine 1 1 Université Blaise Pascal, CNRS, LIMOS, France SeqBio 2012 Marne la vallée, France 2.

Plus en détail

PROJET DE LOI C- BILL C- SECRET SECRET HOUSE OF COMMONS OF CANADA CHAMBRE DES COMMUNES DU CANADA

PROJET DE LOI C- BILL C- SECRET SECRET HOUSE OF COMMONS OF CANADA CHAMBRE DES COMMUNES DU CANADA SECRET C- SECRET C- First Session, Forty-first Parliament, Première session, quarante et unième législature, HOUSE OF COMMONS OF CANADA CHAMBRE DES COMMUNES DU CANADA BILL C- PROJET DE LOI C- An Act to

Plus en détail

Guide à l usage des conférenciers (-ières) et des président(e)s de séance de TCPM2013 1

Guide à l usage des conférenciers (-ières) et des président(e)s de séance de TCPM2013 1 [AN ENGLISH VERSION FOLLOWS] Guide à l usage des conférenciers (-ières) et des président(e)s de séance de TCPM2013 1 Conférenciers (- ières) 1) Les communications en séances régulières ont une durée de

Plus en détail

Academic Project. B3 - Architecture. Resit Project. Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA

Academic Project. B3 - Architecture. Resit Project. Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA SUPINFO Academic Dept. Resit Project Academic Project 2012-2013 Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA Conditions d utilisations : SUPINFO International University vous

Plus en détail

Niveau débutant/beginner Level

Niveau débutant/beginner Level LE COFFRE À OUTILS/THE ASSESSMENT TOOLKIT: Niveau débutant/beginner Level Sampler/Echantillon Instruments d évaluation formative en français langue seconde Formative Assessment Instruments for French as

Plus en détail

deux tâches dans le tableau et à cliquer sur l icône représentant une chaîne dans la barre d outils. 14- Délier les tâches : double cliquer sur la

deux tâches dans le tableau et à cliquer sur l icône représentant une chaîne dans la barre d outils. 14- Délier les tâches : double cliquer sur la MS Project 1- Créer un nouveau projet définir la date du déclenchement (début) ou de la fin : File New 2- Définir les détails du projet : File Properties (permet aussi de voir les détails : coûts, suivi,

Plus en détail

Amendment # 1: The set of three trailers (one mobile clinic) will remain parked at the destination city for approximately ten (10) weeks.

Amendment # 1: The set of three trailers (one mobile clinic) will remain parked at the destination city for approximately ten (10) weeks. Document # 1 Title/Titre: Statistics Canada MEC Hauling / Statistique Canada Services de transport de cliniques mobiles Date December 2, 2013 Solicitation Number Numéro d avis d appel d offres 1920-0002917

Plus en détail

Compliance Sheet. Super Range 71. Product Description

Compliance Sheet. Super Range 71. Product Description Super Range 71 Model SR71-15 SR71-A SR71-C SR71-E SR71-X SR71-USB Product Description 802.11a/n, Mini PCI, 2x2 MIMO 802.11a/b/g/n, Mini PCI, 3x3 MIMO 802.11a/b/g/n, CardBus, 2x2 MIMO 802.11a/b/g/n, PCI

Plus en détail

LONDON NOTICE No. 3565

LONDON NOTICE No. 3565 EURONEXT DERIVATIVES MARKETS LONDON NOTICE No. 3565 ISSUE DATE: 15 February 2012 EFFECTIVE DATE: 12 March 2012 FTSE 100 INDEX FUTURES CONTRACT THREE MONTH EURO (EURIBOR) INTEREST RATE FUTURES CONTRACT

Plus en détail

AccessLearn Community Group: Introductory Survey. Groupe communautaire AccessLearn : étude introductive. Introduction.

AccessLearn Community Group: Introductory Survey. Groupe communautaire AccessLearn : étude introductive. Introduction. AccessLearn Community Group: Introductory Survey Introduction The W3C Accessible Online Learning Community Group (aka AccessLearn) is a place to discuss issues relating to accessibility and online learning,

Plus en détail

COURSES OPEN TO INTERNATIONAL STUDENTS AT THE IAE OF MONTPELLIER ACADEMIC YEAR 2009-2010

COURSES OPEN TO INTERNATIONAL STUDENTS AT THE IAE OF MONTPELLIER ACADEMIC YEAR 2009-2010 COURSES OPEN TO INTERNATIONAL STUDENTS AT THE IAE OF MONTPELLIER ACADEMIC YEAR 2009-2010 Bachelor level LICENCE Bachelor level MASTER Graduate level Dear Student, You may select courses within one of the

Plus en détail

Optimized Protocol Stack for Virtualized Converged Enhanced Ethernet

Optimized Protocol Stack for Virtualized Converged Enhanced Ethernet Diss. ETH No. 22127 Optimized Protocol Stack for Virtualized Converged Enhanced Ethernet A thesis submitted to attain the degree of DOCTOR OF SCIENCES of ETH ZURICH (Dr. sc. ETH Zurich) presented by Daniel

Plus en détail

Dans une agence de location immobilière...

Dans une agence de location immobilière... > Dans une agence de location immobilière... In a property rental agency... dans, pour et depuis vocabulaire: «une location» et «une situation» Si vous voulez séjourner à Lyon, vous pouvez louer un appartement.

Plus en détail

Food for thought paper by the Coordinator on Reporting 1 PrepCom 3rd Review Conference 6 décembre 2013

Food for thought paper by the Coordinator on Reporting 1 PrepCom 3rd Review Conference 6 décembre 2013 Food for thought paper by the Coordinator on Reporting 1 PrepCom 3rd Review Conference 6 décembre 2013 (slide 1) Mr President, Reporting and exchange of information have always been a cornerstone of the

Plus en détail

Le passé composé. C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past!

Le passé composé. C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past! > Le passé composé le passé composé C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past! «Je suis vieux maintenant, et ma femme est vieille aussi. Nous n'avons pas eu d'enfants.

Plus en détail

SC 27/WG 5 Normes Privacy

SC 27/WG 5 Normes Privacy SC 27/WG 5 Normes Privacy Club 27001 Toulousain 12/12/2014 Lionel VODZISLAWSKY Chief Information Officer l.vodzislawsky@celtipharm.com PRE-CTPM 141212-Club27001 Toulouse normes WG5_LV L organisation de

Plus en détail

Bourses d excellence pour les masters orientés vers la recherche

Bourses d excellence pour les masters orientés vers la recherche Masters de Mathématiques à l'université Lille 1 Mathématiques Ingénierie Mathématique Mathématiques et Finances Bourses d excellence pour les masters orientés vers la recherche Mathématiques appliquées

Plus en détail

First Nations Assessment Inspection Regulations. Règlement sur l inspection aux fins d évaluation foncière des premières nations CONSOLIDATION

First Nations Assessment Inspection Regulations. Règlement sur l inspection aux fins d évaluation foncière des premières nations CONSOLIDATION CANADA CONSOLIDATION CODIFICATION First Nations Assessment Inspection Regulations Règlement sur l inspection aux fins d évaluation foncière des premières nations SOR/2007-242 DORS/2007-242 Current to September

Plus en détail

Stratégie DataCenters Société Générale Enjeux, objectifs et rôle d un partenaire comme Data4

Stratégie DataCenters Société Générale Enjeux, objectifs et rôle d un partenaire comme Data4 Stratégie DataCenters Société Générale Enjeux, objectifs et rôle d un partenaire comme Data4 Stéphane MARCHINI Responsable Global des services DataCenters Espace Grande Arche Paris La Défense SG figures

Plus en détail

TABLE DES MATIERES A OBJET PROCEDURE DE CONNEXION

TABLE DES MATIERES A OBJET PROCEDURE DE CONNEXION 1 12 rue Denis Papin 37300 JOUE LES TOURS Tel: 02.47.68.34.00 Fax: 02.47.68.35.48 www.herve consultants.net contacts@herve consultants.net TABLE DES MATIERES A Objet...1 B Les équipements et pré-requis...2

Plus en détail

VOTRE NOTICE D ACCUEIL- YOUR INFORMATION LEAFLET

VOTRE NOTICE D ACCUEIL- YOUR INFORMATION LEAFLET CAMPUS FRAN S E P T E M B R E 2 0 1 5 / S E P T E M B E R 2 0 1 5 S E P T E M B R E 2 0 1 6 / S E P T E M B E R 2 0 1 6 VOTRE NOTICE D ACCUEIL- YOUR LEAFLET BIENVENUE WELCOME Campus France, chargé de vous

Plus en détail

Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB

Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB AUTOMGEN 8.009 Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB version 2 : support de sources vidéo, support 3D, support de l ensemble des objets IRIS 2D WEB

Plus en détail

Section B: Receiving and Reviewing the Technician Inspection Report & Claims Decision Process

Section B: Receiving and Reviewing the Technician Inspection Report & Claims Decision Process Phoenix A.M.D. International Inc. - Claim Procedures, Timelines & Expectations Timelines & Expectations 1. All telephone messages and e-mail correspondence is to be handled and responded back to you within

Plus en détail

Institut français des sciences et technologies des transports, de l aménagement

Institut français des sciences et technologies des transports, de l aménagement Institut français des sciences et technologies des transports, de l aménagement et des réseaux Session 3 Big Data and IT in Transport: Applications, Implications, Limitations Jacques Ehrlich/IFSTTAR h/ifsttar

Plus en détail

ENGLISH WEDNESDAY SCHOOL ENTRY TEST ENROLMENT FORM 2015-2016

ENGLISH WEDNESDAY SCHOOL ENTRY TEST ENROLMENT FORM 2015-2016 CHECKLIST FOR APPLICATIONS Please read the following instructions carefully as we will not be able to deal with incomplete applications. Please check that you have included all items. You need to send

Plus en détail

Finance des matières premières (6b) De la formation des prix sur les marchés financiers à la possibilité d un équilibre (non walrasien)

Finance des matières premières (6b) De la formation des prix sur les marchés financiers à la possibilité d un équilibre (non walrasien) Finance des matières premières (6b) De la formation des prix sur les marchés financiers à la possibilité d un équilibre (non walrasien) Alain Bretto & Joël Priolon - 25 mars 2013 Question Dans un équilibre

Plus en détail

Fiche d Inscription / Entry Form

Fiche d Inscription / Entry Form Fiche d Inscription / Entry Form (A renvoyer avant le 15 octobre 2014 Deadline octobrer 15th 2014) Film Institutionnel / Corporate Film Film Marketing Produit / Marketing Product film Film Communication

Plus en détail

Official Documents for 2015 Marathon des Sables

Official Documents for 2015 Marathon des Sables Official Documents for 2015 Marathon des Sables Please take care when completing these documents they may be rejected if incorrect. They must be printed in colour and completed by hand. They must be posted

Plus en détail