• Aucun résultat trouvé

Politique d’ordonnancement des simulations ` a temps discret d’agents

2.2 Probl´ ematique motivant notre proposition

2.2.1 Politique d’ordonnancement des simulations ` a temps discret d’agents

cret d’agents situ´es

Dans le cas des simulations `a temps discret d’agents situ´es que nous avons pr´esent´es dans les sections 1.4.2 et 1.5 du chapitre 1, la notion de discr´etisation implique que le temps de la simulation est discr´etis´e ainsi que les comportements des agents de la simulation. De ce fait, la contrainte principale de ces simulations est que les agents ne peuvent agir qu’une fois par cycle de temps. Dans la section 1.3.2 du chapitre pr´ec´edent, nous avons pr´esent´e deux familles d’agents qui sont les agents r´eactifs et les agents cognitifs. Une propri´et´e suppl´ementaire peut ˆetre ajout´ee `a chacune de ces familles qui est le caract`ere situ´e d’un agent qui requiert la pr´esence d’un environnement spatial dans lequel les agents vont ´

evoluer. Dans ces simulations, la phase d’activation est diff´erenci´ee de la phase d’action, sachant que chaque activation est accompagn´ee d’au plus une action de l’agent (figure 2.1). Un cycle de simulation est complet `a partir du moment o`u tous les agents ont ´et´e activ´es.

Ainsi, deux phases rythment l’activit´e d’un tel simulateur : la phase d’activation o`u une entit´e sup´erieure active les agents s´equentiellement, et la phase d’action pendant laquelle pour chaque activation, les agents respectent un processus it´eratif de s´election d’actions qui est la perception du contexte, le processus de d´ecision qui consiste `a choi- sir le bon comportement `a adopter et l’ex´ecution de l’action avec les cons´equences sur l’environnement. La phase d’activation `a un instant t consiste `a d´eclencher l’agent pour qu’il participe au cycle courant de la simulation. L’ordonnancement des activations est assur´e par une “entit´e sup´erieure” qui est alors l’ordonnanceur global de la simulation (O sur la figure 2.1). La phase d’action, `a ce mˆeme instant t, correspond au processus durant lequel un agent r´ealise le traitement de son contexte local pour d´eterminer l’action la plus pertinente `a ex´ecuter, et ex´ecute cette action. Un agent est r´eactif, voire pro-actif `a son contexte, il adapte son comportement en fonction des informations extraites de ce der- nier (C sur la figure 2.1). Le traitement du contexte consiste `a r´ecup´erer les informations locales `a l’agent en effectuant, par exemple, une requˆete sur l’environnement, puis `a analy- ser les informations extraites pour en d´eduire celles qui sont pertinentes pour d´eterminer sa r´eaction. Ce processus de perception peut ˆetre assur´e par un “module” d´edi´e `a cette

tˆache que nous nommerons classiquement module de perception. Notre objectif n’est pas d’´etudier le processus de perception des agents.

D´efinition 1 (Contexte local `a un agent) Le contexte local `a un agent est d´efini comme l’ensemble des informations que l’agent peut r´ecup´erer `a partir de l’environnement par l’interm´ediaire de son module de perception. L’´etat interne de l’agent rentre en compte dans son contexte.

Le comportement `a adopter par l’agent d´epend des informations qu’il a r´ecup´er´ees concer- nant l’espace dans lequel il ´evolue, mais ´egalement des autres agents et de lui-mˆeme. `A partir des informations extraites, l’agent d´etermine l’action `a ex´ecuter dans le cycle de simulation ce qui correspond au processus de d´ecision.

Dans la figure 2.1, l’ordonnanceur global active l’agent A1 puis l’agent A2 (phase

O). Ensuite `a chaque activation, l’agent doit traiter leur contexte local (r´ecup´erer et analyser son contexte), d´eterminer l’action `a r´ealiser et l’ex´ecuter (phase C). Avec la politique d’ordonnancement globale, chaque agent doit ˆetre activ´e `a chaque cycle de temps et pendant un cycle courant de simulation il ne doit ex´ecuter qu’une seule action qui est alors appel´ee action ´el´ementaire.

Environnement tempsglobal Agent A2 active contexte contexte action Ordonnanceur A2 A1 3/ exécution du comportement 2/ choix d’un comportement 1/ traitement du contexte

3/ exécution du comportement 2/ choix d’un comportement 1/ traitement du contexte

Agent A1

O

C C

2.2. Probl´ematique motivant notre proposition

