3.5
Interaction et coopération entre agents
Un système multi-agents se distingue d'une collection
d'agents indépendants par le fait que les agents interagissent en vue de
réaliser conjointement une tâche ou d'atteindre conjointement un
but particulier. Les agents peuvent interagir en communiquant directement entre
eux ou par l'intermédiaire d'un autre agent ou même en agissant
sur leur environnement.
La coopération peut être considérée
comme une attitude intentionnelle adoptée par les agents qui
décident de travailler ensemble [Ferber 95]. Dans ce cas les agents
s'engagent dans une action après avoir identifié et
adopté un but commun considéré comme un
élément essentiel de l'activité sociale.
Les protocoles d'interaction s'intéressent à des
séries des messages échangés entre les agents; ce que l'on
appelle des conversations. Il existe différentes formes de protocoles
d'interaction suivant les systèmes recherchés. Dans le cas
d'agents compétitifs (buts conflictuels ou simplement des
intérêts propres), l'objectif des protocoles est de maximiser
l'utilité de chaque agent. Dans le cas où des agents ont des buts
identiques ou des problèmes communs, comme c'est le cas de
résolution distribuée de problèmes, les protocoles
d'interaction cherchent à maintenir des invariants globaux sans
intervenir sur l'autonomie de chaque agent, ni avoir recours à un
contrôle centralisé [Bourdon 01].
3.6
Coordination entre agents
De nombreux exemples de coordination existent dans la vie
quotidienne : deux déménageurs déplaçant un meuble
lourd, deux jongleurs échangeant des balles avec lesquelles ils
jonglent, des personnes qui parlent à tour de rôle en se passant
un micro, etc. [Malone 94] note que deux des composantes fondamentales de la
coordination entre agents sont l'allocation de ressources rares et la
communication de résultats intermédiaires. Dans ce contexte, les
agents doivent être capables de communiquer entre eux de façon
à pouvoir échanger les résultats intermédiaires.
Pour l'allocation des ressources partagées, les agents doivent
être capables de faire des transferts de ressources.
Bien entendu, la coordination est une question centrale pour
les systèmes multi-agents et la résolution de systèmes
distribués. En effet, sans coordination un groupe d'agents peut
dégénérer rapidement en une collection chaotique
d'individus.
3.7
Négociation entre agents
La négociation joue un rôle fondamental dans les
activités de coopération en permettant aux personnes de
résoudre des conflits qui pourraient mettre en péril des
comportements coopératifs. La négociation est définie
comme étant le processus d'améliorer les accords (en
réduisant les inconsistances et l'incertitude) sur des points de vue
communs ou des plans d'action grâce à l'échange
structuré d'informations pertinentes. En général les
chercheurs en IA distribués utilisent la négociation comme un
mécanisme pour coordonner un groupe d'agents.
Un des protocoles les plus étudiés pour la
négociation s'appuie sur une métaphore organisationnelle. Le
protocole du réseau contractuel (Contract-Net) a été une
des approches les plus utilisées pour les systèmes multi-agents
[Bourdon 01][Jarras 02]. Les agents coordonnent leurs activités
grâce à l'établissement de contrats pour atteindre des buts
spécifiques. Un agent, agissant comme un gestionnaire (manager)
décompose son contrat (une tâche ou un problème) en
sous-contrats qui pourront être traités par des agents
contractants potentiels. Le gestionnaire annonce chaque sous-contrat sur un
réseau d'agents. Les agents reçoivent et évaluent
l'annonce.
Les agents qui ont les ressources appropriées,
l'expertise ou l'information requise envoient au gestionnaire des soumissions
(bids) qui indiquent leurs capacités à réaliser la
tâche annoncée. Le gestionnaire évalue les soumissions et
accorde les tâches aux agents les mieux appropriés. Ces agents
sont appelés des contractants (contractors). Enfin, gestionnaires et
contractants échangent les informations nécessaires durant
l'accomplissement des tâches. Par exemple, [Parunak 96] a utilisé
ce protocole pour développer un système de contrôle de
production.
|