Exploitation du modèle en étoile
Attitudes propositionnelles
Le modèle en étoile repose sur les communications entre agents, qui doivent pouvoir exprimer leur désir de rejoindre un groupe, leurs croyances, leurs connaissances à propos de la composition des groupes, etc. Le concept d’attitude propositionnelle1 (AP) [Fodor, 1987] est adapté pour exprimer ce type d’information. 6.2.1 Messages Tous les messages que s’échangent les agents dans le cadre du modèle en étoile sont des AP. Une attitude propositionnelle est classiquement composée de trois parties : un sujet, un contenu propositionnel et une attitude. Dans notre modèle, le sujet correspond bien sûr à l’agent qui formule le message. Le contenu propositionnel correspond à un groupe et à des connaissances à propos de ce groupe. Enfin, l’attitude fait partie d’un ensemble fini {AFF, BEL, JOIN, CHK, BRK, QUIT} qui sera détaillé à la section suivante. La représentation que nous avons choisie pour les messages ne met toutefois pas directement en évidence cette séparation : AP(Ae, Te, [AL, TL], {(Aj , dj ), . . .}) Sujet Le sujet est ici simplement Ae, l’agent émetteur. Rappelons au passage que nous faisons l’hypothèse que chaque agent du système possède un identifiant unique. Contenu propositionnel Le contenu propositionnel du message correspond aux parties [AL, TL] et {(Aj , dj ), . . .}. Nous avons déjà vu au chapitre précédent qu’un groupe est identifié par son leader et sa date de création, le groupe concerné par le message est identifié ici comme [AL, TL] : le groupe créé à l’instant TL par l’agent AL. Cette partie peut éventuellement être remplacée par ∅ si l’agent Ae s’exprime à propos d’agents qui n’appartiennent pas à un groupe. On considère que ∅ est le « groupe vide » et qu’il correspond aux agents seuls. La partie {(Aj , dj ), . . .} correspond véritablement aux croyances et connaissances de l’agent Ae à propos du groupe [AL, TL] (en dehors du fait que AL soit son leader et qu’il ait été créé à TL). Elle peut être optionnelle, l’agent Ae n’a pas nécessairement à exprimer ses croyances à propos de la composition du groupe, si par exemple il veut simplement le quitter. Mais s’il a besoin d’exprimer ses croyances, cela se fait sous la forme de couples (Aj , dj ) ∈ Γ × T. Chacun de ces couples correspond à un membre Aj du groupe [AL, TL] d’après les croyances de Ae au moment Te où il formule son message. On se souvient (voir la section 5.5.4) que les croyances se forment à partir des connaissances des agents, soit : KAe (Aj ∈ [AL, TL] t ) ⊃ BAe (Aj ∈ [AL, TL] t 0 ), ∀t 0 > t en l’absence d’information contradictoire entre t et t 0 . Ici, la présence du couple (Aj , dj ) indique que Ae croit que Aj appartient à [AL, TL] au moment où il formule son message, ce qui équivaut à : BAe (Aj ∈ [AL, TL] Te ) mais cela indique aussi qu’il fonde sa croyance sur le fait qu’il sait que Aj était membre de [AL, TL] à la date dj (notons que dj < Te), c’est-à-dire : KAe (Aj ∈ [AL, TL] dj ) De plus, dj est la date la plus récente à laquelle Ae sait que Aj appartenait à [AL, TL].
Sémantique des attitudes propositionnelles
Nous avons défini six classes d’attitudes propositionnelles : AFF, BEL, JOIN, CHK, BRK et QUIT. Ces classes ont été choisies de manière empirique, en partie pour assurer une certaine lisibilité. Il aurait été possible par exemple de n’avoir que deux types d’AP, tels que Informer et Vérifier, auquel cas par exemple, quitter un groupe pourrait s’exprimer avec un Informer à propos de soi-même exprimant son appartenance au groupe vide. Nous avons préféré faire un compromis entre lisibilité et minimalité, l’ensemble choisi couvre nos besoins et assure une certaine compréhension pour le lecteur. Il ne s’agit en fait que d’une question d’écriture, l’importante est la sémantique des messages, pas leur syntaxe. Voyons maintenant les sémantiques de ces six classes d’AP. Nous présenterons à chaque fois d’une part (en haut) un message, et d’autre part (en bas) sa sémantique : Message Sémantique Croyances du leader : AFF AFF est utilisée par un agent pour affirmer la création de son groupe ; il devient alors publiquement son leader et unique membre. Il devient alors possible pour des agents seuls de demander à entrer dans ce groupe. La création d’un groupe se fait par l’émission d’un message de la forme : En créant ainsi son groupe, AL affirme bien sûr en faire partie, mais affirme du même coup que personne d’autre n’en fait partie à cet instant, et que luimême ne peut faire partie d’aucun autre groupe à TL. Notons au passage que KAL (AL 6∈ [A0 L , T0 L ] TL ), ∀[A0 L , T0 L ] 6= [AL, TL] peut en fait se déduire directement de KAL (AL ∈ [AL, TL] TL ). En effet, rappelons encore une fois que KAiϕ ⊃ ϕ, et qu’un agent ne peut être membre que d’un seul groupe à un même instant. Dans la suite, nous n’inclurons donc pas ces « informations négatives » dans la sémantique des messages si elles peuvent être déduites.
Croyances : BEL
BEL est utilisée par un agent pour exprimer ses croyances sur la composition d’un groupe dont il n’est pas le leader Si Ae fait partie des agents {(Aj , dj ), . . .}, cela veut dire qu’il s’exprime à propos du groupe dont il croit faire partie, et qu’il désire donc toujours en faire partie au moment où il formule ce message, cela implique aussi qu’il ne fait pas partie d’un autre groupe : BEL(Ae, Te, [AL, TL], {(Ae, de),(Aj , dj ), . . .}) KAe (Ai ∈ [AL, TL] di ) ∀Ai ∈ {Ae, Aj , . . .} KAe (Ae 6∈ [A0 L , T0 L ] Te ) ∀[A0 L , T0 L ] 6= [AL, TL] BAe (Ai ∈ [AL, TL] Te ) ∀Ai ∈ {Ae, Aj , . . .} DAe (Ai ∈ [AL, TL] Te )
Demande d’adhésion : JOIN
JOIN est utilisée par un agent pour demander à faire partie d’un groupe préexistant. Émettre un JOIN implique de quitter son groupe actuel si l’on n’est pas déjà seul. Si le leader du groupe concerné reçoit ce message et accepte l’adhésion, il « répond » avec un AFF incluant l’agent Ae comme membre avec une date de = Te (dans le couple correspondant (Ae, de) du AFF). La partie {(Aj , dj ), . . .} est optionnelle dans un JOIN et est équivalente à un BEL, nous ne répétons donc pas sa sémantique
Vérification : CHK
CHK est utilisée pour réclamer de l’information à propos d’un groupe. L’agent peut exprimer une croyance et les autres la confirment ou l’infirment par des BEL/AFF, ou encore simplement demander de l’information à propos du groupe. Un CHK n’a pas en soi de sémantique exprimable en croyances, connaissances ou désirs. Si la partie {(Aj , dj ), . . .} est présente, le CHK a alors la même sémantique qu’un BEL (ou qu’un AFF si Ae est le leader du groupe concerné). Une utilisation particulière d’un CHK avec le groupe vide peut être faite pour réclamer de l’information à propos d’un ensemble d’agents plutôt qu’un groupe donné :CHK(Ae, Te, ∅, {(Aj , −∞), . . .}) BAe (Ai ∈ ∅−∞) ∀Ai ∈ {Aj , . . .} Un tel message devrait inciter les autres agents à fournir les informations dont ils disposent à propos des agents {Aj , . . .} car elles seront nécessairement plus récentes que −∞. Cela ressemble à un mensonge, mais en fait, Ae ne donne aucune fausse information. Le modèle n’indique pas si les agents doivent répondre ou non aux CHK, ni quelles conclusions tirer de l’absence de réponse, cela est laissé aux processus de décision des agents. Il est toutefois raisonnable, par exemple, qu’un leader exclue un membre qui ne répond pas et qu’un membre quitte un groupe dont le leader ne lui répond pas non plus.