• Aucun résultat trouvé

2.8 Contrˆ ole de la simulation : politique d’ordonnancement

2.8.2 Le contrˆ ole et le param´ etrage de la simulation

L’organisation des filtres d’activation, des filtres de communication et des filtres per- mettant la r´ealisation des diff´erentes tˆaches de l’environnement est essentielle. Pour ce faire, deux niveaux de contrˆole de simulation sont identifi´es : (1) le contrˆole du proces- sus de simulation en utilisant l’automate d’ex´ecution ; (2) le contrˆole de l’activation des agents en utilisant la priorit´e associ´ee aux filtres. L’ensemble F correspond `a l’ensemble des filtres. Cependant, comme d´ecrit pr´ec´edemment, diff´erents types de filtres sont d´epo- s´es dans l’environnement pour construire une simulation. En effet, une partie des filtres est d´edi´ee aux interactions et une autre `a la simulation. Parmi les filtres de coordina- tion, nous distinguons les filtres sp´ecifiques aux activations des agents et ceux d´edi´es `a la communication. La distinction entre les filtres de coordination se fait sur les actions li´ees au d´eclenchement d’un filtre et non sur la syntaxe et l’´evaluation des contraintes des filtres (voir section 2.4.2) car l’avantage de notre mod`ele est de proposer une formalisation commune aux filtres d’activation et de communication. L’inconv´enient est de devoir distin- guer les diff´erents filtres dans la phase d’´evaluation car sans contrˆole ou plus pr´ecis´ement d’ordonnancement une simulation ne peut ˆetre ex´ecut´ee en raison des conflits d’´evaluation entre les diff´erents filtres d’activations et entre les filtres d’activation et de communication. Le concepteur doit ordonnancer l’ensemble des filtres et d´efinir quand chaque filtre sera ´

evalu´e. De notre point de vue, nous avons r´epertori´e deux niveaux d’ordonnancement : l’ordonnancement global qui contrˆole l’ex´ecution de la simulation, et l’ordonnancement local qui contrˆole le comportement que l’agent doit ex´ecuter.

Au niveau de l’ordonnancement global, le probl`eme est que chaque agent doit ˆetre activ´e dans le mˆeme cycle de la simulation. Nous employons un automate d’´etats, appel´e automate d’ex´ecution, pour contrˆoler l’ex´ecution de la simulation. Un ´etat de l’automate correspond `a un groupe de filtres qui peuvent ˆetre d´eclench´es pendant le mˆeme cycle de temps de la simulation. Par d´efaut, l’automate d’ex´ecution comporte un ´etat qui est

2.8. Contrˆole de la simulation : politique d’ordonnancement

en charge de la gestion technique de la simulation. Le groupe de filtres relatifs `a cet ´etat contient au moins deux filtres qui sont fdef ault qui active un agent par d´efaut en comparant

le temps interne de l’agent au temps de la simulation, et ftempsqui permet de faire avancer

le temps de la simulation.

Une simulation qui contiendrait uniquement un ´etat de gestion technique avec les deux filtres cit´es appartient `a la famille des simulations `a temps discret utilisant la technique d’ordonnancement classique o`u l’agent est activ´e `a chaque pas de temps et pour chacune des activations il r´ecup`ere son contexte local `a l’aide d’une requˆete sur l’environnement. Effectivement, le seul lien entre le simulateur et l’agent est le filtre fdef ault qui ne fournit

que le temps de la simulation.

Les transitions entre les ´etats de l’automate d’ex´ecution sont d´eclench´ees par la modi- fication de la valeur d’une variable state. La valeur de cette variable est g´er´ee par un filtre

fstate qui est con¸cu en fonction des besoins du concepteur. Par d´efaut, fstate est d´eclench´e

lorsque tous les filtres de l’´etat concern´e sont ´evalu´es.

Au niveau de l’ordonnancement local, le probl`eme est que plusieurs filtres d’activation pourraient ˆetre d´eclench´es (1) dans le mˆeme cycle de temps pour un agent (2) dans le mˆeme ´etat de l’automate d’ex´ecution de la simulation pour le mˆeme agent. Or, chaque filtre r´eifie le lien entre un contexte et un comportement sp´ecifique de l’agent et un agent ne peut d´eclencher au plus qu’un comportement dans un cycle de temps. Pour un mˆeme ´

etat de l’automate d’ex´ecution, trois probl`emes peuvent ˆetre identifi´es :

1. le d´eclenchement de plusieurs filtres d’activation pour un mˆeme agent dans le mˆeme cycle de simulation (gestion des contextes),

2. un mˆeme agent peut ˆetre activ´e plusieurs fois dans un mˆeme cycle de simulation et donc agir plus d’un fois dans un mˆeme cycle de temps (gestion de l’activation), 3. le fait qu’un agent ne peut ˆetre “rattach´e” `a aucun filtre, car l’agent deviendrait isol´e

du processus de simulation.

Pour ´eviter ces conflits, l’activit´e d’un agent est contrˆol´e par un niveau de priorit´e donn´e `

a chaque filtre, ce qui revient `a hi´erarchiser les comportements de l’agent en sp´ecifiant des priorit´es d’ex´ecution. Ainsi, priorite est une application qui donne l’importance d’un filtre.

D´efinition 13 (Priorit´e) L’application priorite s’´ecrit : priorite :F → N

Le fonctionnement des priorit´es est la suivante : le filtre avec la priorit´e la plus ´elev´ee est ´

