• Aucun résultat trouvé

}

Exploration

Chaînes de liens locaux (noeuds non visités)

FIG. 2.2 : Exemple d’arbre d’exploration de profondeur 3 avec ses chaˆınes de liens locaux de longueur3 attach´ees aux feuilles, dans un r´eseauK1

1,n. D´efinition 2.2 (Lien valide)

On dit qu’un lien (local ou longue-distance) d’un noeud u vers un noeud v est

valide si v est strictement plus proche de la cible que u selon la distance de

Man-hattan. On dit alors que v est un contact valide (local ou longue-distance) de u. On dit qu’un noeud v est `ah liens valides de u, s’il existe un chemin de longueur

inf´erieure ou ´egale `ah de u vers v compos´e uniquement de liens valides.

On dit que v est `ah liens locaux valides de u si ce chemin est uniquement

com-pos´e de liens locaux valides.

Supposons que la structure d’exploration est compos´ee de liens locaux et longue-distance et prolong´ee par des chaˆınes de liens locaux enracin´ees en cha-cune de ses feuilles, comme d´ecrit dans la section pr´ec´edente.

Afin de garantir que les chemins de liens locaux de l’arbre (dont les chaˆınes) sont constitu´es de noeuds distincts, il suffit de ne consid´erer dans la structure que les contacts longue-distance qui sont `a une distance sup´erieure ou ´egale `a la hauteur de l’arbre des autres noeuds de la structure. On appelle zone de s´ecurit´e d’un noeud u l’ensemble des noeuds `a distance inf´erieure `a la hauteur de l’arbre de u. On dit que ces noeuds sont interdits pour les contacts longue-distance des autres noeuds de la structure. On remarquera que les contacts longue-distance que l’on ne consid`ere pas sont visit´es par ailleurs dans la structure, puisque ce sont des r´ep´etitions.

2.3 Notre algorithme de routage

Dans cette section, nous pr´esentons en d´etail le fonctionnement de notre al-gorithme de routage. Nous consid´erons tout d’abord le cas unidimensionnel pour

2.3 : Notre algorithme de routage 33

la lisibilit´e. La section 2.5 g´en´eralisera cet algorithme, ainsi que tous les r´esultats obtenus, `a une dimension quelconque.

Nous d´ecrivons notre algorithme suivant un parcours en profondeur qui permet de comprendre son fonctionnement de fac¸on simple. Nous verrons par la suite une impl´ementation de l’algorithme suivant un parcours en largeur, moins efficace en pratique, mais dont l’analyse probabiliste est plus simple.

Description de l’algorithme (selon le parcours en profondeur). Soient s et t la source et la cible respectivement. On suppose que trois fonctions hmax(x), bmax(x) et g(x), ainsi qu’un param`etre stop nous sont donn´es. La fonction hmax(x) repr´esente la profondeur d’exploration pour une racine `a distancex de t, bmax(x) le nombre de feuilles que l’on cherche `a obtenir,g(x) la longueur des chaˆınes de liens locaux (cf. figure 2.3). Enfin, stop est la distance seuil `a t en dessous de laquelle on ex´ecute l’algorithme glouton de Kleinberg car l’exploration devient inutile.

Les valeurs de ces fonctions seront donn´ees dans la suite. La difficult´e consiste `a choisir les valeurs de ces fonctions de fac¸on `a minimiser la longueur du che-minhmax(x)+g(x) tout en garantissant un nombre de feuilles suffisamment grand. Soit x le porteur courant du message etπ le chemin courant de s `a x :

1. Tant que|x − t| > stop :

– Explorer les noeuds `a hmax(x) liens valides de x suivant un parcours en profondeur, enregistrer dans un ensembleF tous les contacts longue-distance valides visit´es, mais sauter dans l’exploration tous les contacts longue-distance `a distance strictement inf´erieure `ahmax(x) + g(x) d’un noeud de l’ensembleF courant. Le parcours en profondeur est arrˆet´e d`es que|F | = bmax(x), mˆeme s’il reste des noeuds `a parcourir.

– `A chaque fois qu’un noeud z, `a exactementhmax(x) liens valides de x, est rencontr´e, lire les adresses des contacts longue-distance des noeuds `a g(x) liens locaux valides de z, et enregistrer dans une variable y le noeud le plus proche de la cible parmi les noeuds visit´es et leurs contacts. – `A la fin de l’exploration en profondeur, router le message de x `a y dans

l’arbre d’exploration et ´etendre le cheminπ jusqu’`a y, suivant ces liens. 2. Lorsque|x − t| 6 stop : appliquer l’algorithme glouton de Kleinberg, i.e.

transmettre le message au contact de x le plus proche de t et ´etendre le cheminπ par ce lien, jusqu’`a atteindre t.

La figure 2.3 illustre le principe de la structure visit´ee durant chaque phase d’exploration : les lignes droites repr´esentent les liens locaux valides et les fl`eches repr´esentent les liens longue-distance valides ; les noeuds de F sont repr´esent´es par des cercles blancs, chacun commence une nouvelle chaˆıne de liens locaux de

longueur inf´erieure ou ´egale `ahmax(x) + g(x), dirig´ee vers la cible. La structure explor´ee est compos´ee d’un arbre(k + 1)-aire (partiel) de hauteur hmax(x) ´etendu par des chaˆınes de liens locaux de longueurg(x) attach´ees `a ses feuilles.

Pour all´eger les notations, on pose ˆk =def k + 1.

Les zones de s´ecurit´e (cf. section 2.2.2) des noeuds sont respect´ees, puisqu’on ne consid`ere que des contacts longue-distance `a distance sup´erieure `ahmax(x) + g(x) (la profondeur de la structure) de l’ensemble des noeuds d´ej`a explor´es F . Cela garantit que les chaˆınes de liens locaux enracin´ees en les noeuds de F ne se recoupent pas. Rappelons que les contacts ´evit´es sont en fait des r´ep´etitions de noeuds existant dans notre structure, cet ´evitement n’est donc pas une limite sur les performances de l’algorithme.

L’arbre est dessin´e dans le plan pour illustrer la structure arborescente, mais il est en fait plong´e dans le tore. `A la fin d’une phase d’exploration, le chemin est ´etendu depuis x vers le noeud y le plus proche de la cible parmi les noeuds ex-plor´es et leurs contacts. Une nouvelle phase d’exploration commence alors depuis le noeud y.

Source

π x y Cible

g(x) hmax(x)

FIG. 2.3 : Extension du cheminπ (en gras) `a la fin d’une phase d’exploration. La figure 2.4 illustre la succession des structures d’exploration durant un rou-tage.

L’impl´ementation selon un parcours en largeur (algorithme 2) que nous ana-lysons dans la section suivante construit la structure arborescente d’exploration niveau par niveau. Mˆeme si la partie de l’arbre explor´ee n’est pas la mˆeme que dans l’impl´ementation selon le parcours en profondeur, l’analyse des deux pro-grammes est identique.

La figure 2.5 illustre les ensembles de noeuds qui correspondent `a un niveau interm´ediaireh, compris entre 1 et hmax, de la construction de la structure.A est l’ensemble des noeuds visit´es durant la phase d’exploration (sans les chaˆınes de liens locauxC).

Les liens suivis durant une phase d’exploration forment une structure d’arbre ˆ

k-aire sur A, de hauteur hstop.hstopest la hauteur `a laquelle le nombre de branches a atteint le seuil bmax(x). L’ensemble des feuilles Bhstop est ´etendu par |Bhstop| chaˆınes de liens locaux valides de longueur g(x), enracin´ees en les noeuds de