• Aucun résultat trouvé

CHAPITRE 6 LA COORDINATION DES AGENTS DE LEOPAR++

6.1 Langage d’actions A c k ext

6.1.1 Traduction de A c

Dans cette section nous exposons la traduction du langage d’actions Ac

kext en langage

ASP. Comme le langage d’actions est uniquement un langage de repr´esentation et ne permet pas de raisonner sur les actions, il est n´ecessaire de le traduire en un autre langage, en l’occur- rence ASP. La phase de traduction se r´ealise automatiquement `a l’aide des r`egles suivantes :

Traduction de obviate(a, F, L)

L’axiome obviate rend une action non ex´ecutable, et ce, tant que l’ensemble des fluents F  tf1, . . . , fmu sont vrais et que les fluents L  tl1, . . . , lnu sont des objectifs finaux. Le

pr´edicat obviate joue un rˆole important lors de la d´etermination de l’action ex´ecutable. Il se retrouve dans l’axiome executable, d´efini plus loin, et indique si une action peut s’ex´ecuter ou pas :

obviatepa, T q Ð holdspf1, Tq, ..., holdspfm, Tq, finallypl1q, ..., finallyplnq, timepT q.

Traduction de subGoal(a, F, L)

Le concept de sous-objectif est tr`es puissant. Il permet de d´elimiter l’espace de recherche de l’action `a ex´ecuter si L  tl1, . . . , lnu sont des objectifs finaux et F  tf1, . . . , fmu sont

vrais. Noter que d`es l’instant o`u un sous-objectif est v´erifi´e, il interdit, par l’introduction du pr´edicat occSubgoal, l’ex´ecution d’une autre action dans le mode s´equentiel. Comme nous le verrons plus loin, le pr´edicat occSubgoal est test´e dans la r`egle de causes.

Si F est un ensemble vide :

2toccurspa, T q, occSubgoalpT qu2 Ð finallypl1q, ..., finallyplnq, timepT q.

sinon

2toccurspa, T q, occSubgoalpT qu2 Ð holdspf1, Tq, ..., holdspfm, Tq,

Traduction de executable(a,F)

Nous traduisons l’axiome ex´ecutable comme suit en ASP :

executablepa, T q Ð holdspf1, Tq, ..., holdspfm, Tq, not obviatepa, T q, timepT q.

Traduction de uncertain(a,{Fi})

Pour des ensemblestF1, ..., Fiu avec tf11, ..., f1ju  F1 et F1 „ F , nous traduisons l’ind´eter-

minisme comme suit :

1tF1pT q, ..., FipT qu1 Ð occurspa, T q, timepT q.

holdspf11, Tq..., holdspf1j, Tq Ð F1pT q, timepT q.

...

holdspfi1, Tq, ..., holdspfij, Tq Ð FipT q, timepT q.

Traduction de control(l,F)

L’axiome control permet de v´erifier le plan d’action et de d´etecter des mod`eles d’ex´ecution. Le plan d’ex´ecution est d´ependant des actions dont l’effet est incertain et il est n´ecessaire d’´eviter des ex´ecutions ind´esirables comme des boucles infinies. Dans l’axiome ci-dessous, le pr´edicat releaseGoal permet d’annuler la poursuite d’un objectif l.

releaseGoalplq Ð holdspf1, Tq, ..., holdspfm, Tq, timepT q.

Traduction de causes(a,l,F)

Cet axiome v´erifie les conditions d’ex´ecution et les effets d’une action. Notez que d`es qu’une action est interdite d’ex´ecution durant l’instant T , le pr´edicat obviate est vrai. Le pr´edicat holds permet de d´efinir les effets de l’action a ex´ecut´ee occurspa, T q. Le pr´edicat causes per- met de pr´edire l’effet de l’execution d’une action au temps T . Nous traduisons la cause des actions comme suit :

executablepa, T q Ð holdspf1, Tq, ..., holdspfm, Tq, not obviatepa, T q,

holdspl, T 1q Ð occurspa, T q, actionpaq, timepT q.

causespa, l, T q Ð executablepa, T q, actionpaq, timepT q.

Traduction de prefer(a,F)

La traduction de l’axiome stipule que l’action s’ex´ecute en pr´ef´erence d`es que les fluents F sont v´erifi´es. Dans le cas o`u F  H, l’action est ex´ecut´ee en priorit´e en tout temps :

si F  H

2toccurspa, T q, existsP referedActionpa, T qu2 Ð executablepa, T q, causespa, cq, not holdspc, T q, holdspf1, T q, ..., holdspfm, T q, timepT q.

sinon si F  H

2toccurspa, T q, existsP referedActionpa, T qu2 Ð executablepa, T q, causespa, cq, not holdspc, T q, timepT q.

Il est `a noter que le pr´edicat existsPreferedAction se retrouve dans l’expression occurs dans le cas de l’ex´ecution s´equentielle.

Traduction des conditions d’ex´ecution

Il y existe deux modes d’ex´ecution : s´equentiel et parall`ele. Le mode s´equentiel, par d´efaut, stipule qu’`a chaque ´etapes de temps T , une seule et unique action peut s’ex´ecuter. Pour ce faire, nous introduisons dans la traduction ASP les contraintes suivantes :

1tpossibleActionpA, T q : actionpAqu1 Ð timepT q.

occurspA, T q Ð executablepA, T q, possibleActionpA, T q, actionpAq,

