• Aucun résultat trouvé

Comme cela a ´et´e plusieurs fois ´evoqu´e, et notamment en conclusion de la section 4.1, les mod`eles de chemin entre solveur partiel et solveur global ne sont pas identiques. En effet, le premier construit une solution en juxtaposant plusieurs chemins unitaires, ce qui peut l’amener `

a repasser plusieurs fois par un mˆeme nœud. Or, le mod`ele logique mis en place dans le solveur de contraintes n’autorise pas cette ´eventualit´e. Cela peut ainsi avoir des cons´equence sur l’efficacit´e du guidage de la solution partielle.

Dans un cadre de navigation purement militaire, le mod`ele logique est coh´erent puisque la doctrine impose aux v´ehicules de ne pas emprunter `a nouveau une portion d’itin´eraire d´ej`a emprunt´ee. En revanche, pour une application robotique par exemple, il n’y a aucune raison d’interdire `a un robot de retourner sur ses pas. Nous avons donc mis en œuvre un nouveau mod`ele de flot afin d’autoriser les « flots multiples » au niveau des nœuds. Nous nous restreignons ici aux probl`emes dont les fonctions de coˆut associ´ees aux arcs sont sym´etriques (c’est-`a-dire que pour toute fonction c : E → N, et pour couple d’arcs (e = (u, v), e′ = (v, u)) ∈ E2

, l’´equation c(e) = c(e′) est v´erifi´ee). Sous ces hypoth`eses, les flots associ´es aux arcs du graphe restent de

capacit´e unitaire. En effet, si un v´ehicule emprunte deux fois un mˆeme arc, cela signifie que la solution est sous-optimale. Pour le d´emontrer, supposons qu’une telle solution existe. Soit un chemin passant deux fois par une arˆete e = (u, v). On peut alors ´ecrire la solution (mod´elis´ee par la s´equence des nœuds `a parcourir) , par :

p = sp1→ u → v → sp2 → u → v → sp3

sp1, sp2 et sp3 sont trois sous-chemins correspondant respectivement au sous-chemin menant

du nœud initial `a u, au sous-chemin r´ealisant la boucle de v `a u, et au sous-chemin allant de v au nœud final. Or, les coˆuts ´etant sym´etriques, on a c( ¯sp2) = c(sp2) o`u ¯sp2 d´esigne la s´equence

inverse de sp2. Ainsi, il existe n´ecessairement un chemin p′ tel que

p′= sp1→ ¯sp2 → sp3

avec c(p′) < c(p). Dans le cas de fonctions de coˆut non sym´etriques, ce mod`ele n’est en revanche pas n´ecessairement valable. Il n’est ´egalement pas valable si des fenˆetres de temps sont appliqu´ees aux objectifs.

5.1.1 Nouvelle mod´elisation

X e∈ω+(v s) φ(e) = X e∈ω−(vg) φ(e) = 0 (5.1) X e∈ω−(vs) φ(e) = X e∈ω+(v g) φ(e) = 1 (5.2) ∀v ∈ V \{vs, vg}, X e∈ω+(v) φ(e) = X e∈ω−(v) φ(e) (5.3) ∀v ∈ Vm, X e∈ω+(v) φ(e) = X e∈ω−(v) φ(e) > 0 (5.4)

Les ´equations 5.1, 5.2 et 5.4 restent inchang´ees. En revanche, les termes de l’´equation 5.3 ne sont plus cette fois restreints `a une valeur dans {0, 1}. L’in´egalit´e a donc disparu, et la somme des flots `a un nœud v peut en pratique prendre une valeur {0, n} o`u n = min{|ω+(v)|, |ω(v)|, |V

m|}.

Le mod`ele mis en place garde une restriction : les nœuds de d´epart et d’arriv´ee ne peuvent toujours ˆetre emprunt´es qu’une fois.

