• Aucun résultat trouvé

6.6 Les post-traitements

6.6.1 L’optimisation symbolique

A cause du caract`ere al´eatoire d’aSyMov, de l’estimation des heuristiques, de l’enrichissement des roadmaps qui peut ne pas trouver tous les chemins possibles, aSyMov n’est pas optimal, mˆeme si quand il fait une recherche en largeur il est proche de l’optimal.

Comme nous l’avons vu, les « ´etats symboliques » peuvent correspondre `a des « ´etats g´eom´etriques » diff´erents et par cons´equent il existe plusieurs ´etats dans aSyMov qui ont le mˆeme « ´etat symbolique ». Parfois cela est justifi´e car cela correspond `a des positions interm´ediaires fondamentales (figure 6.2), et parfois cela ne l’est pas.

Nous allons pouvoir optimiser le plan donn´e par aSyMov en prenant en compte la particularit´e de ces ´etats suivant les ´etapes :

1. Suppression des parties redondantes.

2. Transformation des positions sp´ecifiques non utilis´ees en position g´en´erales. 3. Suppression des parties redondantes.

4. Suppression des parties de d´eplacement inutile.

6.6.1.1 Suppression des parties redondantes :

Il se peut que dans la suite des ´etats qui m`enent `a la solution il existe deux « ´etats d’aSyMov » Ei = (Ei S, Ei A, {Ei G1, . . . , Ei Gki, . . . , Ei Gni}) et Ej = (Ej S, Ej A, {Ej G1, . . . , Ej Gkj, . . . , Ej Gnj}) (i<j) qui poss`edent `a la fois le mˆeme « ´etat symbolique » (Ei S = Ej S) et le mˆeme « ´etat g´eom´etrique » (Ei Gki =

Ej Gkj) utilis´e pour atteindre le but.

Ei et Ej peuvent ˆetre toutefois des ´etats diff´erents, ils peuvent avoir des « ´etats d’accessibilit´e » EA

diff´erents ou d’autres ´etats g´eom´etriques qui ne sont pas communs aux deux ´etats.

Toutefois dans ce cas, les deux ´etats ont un rˆole identique dans le plan trouv´e. C’est pour cela que l’on peut retirer du plan S l’ensemble des couples (Ei S, Ei Gki), (Ei+1 S, Ei+1 Gki+1), . . ., (Ej−1 S,

Ej−1 Gkj−1) comme le montre la figure 6.9.

6.6.1.2 Transformation des « positions sp´ecifiques » non utilis´ees en « positions g´en´erales » : Une position symbolique P est dite « sp´ecifique » si elle est utilis´ee dans des faits du type (connection P ?p) ou (has-purpose P ?pos). Par exemple : P_R_TI_INIT avec (has-purpose P INIT), P_R_TI_R-O_TA

120 Chapitre 6. L’algorithmique d’aSyMov.

Figure 6.9:Exemple de suppression de partie de plan inutile par ´egalit´e des ´etats symbolique et g´eom´etrique.

avec (connection P_R_TI_R-O_TA P_R-O_TA) sont des « positions sp´ecifiques ».

Ces « positions sp´ecifiques » vont repr´esenter qu’une partie des noeuds des roadmaps et vont servir `a accomplir des actions qui leur sont propres. Celles qui sont rattach´ees `a des faits du type (connection P ?P) seront utilis´ees pour faire des changement de roadmaps. D’un autre cot´e, celles rattach´ees `a des faits du type (has-purpose P ?pos) seront utilis´ees comme pr´econdition d’actions incluant des contraintes de placement.

Une position symbolique P est dite « g´en´erale » si au contraire elle n’apparaˆıt dans aucun fait du type (connection P ?p)8 ou (has-purpose P ?pos). Par exemple : P_R_TI ou P_R-O_TA.

D´efinition 9 Si P1 est une « position sp´ecifique » alors P2 est sa « position g´en´erale associ´ee » si elle est une « position g´en´erale » et qu’elle repr´esente le mˆeme robot et le mˆeme type de roadmap, i.e. elles ont les mˆemes param`etres dans les faits belongs-to.

Par exemple, P_R_TI_INIT est une position sp´ecifique et P_R_TI est sa position g´en´erale associ´ee `a cause des faits (belongs-to P_R_TI_INIT R TI) et (belongs-to P_R_TI_INIT R TI) C’est-`a-dire qu’il existe deux pr´edicats (belongs-to P1 R TYPE) et (belongs-to P2 R TYPE).

Quand la fonction d’une « position sp´ecifique » n’est pas utilis´ee, alors il est possible de la remplacer par une « position g´en´erale associ´ee ». Ce qui est int´eressant car une position g´en´erale est moins contrainte qu’une position sp´ecifique.

Cela va permettre d’avoir des ´etats symboliques identiques, et peut-ˆetre d’appliquer de nouveau l’algorithme de « suppression des parties redondantes ».

8

Il faut noter qu’une position g´en´erale peut apparaˆıtre dans des faits du type (connection ?p ?P), c’est `a dire ˆetre la destination du lien. Il faut faire attention car ce pr´edicat est orient´e.

