• Aucun résultat trouvé

Routage de guides d’onde dans un satellite

4.2 R ´ eparation locale

Les diff´erents m´ecanismes r´egissant la r´eparation locale vont ˆetre expos´es dans cette section. Prenons l’exemple d’un routage sur un seul niveau, illustr´e par la figure4.1(a). Nous sommes en pr´esence d’une grille representant une zone de routage : une case noire est un obstacle ; une case blanche est une case libre ; les cases libell´ees S1 etG1 sont respectivement la source et la destination du guide d’ondes num´ero 1 ; S2 etG2 la source et la destination du guide d’ondes num´ero 2. La configuration de routage de cet exemple est ce que nous appelons un virage en S.

Dans cet exemple, le guide n˚2 est en conflit avec le guide d’ondes n˚1 pr´ec´edemment rout´e. La zone de conflit est repr´esent´ee par les cases libell´eesC. Afin de r´eparer cette situation de conflit, des points de d´epart et d’arriv´ee secondaires,s1,g1,s2,g2 sont positionn´es aux fronti`eres de la zone de conflit, comme illustr´e par la figure4.1(a). La fronti`ere d’une zone de conflit est d´elimit´ee par une case appartenant `a une route, qui n’est pas en situation de conflit et qui est adjacente `a une case en situation de conflit. La r´eparation consiste alors `a determiner les plus courts chemins reliant les points de d´epart et d’arriv´ee secondaires en respectant les contraintes de capacit´e (entr´ee en conflit interdite). Le r´esultat est illustr´e par la figure4.1(b).

Afin de garantir le succ`es de la r´eparation, deux r`egles doivent ˆetre imp´erativement respect´ees. La premi`ere est li´ee `a la taille de la zone de conflit. Cette taille doit ˆetre limit´ee au maximum. C’est `a dire qu’un chemin associ´e `

a un guide d’ondes ne rentrera en conflit avec un autre chemin qu’en dernier recours. La figure4.1(c) illustre le cas o`u cette taille n’est pas limit´ee. On peut constater que la zone de conflit est tr`es ´etendue par rapport `a l’exemple de la figure 4.1(a). Une zone de conflit trop grande empˆeche toute tentative de r´eparation car les chemins reliant les points secondairess1 `ag1 ets2 `ag2 se bloqueront mutuellement. La limitation de cette zone de conflit est effectu´ee en p´enalisant l’utilisation d’une case en situation de conflit par un coˆut suppl´ementaire. Ce coˆut d’occupation est pris en compte dans la fonction de coˆut f(i), de l’algorithme A par l’ajout d’une fonction de coˆut suppl´ementairec(i), comptabilisant les coˆuts d’occupation. Ainsi, la nouvelle fonction de coˆut f(i) s’´ecrit :f(i) =g(i) +h(i) +c(i).

(a) (b) (c) (d)

Figure4.1 – Routage de deux guides d’ondes

La seconde r`egle concerne le croisement durant une situation de conflit entre les chemins associ´es aux guides d’ondes, plus pr´ecis´ement, durant la sortie d’une situation de conflit. Sur notre exemple, lors du routage du guide d’ondes n˚2, il est imp´eratif d’interdire le croisement avec le guide d’ondes n˚1. La figure4.1(d) illustre le cas o`u cette r`egle n’est pas respect´ee. On y observe deux zones de conflit et un croisement entre les deux chemins, ce qui empˆeche toute tentative de r´eparation. Un calcul des produits vectoriels−−−→

s1C1·−−−→s2C1 et−−−→

C2g1·−−−→C2g2 permet de d´etecter un croisement lors d’une situation de conflit, et donc de l’interdire. La figure4.2 illustre ce calcul : le guide d’ondes n˚2 est en conflit avec le guide n˚1 et il s’apprˆete `a sortir de cette situation de conflit par la case s2, qui repr´esente la fronti`ere de la zone de conflit. En effectuant le calcul des produits vectoriels −−−→

s1C1·−−−→s2C1 et−−−→

C2g1·−−−→C2g2 et en comparant leurs signes, on arrive `a d´etecter que l’utilisation de la cases2 entraˆınerait une situation de croisement entre les deux guides d’ondes. Le test de croisement est effectu´e `a chaque sortie d’une situation de conflit.

Figure 4.2 – Produits Vectoriels

Malheureusement, l’interdiction de croisement rompt l’optimalit´e de l’algorithme A*. Prenons l’exemple de la figure4.3(a) qui illustre deux guides d’ondes, le guide d’ondes n˚1 pr´ec´edemment rout´e (l’ensemble des cases gris fonc´e) et le n˚2 qui est en train de l’ˆetre. L’algorithmeA*effectue une premiere extension du chemin associ´e au guide d’ondes n˚2, repr´esent´ee par les cases en damier. Durant cette extension, il entre en conflit avec le guide

d’ondes n˚1 par le cot´e droit. Cette situation de conflit est mat´erialis´ee par les cases marqu´ees d’une lettre C de couleur blanche. L’algorithmeA*´etend une deuxi`eme extension par le cot´e gauche, repr´esent´ee par les cases en brique, cas illustr´e par la figure 4.3(b). `A son tour, la seconde extension entre en conflit avec le guide d’ondes n˚1 au niveau de la case marqu´ee d’une lettre C noire, case d´ej`a occup´ee par la premiere extension mais qui va ˆetre affect´ee `a la seconde extension `a la faveur d’un coˆut plus faible. Cette situation aurait ´et´e impossible si l’on avait uniquement consid´er´e les coˆuts de d´eplacement, or le coˆut d’occupation servant `a limiter la zone de conflit est pris en compte, ce qui a pour effet de favoriser l’extension du cot´e gauche. Une fois cette domination effective, l’extension du cot´e droit est perdue et il ne reste plus que celle du cot´e gauche qui ne peut croiser le chemin associ´e au guide d’ondes n˚1 afin d’atteindre sa destination. Le routage devient alors impossible, comme le montre la figure4.3(c) o`u toutes les cases ont ´et´e explor´ees en vain.