Ce mod`ele, comme pr´ec´edemment, n’est pas suffisant pour assurer la coh´erence d’un chemin car des flots cycliques peuvent ˆetre pr´esents dans la solution. Cependant, il n’est plus ici possible d’associer une valeur telle qu’un temps ou un identifiant unique `a chaque nœud afin de mettre en place un propagateur, puisque chaque nœud peut ˆetre emprunt´e plusieurs fois. Pour le calcul des temps par exemple, le calcul qui ´etait fait avec l’´equation 1.12 est rendu caduque en raison d’op´erateur somme (auparavant, une seule valeur de la somme pouvait ˆetre non nulle, ce qui n’est plus le cas). Il faut donc cette fois associer les variables du propagateur aux arcs du chemin.

5.1.2 Propagateur pour flots multiples

Le propagateur pr´esent´e ci-dessous est un propagateur sp´ecifique, `a la mani`ere de celui pr´esent´e en section 4.1.2.2. Pour l’anecdote, ce sont en r´ealit´e les travaux sur les flots multiples qui nous ont amen´es `a repenser le mod`ele logique du solveur initial. En effet, utiliser la propagation des temps dans le mod`ele multiflots a men´e `a de pi`etres performances, ce qui nous a pouss´e `a trouver une alternative (pr´esent´ee ici), que nous avons ensuite ´etendu (avec simplification) au mod`ele uniflot.

Pour v´erifier la coh´erence d’un chemin, nous avons mis en place des variables appel´ees iden- tifiants et not´ees id, associ´ees `a chaque arc du graphe. Le domaine de valeurs de ces identi- fiants est {0, |E|} puisqu’il est en th´eorie possible, dans le pire cas, d’emprunter chaque arc du graphe (en pratique, il faudrait que ce graphe admette un chemin eul´erien de vs `a vg et que

|ω−(vs)| = |ω+(vg)| = 1 en raison de la restriction `a un passage unique au niveau de vs et vg).

La valeur de ces identifiants est d´efinie telle que : ∀e ∈ E, id(e)



= 0 si φ(e) = 0

> 0 sinon. (5.5)

∀e = (u, v) ∈ E \ {ω−(vs)}, φ(e) = 1 ⇔ ∃e′ ∈ ω+(u), id(e) = id(e′) + 1 (5.6)

X e∈ω−(vs) id(e) = 1 (5.7) X e∈ω+(v g) id(e) =X e∈E φ(e) (5.8)

Figure 5.1 – Illustration d’une instanciation des identifiants d’arcs, pour le mod`ele multi-flots.

L’intuition de ce mod`ele est que si un arc e = (u, v) est emprunt´e, alors son identifiant id(e) est tel qu’il existe n´ecessairement un arc e′ = (w, u) pr´ec´edant e et tel que id(e) = id(e) + 1.

La figure 5.1 montre par un exemple le r´esultat d’une instanciation valide des identifiants. Formellement, l’´equation 5.5 sp´ecifie que l’identifiant d’un arc non emprunt´e est nul (et non nul dans le cas contraire). L’´equation 5.6 sp´ecifie que l’identifiant associ´e `a un arc e = (u, v) ∈ E correspond `a l’incr´ement de l’identifiant d’un des arcs entrants de u si son flot est positif. L’´equation 5.7 sp´ecifie la valeur de l’identifiant de l’arc sortant (unique, d’apr`es l’hypoth`ese que vsn’est emprunt´e qu’une fois). L’´equation 5.8 sp´ecifie que la valeur de l’identifiant du dernier arc

(´egale au nombre d’arcs emprunt´es depuis vs) doit ˆetre ´egale `a la somme des flots dans G. Grˆace

`

a l’incr´ement des valeurs introduite dans l’´equation 5.6, cette condition permet d’exclure toute instanciation qui pr´esenterait au moins une boucle isol´ee du chemin (conditions de pr´ec´edence viol´ees). Indirectement, elle implique ´egalement que chaque identifiant ait une valeur unique.

Enfin, il est possible de r´eintroduire des temps de passage cumul´es aux nœuds en les associant aux arcs, de mani`ere similaire aux identifiants. Ces temps, d´enot´es tf, sont calcul´es tel que :

∀e ∈ E, tf(e) =



tf(ep) + t(e) o`u ep = {e′∈ E | id(e) = id(e′) + 1} si φ(e) = 1

0 sinon. (5.9)

5.1.3 R´esultats et discussion

