|
|
|
Langages de communication et d'échange d'informations entre agents
|
Situations d'interactions
La notion d'interaction est au centre de la problématique des systèmes multi-agents et de la kénétique. Mais qu'est-ce qu'une intéraction ?
Une interaction est une mise en relation dynamique de deux ou plusieurs agents par le biais d'un ensemble d'actions réciproques. Les interactions s'expriment ainsi à partir d'une série d'actions dont les conséquences exercent en retour une influence sur le comportement futur des agents.
Les interactions sont non seulement la conséquence d'actions effectuées par plusieurs agents en même temps, mais aussi l'élément nécessaire à la constitution d'organisations sociales. C'est par les échanges qu'ils entretiennent, par les engagements qui les lient, par l'influence qu'ils exercent les uns sur les autres que les agents sont des entités sociales et que de nouvelles fonctionnalités peuvent émerger de ces systèmes d'actions mutuelles.
Types d'interaction
Ces trois composantes principales de l'interaction, à savoir la nature des buts, l'accès aux ressources et les compétences des agents, vont permettre de faire une première typologie des situations d'interactions, comme le montre le tableau suivant, en envisageant tous les cas possibles.
| Buts |
Ressources |
Compétences |
Types de situation |
Catégorie |
| Compatibles |
Suffisantes |
Suffisantes |
Indépendance |
Indifférence |
| Compatibles |
Suffisantes |
Insuffisantes |
Collaboration simple |
Coopération |
| Compatibles |
Insuffisantes |
Suffisantes |
Encombrement |
| Compatibles |
Insuffisantes |
Insuffisantes |
Collaboration coordonnée |
| Incompatibles |
Suffisantes |
Suffisantes |
Compétition individuelle pure |
Antagonisme |
| Incompatibles |
Suffisantes |
Insuffisantes |
Compétition collective pure |
| Incompatibles |
Insuffisantes |
Suffisantes |
Conflits individuels pour des ressources |
| Incompatibles |
Insuffisantes |
Insuffisantes |
Conflits collectifs pour des ressources |
Interessons nous plus particulièrement à la partie grisée du tableau ci-dessus, à savoir la coopération.
Les méthodes de coopération
Comment coopérer ? Si nous avons explicité les conditions de la coopération, nous n'avons rien dit sur les moyens que l'on peut mettre en oeuvre pour coopérer. Ces moyens, que nous appellerons méthodes de coopération sont au nombre de six : le regroupement et la multiplication, la communication, la spécialisation, la collaboration par partage des tâches et des ressources, la coordination d'actions, la résolution de conflit par arbitrage et négociation.
Nous allons maintenant nous attarder plus en détail sur la problématique de la communication.
Les aspects de la communication
Le système de communication qui lie un ensemble d'agents agit comme une sorte de système nerveux qui met en contact des individus parfois séparés. La communication en effet agrandit les capacités perceptives des agents en leur permettant de bénéficier des informations et du savoir-faire des autres agents. Les communications sont indispensables à la coopération et il est difficile de concevoir un système d'agents coopérants s'il n'existe pas un système permettant aux agents d'échanger des informations ou de véhiculer des requêtes. Dans les systèmes cognitifs, les communications s'effectuent par envois de messages, alors que dans les systèmes réactifs, elles resultent de la diffusion d'un signal dans l'environnement. La communication constitue l'un des moyens fondamentaux pour assurer la répartition des tâches et la coordination des actions.
Il existe un grand nombre d'approches de la communication; les sciences humaines et en particulier la linguistique et la philosophie du langage ont développé tout un ensemble de concepts.
Interactions "primitives" par communication
Les communications s'effectuent par l'intermédiaire de signaux, chaque signal caractérisant un indice ou un signe. Un signal est l'élément le plus primitif. On peut le définir comme une marque, une trace, une modification de l'environnement, éventuellement porteur d'une information pour celui qui est capable de percevoir ce signal. Ce type de communication a été adopté par [Georgeff 83] avec son système de planification multi-agents, ou encore par [Drogoul 93] et son système MANTA.
Interactions "sophistiquées" par communication
Ce type d'interaction peut prendre en compte les états mentaux des agents, et ce par l'intermédiaire éventuellement d'un modèle Belief-Desire-Intention (BDI)
Les relations qui s'expriment entre les différentes entités concernés par l'ecte de communication, portent sur:
- la liaison émetteur-destinataire
- la nature du médium
- l'intention de communiquer
La liaison émetteur-destinataire
Lorsque le destinataire est connu de l'émetteur, ce dernier peut lui adresser des messages en particulier et ainsi instaurer une communication individuelle. On dit alors que les communications sont effectuées selon un mode point à point. C'est le type de communication qui est généralement le plus employé dans les agents cognitifs.
Si le destinataire n'est pas connu de l'émetteur, le message est envoyé sous un mode appelé diffusion à tout un ensemble d'agents, ces derniers étants liés à l"émetteur par une relation de voisinage. Ce type de communication est très utilisé dans les systèmes dynamiques dans lesquels des agents peuvent apparaître ou disparaître.
Nature du médium
La nature du canal de communication joue aussi un rôle important dans la communication. On peut distinguer trois sortes de mécanismes d'acheminement de message: l'acheminement direct, l'acheminement par propagation d'un signal et l'acheminement par voie d'affiche.
- L'acheminement par voie direct est le mode le plus simple: lorsqu'un agent désire envoyer un message, celui-ci est pris par le canal de communication et apporte le message directement à son destinataire (ou à tous les destinataires potentiels dans le cas d'un message diffus). C'est le type d'acheminement qui est le plus souvent pratiqué dans les systèmes multi-agents cognitifs.
- L'acheminement par propagation d'un signal est caractéristique du mode de communication des agents réactifs. Un agent émet un signal qui se diffuse dans l'environnement et dont l'intensité décroit en fonction de la distance.
- Le mode d'acheminement par voie d'affiche est moins utilisé dans les systèmes multi-agents. C'est typiquement le mécanisme de communication des "petites annonces". Un agent, s'il désire communiquer, place son message dans un espace commun, appelé tableau d'affichage, tableau noir ou "ether" [Kornfeld 79], visible par tous les agents (ou tous ceux d'une classe particulière). Ce mode de transport combine les caractéristiques des messages directs et ceux des messages diffus.
L'intention de communiquer
L'agent veut-il communiquer ? L'action de communication est-elle liée à une intention de l'émetteur qui désire ainsi obtenir quelque chose de son destinataire, ou bien s'agit-il d'une action incidente, d'un processus indépendant de la volonté de l'émetteur ? Ces deux formes de communication qui existent dans la nature se retrouvent dans les systèmes multi-agents.
L'intention de communiquer n'est pas une affaire de tout ou rien, mais un système gradué qui dépend des capacités cognitives de l'émetteur. Les études des communications animales notamment ont permis de dégager les rapports complexes existant entre les capacités de représentation d'un individu et les formes de communication qu'ils utilisent [Vauclair 92]. Vauclair rappelle ainsi que Dennet [Dennet 93] a proposé un ensemble de niveaux d'intentionnalité hiérarchisés selon une échelle de compléxité qui part de 0 pour aller jusqu'à un niveau théorique n.
Par exemple l'intentionnalité d'ordre 0 décrit les situations dans lesquelles l'émetteur envoie un signal parcequ'il présente un certain état interne ou parcequ'il reçoit un certain stimulus : X envoie le message M parce que X perçoit S.
L'intentionnalité d'ordre 1 suppose l'existence d'une volonté directe de l'émetteur d'obtenir un effet du récepteur : X envoie le message M à Y parce que X veut que Y fasse P.
Les actes de langage
Il existe de nombreuses théories de la communication mais elles reposent essentiellement sur des variantes de la théorie de la communication issue des recherches en télécommunications des années 40 développées par Shannon et Weaver (Modèles de communication).
Dans une optique plus proche d'un protocole réseau, on trouve aussi l' Agent Communication Language (ACL). Les ACLs gèrent des propositions, des règles, des actions au lieu d'objets simples sans sémantique associée. Un message écrit en utilisant ACL décrit un état désiré plutôt qu'un appel de procédure ou de méthode. Les ACLs s'appuient sur des protocoles de bas niveau pour le transport des messages (SMTP, TCP/IP, HTTP, ...).
Depuis Austin et surtout Searle, les actes de langages sont définis comme des structures complexes formées de trois composantes, considérées comme des actes élémentaires:
- Les composantes locutoires: C'est le mode de production du langage. Soit le fait de produire une suite de signes distingables par un interlocuteur.
- Les composantes illocutoires: C'est l'ensemble des actes accompagnant l'acte locutoire, et donnant les intentions de l'agent communiquant. Cette composante est constituée de la force illocutoire et du contenu propositionnel lui-même. Il y a cinq classes d'actes illocutoires :
- Les actes assertifs qui consistent à affirmer une information.
- Les actes expressifs, qui consistent à exprimer des croyances ou des compétences.
- Les actes promissifs, qui consistent à proposer des services et à gérer des hypothèses.
- Les actes exercitifs qui consistent à faire des demandes de délégations.
- Et les actes interrogatifs servant à la recherche d'informations.
- Les composantes perlocutoires: Ce sont les conséquences d'un acte illocutoire. Il s'agit de rendre compte des effets d'un acte de langage sur leurs destinataires.
Un énoncé n'est pas soit vrai soit faux, il réussit ou échoue. Par exemple, si l'agent A demande à B de résoudre une équation différentielle, et que B ne sache pas le faire, la demande échouera. Il en est de même si B n'a pas compris la demande. Dans les deux cas, l'acte de langage n'a pas réussi. Ainsi, un acte de langage peut manquer son but de plusieurs façons. Il peut le faire:- Dans l'énonciation de l'acte: Que la transmission ne s'effectue pas bien, qu'il y ait du bruit sur la ligne ou que le destinataire ne comprenne pas la langue utilisée par l'émetteur.
- Dans l'interprétation de l'acte: L'émetteur s'exprime correctement et le message est arrivé à bon port, mais le destinataire n'interprète pas correctement la force illocutoire de l'émetteur
- Dans la réalisation effective de l'acte entrainé par l'énonciation: les causes d'échecs sont multiples. Il suffit par exemple que l'un des interlocuteurs n'ait pas la compétence pour réaliser cet acte
Vanderveken [Vanderveken 88] propose une classification concernant l'aspect pragmatique des actes de langage en différenciant le succès de la satisfaction. Les conditions de succès sont celles qui doivent être remplies dans un contexte d'énonciation pour que l'émetteur réussisse à accomplir cet acte. Une promesse a comme condition de succès que le locuteur s'engage effectivement à accomplir l'acte correspondant à la promesse. En revanche, les conditions de satisfaction sont relatives à la composante perlocutoire et prennent en compte l'état du monde résultant de cet acte.
Il existe de nombreux langage se réclamant de la théorie des actes de langage. En voilà les principaux représentants:
- KQML: Knowledge Query and Manipulation Langage.
Ce projet de recherche américain, fondé par la DARPA, a pour but de développer un standard de communication de haut niveau pour permettre à des agents cognitifs de coopérer. Ce langage nous propose 43 performatifs.