(a) (b) (c)

Figure4.3 – Multi-labels

La solution adopt´ee pour r´etablir l’optimalit´e de l’algorithmeA*est de cr´eer un label gauche et un label droit en plus du label utilis´e jusqu’`a pr´esent, le label neutre. Lors de l’expansion, si une situation de conflit est d´etect´ee, le label correspondant au cot´e d’entr´ee en conflit, gauche ou droit est ´etendu. Quant au label neutre, ce dernier est utilis´e si aucun conflit n’est d´etect´e. Les r`egles de dominance adopt´ees sont les suivantes : un label neutre ne peut dominer qu’un label neutre. Les labels droit et gauche ne peuvent dominer qu’un label du mˆeme type ou un label neutre. Lors de l’expansion, tous les labels d’une case doivent ˆetre ´etendus. L’algorithme de recherche de plus court chemin A* devient alors multi-label.

Dans l’optique d’am´eliorer l’efficacit´e de l’algorithmeA*, l’extension d’un label n’est pas effectu´ee pour toutes les directions r´ealisables. En effet, une analyse simple montre qu’un d´eplacement dans le plan provoquant un changement d’angle sup´erieur `a l’angle droit ram`ene sur une case adjacente `a la case visit´ee pr´ec´edemment, ce qui `a un coˆut n´ecessairement sup´erieur `a un d´eplacement direct. Ainsi, par exemple, le chemin reliant successivement les cases de coordonn´ees (0,0,0), (1,0,0) et (0,1,0), formant ainsi un angle de 135˚, sera domin´e par le chemin reliant directement (0,0,0) `a (0,1,0).

La solution propos´ee jusqu’`a present permet de r´eparer une situation de conflit entre deux guides d’ondes. Pour un nombre plus important de guides d’ondes, une nouvelle notion doit ˆetre introduite. Prenons l’exemple de trois guides d’ondes, illustr´e par la figure4.4(a) : les guides d’ondes n˚1 et n˚2 pr´ec´edemment rout´es (figures 4.1 (a)-(b)) et le guide d’ondes n˚3 en conflit avec le n˚2. Si on appliquait le mˆeme raisonnement que pr´ec´edemment, seul le routage des guides d’ondes n˚2 et n˚3 serait remis en cause. Or, pour avoir l’espace n´ecessaire au routage des trois guides d’ondes, le routage du guide n˚1 doit ˆetre remis en cause malgr´e le fait qu’il ne soit pas concern´e par

la situation de conflit entre les guides d’ondes n˚2 et n˚3. Nous introduisons alors la notion de boite englobante qui permet de d´etecter les guides d’ondes proches de la zone de conflit afin de les remettre en question, le guide d’ondes n˚1 dans notre exemple.

La boite englobante fonctionne de la fa¸con suivante : un rectangle est plac´e autour de la zone de conflit afin de l’inclure enti`erement, ensuite il est agrandi selon un param`etre, le radius. La figure 4.4(b) illustre cette op´eration, avec un radius ´egal `a une case. Une fois positionn´ee, les cases qui y sont incluses sont examin´ees dans l’optique de d´etecter l’ordre d’apparition des guides d’ondes. La d´etection est effectu´ee grˆace `a un balayage de droite `a gauche et de bas en haut. Ce dernier d´etermine l’ordre de routage des portions de guides d’ondes `a r´eparer. Les portions sont d´efinies par les points de d´epart et d’arriv´ee secondaires, positionn´es `a la fronti`ere ext´erieure de la boite englobante. Le r´esultat de la r´eparation est illustr´e par la figure4.4(c).

(a) (b) (c)

Figure4.4 – Routage de trois guides d’ondes

La multiplication des guides d’ondes dont le routage doit ˆetre remis en question durant la r´eparation, implique la prise en compte d’un nouvel aspect concernant le positionnement des points de d´epart et d’arriv´ee secondaires. Un positionnement `a la fronti`ere de la boite englobante n’est pas toujours optimal, car il peut provoquer l’´echec de le r´eparation. Un positionnement dit optimal est celui o`u les points de d´epart secondaires (les points d’arriv´ee secondaires) sont plac´es en retrait (en cascade) les uns par rapport aux autres. Appliqu´e `a l’exemple pr´ec´edent, cela donne le r´esultat illustr´e par la figure4.5, mais aussi sch´ematiquement par la figure4.6. Le point d’arriv´ee secondaire du guide d’ondes n˚1 est confondu avec le point d’arriv´ee r´eel. Un tel positionnement permet de limiter les situations de blocage lors de la reparation. Sur la figure4.6, le positionnement des points secondaires du guide d’ondes n˚1 lui permet d’ˆetre rout´e sans risquer de bloquer le guide d’ondes n˚2, idem pour le n˚2 et n˚3.