6.6. Les post-traitements. 121

Soit P une « position sp´ecifique » avec (belongs-to P R TYPE). Soit Pg son instance g´eom´etrique sur une partie du plan. Soient Ei, . . ., Ej les ´etats d’aSyMov qui poss`edent cette position symbolique

appliqu´ee Pg. Soit Ai, . . ., Aj−1 les actions appliqu´ees `a ces ´etats (Ei+1= Ai(Ei)).

La « position symbolique appliqu´ee sp´ecifique » est utilis´ee pour sa fonction si une de ces conditions est v´erifi´ee :

ˆ Pg est une position but.

ˆ Une des actions Ai, . . ., Aj−1 et mˆeme Aj si elle existe, utilise dans ses pr´econditions un fait du

type (connection P ?p) ou (has-purpose P ?pos).

Typiquement, cela correspond `a un changement de roadmaps (figure 6.10.a) ou `a une action qui doit se faire en un lieu pr´ecis pour pouvoir communiquer avec une base fixe (figure 6.10.b).

La figure 6.10.c montre un cas o`u il est possible de remplacer dans l’´etat symbolique une position sp´ecifique par une position g´en´erale sans remettre en cause l’int´egrit´e du plan. Par contre, `a ce niveau nous ne changeons pas l’´etat g´eom´etrique.

Figure 6.10: Exemple de positions sp´ecifiques qui sont utilis´ees en tant que telles (a, b) et d’une position sp´ecifique pouvant ˆetre remplac´ee par une position g´en´erale associ´ee (c).

122 Chapitre 6. L’algorithmique d’aSyMov.

6.6.1.3 Suppression des parties de d´eplacement inutile.

Cette op´eration a pour but de modifier les ´etats g´eom´etriques pour pouvoir avoir des ´etats qui soient `a la fois identiques au niveau symbolique et g´eom´etrique et ainsi enlever de nouveau des parties de plan d’une mani`ere similaire `a l’algorithme de « suppression des parties redondantes ». Par contre, cette op´eration va devoir v´erifier s’il est toujours possible de trouver des trajectoires sans collisions et cela mˆeme en modifiant les ´etats g´eom´etriques. C’est l’op´eration d’optimisation au niveau du plan qui est la plus coˆuteuse et est donc appliqu´ee `a un plan d´ej`a en partie optimis´e.

Pour cette op´eration nous recherchons donc des ´etats symboliques identiques mais avec des ´etats g´eom´etriques diff´erents. Notons que grˆace `a l’op´eration 2 (Transformation des « positions sp´ecifiques » non utilis´ees en « positions g´en´erales ») cela arrive assez souvent.

Soient (Ei S, Ei Gki) et (Ej S, Ej Gkj) avec i < j et tels que les ´etats symboliques de Ei S et Ej S soient

identiques. Nous allons alors essayer de remplacer Ej Gkj par Ej Gki. Pour cela aSyMov va appliquer

toutes les actions `a partir de Ej jusqu’`a la fin du plan en utilisant l’´etat g´eom´etrique Ei Gki. ASyMov

va ainsi recr´eer une nouvelle suite d’´etats g´eom´etriques Ej Gk0

j

, . . ., En Gk0n tel que Ej Gk0

j

= Ei Gki. S’il

n’arrive pas `a recr´eer cette suite d’´etats g´eom´etriques c’est qu’une partie des op´erations qui ont permis de mener aSyMov `a l’´etat g´eom´etrique Ej Gkj est indispensables `a la r´ealisation du plan (figure 6.11).

Figure 6.11: Exemple d’un mˆeme plan avec deux ´etats g´eom´etriques initiaux diff´erents. Dans un cas l’´etat g´eom´etrique peut ˆetre report´e (b), il y a un gain d’une action, nous avons de nouveaux ´etats g´eom´etriques. Dans l’autre cas (c) la position interm´ediaire est indispensable. Seul le noeud 3 du robot R1 n’est ni une position initiale, ni un but, c’est le seul qui peut ˆetre modifi´e.

6.6. Les post-traitements. 123

Il est encore parfois possible d’optimiser le plan si nous nous pla¸cons dans l’espace des plans et pas dans l’espace d’´etat. En effet, il suffit qu’un pr´edicat de l’´etat soit diff´erent pour que l’optimisation ne soit pas possible. Par exemple, si le contenu d’un r´eservoir d’un robot R1 varie avec l’action Ai, les

´etats Ei+1, . . ., Enqui suivent cette variations seront diff´erents au niveau symbolique des ´etats E0, . . .,

Ei. Ainsi les mouvements des autres robots ne pourront ˆetre supprim´es entre des ´etats Ek(k ≤ i) et El

(l > i). L’espace d’´etat ne permet pas de faire apparaˆıtre l’ind´ependance des robots.

Si nous voulons pousser plus loin encore l’optimisation des plans il faut alors travailler dans l’espace des plans et avoir une repr´esentation partiellement ordonn´ee des actions. Cela peut ˆetre fait apr`es l’´etape de parall´elisation qui va suivre.