• Aucun résultat trouvé

Relation entre graphe de communications et graphe de déplacements 93

3.7 Analyse d’algorithmes décrits avec ce modèle

4.1.1 Relation entre graphe de communications et graphe de déplacements 93

Les déplacements que nécessite l’accomplissement d’une mission collaborative donnée induisent une certaine topologie sur le graphe de communication sous-jacent. On sera parfois amené à modifier une première topologie (préférentiellement par calcul statique à la création de la mission mais aussi parfois dynamiquement et de manière distribuée en cours de mission) afin de tenter de se conformer à une certaine classe de graphes nous permettant d’assurer la réussite de la mission (i.e. d’avoir un graphe temporel de communication adéquat). Cela peut, par exemple, se traduire par l’ajout ou la suppression d’un nœud ou la modification du plan de vol (FLR

i , section 4.2.4.1, p. 102) d’un ou plusieurs nœuds. En pratique, chaque nœud prend localement ses décisions en se basant sur son estimation de la situation globale et il doit répondre à des contraintes opérationnelles (i.e. distances de sécurité, vitesses de déplacements, waypoint à visiter). Il en résulte qu’il n’est pas toujours possible de garder un graphe de communications stable permettant des communications synchrones. Ce point est traité dans le chapitre 5 (p. 109).

Outre le fait qu’il se réattribue les tâches supposées perdues en modifiant localement son plan de vol, chaque nœud tente de construire un graphe global de communications propice aux échanges et donc à la réussite de la mission. On distingue plusieurs cas en fonction de la nature du graphe des déplacements autorisés (sec. 4.2.3, p. 100) :

– le graphe des déplacements possibles constitue un maillage pré-existant fixe au dessus duquel le nœud crée/modifie/adapte son plan de vol/parcours en fonction de différents paramètres (e.g. le nombre de nœuds supposés présents3, les puissances d’émissions constatées, . . . ) ;

– le graphe des déplacements possibles est constitué, de manière beaucoup plus souple, d’une zone (continue ou discrétisée) dans laquelle un nœud choisit une position plus ou moins aléatoirement (Random Waypoint/Random Walk) avant de s’y rendre. Un exemple pourrait consister en n drones qui se déplacent aléatoirement dans un espace et se rassemblent peu à peu (e.g. en effectuant un suivi de leader, section 5.3.2.1, p. 117), à chaque fois qu’ils se croisent ;

– le graphe des déplacements possibles est constitué de plusieurs niveaux de graphes de déplacement. En effet, on peut imaginer une maille pré-existante dont la référence (potentiellement un leader, un élément suivi au sol) peut être mobile. La position réelle du graphe de déplacements possibles “secondaire” est alors dépendante d’un graphe de déplacements possibles (ou espace continu libre) “primaire”.

Que cela soit dû à un événement (e.g. perte d’un ou plusieurs nœuds) ou à une nécessité de la mission (e.g. visite d’un point d’intérêt éloigné du reste de la flotte), il se peut que le graphe de communication devienne déconnecté (i.e. présente plusieurs composantes connexes) pendant une période donnée. Ne disposant pas d’un point de centralisation (e.g. station sol pouvant servir de relais de communication), les îlots de nœuds ainsi formés sont dans l’incapacité d’échanger des informations.

Ce découpage potentiel du réseau en plusieurs îlots, le fait que les délais d’acheminement 3. Dans CARUS (Chap. 7, p. 159), par exemple, après la perte supposée d’un voisin, le nœud modifie son plan de vol (il couvre plus de points). Ceci a pour effet de favoriser les possibilités d’échanges avec les autres nœuds présents.

d’un message dus aux communications multi-sauts utilisées dans ce type de flotte soient non-nuls et le fait qu’un message puisse être perdu concourent à l’obligation qu’ont les nœuds de la flotte de raisonner sur des estimations locales de la situation globale (ce point est développé section 4.2.4.2, p. 102).

Objectif :

visiter un ensemble de points

algo + contraintes FLR 1,t0. . . FLR n,t0 A manuel manuel auto F(G) FLR i qui réussissent FLR

i qui ne réussissent pas

B C ⊂ incident suspecté adaptation n 1+ 2+ 3+ manuel auto

Figure 4.67 – Schéma global de relation Mission/Classe de Graphes/Évolution

La figure 4.67 présente une mission dont l’objectif est de visiter un ensemble de points. À partir de cet objectif, on peut construire un algorithme et déterminer un ensemble de contraintes. On peut en déduire automatiquement un ensemble possible de n (n étant le nombre de nœuds actifs au début de la mission) plans de vol initiaux (FLR

i,t0).

À partir de l’algorithme et des contraintes (ou directement de l’objectif), on peut manuelle-ment définir une classe de graphe à laquelle doit appartenir le graphe de communications sous-jacent pour permettre la réussite de la mission. De cette classe découle l’ensemble des plans de vol pour lesquels la mission peut être réussie.

Au cours de la mission, lorsqu’un nœud détecte (estime avoir détecté) localement un événement (e.g. perte d’un voisin ou disparition d’un nœud) pouvant entraîner la non-satisfaction d’une des contraintes de la mission, il tente de recalculer, en fonction de son estimation de la situation globale, une configuration (FLR

i,t+1) dans laquelle la mission peut réussir.

On remarque qu’ici, le plan de vol initial est inclus dans l’ensemble des plans de vol propices à la réussite de la mission (AB). Si aucun événement (e.g. perte de nœud ou

supposition de perte d’un nœud) n’amène un nœud à modifier son plan de vol, la mission réussira.