not existsP ref eredActionpA, T q, not occSubgoalpT q, not goalpT q, timepT q.

La fonction tpossibleActionpA, T q : actionpAqu Ð timepT q permet d’´enum´erer toutes les actions possibles pour un temps T donn´e. Par exemple dans le cas o`u T  r1, 2s, A P ta, bu alors la fonction retourne les deux ensembles r´eponses suivants :

S1  tpossibleActionpa, 1qu

S2  tpossibleActionpb, 1qu

S3  tpossibleActionpb, 1q, possibleActionpa, 1qu

...

S16  tpossibleActionpb, 2q, possibleActionpa, 2q, possibleActionpb, 1q, possibleActionpa, 1qu

Maintenant, la fonction 1tpossibleActionpA, T q : actionpAqu1 Ð timepT q avec les valeurs num´eriques entourant la fonction pr´ec´edente mint...umax sont une extension de la logique non monotone et indiquent au programme P que le nombre d’axiomes nbrAxiomes retourn´es `

a vrais respectent la contraintes min ¤ nbrAxiomes ¤ max. Cette contrainte indique qu’une seule action est s´electionn´ee durant chaque ´etape de temps, assurant ainsi la s´equentialit´e des actions `a ˆetre ex´ecut´ees. La fonction retourne les ensembles r´eponses suivants :

S1  tpossibleActionpa, 1q, possibleActionpa, 2qu

S2  tpossibleActionpb, 1q, possibleActionpb, 2qu

S3  tpossibleActionpb, 1q, possibleActionpa, 2qu

S4  tpossibleActionpb, 2q, possibleActionpa, 1qu

Le mode parall`ele parallel est une alternative au mode s´equentiel. Il permet que plusieurs actions s’ex´ecutent en parall`ele. Le planificateur ASP doit toutefois s’assurer qu’il n’y a pas un acc`es concurrent aux donn´ees en ´ecriture. Cette v´erification se fait `a l’aide du pr´edicat concurrentAcces. Les contraintes suivantes de parall´elisme viennent remplacer les contraintes pr´ec´edentes de s´equentialit´e :

occurspA, T q Ð actionpAq, timepT q, executablepA, T q, actionpAAq, concurrentAccespA, AAq, not occurspAA, T q, not goalpT q.

concurrentAccespA, AA, T q Ð actionpAq, actionpAAq, executablepA, T q, executablepAA, T q, causespA, C1, T q, causespAA, C1, T q, timepT q.

concurrentAccespA, AA, T q Ð actionpAq, actionpAAq, executablepA, T q, executablepAA, T q, causespA, C1, T q, causespAA, C1, T q, timepT q.

concurrentAccespA, AA, T q Ð concurrentAccespAA, A, T q, actionpAq, actionpAAq. Ð actionpAq, concurrentAccespA, AA, T q, actionpAAq, occurspA, T q, occurspAA, T q,

timepT q.

Lors de l’ex´ecution parall`ele, il est important d’empˆecher l’acc`es concurrents `a la mˆeme res- source. Pour ce faire, la fonction concurrentAcces identifie les paires d’actions qui ne doivent pas s’ex´ecuter en parall`ele. L’axiome concurrentAcces ´enum`ere les actions qui ont un effet sur le mˆeme fluent. Par exemple, les actions movepa, bq et movepa, tableq ont pour effet cons´ecutif onpa, bq et onpa, tableq. Ils font r´ef´erence au mˆeme effet2 et ils ne doivent pas s’ex´ecuter en

parall`ele. De mˆeme, il est interdit d’ex´ecuter des actions qui ont des effets oppos´es, comme par exemple onpa, bq et onpa, bq.

La r`egle suivante v´erifie qu’un fluent et son oppos´e ne peuvent coexister au mˆeme temps t. Ð holdspF, T q, holdsp F, T q, fluentpF q, timepT q.

Traduction de l’inertie

Nous traduisons les lois d’inerties (voir Lifschitz, 1999) comme suit :

holdspf, T 1q Ð timepT q, holdspf, T q, not holdsp f, T 1q. holdsp f, T 1q Ð timepT q, holdsp f, T q, not holdspf, T 1q.

Traduction des ´etats initiaux

Les ´etats initiaux respectent l’hypoth`ese du monde ferm´e (Closed World Assumption). Nous traduisons les ´etats initiaux comme suit :

holdspf, 0q Ð initiallypfq. holdsp f, 0q Ð not initiallypfq.

Traduction de l’objectif final

Afin de guider le processus de planifications vers l’objectif final, nous introduisons les r`egles suivantes. Elles int`egrent l’axiome releaseGoal, qui permet d’annuler la poursuite/concr´etisation

2. Dans le cas d’actions qui retournent un effet compos´e de plusieurs attributs, un traitement additionnel permet de d´etecter un acc`es concurrent.

d’un objectif :

f inallyGoalplq Ð finallyplq, not releaseGoalplq.

negGoalpT q Ð finallyGoalplq, not holdspc, T q, timepT q. goalpT q Ð timepT q, not negGoalpT q.

existP lanÐ goalpT q, timepT q. Ð not existP lan.

La contrainte d’int´egrit´e existP lan fait en sorte de garder les plans qui m`enent `a l’objectif final. Tous les plans qui ne m`enent pas `a l’objectif final sont ´elimin´es de l’espace de recherche.