Pour comparer les performances de notre solveur de contraintes avec mod`ele multiflots, nous avons repris le benchmark mis en place dans le cadre du probl`eme de gestion de contraintes d’´energie (voir section 4.1). Les r´esultats de cette nouvelle approche sont directement compar´es

Benchmark Instance Mod`ele uniflot Mod`ele multiflots T1 (ms) T2 (ms) T1 (ms) T2(ms) Benchmark 1 mission 1 1 0 (189) 218 0 (189) 4009 mission 1 2 16 (155) 125 0 (155) 983 mission 1 3 15 (306) 546 0 (306) 166969 mission 1 4 0 (224) 374 0 (224) 68110 mission 1 5 0 (333) 717 0 (333) 392233 mission 1 6 0 (363) 328 0 (355) 155751 Benchmark 2 mission 2 1 47 (372) 437 0 (372) 10249 mission 2 2 16 (384) 359 0 (384) 1451 mission 2 3 31 (401) 1685 0 (401) 9017 mission 2 4 0 (502) 1997 0 (502) 29374 mission 2 5 496738 (678) – 0 (539) 23931 mission 2 6 0 (787) – 0 (787) – Benchmark 3 mission 3 1 47 (812) 749 0 (812) 6239 mission 3 2 0 (665) 561 0 (665) 3338 mission 3 3 2060 (2276) – 0 (2276) – mission 3 4 187 (1798) – 0 (1798) – mission 3 5 496973 (2653) – 0 (1658) – mission 3 6 497300 (1568) – 0 (1441) 161664

Table 5.1 – R´esultats comparatifs du solveur de contraintes avec mod`ele uniflot et multiflots. L’approche de r´esolution partielle utilis´ee est LARAC-ACO-M. Les cases T1

et T2 pr´esentent respectivement les temps n´ecessaires au solveur de contraintes pour

trouver la solution optimale et pour obtenir la preuve d’optimalit´e (fin de la recherche). Les valeurs indiqu´ees entre parenth`ese dans les cases T1 sont les valeurs des meilleures

solutions trouv´ees. Les cases pr´esentant une police en caract`eres gras indique les cas o`u la recherche a ´echou´e `a trouver la solution optimale. Le d´elai maximum pour la recherche a ´et´e fix´e `a 500 secondes.

aux performances obtenues pr´ec´edemment, avec mod`ele uniflot. Le tableau 5.1 r´esume les temps de calcul obtenus pour chaque approche sur les instances de probl`emes propos´ees.

Les r´esultats obtenus montrent bien, maintenant que les mod`eles de chemin sont identiques entre solveur partiel et solveur global, que le guidage fonctionne parfaitement puisque l’approche multiflots trouve toutes les solutions optimales en une fraction de temps seulement. Les instances 2 5, 3 5 et 3 6 qui posaient pr´ealablement probl`eme sont d´esormais r´esolues sans difficult´e. On observe ´egalement sur l’instance 1 6 que le coˆut de la solution optimale est am´elior´e. En revanche, autoriser le passage multiple d’un v´ehicule `a un nœud d´emultiplie le nombre des solutions possibles. Ces solutions ne sont plus ´ecart´ees par le mod`ele logique et doivent donc ˆetre ´evalu´ees. Il en r´esulte des temps de calcul importants, comme cela peut ˆetre observ´e dans le tableau. Le cas le plus flagrant est celui de la mission 1 5, dont la preuve d’optimalit´e est obtenue apr`es quasiment 400 secondes contre moins d’une seconde auparavant.

Aussi, bien que le couplage avec la r´esolution partielle soit optimal, cette mod´elisation montre rapidement ses limites. Les performances obtenues sont tr`es satisfaisantes pour un cadre d’utili- sation anytime, dans lequel une solution peut ˆetre n´ecessaire `a tout moment. En revanche, dans un cadre d’utilisation o`u la garantie d’optimalit´e est requise dans un temps r´eduit, le mod`ele multiflots pr´esent´e n’est pas celui `a privil´egier.

Figure 5.2 – Illustration de la solution au probl`eme de planification robuste de l’ins- tance Vm= {3} du sc´enario 1 de l’exp´erimentation sur les contraintes de communications

radio, pour le couple (vs, vg) = (18, 12) (contraintes de capacit´e non consid´er´ees).