Cependant, selon Cohen et Levesque, KQML manque cruellement de spécifications et de formalisation ( ambiguïté et imprécision du langage, performatifs inutiles et incohérents, performatifs manquants ...). De ce fait, n'importe qui peut prétendre qu'il emploie KQML simplement parce que ses agents sont capables de s'envoyer des requêtes et des informations. A partir de ces critiques, Cohen et Levesque proposent de définir un ensemble minimum de performatifs en leur donnant des propriétés de compositionnalité, afin qu'il soit possible de définir de nouveaux performatifs comme combinaison d'actes de langage plus primitifs. Malgré tout cela, les spécifications en terme d'états mentaux posent un problème majeur, à savoir que tous les agents impliqués dans le processus de communication doivent se conformer à une architecture spécifique. De ce fait, tout standard de communication, qui repose sur la manière dont un agent se comporte, limite les possibilités d'intégration d'agents véritablement hétérogènes. Il apparait donc qu'une spécification des communications, non plus en termes d'états mentaux, mais en termes de protocoles, présente l'avantage de pouvoir faire abstraction de la nature propre des agents en se focalisant sur les relations qui existent entre les communications.
- ACL de la FIPA: Foundation for Intelligent Physical Agents.
La syntaxe est proche de celle de KQML, mais cet ACL essaie de pallier aux lacunes de KQML, à savoir: Manque d'une sémantique formelle, et d'une infrastructure charger de gérer les agents. C'est pourquoi FIPA s'est astreint à définir un ensemble d'acte de langage de base que tout agent doit pouvoir traiter, et d'une sémantique détaillée pour ses primitives.
Comme supports pour les ACL, les protocoles RMI et RPC sont souvent utilisés, et c'est ce que nous allons détailler dans ce qui suit.
RPC et RMI
Idéalement, le mode de communication servant de support aux ACL, doit être transparent à l'utilisateur et doit préserver la sémantique du langage. Java fournit plusieurs méthodes pour faire ce type de communication.
Au niveau le plus bas, Java offre les sockets. Étant de bas niveau, le programmeur utilisant les sockets doit prendre en charge le protocole entre le client et le serveur (codage/décodage des données, protocole d'accès etc)
À un niveau d'abstraction plus élevé se trouve l'appel de procédure à distance RPC . Le gain est qu'il offre au programmeur une vision centralisée d'un système réparti, car les appels distants se font comme s'ils étaient locaux. Cependant, le RPC (Remote Procedure Call) est mal adapté à la programmation orientée objets. Dans ce cas, ce n'est plus une méthode qui peut être appelée à distance, mais c'est un objet-même qui fournit des méthodes appelables à distance. Du point de vue système, il n'y a pas de grande différence entre RMI et RPC. La différence se trouve dans l'encapsulation de ces méthodes dans un objet. Le protocole RMI est le moyen offert par Java pour appeler des méthodes d'objets distants, ce qui est plus proche de la théorie des ACL, bien qu'avec les procédure RPC cela fonctionne aussi.
Le RMI (Remote Method Invocation), c'est une technique qui permet à des objets Java de se servir d'objets Java distants comme s'il s'agissait d'objets locaux. CORBA fournis les mêmes fonctionnalités, mais présente l'avantage de ne pas être réduit à un seul langage. C'est une voie très élégante pour transmettre des ordres ou plutôt des demandes d'actions entre agents. Avec le RMI, ses concepteurs ont voulu :
- fournir des appels à des méthodes d'objets qui se trouvent dans des machines virtuelles différentes. Soit la possibilité pour un agent de faire des actes de langage exercitifs.
- rendre possible des call-back du serveur au client.
- intégrer ce modèle dans Java sans affecter la sémantique du langage.
- rendre transparent au programmeur l'appel de telles méthodes.
- rendre la tâche du programmeur le plus facile possible.
- préserver la sécurité du langage.
En plus, le RMI s'intégre aussi avec le mécanisme de "ramasse-miettes", gére l'activation des objets, des différents protocoles de transport et surtout est le plus flexible possible pour des développements futurs.
Liens Internets
|
|
|