• Aucun résultat trouvé

2.2 Algorithmes de plus court chemin

2.2.3 L’algorithme A ⋆

2.2.3.3 Algorithmes A ⋆ pour environnements dynamiques ou incertains

L’origine des travaux portant sur les plus courts chemins en environnement dynamique pro- vient en partie des jeux vid´eo. Dans les role-playing games notamment, un personnage se d´eplace dans un environnement 3D dynamique. Pour mouvoir ce personnage, le joueur effectue un clic `a un endroit de la carte et le personnage doit s’y rendre en empruntant le chemin le plus court tout en ´evitant les obstacles et les autres personnages. Le probl`eme r´eside dans le temps de calcul de ce chemin : il faut qu’il soit quasiment imperceptible pour un joueur afin d’assurer la fluidit´e de l’ex´ecution et ne pas ˆetre aga¸cant `a la longue. La recherche de chemin en robotique mobile a ´egalement fait l’objet de nombreux travaux. Les recherches de chemin sont souvent r´ealis´ees sur un quadrillage repr´esentant la surface (deux dimensions donc) de l’environnement. Lorsqu’un obstacle se trouve sur une case, cette derni`ere est « bloqu´ee » et ne peut donc ˆetre emprunt´ee.

L’id´ee majeure pour am´eliorer les m´ethodes provient d’une constatation : certaines recherches peuvent n’ˆetre que peu diff´erentes des pr´ec´edentes. En cons´equence, pour acc´el´erer le calcul d’un nouveau chemin, on va r´eutiliser les r´esultats acquis lors des pr´ec´edents d´eplacements.

Dans un premier temps, les chercheurs ont tent´e d’adapter directement les algorithmes de recherche optimaux [Nils 80, Jarv 85] pour les porter dans des architectures dynamiques. Les exp´erimentations sont alors effectu´ees sur des robots autonomes [Zeli 92] qui vont tenter de rejoindre un point objectif : si une incoh´erence est d´etect´ee, le robot va replanifier son itin´eraire en effectuant une nouvelle recherche. Ces m´ethodes de force brute sont optimales, mais globalement inefficaces, particuli`erement pour les environnements de grande taille pour lequels la recherche peut prendre beaucoup de temps. D’autres algorithmes ont donc ´et´e ´elabor´es pour am´eliorer leurs performances en termes de besoins temps r´eel, `a savoir rapidit´e d’ex´ecution et/ou espace m´emoire. Il en r´esulte deux grandes familles, d´evelopp´ees parall`element dans la seconde moiti´e des ann´ees 80, que nous pr´esentons maintenant.

2.2.3.3.a Les algorithmes `a heuristique temps-r´eel

La premi`ere famille d’algorithmes regroupe les recherches dites `a heuristique temps-r´eel. L’id´ee de d´epart est qu’une recherche type A⋆ doit attendre la fin de l’ex´ecution pour d´eli-

vrer la solution optimale, ce qui peut s’av´erer dispendieux pour des environnements de grande taille. Or pourquoi attendre la fin de l’ex´ecution pour qu’un robot commence `a se d´eplacer ? Pour acc´el´erer l’ex´ecution, les algorithmes `a heuristique temps-r´eel font le choix de ne consid´erer qu’un environnement de taille finie, limit´ee par un horizon ou une profondeur de recherche. Les chercheurs proposent diff´erents algorithmes [Lume 86, Pirz 90] mais le premier faisant vraiment r´ef´erence est RTA⋆(pour Real-Time A) [Korf 87, Korf 88], am´elior´e par la suite : LRTA(Lear-

ning RTA⋆) [Korf 90] avec m´ethode d’apprentissage, RTAA(Real-Time Adaptive A) [Koen 06]

puis GAA⋆ (Generalized Adaptive A) [Sun 08] impl´ementant une mise `a jour des heuristiques...

Ces m´ethodes ont ´et´e largement d´eriv´ees et ont d´emontr´e leur efficacit´e sur d’autres types de probl`emes [Koen 98], comme le 24-puzzle ou encore les probl`emes de planification de tˆaches...

Contrairement aux algorithmes `a heuristique incr´ementale d´ecrits ci-apr`es, le chemin ainsi d´efini peut se r´ev´eler sous-optimal, car l’espace de recherche ne va pas ˆetre consid´er´e de mani`ere globale. En revanche, pour des applications temps r´eel exigeant une forte r´eactivit´e ou engageant de nombreux agents (par exemple dans le cas du d´eplacement d’une « arm´ee » dans un jeu vid´eo), ces m´ethodes pr´esentent une grande efficacit´e.

