Le TOOLKIT Zeus :Architecture et approches

Auteur Muthanna Alshoufi

1 Librairie de composants d'agent : L'agent zeus générique 2 Zeus agent building Approch/environment L'approche au design de l'agent Zeus (Etapes du design) 3 Zeus utility Agents

Zeus est une plateforme qui consiste en un ensemble de composants, écrits en Java, qui peuvent être catégorisés en trois groupes fonctionnels (librairies) comme le montre le figure ci-dessous : librairie de composants d'agent, un outil de construction d'agent, et un ensemble des utilités d'agents incluant le NameServer, le Facilitateur et les agents de visualisation.

Composants du TOOLKIT Zeus
Haut
1 Librairie de composants d'agent :

C'est une collection de classes qui forment les blocks essentiels des agents. Ensemble ces classes implémentent la fonctionnalité agent-level indépendante de l'application dans les agents collaboratifs. Pour communiquer, la librairie de composants d'agents fournie :

Pour le raisonnement et la coordination multi-agents, la librairie de composants d'agents fournie :

L'agent zeus générique :

Ensemble, les composants de la librairie permettent de construire un agent zeus générique et indépendant de l'application,cet agent-ci peut être personnalisable et implémenté dans certaines applications en l'imprégnant avec les ressources spécifiques du problème,compétences, information, relations organisationnelles et les protocoles de coordination.

1.JPG (35317 bytes) L'architecture d'un agent générique Zeus qui n'est pas très différente de celles dans la littérature

L'agent Zeus générique comporte les composants suivants :

Haut
2 Zeus agent building Approch/environment:

En réalité, les développeurs des systèmes multi-agents n'ont pas besoin de savoir les détails de la librairie de composants d'agent pour créer leurs systèmes. Donc, on va présenter l'approche au design de l'agents et brièvement décrire l'environnement visuel supportant cette approche. L'approche au design de l'agent Zeus nécessite que les développeurs considèrent qu'un agent quelconque soit composé de trois couches : couche de définition, couche d'organisation et couche de coordination.

2.JPG (28802 bytes) Les différentes couches formant l'agent

Au niveau de la couche de définition, l'agent est représenté comme une entité de raisonnement autonome, dans le terme de ses compétences, modèle de rationalité, ressources, croyances, préférences, etc.
Au niveau de la couche d'organisation, par exemple, de quels agents il doit se méfier, quelles relations il a avec les autres agents, etc.
Au niveau de la couche de de coordination, l'agent est représenté comme une entité sociable, dans le terme de ses techniques de négociation et coordination.
Au dessus de la couche de coordination se trouvent les protocoles implémentant la communication entre agents, et au dessous de la couche de définition il y a l'interface du programmeur qui autorise à l'agent d'être lié aux programmes externes lui offrant des ressources et/ou utilisant ses compétences.

L'approche au design de l'agent Zeus (Etapes du design)
3.jpg (49776 bytes) Les étapes du design d'un agent Zeus
Haut
  1. Domain Study : à l'étape initiale, le développeur analyse le domaine du problème afin d'identifier les agents potentiels et de créer une ontologie des concepts dans le domaine. Le choix des agents candidats dépend largement de la granularité dans laquelle le problème est modelé, et sera très domain-specific et problem-specific. Cependant, à ce stade du design seulement les concepts du domaine majeur nécessitent d'être identifiés et définis ; les concepts de niveau plus bas peuvent être reportés jusqu'à la seconde itération du processus de design quand le domaine sera mieux compris.
  2. Agent definition : une fois tous les agents candidats sont identifiés, alors le développeur diagnostique les attributs signifiantes de chaque agent. Exemple, sur un agent à ce stade de définition, un manageur en charge d'une usine comprenant un nombre de ligne de production (des machines identiques), chacune entre elles peut effectuer de différentes tâches. Le manageur a à sa disposition un certain nombre de ressources, et la production d'un article pourrait consommer une quandité de ces ressources, en concidérant un processus de production qui dure un intervalle de temps limité. Le rôle du manageur est de produire des articles en fonction de la demande des clients. Pour faire cela, le manageur a à faire le scheduling sur les demandes des clients en utilisant les ressources disponibles, machines libres et le coût et temps nécessaire pour accomplir la tâche. Une demande typique d'un client est de la forme «produisez-moi un article u donné v en temps w à coût x ». Pour aider le processus du scheduling de manager, il conserve une agenda de ses engagements courants.
  3. Or, la phase de définition de l'agent consiste à :
  4. Task definition : à ce stade du design, les tâches ayant été identifiées à la phase de définition sont définies selon leurs pré conditions, effets, coût, duré et contraintes. Typiquement les pré conditions d'une tâche sont consommées pour produire ses effets, et les expressions du coût et la duré d'exécution de tâche sont fonctions des effets et/ou des pré conditions, alors que les contraintes d'une tâche sont soit relatives aux pré conditions et/ou aux effets de tâche soit imposent quelques restreints d'applicabilité sur l'opérateur.
  5. Agent Organisation : à ce stade du design, le développeur identifie la connaissance de chaque agent. Pour qu'un agent A fasse connaissance avec un autre agent B, il faut que les ressources que l'agent A croit que l'agent B produit soient spécifiées, tout au long de la relation organisationnelle que l'agent A pense partager avec l'agent B. De plus, pour chacune des ressources dont l'agent A croit que l'agent B peut produire, les croyances de l'agent A sur le coût moyen que l'agent B réserve pour cette ressource sont identifiées.
  6. Agent co-ordination : cette phase comporte l'identification des protocoles de coordination appropriés nécessaires pour chaque agent et lui servant dans ses interactions sociables avec les autres agents lors de l'exécution de ses devoirs.
  7. Code generation and task implementation : l'étape finale, toutes les informations nécessaires, pour générer le code source automatiquement pour chaque agent, doivent être disponibles. Les seuls ingrédients manquants sont les codes de programmes implémentant le corps des tâches primitives. Le Agent Building Software fournie un outil de génération de code qui peut automatiquement générer les programmes des agent un par un à partir de leur spécification. En outre, pour chaque tâche primitive, il génère un («stub code») pouvant être utilisé par le programmeur avec le corps de tâche appropriée.
Haut
3 Zeus utility Agents :

Le package d'outils Zeus comporte un agent NameServer et Facilitator pour la captation des informations, avec un agent Visualiser pour visualiser ou débugger les sociétés des agent Zeus. Une société d'agents Zeus peut contenir n'importe quel nombre de ces outils agents, avec au moins un agent NameServer.
Les agents NameServer ont seulement un Mailbox et un Message Handler, en plus ils conservent un horloge socity-wide, et par conséquence lors de l'initialisation, l'agent s'inscrit avec le NameServer et fait synchroniser son horloge interne à celui du NameServer.
Les agents Facilitator ont un Mailbox et un Message Handler pour recevoir et répondre aux requêtes venant d'un agent, et une Acquaintance Database pour stocker les capaciés des agents. Ils fonctionnent en faisant des requêtes périodiquement sur tous les agents dans la société concernant leurs capacités, et stocker les réponses dans la base de données.
Les agents visualiser pour montrer, analyser ou débuuger les sociétés des agents Zeus. Ils fonctionnent en faisant des requêtes sur les autres agents et leurs états et processus, et ensuite interpréter les réponses récoltées pour créer un modèle du comportement collaboratif des agents, ce modèle est maintenu mis à jour et peut être affiché en utilisant les outils de visualisation supportées par les agents Visualiser :