Pour certaines missions, les nœuds peuvent se passer de ce premier plan de vol et se constituer chacun leur propre plan de vol initial, sans avoir connaissance du nombre de nœuds dans la flotte. C’est par exemple le cas pour l’algorithme de CARUS, dans lequel chacun des nœuds découpe une grille à visiter en tranches de points en fonction de l’estimation qu’il a du nombre de nœuds présents dans la flotte.

4.1.2 Séquencement des informations

Sauf mention contraire, dans nos travaux, nous ne considérons pas d’horloge globale synchrone.

Nous considérons maintenant les différents mécanismes permettant de dater et d’ordon-ner (quand cela est possible) les informations manipulées par les nœuds.

4.1.2.1 Utilisation de dates locales

Chaque nœud possède une horloge locale sur laquelle il s’appuie pour dater et ordonner les événements qui lui sont locaux. Ainsi, t(x) donne la date de la dernière modification de l’élément x.

Notation : une date locale à un nœud i est notée ti. Lorsqu’il n’y a pas d’ambiguïté possible, celle-ci peut être notée t.

4.1.2.2 Utilisation de dates absolues

À tout élément étudié ici est associée une date absolue qui, par exemple, garde trace de sa dernière modification. Ainsi, tabs(x) donne la date absolue de la dernière modification de l’élément x.

Ces dates servent, a priori, seulement à la vérification du fonctionnement de l’algorithme (point de vue omniscient) et ne sont pas utilisées dans son expression.

Notation : Une date absolue est notée tabs.

4.1.2.3 Numéros de séquence et de version

Certains éléments, tels que les plans de vol locaux (FLR

i ), ont un numéro de séquence qui est incrémenté à chacune des modifications de l’élément. Ainsi, version(x) donne le numéro de version de l’élément x.

Ces numéros de séquence permettent d’ordonner les différentes versions d’une informa-tion et ainsi de déterminer laquelle est la plus à jour.

4.1.2.4 Utilisation de l’âge estimé d’une information

Nous avons vu que les numéros de versions permettent de différencier et d’ordonner les informations provenant d’une même source. Nous ajoutons maintenant la notion d’âge d’une information (i.e. le temps écoulé depuis sa création). Cette donnée supplémentaire permet à l’algorithme de raisonner sur la “fraîcheur” d’une information et donc sur ses chances d’être toujours pertinente.

j k l i Iv,0(j) Iv,β1(j) Iv,β1(j) Iv,β12(j) Iv,β12(j) Iv,β0(j) Iv,0(j) δ1 β1 δ2 β2 δ0 β0 δ3

Figure 4.68 – Chemins empruntés par une information I dans sa version v ayant pour source j (notée Iv,0(j)) et temps de transmission associés. Sachant que les temps d’acheminements (δx) ne sont pas pris en compte mais seulement les durées (βx) pendant

lesquelles un nœud possède l’information, on ne peut obtenir qu’une estimation de l’âge d’une information. Le nœud i, recevant deux fois la même information, garde celle dont

l’âge estimé est le plus grand, et donc le plus juste : Iv,max(β012)(j).

Une estimation de l’âge d’une information est obtenue en agrégeant (additionnant) les périodes durant lesquelles l’information est restée sur chacun des nœuds du réseau avant l’exécution du calcul d’estimation. Avant d’utiliser ou de retransmettre une information, le nœud concerné additionne l’âge déjà estimé par ses prédécesseurs éventuels à son estimation de la durée pendant laquelle il l’a lui-même possédée (différence entre l’heure locale courante et l’heure locale de réception de l’information). Cette méthode, illustrée par la figure 4.68, ne prend pas en compte les temps de transmission δx de l’information (cumul des temps d’acheminement du message sur le medium — dans les airs — entre deux nœuds et des temps de traitement des messages par les couches logicielles)4 qui nous sont inconnus. Nous discutons dans l’annexe B (p. 207) de l’impact de ces temps de transmission et des décalages d’horloge de chacun des nœuds du réseau sur le calcul de cette estimation d’âge. Il en ressort qu’il existe deux manières d’estimer l’âge d’une information :

– en excès : on surestime alors l’âge de la donnée et on fait donc des détections d’obsolescence des informations (timeouts) trop tôt. Ceci rend le système moins stable mais plus réactif.

4. On peut considérer qu’un message est annoté exactement au moment de son envoi et de sa réception et que les traitements effectués avant et après n’impactent plus l’estimation de son âge. En revanche, le temps d’acheminement du message d’une carte réseau à l’autre est faible, mais n’est pas nul.

– en défaut : on sous-estime alors l’âge de la donnée et on fait donc des détections d’obsolescence des informations (timeouts) trop tard. Ceci rend le système moins réactif mais plus stable.

Dans la suite, nous faisons le choix de ne considérer que des estimations “en défaut” afin d’être sûrs de ne pas avoir de faux positifs (détections inutiles) dûs uniquement à l’estimation de l’âge d’une information. Cette méthode présente l’avantage de pouvoir considérer des délais de transmissions non-nuls (Annexe B.3, p. 210).

Il est fort probable que plusieurs instances d’une même information (même nœud source et même numéro de version), ayant emprunté des chemins différents, arrivent à un nœud ré-cepteur (fig. 4.68, p. 96) avec des estimations d’âge différentes5. Le récepteur conserve alors l’estimation d’âge la plus grande car c’est, par essence, la plus juste (estimation “en défaut”).

La manière dont sont créées et reçues certaines informations via des communications multi-sauts implique que les nœuds raisonnent sur des estimations locales de la situation globale. La section suivante traite de ce point.