2.2.3.3.b Les algorithmes `a heuristique incr´ementale

Pour faire face `a la surcharge de calcul ou d’utilisation m´emoire, de nombreux algorithmes ont vu le jour, dont la performance est atteinte au d´etriment de l’optimalit´e de la solution. L’algorithme D⋆ (pour Dynamic A) [Sten 94] va s’imposer en 1994 comme la premi`ere grande

r´ef´erence face aux probl`emes dynamiques. Il sera am´elior´e pour ˆetre d´eriv´e notamment en Fo- cussed D⋆ [Sten 95] puis en DLite [Koen 02a], le dernier permettant une simplification de

l’ex´ecution.

Les algorithmes (Focussed) D⋆ et DLite sont applicables `a plusieurs cas de figure. On peut

les mettre en œuvre dans les cas o`u l’environnement est totalement inconnu (d´etection locale `

a l’aide de capteurs), connu `a priori (on dispose de la carte de la zone, mais on doit faire face `

a l’incertitude : obstacles mobiles, acc`es condamn´es...) ou partiellement connu (zones d’ombre). Ils ont la capacit´e de r´eutiliser les donn´ees des recherches pr´ec´edemment r´ealis´ees en conservant en m´emoire la liste ouverte ´elabor´ee par une recherche type A⋆. Plus particuli`erement, DLite

s’appuie sur l’algorithme LPA⋆ (Lifelong Planning A) [Koen 02b]. LPAeffectue une premi`ere

recherche `a la mani`ere d’A⋆ et attend une mise `a jour des informations. Si au cours du d´epla-

cement une incoh´erence (diff´erence entre la fonction de coˆut attendue lors du d´eplacement le long de l’itin´eraire et celle effectivement d´etect´ee) survient, alors un m´ecanisme de propagation permet d’actualiser les valeurs de coˆut des nœuds candidats pour la recherche. R´ecemment, un autre algorithme incr´emental plus efficace que LPA⋆ a ´et´e mis au point : Fringe-Saving A

[Koen 07]. Cet algorithme a fait l’objet, tout comme LPA⋆, d’une d´erivation pour ˆetre appli-

cable aux environnements dynamiques. Issu de D⋆ Lite, Dynamic Fringe-Saving A[Koen 09]

a ainsi ´et´e cr´e´e. Bas´e sur un algorithme incr´emental plus efficace, il surpasse logiquement son pr´ed´ecesseur : le gain annonc´e est un facteur 2,5 en temps d’ex´ecution.

2.2.4 Algorithmes pour le probl`eme de plus court chemin sous contraintes

Le probl`eme de plus court chemin sous contraintes consiste, comme pr´ec´edemment, `a trouver un chemin pour aller d’un sommet A `a un sommet B dans un graphe, mais en prenant cette fois en compte une seconde m´etrique (autre que le coˆut) associ´ee aux arˆetes du graphe. La r´esolution doit garantir que la somme des valeurs de cette m´etrique le long du chemin est inf´erieure `a une valeur plafond (voir la formalisation de ce probl`eme en section 1.3.3). Il est `

a noter qu’un probl`eme sous contraintes multiplicatives peut ˆetre ramen´e `a un probl`eme sous contraintes additives, en travaillant avec la valeur logarithmique des pond´erations. Quant au probl`eme de contraintes min/max, il est r´esolu avec un simple algorithme de plus court chemin une fois les arˆetes invalides supprim´ees.

Pour g´erer l’introduction d’une contrainte additive, des approches bas´ees sur des heuristiques int´egr´ees `a un algorithme de plus court chemin de type Dijkstra ou Bellman-Ford [Kort 00] (alternative `a Dijkstra, moins performante mais capable de traiter des probl`emes avec pond´era- tions n´egatives, d`es lors qu’aucun cycle n´egatif n’est d´etect´e) ont ´et´e exp´eriment´ees. Les travaux exploitant cette approche [Ravi 02] montrent cependant des performances assez variables en comparaison des m´ethodes de r´esolution sp´ecifiques pr´esent´ees ci-apr`es. ´Etant d´emontr´e par [Wang 96] que le probl`eme est NP-complet (mˆeme dans le cas de graphes acycliques), plusieurs approches d’approximation ont ´et´e d´evelopp´ees. Elles sont de deux types : les approches g´eom´e- triques et les approches alg´ebriques, pr´esent´ees ci-dessous. En troisi`eme lieu, nous pr´esentons les approches du probl`eme g´en´eralis´e `a k m´etriques de contraintes.