evalu´e avant un filtre avec une priorit´e plus basse dans le mˆeme module de filtres. Pour un agent, le d´eclenchement d’un filtre d’activation avec la plus haute priorit´e met `a jour syst´e- matiquement le temps interne de l’agent ce qui implique pour l’agent la d´esactivation des autres filtres qui pouvaient ˆetre potentiellement d´eclench´es car la contrainte sur le temps (Condt de la fonction Valid) n’est plus v´erifi´ee. Si un agent n’a aucun filtre d’activation

qui a ´et´e d´eclench´e pendant le cycle courant de la simulation et que la contrainte Condt

est v´erifi´ee, alors le filtre fdef autest utilis´e qui assure une activation par d´efaut des agents.

L’activation fdef aut permet de me mettre `a jour le temps interne de l’agent. Lorsque tous

les agents de la simulation ont un temps interne sup´erieur ou ´egal au temps de l’environ- nement, le cycle courant de simulation est termin´e et le temps global est incr´ement´e de un.

Nous avons deux niveaux de contrˆole de simulation : (1) le contrˆole du processus de simulation en utilisant l’automate d’ex´ecution ; (2) le contrˆole de l’activation des agents en utilisant la priorit´e associ´ee aux filtres. Ces deux niveaux de contrˆole d´efinissent un nouveau mode de contrˆole du comportement de la simulation. La figure 2.13 illustre la relation entre l’automate de comportement associ´e aux agents et l’automate d’ex´ecution de la simulation de notre exemple (section 2.3).

Chaque transition de l’automate des comportements d’un agent repr´esente un contexte d’activation. `A partir de ce contexte d’activation, les filtres sont construits et d´epos´es dans l’environnement si l’agent souhaite activer le comportement qui est associ´e au contexte concern´e. Sur la figure 2.13, l’automate des comportements de l’agent regroupe les infor- mations sur les comportements d’une famille d’agents, ses contextes d’activation et les filtres d’activation correspondant. L’initialisation du processus de simulation consiste `a ajouter les filtres logiques dans les diff´erents ´etats de l’automate d’ex´ecution ´elabor´e par le concepteur. comme nous l’avons repr´esent´e sur la figure 2.13 au niveau du processus de simulation, dans chaque ´etat de l’automate d’ex´ecution, les filtres ont des priorit´es pour ´

eviter les conflits entre les diff´erents filtres.

Pour notre exemple simplifi´e de simulation de robots (section 2.3), l’automate d’ex´ecu- tion comporte trois ´etats. L’´etat d’activation est compos´e de trois filtres f1, f2a/2b12, f3 qui

correspondent respectivement au contexte de d´ecouverte de caisse, proximit´e `a la caisse et de d´eplacement de caisse, et du filtre de changement d’´etat fstate. L’´etat de communication

12pour le contexte g´en´eral proximit´e `a la caisse, nous avons identifi´e 2 types de strat´egies qui se traduit

par 2 filtres : (1) la strat´egie opportuniste qui est le filtre f2a, et (2) la strat´egie altruiste qui est le filtre

2.8. Contrˆole de la simulation : politique d’ordonnancement déplacement aléatoire coalition déplacement dans une direction attente contact Request Accept proximité  au paquet découverte  de paquet déplacement de paquet Environment Request Accept recherche  de paquet faccept f2 a f2 b proximité  au paquet fdefaut f1 f3 frequest 1,2 état  activation état « technique » état communication (etat (valeur, 2)) (etat (valeur, 3)) (etat (valeur, 1)) priorités des filtres Automate de comportements d’un robot Automate d’exécution état  activation état communication état « technique » (etat (valeur, 1)) (etat (valeur, 1)) (etat (valeur, 2)) (etat (valeur, 3)) (etat (valeur, 2)) (etat (valeur, 3)) fstate 1 fstate 2 fstate 3 Processus de simulation fdefaut f temps f3 f2 a, b f1 faccept frequest 1,2

Fig. 2.13 – Automate de comportements et processus de simulation

g`ere les filtres frequest1/2 et facceptet le filtre fstate. Le filtre frequest1/2 d´efinit les conditions

de r´eception d’un message pour un agent, d’un autre agent qui souhaite cr´eer une coalition pour d´eplacer une caisse. La v´erification de ce contexte d’activation d´eclenche l’action de se diriger vers la caisse pour l’agent r´ecepteur. Nous avons d´efini deux politiques de r´ecep- tion d’une requˆete dans la section 2.3 qui se traduit par deux filtres diff´erents. Le dernier ´

etat de l’automate d’ex´ecution est sp´ecifique `a la simulation et il contient trois filtres : le filtre d’activation par d´efaut d’un agent (fdef aut) qui permet d’activer les agents dans le

cycle de simulation s’ils n’ont pu ˆetre activ´e dans les ´etats pr´ec´edents de l’automate, le filtre de suppression de message (fdeleteM essage) et le filtre qui g`ere le temps de la simulation

(ftemps). Le filtre d’activation par d´efaut (fdef aut) correspond au contexte de recherche de

caisse. Comme les autres ´etats, il dispose ´egalement du filtre de changement d’´etat fstate

qui permet de r´eit´erer le cycle de simulation.

Le passage d’un ´etat `a un autre est r´ealis´e lorsque tous les filtres de l’´etat ont ´et´e ´

evalu´es. Le changement d’un ´etat `a un autre se fait par l’interm´ediaire d’une variable state qui est modifi´ee par le filtre fstate qui est le filtre de priorit´e la plus basse pour

les filtres contenus dans l’´etat 1 (´etat d’activation) sont d´esactiv´es et les filtres de l’´etat 2 (´etat de communication) deviennent ´evaluables.