5. Négociation dans les systèmes multi-agents
5.4 Négociation pour l'allocation des tâches

5.4.1 Allocation des tâches par réseau contractuel

Jusqu'à maintenant on a discuté des protocoles de négociation entre agents egocentrés, c'est à dire entre agents ayant leurs propres buts. Dans cette section nous allons présenter des protocoles de négociation qui ont été conçus principalement en vue de la coordination des agents coopératifs, ayant les mêmes buts, qui partagent et résolvent ensemble des problèmes.

Le protocole réseau contractuel ("Contract Net" en anglais) a été une des premières approches utilisées dans les systèmes multi-agents pour résoudre le problème d'allocation des tâches (Davis et Smith, 1983). Le protocole s'appuie sur une métaphore organisationnelle: les agents coordonnent leurs activités grâce à l'établissement de contrats afin d'atteindre des buts spécifiques.

Dans le protocole réseau contractuel, les agents peuvent prendre deux rôles: gestionnaire et contractant. L'agent qui doit exécuter une tâche (le gestionnaire) commence par décomposer cette tâche en plusieurs sous-tâches. Le gestionnaire annonce chaque sous-tâche sur un réseau d'agents (les contractants). Les agents qui reçoivent une annonce de tâches à accomplir évaluent l'annonce. Les agents qui ont les ressources appropriées, l'expertise ou l'information requise pour accomplir la tâche, envoient au gestionnaire des soumissions ("bids" en anglais) qui indiquent leurs capacités à réaliser la tâche. Le gestionnaire rassemble toutes les propositions qu'il a reçues et alloue la tâche à l'agent qui a fait la meilleure proposition. Ensuite, le gestionnaire et les contractants échangent les informations nécessaires durant l'accomplissement des tâches. Par exemple, le contractant annoncera au gestionnaire quand l'exécution de la tâche sera terminée. Dans des cas exceptionnels, un gestionnaire peut annuler le contrat: annoncer au contractant qu'il faut abandonner l'exécution de la tâche.



Figure 3. Etapes du protocole réseau contractuel

Les rôles des agents ne sont pas spécifiés d'avance. N'importe quel agent peut agir comme un gestionnaire et annoncer une tâche; n'importe quel autre agent peut être un contractant pour une annonce qu'on a faite. Cette flexibilité permet de nouvelles décompositions des tâches: un contractant pour une tâche spécifique peut agir comme un gestionnaire en décomposant sa tâche et en annonçant les sous-tâches à d'autres agents. Les liens entre les gestionnaires et les contractants pour diverses tâches et sous-tâches forment un réseau contractuel hiérarchique qui permet la division des tâches et la synthèse des résultats.

Le langage de communication FIPA (présenté dans le chapitre 4 ) fournit, en plus d'une série de primitives de communication et d'une sémantique associée, une série de protocoles d'interaction. Une partie des protocoles d'interaction fournis par FIPA est énumérée ici:

FIPA-Request
FIPA-Querry
FIPA-Request-When
FIPA-Contract-Net
FIPA-Iterated-Contract-Net
FIPA-Auction-English
FIPA-Auction-Dutch
FIPA-Brokering
FIPA-Recruiting
FIPA-Subscribe
FIPA-Propose

Par exemple, dans le protocole de FIPA-Request (FIPA-Demande) un agent demande à un autre agent d'exécuter une action, comme décrit dans la figure 4. Le récepteur (en bleu dans la figure) peut consentir ou peut refuser d'exécuter l'action ou encore répondre qu'il n'a pas compris. En cas de refus, l'agent récepteur est obligé de déclarer la raison du rejet.


Figure 4. Le protocole FIPA-Request

Les protocoles FIPA-Contract-Net (FIPA-Reseau-Contractuel) et FIPA-Iterated-Contract-Net utilisent le protocole réseau contractuel pour permettre aux agents l'exécution de la négociation. La figure 5 présente le protocole FIPA-Contract_Net. Le gestionnaire (en rouge dans la figure) fait une requête d'action; chaque contractant peut refuser ou faire une proposition (propose(p2)) en réponse; le gestionnaire peut accepter ou rejeter la proposition p2.


Figure 5. Le protocole FIPA-Contract-Net

Un problème qui peut survenir avec le réseau contractuel est qu'une tâche puisse être attribuée à un contractant moins qualifié pour la résoudre si un contractant plus qualifié est occupé au moment de l'annonce des tâches.

Le protocole réseau contractuel a été utilisé pour la résolution coopérative des problèmes, c'est à dire la résolution des problèmes par des agents coopératifs. Récemment, le protocole a été généralisé pour le cas des agents egocentrés aussi. Si tel est le cas, un agent qui reçoit une annonce de tâche (contractant potentiel) avec, par exemple, un coût associé, fera une soumission pour cette tâche uniquement si son coût, à lui, pour l'exécution de la tâche est inférieur à la valeur annoncée. De même, le gestionnaire, s'il est capable d'exécuter lui-même la tâche, annoncera la tâche à un coût inférieur à son propre coût pour l'exécution de la tâche. Cette approche est en accord avec le principe de la rationalité individuelle qu'on a rencontré aussi dans le cas des enchères.

Question: Est-ce que le gestionnaire peut annuler un contrat dans un système multi-agents avec agents egocentrés?

 


Cliquer ici pour voir la réponse.

<< Section précédente Table de matières Section suivante >>

Politechnica University of Bucharest - 2002