• Aucun résultat trouvé

3.4 Exemple de mod´elisation : la cit´e digitale

4.2.2 Les filtres

Pour une connexion, l’´emetteur recherche de fa¸con pr´ecise les r´ecepteurs, dans un contexte de transmission particulier.

Un filtre est un objet symbolique. C’est un ensemble d’assertions d´ecrivant les entit´es qui sont li´ees par un besoin de communication. Un filtre contient une assertion d´ecrivant les agents r´ecepteurs, une assertion d´ecrivant les messages qu’il doit transmettre, et un ensemble d’asser- tions d´ecrivant le contexte dans lequel le message doit ˆetre transmis.

Cette description en intension peut ˆetre rapproch´ee de la notion de horde en ADS, puisqu’elle concerne des entit´es d´ecrites par des propri´et´es diff´erentes, en l’occurrence les agents, les messages et ´eventuellement d’autres descriptions du contexte.

D´efinition 4 (Filtre) – Un filtre f ∈ F, not´e f(a, m, C) avec a ∈ A, m ∈ M et C ⊂ Ω est un tuple hfa, fm, fC, name, priority, initiatori o`u :

– fa est la description en intension de l’agent r´ecepteur telle que : a∈ A, fa(a) = ∧pj∈Pfa[pj(a)Rapjv

a pj].

– fm est la description en intension du message telle que : m∈ M, fm(m) = ∧pj∈Pfm[pj(m)R

m pjv

m pj].

– fC est la description en intension du contexte telle que :

C ⊂ Ω,fC(C) = ∧∀ω∈C asω(ω), avec asω(ω) = ∧pj∈Pasω[pj(ω) Rωpj v

ω pj]. – name est le nom du filtre.

– priority∈ IP est la priorit´e du filtre. – initiator est l’initiateur du filtre.

La description des r´ecepteurs fa est une assertion fond´ee sur les propri´et´es Pfa, avec Pfa l’ensemble des propri´et´es sur lesquelles portent les tests. En d’autres termes, un agent doit poss´eder ces propri´et´es pour ˆetre un r´ecepteur potentiel du message. Pour chaque propri´et´e pj appartenant `a Pfa, R

a

pj est un op´erateur de comparaison et v

a

pj est une valeur ou une variable. Par exemple, soit l’assertion fa(a) = [age(a) > 18] ∧ [lieu(a) = “Dauphine”], l’ensemble des propri´et´es test´ees Pfa est constitu´e de {age, lieu}. R

a

ageest l’op´erateur >, et Ralieuest l’op´erateur =. Les valeurs va

age et valieu sont respectivement 18 et “Dauphine”.

De la mˆeme fa¸con que pour la description des agents, la description du message `a recevoir est donn´ee par l’assertion fm. Le contexte de l’interaction, i.e. les autres entit´es sur lesquelles portent des conditions, est donn´e par la horde fC, qui est une conjonction d’assertions asω. De ce point de vue, le contexte de la communication est un sous-ensemble de Ω, et donc une partie de l’´etat D du syst`eme multi-agents.

Une des originalit´es d’EASI est de permettre l’utilisation de variables dans les assertions. Ces variables permettent de r´ealiser un appariement entre les valeurs des propri´et´es de plu- sieurs entit´es. Les variables sont pr´efix´ees par “?”. Par exemple, le filtre fictif fappariement s’´ecrit

h[p1(a) =?x], [p2(m) =?x], ∅, “appariement”, 0, “a1”i. Il permet un appariement de la valeur de la propri´et´e p1 de l’agent avec la valeur de la propri´et´e p2 du message grˆace `a la variable ?x. Ainsi, un message dont la propri´et´e p2 est diff´erente de null sera re¸cu par tous les agents dont la valeur de p1 est ´egale `a la valeur de p2 du message.

Par d´efaut, nous consid´erons qu’une assertion vide est satisfaite par toutes les descriptions. Si la description en intension des agents fa ou des messages fm est ´egale `a ∅, alors ce sont respectivement tous les agents ou tous les messages qui sont concern´es par ce filtre.

L’initiateur initiator d’un filtre est l’agent qui l’ajoute dans l’environnement. Lorsque l’initia- teur du filtre le d´epose dans l’environnement, il lui donne un nom name et une priorit´e priority dans l’intervalle IP . L’intervalle IP est d´efini par le concepteur du syst`eme multi-agents. La priorit´e est un nombre, qui d´efinit un ordre sur les filtres dans l’environnement en fonction des besoins de l’initiateur du filtre. Par la suite, la valeur par d´efaut de la priorit´e est la valeur m´ediane de l’intervalle IP .

Exemple cit´e digitale. Pour illustrer l’utilisation des filtres, nous d´efinissons ici les filtres correspondant `a l’exemple de la cit´e digitale.

Le premier besoin fdirect est celui des communications adress´ees, lorsque l’´emetteur connaˆıt l’identit´e de son interlocuteur. Les messages concern´es sont ceux dont la propri´et´e receiver a une valeur ?x, et le r´ecepteur est l’agent dont la propri´et´e id est de mˆeme valeur ?x. Le filtre effectue donc un appariement entre ces deux propri´et´es :

fdirect(a, m, C) = h[id(a) =?x], [receiver(m) =?x], ∅, “direct”, 0, “a1”i

L’assertion sur le contexte est ∅, ce qui signifie que le filtre est valide dans tous les contextes. Par d´efaut, nous donnons la valeur de la priorit´e des filtres `a 0.

Le second besoin en communication fgroupe est celui de l’agent a1, qui souhaite envoyer son message `a tous les agents disponibles dans un lieu l1 donn´e. Il faut alors caract´eriser les trois ´el´ements du filtre : les r´ecepteurs concern´es, les messages concern´es, et le contexte.

Une solution est de donner une propri´et´e lieu dans la description du message, qui contient le lieu de destination du message. La syntaxe du filtre dont a1 est l’initiateur est la suivante : fgroupe(a, m, C) = h[dispo(a) = true] ∧ [lieu(a) =?x], [lieu(m) =?x], ∅, “groupe”, 0, “a1”i

Avec ce filtre, tous les messages ayant la propri´et´e lieu sont transmis aux agents disponibles situ´es dans le lieu indiqu´e, grˆace `a l’appariement avec la propri´et´e lieu de l’agent. L’agent a1 devra alors d´ecrire ses messages par une propri´et´e < lieu, l1 > pour obtenir le comportement d´esir´e.

Par exemple, un message m1ayant pour description < performative, “propose” >, < sender, “a1” >, < receiver, “a3” >, < lieu, “Dauphine” > sera transmis `a l’agent a3 grˆace au filtre fdirect, et `a tous les agents disponibles de l’universit´e Paris-Dauphine grˆace au filtre fgroupe, en l’occurrence seulement a4.

Nous avons vu que les agents organisation d´eposent dans l’environnement des annonces d’´ev`enement. Ces annonces sont des messages persistants qui sont r´ecup´er´es par les agents int´eress´es. Le premier filtre fballet de r´ecup´eration de donn´ees est :

4.3. Regrouper et caract´eriser les descriptions des entit´es