• Aucun résultat trouvé

Phase 1 : modélisation du comportement nominal des agents avec le

5.2 RefProSOAMS : un processus pour le développement formel des SMA auto-

5.2.1 Phase 1 : modélisation du comportement nominal des agents avec le

P_MAS

Dans cette phase, nous définissons le comportement nominal des agents constituant le SMA. Afin d’assister le concepteur tout au long de cette phase, nous proposons le patron de raffinement P_MAS (figure 5.2). Ce patron décrit une stratégie de raffinement pour la conception des agents en garantissant le non blocage dans leur comportement. Il est formé d’un modèle initial et de trois étapes de raffinement qui génèrent la machine MicroLevel puis la machine MesoLevel décrites dans les sections 4.2.1 et 4.2.2 du chapitre précédent.

La machine la plus abstraite du patron P_MAS appelée Initial Model et donnée dans la fi- gure 5.3, décrit le système comme un ensemble d’agents fonctionnant selon le cycle percevoir- décider-agir situés dans un environnement dont le comportement est modélisé par l’événe- ment EnvironmentChange. Le contexte ContextInit, qui lui est associé, décrit les modes wait et work (ensemble Modes) et les trois étapes (ensemble Steps) dans lesquels chaque agent peut se retrouver.

Chacun des événements Perceive, Decide et Per f orm (figure 5.4) correspond à une étape du cycle de vie d’un agent et permet de faire passer l’agent considéré vers l’étape suivante. Ce modèle abstrait garantit la propriété LocProp1 (Tout agent fonctionne selon le cycle

5.2. RefProSOAMS : un processus pour le développement formel des SMA auto-organisateurs

Figure 5.2 — Le patron de raffinement P_MAS

Figure 5.3 — La machine initiale du patron P_MAS

percevoir-décider-agir) et il sera soumis à une série de raffinements composés de trois étapes. Le premier raffinement consiste à détailler les règles décisionnelles des agents. Ainsi, le raffinement de la machine Initial Model se fait en divisant l’événement Decide en plu- sieurs événements dont chacun représente une règle décisionnelle. La règle décisionnelle d’un agent doit lui permettre de choisir sa prochaine action à exécuter, d’activer les action- neurs correspondant à cette action et de modifier les propriétés de décisions relatives à sa décision. Cette forme générique d’une décision est modélisée par l’événement DecideAct résultat du raffinement de l’événement Decide. Cet événement est décrit dans la figure 4.6 de la section 4.2.1.

Ainsi, lors du raffinement de la machine Initial Model par la machine MicroLevel, nous introduisons également les variables qui représentent les propriétés relatives aux décisions, aux actionneurs et aux prochaines actions à exécuter. Ce raffinement permet l’obtention de la machine MicroLevel modélisant le niveau micro du système et décrite par la figure 4.5 de la section 4.2.1.

Figure 5.4 — Les événements Perceive, Decide et Per f orm de la machine initiale du patron

P_MAS

L’invariant de collage GluingActuators est introduit dans la machine MicroLevel pour formaliser le lien entre l’étape du cycle de vie d’un agent d’une part et l’état de ses action- neurs et l’action qu’il doit exécuter d’autre part. Cet invariant est décrit comme suit :

GluingActuators=b

∀a.a∈ Agents∧agentStep(a) = per f orm⇔

agentActuators(a, agentAction(a)) =enabled

L’incorporation de cette étape de raffinement dans le processus de développement génère les événements correspondant aux règles décisionnelles des agents conformément à l’événement DecideAct dans la machine MASmicro (figure 5.1).

Lors de la deuxième étape de raffinement du patron P_MAS, l’événement Perform est raffiné en les différentes actions qu’un agent peut effectuer. Chacune de ces actions est mo- délisées conformément à l’événement Per f ormAct décrit lors du chapitre précédent (figure 4.11). Ainsi, la définition d’une action revient à définir les conditions de son activation (les actionneurs correspondant à l’action choisie doivent être activés) et les modifications qu’elle va engendrer. Ces modifications peuvent concerner certaines propriétés internes de l’agent ou bien certains éléments de l’environnement. Au niveau de ce raffinement, on ajoute donc les éléments de l’environnement (sous forme de variables) ainsi que les propriétés des agents qui seront modifiées par les actions.

La propriété LocProp2 vérifie que tout agent a ayant pris une décision, décrite par le pré- dicat avant-après DecideAct_i(a, Aprop, A0prop), ne sera pas bloqué dans l’étape de décision et pourra exécuter l’action choisie. Cette propriété est prouvée à ce niveau de raffinement et est formalisée comme suit :

5.2. RefProSOAMS : un processus pour le développement formel des SMA auto-organisateurs

LocProp2=b

∀a·a∈ Agents∧DecideAct_i(a, Aprop, A0prop) ⇒

∃Per f ormAct_i·G_Per f ormAct_i(a, pPer f ormAct_i)

Dans cette propriété, G_Per f ormAct_i(a, pPer f ormAct_i)désigne la garde d’un événement d’action définie en fonction de l’agent a et d’un ensemble de paramètres pPer f ormAct_i. Informellement, cette propriété indique que pour tout agent a ayant pris une décision (passé à l’étape d’action), il existe un événement d’action Per f ormAct_i activable pour l’agent a. L’incorporation de cette étape de raffinement donne lieu à la machine MASmicro2meso qui décrit les décisions et les actions des agents et qui représente une machine intermédiaire entre la description du niveau micro et celle du niveau méso.

Lors du raffinement de la machine Micro2Meso (le troisième raffinement dans la figure 5.2), les représentations partielles des agents ainsi que leurs capteurs sont introduits et l’évé- nement Perceive est raffiné par l’événement PerceiveEnvironment (figure 4.10 du chapitre pré- cédent) en spécifiant les différentes opérations de mise à jour de ses représentations. Les capteurs de tout agent se trouvant dans la phase de perception, doivent être activés. Cette contrainte est assurée via l’invariant de collage GluingSensors.

GluingSensors=b

∀a.a∈ Agents∧agentStep(a) =perceive⇔

agentSensors(a) =enabled

Pour garantir que tout agent ne sera pas bloqué dans l’étape de perception, la propriété LocProp3 (énoncée si-dessous) doit être prouvée.

LocProp3=b

∀a·a∈Agents∧PerceiveEnvironment_i(a, Arep, A0rep) ⇒

∃DecideAct_i·G_DecideAct_i(a, pDecideAct_i)

Dans cette propriété, G_DecideAct_i(a, pDecideAct_i)désigne la garde d’un événement de décision définie en fonction de l’agent a et d’un ensemble de paramètres pDecideAct_i.

L’incorporation de ce raffinement dans le processus de développement donne lieu à la machine MASmesoqui modélise un comportement correct des agents.

La première phase du processus RefProSOMAS a permis la formalisation des règles dé- cisionnelles des agents ainsi que les actions et les opérations de perceptions leurs permettant d’interagir (les niveaux micro et méso). Les deux prochaines phases ont pour objet de rai- sonner sur la convergence et la résilience du système au niveau macro.