Par exemple avec la plate-forme Cormas (section 1.5), pour chaque agent, l’ordonnan- ceur active la mˆeme m´ethode que le concepteur du syst`eme multi-agents doit au pr´ealable sp´ecialiser en fonction des comportements des agents. Avec l’outil de simulation Turtle- Kit de Madkit (section 1.5) largement inspir´e des plates-formes multi-agents fond´ees sur Logo telles que le syst`eme StarLogo (http://education.mit.edu/starlogo/) ou Net- Logo, un agent dispose d’un automate qui est ex´ecut´e par l’agent apr`es avoir ´et´e activ´e par l’ordonnanceur. Chaque ´etat de l’automate correspond `a une action ´el´ementaire et une action ´el´ementaire est relative `a un comportement. Dans ce cas, une action est ´equi- valente `a un comportement. Dans TurtleKit [Michel, 2002], l’automate est mis en oeuvre `a l’aide d’appel de m´ethodes o`u chaque m´ethode repr´esente un comportement. La m´ethode renvoie un nom qui correspond au nom de la prochaine m´ethode `a appeler lorsque l’agent sera activ´e. Ainsi, le changement d’´etat de l’agent au niveau de ses comportements est exprim´e `a l’aide du nom renvoy´e par une m´ethode associ´ee `a un comportement.

Dans la suite, le terme traitement du contexte fait r´ef´erence au processus qui consiste `

a r´ecup´erer l’ensemble des informations r´eparties dans l’environnement et accessibles `a l’agent, puis `a analyser ces informations. Lors de la conception de l’agent, il faut prendre en compte le processus li´e au traitement du contexte pour d´eterminer quel comportement l’agent doit adopter. Le fait de devoir mod´eliser le traitement du contexte `a l’int´erieur de l’agent et le choix de l’action `a ex´ecuter en fonction des informations r´ecup´er´ees, complexi- fie la mod´elisation de l’agent et `a fortiori la mod´elisation de la simulation. Ici, le terme agent est utilis´e pour une famille d’agents o`u le concepteur d´efinira pour cette famille l’ensemble des comportements, le processus de perception du contexte et le traitement de ce contexte. Ensuite, lors de l’initialisation du simulateur, l’instanciation de chaque agent associ´e `a cette famille rendra cet individu “unique”. L’un des points faibles de cette approche est l’absence de distinction entre le traitement du contexte et la mod´elisation des comportements et donc plus g´en´eralement entre le proc´edurale relatif `a l’ex´ecution dans le simulateur et le d´eclaratif relatif `a la mod´elisation propre des agents.

Une cons´equence directe de cette approche de la simulation est que le concepteur n’a le choix qu’entre deux moyens pour modifier le comportement des agents dans une simulation. Le premier est de modifier l’ordonnanceur global de la simulation et donc la mani`ere d’activer les agents. Par exemple dans Cormas, l’interface “prepare and schedule” est utilis´ee pour donner les param`etres de l’ordonnanceur. La seconde consiste `a modifier le comportement des agents, et plus pr´ecis´ement leur r´eaction au contexte local. Cette m´ethode implique souvent de modifier en partie la programmation de l’agent. Une nouvelle fois, nous constatons que la modification de la simulation n´ecessite forc´ement l’intervention du concepteur au niveau de la programmation du syst`eme multi-agents.

De nombreuses simulations sont fond´ees sur le principe `a temps discret d’agents situ´es car leur mise en oeuvre est relativement facile `a partir du moment o`u les biais d’activa- tion sont accept´es (section 1.4.2). Cependant, le processus d’activation est critiquable `a deux niveaux. Premi`erement, un agent ne peut pas ˆetre inactif. En effet, chaque agent participe syst´ematiquement au cycle courant de la simulation car il est activ´e et il r´ecu- p`ere son contexte local avant de d´ecider s’il doit ex´ecuter une action. Par exemple dans le cas de la simulation de robots (section 2.3), un robot qui est `a proximit´e d’une caisse en attente de l’arriv´ee d’un autre robot pour d´eplacer la caisse n’a pas besoin d’ˆetre ac- tiv´e par l’ordonnanceur tant que l’agent qui lui permettra de d´eplacer la caisse n’est pas arriv´e. Le fait d’activer chaque agent pour chaque cycle de simulation accroˆıt fortement le coˆut d’ex´ecution de la simulation, surtout lorsqu’un ensemble d’agents ne devrait pas participer `a un cycle de simulation. Deuxi`emement, la r´eutilisation de l’impl´ementation du mod`ele en modifiant le comportement des agents (modification de comportements ou d’ordonnancement) n’est pas directement et facilement possible car il faut n´ecessairement modifier l’impl´ementation de l’agent et/ou de l’ordonnanceur ce qui rend le mod`ele d´e- pendant d’une plate-forme de simulation. De mˆeme, il n’est pas possible de modifier au cours de la simulation le comportement de l’agent car les plates-formes ne permettent pas d’activer ou de d´esactiver dynamiquement un comportement particulier d’un agent.