WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

L'adoption d'une approche organisationnelle pour la conception et la réalisation d'un système multi- agents d'acquisition coopérative d'information

( Télécharger le fichier original )
par Fadwa et Nesrine Ben Hawala et Said
Université de la Manouba Tunis - Maitrise d'informatique appliquée à  la gestion 2008
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Université de la Manouba
École Supérieure de Commerce de Tunis

Mémoire de fin d'études

présenté en vue de l'obtention de la maîtrise IAG

SUJET

L'ADOPTION D'UNE APPROCHE ORGANISATIONNELLE POUR
LA CONCEPTION ET LA RÉALISATION D'UN SYSTÈME MULTI-
AGENTS D'ACQUISITION COOPÉRATIVE D'INFORMATION

Elaboré par :

FAD WA BEN HA WALA NESRINE SAÏD

Encadré par:
Mr. ISSAM BOUSLIMI

Remerciements

Nous tenons à exprimer nos remerciements les plus vifs à notre
encadreur Mr Issam Bouslimi, qui a su nous guider et nous aider dans
ce travail avec beaucoup de tact et de gentillesse et qui nous a permis
de découvrir un domaine très intéressant celui des systèmes multi-

agents. Qu'il trouve ici notre estime et notre profond respect.

Nous tenons également à remercier toutes les personnes qui ont
participé, à titre professionnel ou personnel à la réalisation de ce
travail.

Nos remerciements iront également vers tous ceux qui ont accepté avec
bienveillance de participer au jury de ce mémoire.

A mes parents, Je n'aurais pu réussir mes études sans eux, et je tiens ici à les remercier. Merci Maman de m'avoir donné tant d'amour et de tendresse, et merci Papa de m'avoir toujours poussé dans mes intérêts. Qu'ils trouvent dans ce travail l'expression de mon grand amour et ma grande gratitude, et que dieu leur préserve bonne santé et longue vie.

A mes adorables soeurs .
· Souad et Saoussen. A mon cher frère Saïf.

A ma chère binôme Fadwa, ma douce soeur qui a eu la patience de me supporter durant ce mémoire, et qui m'a soutenu et encouragé pendant tous les moments difficiles vécus, je t'aime beaucoup ma chère.

A mes chères cousines .
· ma très chère Roua, Mohja, Yosr, Ghada, mes ravissantes Wala, Eya Chahd et Yasmine.

A mon très cher oncle Moez.

A ma chère tante Foufou, mon oncle Med Ali, Lella et Ayouta qui m'ont apporté leur soutien inconditionnel et leur grand amour. Je les remercie également de tout ce qu'ils ont fait pour moi durant toutes mes années d'étude, ils ont été pour moi une vrai famille le moment ou j 'été loin de ma famille.

Un grand merci à tous mes amis qui m'ont encouragé de près ou de loin .
· Chaker, Abdel Aziz, Sami, Houssem, mon cher Mohamed, mon très cher Nader, mes douces et meilleurs amies .
· Yosra, Arwa, Manel, Olfa, et à tout mes amis de la promotion IAG.

Enfin, je remercie très sincèrement ma très chère Monia pour sa vraie amitié et pour avoir eu la gentillesse de me prêter son ordinateur m'ayant permis de terminer ce travail, le moment ou mon ordinateur a été gravement endommagé pendant une période critique, merci du fond du coeur Monia, je t'aime infiniment.

Mes premières pensées vont à remercier la plus belle personne dans ma vie... A une femme qui m'a toute donnée...A ma belle mère...

Je tien de remercier mon père, l'Homme qui m 'a soutenu toute au long de ma vie par sa miséricorde... dieu que vous, protège maman et papa...

Un grand merci à ma chère amie, ma binôme dans ce mémoire de recherche, Nesrine et je souhaite que l'amitié que nous a réuni persiste pour toujours et que nous arrivons à réaliser nos rêves...

A toutes mes soeurs en particulier à ma petite Joujou et mon grand frère Wehbi et bien sûr à ma chère soeur Arwa qui, malgré ses préparations de son rapport de mastère, m 'a prêté sa lap-top, je te souhaite une très bonne soutenance de mastère...

A tous mes amies qui ont m 'accompagné tout au long de mes quatre ans de maîtrise en particulier Ines, Asma, Yosra et à tout les collègues du deuxième groupe IAG2...

Sans oublier de passer mes remerciements à toutes mes amies de la compagnie Tunisienne de l'air TUNISAIR, à tous les amis de Djemmel et ceux de l 'Ariana.

Enfin, un grand merci à monsieur Rafik Zarrad qui m 'a aidé dans ce mémoire malgré ses engagements.

Sommaire

Introduction 1

Problématique 3

Chapitre I :Systèmes Multi-Agents 4

I.1. Introduction 4

I.2. Agent 4

I.2.1. Définition 4

I.2.2. Types d'Agent 6

I.3. Système Multi-Agents 7

I.3.1. Définitions 7

I.3.2. Caractéristiques des SMA 8

I.4. Environnement 8

I.5. Interaction 9

I.5.1. Définition 9

I.5.2. Coopération 11

I.5.3. Coordination d'actions 12

I.6. Organisation 13

I.6.1. Définitions 13

I.6.2. Les Aspects organisationnels 13

I.6.3. Les niveaux organisationnels 14

I.6.4. Les concepts organisationnels 14

I.7. Communication 15

I.7.1. Définition 15

I.7.2. Protocoles de communication 15

I.8. Conclusion 16

Chapitre II Méthodes de conception des SMA 17

II.1. Introduction 17

II.2. Approche centrée agent 17

II.2.1. Modèle BDI 18

II.2.2. Approche Voyelle 19

II.3. Approche organisationnelle 20

II.3.1. Le modèle AGR 20

II.3.2. MOISE+ 22

II.3.3. GAIA 25

II.4. Approche Organisationnelle VS approche centrée Agent 28

II.5. Conclusion 29

Chapitre III : Plates-formes Multi-agents 30

III.1. Introduction 30

III.2. Exemples de plates-formes 30

III.2.1. Plate-forme ZEUS 30

III.2.2. Plate-forme JADE 31

III.2.3. Plate-forme Jack 31

III.2.4. Plate-forme Agent Builder 31

III.2.5. Plate-forme MADKIT 32

III.3. Conclusion 33

Chapitre IV : Conception 35

IV.1. Introduction 35

IV.2. Présentation du modèle organisationnel 36

IV.2.1. Les principaux concepts du MO 36

IV.2.2. Les aspects organisationnels 38

IV.3. Le problème d'organisation de voyage 39

IV.4. Conception de notre système 41

IV.4.1. L'objectif global du système 41

IV.4.2. Spécification fonctionnelle 41

IV.4.3. Les différentes interactions entre les rôles 46

IV.5. Conclusion 48

Chapitre V : Implémentation

V.1. Introduction 49

V.2. Outils de développement de l'application 49

V.2.1. Plate-forme MADKIT 49

V.2.2. Systèmes de gestion de base de données utilisés 51

V.3. Présentation de l'application 52

V.3.1. Architecture du système 52

V.3.2. Les sources d'informations 55

V.3.3. Captures d'écran 56

V.4. Conclusion 64

Conclusion générale 65

Annexe 67

Références Bibliographiques 70

INTRODUCTION & PROBLÉMATIQUE

Introduction

L'objectif de l'Intelligence Artificielle (IA) est de construire des programmes informatiques capables d'exécuter des tâches complexes. Elle considère les programmes comme des entités individualisées capables de rivaliser avec l'être humain ou de reproduire son comportement dans des domaines variés, notamment, elle les conçoit comme des sortes de « penseurs » repliés sur eux-mêmes. Mais cette voie s'est montrée insuffisante pour certains types de problèmes, essentiellement pour les problèmes de groupe et les problèmes de travail coopératif qui nécessite l'intervention d'un ensemble d'entités intelligentes qui doivent communiquer et coopérer, pour atteindre un objectif commun. La distribution de l'intelligence sur plusieurs entités est en fait nécessaire à la résolution de ces types de problèmes, c'est pour cette raison qu'un nouveau courant a émergé sous le label d'Intelligence Artificielle Distribuée (IAD).

Celle-ci conçoit et étudie des systèmes dans lesquels des agents artificiels opèrent de façon collective et décentralisée pour accomplir des tâches dans un environnement commun.

On va s'intéresser dans ce rapport à l'un des axes de l'IAD et plus particulièrement au thème des systèmes multi-agents (SMA) qui est actuellement un champ de recherche très actif. Il est à la connexion de plusieurs domaines, en particulier l'intelligence artificielle pour les aspects de prise de décision de l'agent, des systèmes informatiques distribués pour les interactions, et du génie logiciel pour l'approche agents et l'évolution vers des composants logiciels de plus en plus autonomes.

Ce thème s'intéresse aux comportements collectifs produits par les interactions de plusieurs entités autonomes et flexibles appelées agents.

Cependant, comme pour tout nouveau concept, la conception et le développement des SMA restent deux problèmes majeurs. Deux principales approches pour la conception des SMA peuvent se distinguer : approche organisationnelle et approche centrée agent, qu'on va les aborder pendant le deuxième chapitre de l'état de l'art.

Notre problématique dan ce rapport consiste à la conception et l'implémentation d'un SMA tout en se basant sur un Modèle Organisationnel (MO) qui va nous guider tout

le long de la conception et l'implémentation. Le développement de notre application sera assuré moyennant la plate-forme multi-agents MADKIT.

Le plan de notre rapport est constitué de cinq chapitres : Chapitre I : Systèmes Multi Agents.

Chapitre II : Méthodes de conception des SMA. Chapitre III : Plates-formes multi agents. Chapitre IV : Conception.

Chapitre V : Implémentation.

Dans la première partie, un état de l'art présente les concepts de base des SMA tout le long de trois chapitres :

Le Chapitre I a pour objectif d'introduire les SMA : on va s'intéresser tout d'abord aux entités qui composent cette catégorie de système: les agents, une fois, cette notion est définie, on introduira le concept de système multi-agents, les notions d'interaction, de coopération et d'organisation.

Dans le Chapitre II, on va se focaliser sur les méthodologies de conception des SMA, et on va s'intéresser dans ce cadre à deux principales approches de conception : approche organisationnelle et approche centrée-agent.

Le Chapitre III s'intéresse à une présentation de quelques plates-formes de développement des SMA existantes, notamment, la plate-forme Madkit.

Dans la deuxième partie, on va présenter notre approche, qui sera répartie en deux chapitres :

Le Chapitre IV sera consacré à la conception de notre système, on va présenter tout d'abord le MO sur lequel on va se baser, on va définir ses principaux concepts et aspects, par la suite on va identifier les différentes fonctionnalités de notre système et présenter une vue globale sur les interactions qui forment son architecture.

Le Chapitre V décrit le volet technique de notre système, on va proposer une description générale de l'application et de ses différentes fonctionnalités.

Problématique

L'objectif de notre travail consiste en la réalisation d'un SMA sur la base d'un Modèle Organisationnel qui va nous servir comme support pour la conception et l'implémentation de notre système. L'intérêt de l'adoption d'une telle approche est de diminuer la complexité de la tâche de conception en ajoutant des concepts d'abstraction de haut niveau tel que les organisations, les groupes, les rôles et d'assurer l'indépendance entre la phase de conception et celle de l'implémentation.

Le domaine d'application choisi est celui de l'Acquisition Coopérative d'Information (ACI) qui constitue une extension de la recherche d'information classique et qui fait appel à plusieurs disciplines (Recherche d'Informations, Bases de données, Intelligence Artificielle Distribuée).

On a opté pour un exemple type de problème, souvent traité dans de nombreux travaux, et qui est celui de l'organisation de voyage nécessitant la coopération entre de nombreuses sources d'informations dans le but de connaître des informations sur les vols, les hôtels, les horaires...

Il s'agit donc de concevoir un SMA qui a pour but de rechercher des informations à partir de sources d'informations différentes et hétérogènes afin de répondre à des requêtes externes dans le but de l'organisation d'un voyage en gérant les préférences de l'utilisateur. Les agents qui vont former notre système seront en communication continuelle afin de répondre d'une manière coopérative à la requête posée par l'utilisateur.

L'intérêt de notre travail est triple :

- L'adoption d'une approche organisationnelle pour la conception d'un SMA

d'ACI.

- La réalisation du système sur la base du Modèle Organisationnel adopté ;

- La génération de composantes conceptuelles et logiciels réutilisables.

Notre SMA sera développé sur la base de la plate-forme Madkit. Ce choix est issu du fait que cette plate-forme est à source ouverte, et qu'elle est basée sur un modèle organisationnel « Modèle AGR », ce qui nous permet d'une part de gouverner à la fois le comportement des agents et structurer l'échange informationnel entre eux et d'autre part de mettre en application les notions abstraites qu'on va évoquer lors de la phase de conception.

PARTIE 1

ÉTAT DE L'ART

CHAPITRE I : SYSTÈMES MUL TI-A GENTS

Chapitre I

Systèmes Multi-Agents

I.1. Introduction

Les Systèmes Multi-agents (SMA) rassemblent les travaux qui portent sur l'étude et la conception d'organisations d'agents autonomes, capables d'agir sur leur environnement physique et/ou social, et de communiquer ou d'interagir pour accomplir collectivement leurs tâches.

Ce chapitre introduit, tout d'abord, les notions d'agents et des SMA, et détaille par la suite les différentes questions que soulèvent la problématique des SMA, en particulier: les interactions, la coopération, la coordination, l'organisation et la communication.

I.2. Agent

I.2.1. Définition

Il n'existe pas de définition unique de ce qui est un agent. Ce terme est utilisé d'une manière assez vague [Ferber 1995].On va présenter dans cette partie les principales définitions d'agent.

La plupart des travaux font référence à cette définition :

Un agent est une entité autonome, situé dans un environnement, doué de raisonnement et capable de communiquer avec ces semblables.

Cependant, Ferber [Ferber 1995] propose une définition plus complète des agents puisqu'il fixe neuf caractéristiques pour ces derniers :

« on appelle agent une entité physique ou virtuelle :

a. Qui est capable d'agir dans un environnement (Figure 1)

b. Qui peut communiquer directement avec d'autres agents

c. Qui est mue par un ensemble de tendances (sous la forme d'objectifs individuels ou d'une fonction de satisfaction, voir de survie, qu'elle cherche à optimiser)

d. Qui possède des ressources propres

e. Qui est capable de percevoir (mais de manière limitée) son environnement

f. Qui ne dispose que d'une représentation partielle de cet environnement (et éventuellement aucune)

g. Qui possède des compétences et offre des services

h. Qui peut éventuellement se reproduire

i. Dont le comportement tend à satisfaire ses objectifs, en tenant compte des ressources et des compétences dont elle dispose, et en fonction de sa perception, de ses représentations et des communications qu'elle reçoit. »

Figure 1: Interaction de l'Agent avec son environnement.

Wooldridge et Jennings [Wooldridge 1998] ont proposé de leur part la définition

suivante:

« Un agent est un système informatique situé dans un certain environnement, capable d'exercer d'une façon autonome des actions sur cet environnement en vue d'atteindre ses objectifs. »

D'après Jennings et Wooldridge, un agent intelligent se caractérise par les propriétés suivantes :

« - Autonomie : un agent possède un état interne (non accessible aux autres) en fonction duquel il entreprend des actions sans intervention d'humains ou d'autres agents (Figure 2).

- Réactivité : un agent perçoit des stimuli provenant de son environnement et réagit en fonction de ceux-ci.

- Capacité à agir .
· un agent est mû par un certain nombre d'objectifs qui guident ses actions, il ne répond pas simplement aux sollicitations de son environnement.

- Sociabilité .
· un agent communique avec d'autres agents ou des humains et peut se trouver engagé dans des transactions sociales (négocier ou coopérer pour résoudre un problème) afin de remplir ses objectifs. »

Délibération

Perception

Action

Figure 2: État interne d'un Agent [Wooldridge 1998].

Toutes ces définitions se fondent sur des notions semblables qui caractérisent l'agent, incluant l'autonomie et la capacité d'agir et de percevoir, et permettent de distinguer plusieurs types d'agents.

I.2.2. Types d'Agent

Il existe en fait plusieurs types d'agents, qui selon les capacités qu'ils possèdent, seront qualifiés de réactifs, cognitifs ou hybrides.

a. Agent cognitif : Les agents à capacités cognitives proviennent d'une métaphore du modèle Humain. Ces agents possèdent une représentation explicite de leur environnement, des autres agents et d'eux-mêmes. Ils sont aussi dotés de capacités de raisonnement et de planification ainsi que de communication. Ces agents sont structurés en société où il règne donc une véritable organisation sociale.

b. Agent réactif : Les agents à capacités réactives ne possèdent pas de moyen de mémorisation et n'ont pas de représentation explicite de leur environnement : ils fonctionnent selon un modèle stimuli/réponse. En effet, dès qu'ils perçoivent une modification de leur environnement, ils répondent par une action programmée.

c. Agent hybride : Les agents hybrides sont des agents ayant des capacités cognitives et réactives. Ils conjuguent en effet la rapidité de réponse des agents réactifs ainsi que les capacités de raisonnement des agents cognitifs.

I.3. Système Multi-Agents

I.3.1. Définitions

Un SMA peut être défini comme un ensemble d'agents situés dans un environnement commun et interagissent selon une certaine organisation.

De son coté Ferber [Ferber 1995] défini les SMA comme étant un système composé des éléments suivants:

« 1. Un environnement E, c'est-à-dire un espace disposant généralement d'une métrique.

2. Un ensemble d'objets O. Ces objets sont situés, c'est-à-dire que, pour tout objet, il est possible, à un moment donné, d'associer une position dans E. Ces objets sont passifs, c'est-à-dire qu'ils peuvent être perçus, créés, détruits et modifiés par les agents.

3. Un ensemble A d'agents, qui sont des objets particuliers (A inclus dans O), lesquels représentent les entités actives du système.

4. Un ensemble de relations R qui unissent des objets (et donc des agents) entre eux.

5. Un ensemble d'opérations Op permettant aux agents de A de percevoir, produire, consommer, transformer et manipuler des objets de O.

6. Des opérateurs chargés de représenter l'application de ces opérations et la réaction du monde à cette tentative de modification, que l'on appellera les lois de l'univers ».

La figure 3 représente: l'interaction d'un agent avec son environnement et avec les autres agents.

Figure 3 : Un Système Multi-Agents (SMA) [Ferber 1995].

I.3.2. Caractéristiques des SMA

Les SMA ont une vision locale et décentralisée. Pour la première, chaque agent est responsable de ses connaissances et de ses actions (autonomie), mais également de l'organisation qu'il met en place avec d'autres agents. Pour la deuxième on s'efforce d'éliminer tout contrôle central. Les tâches à réaliser et les compétences pour le faire sont distribuées sur les agents.

Un SMA peut-être :

- Ouvert : les agents y entrent et en sortent librement (ex: un café).

- Fermé : l'ensemble d'agents reste le même (ex: un match de football).

- Homogène : tous les agents sont construits sur le même modèle (ex: une colonie de fourmis).

- Hétérogène : des agents de modèles différents, de granularité différentes (ex: l'organisation hospitalière).

I.4. Environnement

Dans un système multi-agents, on appelle environnement l'espace commun aux agents du système. Un environnement peut être [Russell et Norvig 95] [Wooldridge et al 2000]:

- Accessible si un agent peut, à l'aide des primitives de perception, déterminer l'état de l'environnement et ainsi procéder, par exemple, à une action. Si l'environnement est inaccessible alors il faut que l'agent soit doté de moyens de mémorisation afin d'enregistrer les modifications qui sont intervenues.

- Déterministe, ou non, selon que l'état futur de l'environnement ne soit, ou non, fixé que par son état courant et les actions de l'agent.

- Episodique si le prochain état de l'environnement ne dépend pas des actions réalisées par les agents.

- Statique si l'état de l'environnement est stable pendant que l'agent réfléchit. Dans le cas contraire, il sera qualifié de dynamique.

- Discret si le nombre des actions faisables et des états de l'environnement est fini.

I.5. Interaction

I.5.1. Définition

C'est la mise en relation dynamique de deux ou plusieurs agents par le biais d'un ensemble d'actions réciproques. C'est un élément nécessaire à la constitution d'organisations.

« On appellera situation d'interaction un ensemble de comportements résultant du regroupement d'agents possédant des compétences particulières et qui doivent agir pour satisfaire leurs objectifs en tenant compte des contraintes provenant des ressources plus ou moins limitées dont ils disposent. » [Erceau 1991]

Il existe plusieurs formes d'interactions, qui dépendent de trois paramètres : les buts, les ressources et les compétences comme l'illustre le tableau référencé Tableau 1 [Ferber 1995].

BUTS

RESSOURCES

COMPÉTENCES

TYPE DE SITUATION

CATÉGORIE

Compatibles

Suffisantes

Suffisantes

Indépendance

Indifférence

Insuffisantes

Collaboration simple

Coopération

Insuffisantes

Suffisantes

Encombrement

Insuffisantes

Collaboration coordonnée

Incompatibles

Suffisantes

Suffisantes

Compétition individuelle
pure

Antagonisme

Insuffisantes

Compétition collective
pure

Insuffisantes

Suffisantes

Conflits individuels pour
des ressources

Insuffisantes

Conflits collectifs pour
des ressources

Tableau 1 : Les Types d'interaction [Ferber 1995].

Ces différentes situations d'interaction ont été définies par [Ferber 1995] comme

suit :

· La situation d'indépendance : ne pose aucun problème du point de vue multiagent et se résume à la simple juxtaposition des actions des agents pris indépendamment, sans qu'il y ait effectivement d'interaction.

· Collaboration simple: consiste en une simple addition des compétences ne nécessitant pas d'actions supplémentaires de coordination entre les intervenants.

· Collaboration coordonnée : complexe suppose que les agents doivent coordonner leurs actions pour pouvoir disposer de la synergie de l'ensemble de leurs compétences.

· Compétition individuelle pure : quand les buts sont incompatibles, les agents doivent lutter ou négocier pour atteindre leurs buts.

· Compétition collective pure: lorsque les agents n'ont pas la compétence suffisante, ils doivent se regrouper au sein de coalitions ou d'associations pour parvenir à atteindre leurs objectifs.

· Conflit individuel pour des ressources: lorsque les ressources ne peuvent être partagées, on se trouve dans une situation caractéristique de conflit dont les ressources sont l'enjeu, chacun voulant les acquérir pour lui seul.

· Conflits collectifs pour des ressources : ce type de situation combine la compétition collective aux conflits individuels pour des ressources. Les coalitions luttent les unes contre les autres pour obtenir le monopole d'un bien, d'un territoire ou d'une position.

Parmi les différentes formes d'interaction qui existent, on va s'intéresser dans ce qui suit aux notions de coopération qui est la forme générale d'interaction la plus étudiée dans les systèmes multi-agents, notamment à la coordination d'actions.

I.5.2. Coopération

Deux agents sont en situation de coopération aux deux conditions minimales suivantes [Hoc 1996]

« -Ils poursuivent chacun des buts qui peuvent entrer en interférence, soit au niveau des résultats, soit au niveau des procédures

- oeuvrant de manière concurrente sur des sous-ensembles disjoints de données, la solution étant obtenue sous la forme d'un ensemble de solutions locales. ils font en sorte de traiter ces interférences pour que les activités de chacun soient réalisées de façon à faciliter la réalisation de celles de l'autre ou la réalisation de la tâche commune (si elle existe). »

Il existe Trois formes de coopération qui peuvent être distinguées (Figure 4) :

- La coopération confrontative, selon laquelle une tâche est exécutée par plusieurs agents de spécialités différentes oeuvrant de manière concurrente sur le même ensemble de données, le résultat étant obtenu par "fusion".

- La coopération augmentative, selon laquelle une tâche est répartie sur une collection d'agents similaires,

- La coopération intégrative, selon laquelle une tâche est décomposée en sous- tâches accomplies par des agents de spécialités différentes et oeuvrant de manière coordonnée, la solution étant obtenue au terme de leur exécution.

Coopération confrontative

 

Coopération augmentative

 

Coopération intégrative

Figure 4 : Les formes de coopération [Hoc 1996].

I.5.3. Coordination d'actions

C'est la manière dont les actions des différents agents doivent être organisées dans le temps et l'espace. La coordination d'actions a ainsi été décrite par Thomas W. Malone [Malone 1988] comme l'ensemble des activités supplémentaires qu'il est nécessaire d'accomplir dans un environnement multi-agents et qu'un seul agent poursuivant les même buts n'accomplirait pas.

Selon Ferber [Ferber 1995] la coordination d'actions est nécessaire pour quatre raisons principales:

« 1. Les agents ont besoin d'informations et de résultats que seuls d'autres agents peuvent fournir.

2 .Les ressources sont limitées : la coordination est d'autant plus importante que les ressources sont faibles Il faut donc partager ces ressources de manière à optimiser les actions à effectuer (éliminer les actions inutiles, améliorer le temps de réponse, diminuer les coûts, etc.) tout en essayant d' 'eviter les conflits éventuels (conflits d'accès, collisions, actions contradictoires, etc.).

3. On cherche à optimiser les coûts. Coordonner des actions permet aussi de diminuer les coûts en éliminant les actions inutiles et en évitant les redondances d'action.

4. On veut permettre à des agents ayant des objectifs distincts mais dépendants les uns des autres de satisfaire ces objectifs et d'accomplir leur travail en tirant éventuellement parti de cette dépendance. »

L'interaction est à la base de la constitution d'organisations, simultanément les interactions supposent la définition d'un espace et généralement d'une organisation préétablie dans lesquels ces interactions peuvent se produire.

I.6. Organisation

I.6.1. Définitions

L'organisation est définie comme un cadre d'activité et d'interaction, mis en place par la définition de groupes, rôles et de leurs relations, et considérée comme l'ensemble des relations structurelles dans un ensemble d'agents.

De sa part Fox [Fox 1981] défini l'organisation comme étant une structure décrivant les interactions et autres relations qui existent (dans le but d'assouvir un objectif commun) entre les membres de la dite organisation. De l'autre part Ferber [Ferber 1995] va dans ce sens en affirmant que les organisations constituent à la fois le support et la manière dont se passent les inter-relations entre les agents, c'est-à-dire dont sont réparties les tâches, les informations, les ressources et la coordination d'actions. Il précise que ce qui rend l'organisation si difficile à cerner est qu'elle est à la fois le processus d'élaboration d'une structure et le résultat de ce processus.

I.6.2. Les Aspects organisationnels

Dans [Hübner et al., 2002] l'organisation est décrite via une spécification structurelle, une spécification fonctionnelle et une spécification déontique.

Spécification structurelle : définit les relations entre les agents à travers les notions de groupes, rôles et liens qui sont utilisés pour structurer un SMA selon trois niveaux: individuel (comportements qu'un agent doit mettre en oeuvre lorsqu'il joue un rôle), social (relations entre rôles), et collectif (agrégation de rôles dans des structures).

Spécification fonctionnelle : explicite comment un SMA atteint généralement son but global (décomposition du but en plans, puis distribution de missions aux agents).

Spécification déontique : décrit les permissions et les obligations des rôles pour les missions.

I.6.3. Les niveaux organisationnels

On peut distinguer deux niveaux d'organisation dans les systèmes multi-agents: niveau abstrait et niveau concret :

Niveau abstrait : il désigne la structure organisationnelle : c'est ce qui caractérise, sur un plan abstrait, une classe d'organisation [Ferber 1995]. Elle est Caractérisée par des rôles affectés aux agents et des relations abstraites existant entre ces rôles.

Niveau concret : c'est une instanciation d'une structure organisationnelle, une réalisation comprenant l'ensemble des entités qui participent effectivement à l'organisation ainsi que l'ensemble des liens qui associent ces agents à un moment donné.

I.6.4. Les concepts organisationnels

Avec l'émergence de l'approche organisationnelle, on a vu apparaître de nouveaux concepts liés à l'organisation des SMA, tel que rôle, groupe, protocole, responsabilité, permission... qu'on va essayer de les définir.

Rôle : c'est une représentation abstraite d'une fonction, d'un service ou d'une identification d'un agent au sein d'un groupe. Un rôle peut être attribué à plusieurs agents et un agent peut avoir plusieurs rôles.

Un rôle représente ce que l'on attend comme comportement de l'agent dans l'organisation : travailler en coopération avec d'autres agents, et trouver son positionnement par rapport à l'organisation elle-même. Cela peut être une simple tâche à remplir vis à vis de l'application globale, mais également une relation à un statut ou une fonction dans l'organisation.

Groupe : il est définit comme la notion primitive de regroupement d'agents. Chaque agent peut être membre d'un ou plusieurs groupes.

Un groupe est avant tout un terme générique pour qualifier une communauté d'agents en relation (par interaction, par partage d'un environnement, par un but).

Permission : Elles représentent les ressources auxquelles le rôle a accès et consistent essentiellement en la liste des valeurs que le rôle a le droit de lire ou de modifier.

Responsabilité : Représentant ce que l'agent doit être capable d'assurer dans le

système.

L'organisation des agents, leurs interactions et leurs coordinations donnent naissance à des comportements sociaux qui nécessitent un moyen de communication permettant aux agents d'échanger des informations ou de transmettre des requêtes.

I.7. Communication

I.7.1. Définition

La communication peut être définie comme une forme d'interaction qui peut être exprimée par un transfert des signaux, des requêtes ou des connaissances via un médiateur.

« C'est parce que les agents communiquent qu'ils peuvent coopérer, coordonner leurs actions, réaliser des tâches en commun et devenir ainsi de véritables êtres sociaux» [Ferber 1995]

I.7.2. Protocoles de communication

Au sein d'un SMA, les agents ont besoin d'interagir pour échanger de l'information, pour se coordonner et pour coopérer. Les protocoles de communication permettent de représenter ces interactions, il existe en fait plusieurs formalismes pour ces protocoles :

· Les Automates à états finis

· Le Réseaux de Pétri

Échanger de l'information nécessite d'utiliser un langage commun. Il existe plusieurs langages de communication inter-agents qui proposent une forme structurée de messages échangés afin d'assurer une standardisation de contenu de ces messages.

Il existe aujourd'hui deux grands standards de language de communication inter- agent (ACL : Agent Communication Language)

- KQML (Knowledge Query and Manipulation Language)

- FIPA ACL, mis au point par la FIPA (Foundation for Intelligent Physical

Agents).

Langage KQML :

Le langage KQML [Finin 1994] a été proposé pour supporter la communication inter-agents. Ce langage définit un ensemble de types de messages (appelés abusivement

«performatifs») et des règles qui définissent les comportements suggérés pour les agents qui reçoivent ces messages. Les types de messages de ce langage sont de natures diverses: simples requêtes et assertions («ask», «tell»), instructions de routage de l'information («forward» et «broadcast»), commandes persistantes («subscribe», «monitor»), commandes qui permettent aux agents consommateurs de demander à des agents intermédiaires de trouver les agents fournisseurs pertinents («advertise», «recommend», «recruit» and «broker»).

Langage FIPA ACL :

Les messages dans ce langage sont sous forme des actions ou des actes communicatifs, car ils sont prévus pour effectuer une certaine action en vertu de l'envoi. Les spécifications de FIPA-ACL se composent d'un ensemble de types de message et de la description de leur pragmatique que sont, des effets sur les attitudes mentales des agents (expéditeur et récepteur). Les spécifications décrivent chaque acte communicatif avec une forme narrative et une sémantique formelle est superficiellement semblable à KQML. Sa syntaxe est identique à celle de KQML excepté différents noms pour quelques primitifs réservés[URL 1].

I.8. Conclusion

On a présenté dans ce chapitre une brève description des concepts de base des systèmes multi-agents qui présentent un domaine très ouvert pour la recherche. Il existe en fait différentes problématiques de recherche qui portent sur les différent caractéristiques d'un SMA à savoir l'organisation social des SMA, la coopération, et la communication inter-agent. Parmi les autres axes de recherches on peut citer notamment les travaux qui se sont focalisés sur les méthodes de conception multi-agent. Dans le chapitre suivant on va étudier plus en détails quelques unes.

CHAPITRE II : METHODES DE CONCEPTION DES SMA

Chapitre II

Méthodes de conception des SMA

II.1. Introduction

Les SMA ont émergé comme étant un paradigme puissant pour la conception et l'implémentation des systèmes complexes. Cependant, comme tout nouveau concept, il nécessite de nouvelles méthodes d'analyse et de conception pour guider surtout la phase d'implémentation et générer des composantes réutilisables. Durant ces dernières années, plusieurs travaux de recherche ont donné naissance à des nouvelles méthodes de conception des SMA dans le cadre d'une contribution au génie logiciel orienté agent. Une première classification de ces méthodes distingue deux grandes approches : approche organisationnelle et approche centrée-agent. On va s'intéresser en particulier à l'approche organisationnelle. Cette approche a vu le jour grâce à la constatation du critère social des agents qui existent dans le contexte d'un Système Multi-Agents. Les méthodes évoquées dans la littérature et qui utilisent cette approche sont à leur tour classées selon que ces méthodes sont l'extension de l'approche orientée-objet ou bien des nouvelles méthodes basées sur les concepts d'agent, rôle, groupe, organisation....

Dans ce chapitre on va s'intéresser à quelques méthodes de conception des SMA à savoir le modèle BDI et l'approche voyelle dans le cadre de l'approche centrée agent, et les modèles AGR, MOISE+ et GAIA dans le cadre de l'approche organisationnelle.

II.2. Approche centrée agent

L'approche centrée-agent se focalise sur l'étude des différents formalismes de représentations des connaissances internes des agents (croyance, Désire, Intention, ...). L'accent est alors mise sur le niveau micro du système et non pas sur une vue globale de l'ensemble. Le comportement du système est issu de l'ensemble des comportements

individuels et des interactions, dans ce cadre du raisonnement orienté vers la prise en compte des états mentaux, les chercheurs ont développé l'architecture BDI (Belief, Desire, Intention).

II.2.1. Modèle BDI

L'idée de base de l'approche BDI [Müller 1996] est de décrire l'état interne d'un agent en termes d'attitudes mentales et de définir une architecture de contrôle grâce à laquelle l'agent peut sélectionner le cours d'action de ses attitudes mentales. Trois attitudes mentales de base sont définis : les croyances (beliefs) les désirs (desires) et les intentions (intentions) :

· Les croyances décrivent l'état de l'environnement du point de vue d'un agent [Ferber 1995]. Elles expriment ce que l'agent croît sur l'état courant de son environnement.

· Les désirs sont une notion abstraite qui spécifie les préférences sur l'état futur de l'environnement d'un agent. Une caractéristique importante des désirs est qu'un agent peut avoir des désirs inconsistants et qu'il n'a donc pas à croire que ses désirs sont réalisables.

· Les intentions représentent les actions que l'agent s'engage à exécuter. A partir du moment où les agents sont limités par leurs ressources, ils peuvent leur arriver de ne pas pouvoir poursuivre tous leurs buts. Même si l'ensemble des buts créés est consistant, il est nécessaire que l'agent choisisse un certain nombre de buts pour lesquels il s'engage. C'est ce processus qui est appelé la formation des intentions. Ainsi, les intentions courantes d'un agent sont décrites par un ensemble de buts sélectionnés avec leur état de traitement.

Dans ce qui suit on a procédé à une brève description de l'ensemble des notions définies dans une architecture de ce type (Figure 5):

· L'agent perçoit son environnement : cette perception est utilisée pour mettre à jour un ensemble de croyances. Cet agent est muni de buts explicites, ce qui lui confère son autonomie. Ses capacités de raisonnement lui permettent de raisonner sur ses connaissances et ses buts pour en déduire des plans d'actions possibles qui décrivent des alternatives d'actions que l'agent peut mettre en oeuvre de façon à satisfaire ses buts.

· Les désirs sont issus du caractère partiel des plans possibles, les motivations sont l'expression symbolique ou numérique des préférences qui serviront de critères pour choisir entre les différents plans possibles.

· Les capacités de décision de l'agent vont donc appliquer les critères de préférences pour sélectionner parmi les alternatives possibles, le plan qui semble le meilleur. Les intentions sont donc l'expression du plan choisi et qui seront exécutés finalement sous forme d'actions sur l'environnement ou sur les autres agents via des langages de communication.

Figure 5 : Modèle BDI.

II.2.2. Approche Voyelle

C'est une approche qui incite à penser à la conception du système simultanément en termes de quatre dimensions : agent, environnement, interaction et organisation [Demazeau 1997].

· Les agents : ils concernent les modèles (ou les architectures) utilisés pour la partie active de l'agent, d'un simple automate à des cas plus complexes, comme des systèmes à base de connaissances.

· Les environnements : ils sont les milieux dans lesquels sont plongés les agents. Ils sont spatiaux dans la plupart des applications proposées.

· Les interactions : ils concernent les infrastructures, les langages et les protocoles d'interaction entre agents, depuis de simples interactions physiques à des interactions par actes de langage.

· Les organisations, qui structurent les agents en groupes, hiérarchies, relations...

II.3. Approche organisationnelle

L'approche organisationnelle se base sur les concepts de plus haut niveau d'abstraction tel que les groupes, les rôles, les protocoles d'interactions, les responsabilités, les permissions.... Elle peut être vue comme une technique qui sert à contraindre les comportements individuels des agents vers les objectifs globaux à satisfaire. On part alors d'une organisation conçue par les développeurs du SMA pour arriver aux comportements individuels de chaque agent.

On va présenter dans la partie qui suit quelques modèles qui s'inscrivent dans ce cadre organisationnel.

II.3.1. Le modèle AGR

a. Présentation du modèle

Le modèle AGR (Agent, Groupe, Rôle) [Gutknecht et al., 2004], est l'évolution du modèle AALAADIN (Figure 6) qui trouve son origine dans une réflexion sur les différents écueils des modèles centrés agents.

Aalaadin [Ferber 1998] est sans doute la plus connue des approches organisationnelles comportementalistes des SMA. Menée par O. Gutknecht et J.Ferber, cette démarche s'articule selon quatre axes :

1. Un axe conceptuel présentant un modèle s'articulant autour des trois concepts d'agent, de groupe et de rôle.

2. Un axe proposant une sémantique formelle au modèle Agent-Groupe-Rôle.

3. Un axe d'implémentation fournissant la plate-forme MadKit.

4. Un axe étudiant des pistes pour une méthodologie de conception des SMA organisationnels.

L'organisation dans ce modèle s'articule autour de trois notions : agent, groupe

et rôle.

Figure 6 : Modèle Aalaadin.

· Agent

Dans ce modèle, un agent est une entité capable d'agir et de communiquer, qui peut jouer un ou plusieurs rôles dans un ou plusieurs groupes. Il n'existe aucune contrainte sur la structure interne de l'agent.

· Groupe

Un groupe est un ensemble d'agents qui partagent des caractéristiques. Il est utilisé pour diviser l'organisation en groupant des agents dont l'activité se rejoint. Deux agents peuvent communiquer uniquement s'ils appartiennent au même groupe.

· Rôle

Un rôle est la représentation abstraite de la fonction d'un agent dans un groupe. Un rôle est local à un groupe et n'a plus aucun sens en dehors de ce contexte. Pour jouer un rôle dans le groupe, l'agent doit postuler pour ce rôle, et l'affectation se fait en fonction de ses compétences. Ces rôles peuvent être portés par un nombre d'agents arbitraire, dépendant de la situation et des normes de l'organisation.

b. Aspects méthodologiques

Pour [Gutknecht 2001], l'enjeu à long terme d'une méthodologie organisationnelle des SMA est de dégager des patterns de conceptions organisationnels, c'est à dire des

descriptions éprouvées d'organisations classiques (réseaux contractuels, organisations hiérarchiques, structure de représentant, ...) pour en faciliter la réutilisation.

[Gutknecht 2001] propose une méthodologie en cinq phases :

1. Identification des groupes. Le seul pré-requis strict est l'existence au sein du groupe potentiel d'un mécanisme de communication commun, le reste étant lié à des considérations particulières au contexte.

2. Choix ou conception d'un modèle organisationnel spécifique. Cette étape correspond à l'identification des rôles au sein des groupes dégagés au point 1.

3. Spécification de la structure organisationnelle. Il s'agit de la proposition d'une structure de document XML permettant de définir les rôles, les arités, les relations, etc. On peut aussi introduire des dépendances entre les rôles : certains rôles ne peuvent être pris que par un agent possédant déjà un autre rôle.

4. Description des schémas d'interaction. Les protocoles d'interaction entre les rôles peuvent être spécifiés par des diagrammes de séquence UML, des réseaux de Petri, des scenarii ACL ou KQML, etc.

5. Définition des architectures individuelles. C'est à cette dernière étape que le lien est effectué avec les approches centrées agent : il s'agit de choisir une architecture interne pour les agents qui soit compatible avec la spécification organisationnelle qui précède.

II.3.2. MOISE+

Dans [Hübner et al., 2002] les auteurs expliquent qu'il existe deux familles de modèles organisationnels pour les SMA. D'un côté, on trouve les modèles qui s'appuient sur des plans globaux, qui s'intéressent au fonctionnement de l'organisation. De l'autre côté, il y a les modèles qui se concentrent plutôt sur la structure du système, sur les rôles et les relations entre eux.

Le modèle Moise+ est une tentative d'unification de ces deux familles, on y retrouve donc une spécification structurelle (structure du SMA) et une spécification fonctionnelle (buts à atteindre). Afin d'expliciter la manière dont les agents collaborent

pour concourir aux buts communs, ces deux spécifications sont reliées par une spécification déontique.

a. La spécification structurelle

Dans MOISE+, il existe trois concepts principaux, rôles, relations entre rôles, et groupes (Figure 7) qui sont utilisés pour structurer un SMA selon trois niveaux : individuel (comportements qu'un agent doit mettre en oeuvre lorsqu'il joue un rôle), social (relations entre rôles), et collectif (agrégation de rôles dans des structures). MOISE+ enrichit le modèle original avec des propriétés structurelles (héritage, l'inclusion de groupes) et comportementales (compatibilité, cardinalité).

· Niveau individuel . Ce niveau est constitué d'un ensemble de rôles. Un rôle définit le comportement attendu d'un agent vis à vis des autres agents du système, lorsqu'il accepte de jouer ce rôle. Ce comportement attendu est défini d'une part par une étiquette faisant référence à un statut, à une responsabilité de l'application et d'autre part [CAS 1996], par sa mise en relation avec d'autres rôles (dans le niveau social) et par une spécification déontique en lien avec la dimension fonctionnelle.

· Niveau social . défini les relations entre rôles qui permettent de structurer les agents en fonction des rôles qu'ils jouent. Ces relations appelées liens [HAN 2000] peuvent être de trois types :

- Lien d'accointance : définit le sous-ensemble de l'organisation qu'un agent a le droit de se représenter et d'utiliser dans ses raisonnements.

- Lien de communication : structure le flot d'échanges entre les agents du système en définissant les rôles entre lesquels la communication est possible.

- Lien d'autorité : exprime la subordination d'un rôle à un autre dans le contexte des missions associées au lien.

· Niveau collectif . est constitué de rôles et de sous-groupes. À cela s'ajoutent des informations sur la cardinalité des rôles et des sous-groupes, une relation de compatibilité entre les rôles (indiquant si deux rôles peuvent être joués par le même agent), et une donnée sur la portée des liens (inter- ou intra-groupe).

Un exemple de la spécification structurel du modèle MOISE+ est présenté par la Figure 7 dans le domaine de jeux collectifs.

Figure 7 : Structure d'une équipe de robots footballeurs selon MOISE+ [Hübner et al., 2002]. b. La spécification fonctionnelle

Elle est constituée de différents Schéma Social. Un tel schéma est un ensemble de plans globaux, organisés en missions :


· Les plans globaux : définissent des arborescences de buts collectifs. Un

exemple est donné dans. Un exemple est donné dans la Figure 8 [CAS 1998]. La décomposition des buts en sous buts utilise trois opérateurs :

- séquence «,» : le plan «g2 = g6; g9» signifie que le but g2 sera satisfait si le but g6 puis le but g9 sont satisfaits.

- choix «j» : le plan «g9 = g7 j g8» signifie que le but g9 sera satisfait si un, et seulement un, des buts g7 ou g8 est satisfait.

- parallélisme «k» : le plan «g10 = g13 k g14» signifie que le but g10 sera satisfait.

Figure 8: Exemple de schéma social [Hübner et al., 2002].


· Mission : afin de spécifier le comportement attendu des agents, le concepteur peut organiser les buts de ces arborescences en ensembles cohérents appelés missions. Celles-ci dessinent des responsabilités de satisfaction de buts collectifs. L'agent qui accepte une mission s'engage à réaliser tous les buts de celle-ci. Par exemple, dans la Figure 8, la mission m2 a deux buts {g16;g21}, ainsi, l'agent qui accepte m2 est engagé à satisfaire les buts g16 et g21.

c. La spécification déontique

Elle établit le lien entre les deux premiers types de spécification. Elle est formée de permissions et d'obligations qui spécifient les missions sur lesquelles un agent prenant un rôle donné peut ou doit s'engager, respectivement. Si un agent a une obligation envers une mission, il a également une autorisation pour cette mission.

II.3.3. GAIA

La méthode GAIA (Graphical Analysis for Interactive Assistance) [Wooldridge et al. 2000] est basée sur la constatation que les techniques classiques de génie logiciel, notamment les approches orientées objet, ne sont pas appropriées à une programmation orientée agent. Cette méthodologie de conception de SMA apparaît pour compléter des notions propres aux objets afin de les appliquer aux agents. Elle couvre un cycle de vie itératif et adopte une description abstraite et semi-formelle pour exprimer le comportement prévu des rôles. Cette méthode prend comme point de départ une description de la

structure organisationnelle du Système : concepts abstraits, aboutissant progressivement vers des concepts concrets :

· Concepts abstraits : contiennent notamment les notions de rôle, responsabilité, protocole, activité, et d'interaction. Ces concepts sont utilisés pendant la phase d'analyse.

· Concepts concrets : sont le modèle d'agent, le modèle de service et le modèle d'accointance qui correspondent à la phase de conception.

Les principaux modèles de GAIA correspondant à la phase d'analyse et de conception sont présentés dans la Figure 9.

Modèle
d'Agent

Modèle de Rôle

Modèle de
Service

Spécification
de besoin

Modèle
d'Interaction

Modèle
d'Accointance

Analyse

Conception

Figure 9 : Relations entre les modèles de GAIA [Wooldridge et al. 2000]. a. Phase d'analyse

L'objectif de cette phase est de modéliser et de comprendre la structure du système sans faire référence au détail de l'implémentation. Le terme organisation est défini selon [Wooldridge et al. 2000] comme suit : «une organisation est un ensemble de rôle qui interagissent entre eux ».

· Le modèle de rôles décrit les différents rôles du système. Un rôle est défini par quatre éléments :

- Responsabilités : Elles représentent ce que l'agent doit être capable d'assurer dans le système, elles sont divisées en deux classes, les propriétés de vivacité et les propriétés de sûreté, avec les significations habituelles de ces concepts. Les premières sont exprimées sous forme d'expressions régulières dont les éléments constitutifs sont des

activités ou des protocoles ; les secondes sont quant à elles exprimées par une liste de prédicats.

- Permissions : Elles représentent les ressources auxquelles le rôle a accès et consistent essentiellement en la liste des valeurs que le rôle a le droit de lire ou de modifier.

- Activités : Ils décrivent les calculs pouvant être effectués par l'agent sans interaction avec l'extérieur, elles sont à ce stade considérées comme des éléments atomiques.

- Protocoles : Il s'agit ici de simples liens vers les protocoles définis dans les modèles d'interaction.

· Le modèle d'interactions définit les relations de dépendances entre les différents rôles. Dans ce modèle, pour chaque type d'interaction inter-rôle, est identifié un ensemble de définitions de protocoles décrivant les communications possibles entre les rôles. Les définitions de protocoles sont composées des attributs suivants :

- Le but : une brève description de la nature de l'interaction.

- L'initiateur : le ou les rôles responsables de l'initiation de l'interaction. - Le correspondant : le ou les rôles avec qui l'initiateur interagit.

- Les entrées : les informations utilisées par l'initiateur.

- Les sorties : les informations fournies par le correspondant durant l'interaction. - Le traitement : une brève description de tout traitement que l'initiateur du protocole exécute durant l'interaction.

b. Phase de conception

La phase d'analyse est suivie d'une phase de conception qui correspond au niveau concret. Son but est d'abstraction suffisamment bas pour que les techniques traditionnelles de conception puissent être employées. Durant cette phase trois modèles, contenant les entités concrètes du système :

· Le modèle d'agent : il identifie les types d'agents qui seront utilisés pour l'implémentation du système, les instances d'agents qui traduiront ces types d'agents à l'exécution.

· Le modèle de services : il définit les principaux services associés à chaque type d'agent. Un service est un bloque cohérent d'activités que l'agent s'engage à accomplir.


· le modèle d'accointance : il définit les liens de communication entre les types d'agent. Ce modèle est un simple graphe où les noeuds représentent les types d'agents et les arcs les chemins de communication.

II.4. Approche Organisationnelle VS approche centrée Agent

En adoptant une approche centrée agent, la conception des SMA s'avère inappropriée dans plusieurs cas et possède plusieurs inconvénients :

- Le nombre d'interactions inter-agents est imprévisible du moment où il n'y a pas de restrictions sur les interactions.

- Prévoir le comportement global du système en se basant sur les comportements individuels des agents est une tâche très difficile voir même impossible vue les comportements inattendus des agents et leur caractère autonome.

- Applications non sécurisées : la possibilité que tous les agents communiquent entre eux sans contrôle global peut créer des problèmes de sécurité puisqu'une intrusion d'un agent externe au système est facile à envisager.

- Absence de modularité : dans les systèmes orientés objet, les entités qui opèrent ensemble sont regroupées dans des modules ou packages. L'interaction entre ces modules (essentiellement un échange de paramètre dans l'approche orientée objet) est sujette à une restriction d'accès à tous les membres. On distingue des attributs publics et d'autres privés (inaccessible depuis l'extérieur). Dans l'approche centrée agent, le principe de modularité est totalement absent puisque chaque agent est accessible depuis n'importe quel autre agent.

L'approche organisationnelle vise à remédier toutes ces limites toute en :

- Diminuant le nombre d'interactions entre les agents puisque la structure sociale des SMA impose des contraintes d'interactions.

- Diminuant la complexité de la tâche de conception en ajoutant des concepts d'abstraction de haut niveau tel que les organisations et les groupes.

- La phase de conception est indépendante des issues d'implémentation puisqu'on ne va pas penser dès la conception à construire un agent spécifique pour jouer un rôle déterminé.

- Possibilité de concevoir des systèmes ouverts formés de composants hétérogènes où les architectures internes des agents ne sont pas spécifiées.

- Possibilité de concevoir des systèmes sécurisés puisque l'organisation d'un groupe n'est visible que pour les agents qui appartiennent à ce groupe.

- Chaque agent dispose des capacités nécessaires pour accomplir son objectif d'où l'interdépendance entre les composants du système diminue.

II.5. Conclusion

L'approche organisationnelle est apparue pour diminuer à la fois la complexité du système en diminuant le nombre d'interaction et l'interdépendance entre les composants, et la complexité de la conception des systèmes en introduisant des concepts d'abstraction de haut niveau tel que la structure organisationnelle. Cependant, il existe une grande confusion au niveau des concepts qui doivent être évoqués dans les modèles organisationnels proposés ainsi que les niveaux et les aspects organisationnels qui doivent être traités. En effet, selon plusieurs auteurs la conception des SMA selon une approche organisationnelle est encore mal appréhendée.

Peut-on s'attendre donc à la création d'une approche standard ou à une normalisation des modèles comme ce fut le cas en orienté objets avec le langage UML?

CHAPITRE III : PLATES-FORMES MUL TI-A GENTS

Chapitre III
Plates-formes Multi-agents

III.1. Introduction

Les plates-formes multi-agents sont des outils permettant de faciliter la construction et l'exploitation des SMA. Elles peuvent prendre différentes formes, allant d'outils d'ordre méthodologique, à des outils de développement, ou des supports d'exécution.

Nous allons présenter dans ce chapitre quelques exemples de plates-formes : Agent Builder, Jade, Jack, Zeus et on va s'intéresser plus en détail à la plate-forme MADKIT. On va noter les traits marquants de chacun d'eux, ce qui nous permettra de mieux mettre en évidence les choix faits sur MADKIT comme outil de développement de notre application.

III.2. Exemples de plates-formes

III.2.1. Plate-forme ZEUS

Zeus est un environnement complet qui utilise une méthodologie appelée « rôle modeling » pour le développement de systèmes collaboratifs. Les agents possèdent trois couches. La première couche est celle de la définition où l'agent est vu comme une entité autonome capable de raisonner en termes de ses croyances, ses ressources et de ses préférences. La seconde couche est celle de l'organisation. Dans celle-ci, il faut déterminer les relations entre les agents. La dernière couche est celle de la coordination. Dans celle-ci, on décide des modes de communication entre les agents, protocoles, coordination et autres mécanismes d'interactions. L'outil est un des plus complets. Les différentes étapes du développement se font à l'intérieur de plusieurs éditeurs : ontologie, description des tâches, organisation, définition des agents, coordination, faits et variables ainsi que les contraintes. Le développement de SMA avec Zeus est cependant conditionnel à l'utilisation de

l'approche « rôle modeling ». L'outil est assez complexe et sa maîtrise nécessite beaucoup de temps et d'effort.

III.2.2. Plate-forme JADE

JADE (Java Agent DEvelopement framework) est une plate-forme multi-agent qui permet le développement des systèmes multi-agents et d'applications conformes aux normes FIPA [URL 2]. Elle est implémentée en JAVA et possède trois modules principaux :

- DF « Director Facilitor » fournit un service de « pages jaunes » à la plate-forme.
- ACC «Agent Communication Channel» gère la communication entre les agents.

- AMS « Agent Management System » supervise l'enregistrement des agents, leur authentification, leur accès et l'utilisation du système.

III.2.3. Plate-forme Jack

Jack est décrit comme étant un environnement pour construire, exécuter et intégrer des systèmes multi-agents commerciaux, écrits en Java et utilisant une approche orientée composants.

La particularité de Jack est sa forte orientation vers la programmation agent, ce qui mène à une grande versatilité, l'architecture des agents pouvant aller du comportement simplement réactif au BDI complet, à l'aide de l'architecture fournie ou non. D'après [Ricordel 2001], la documentation fournie est très technique, et ne couvre pas les aspects méthodologiques, en fait comme nous l'avons déjà signalé la conception des SMA est encore mal appréhendée, particulièrement pour les aspects de l'analyse et de la conception. Le déploiement manque également de support pour cette plate-forme.

III.2.4. Plate-forme Agent Builder

Agent Builder est une plate-forme commerciale de développement de systèmes multi-agents, reposant sur Java, et proposant un certain nombre d'outils graphiques pour la conception d'agents, la génération de squelette de code, et l'interprétation et l'exécution des agents [URL 2]. Cette plate-forme présente plusieurs similarités avec ZEUS. L'élaboration

du comportement des agents se fait à partir du modèle BDI. KQML est utilisé comme langage de communication entre les agents. Un éditeur de protocoles permet de générer au moins leur squelette, sous forme de diagrammes à états finis simples. Plusieurs rôles peuvent y être définis, toutefois la notion de rôle est ici faible dans la mesure où le diagramme à états finis est global au protocole. Le parallélisme et la synchronisation ne peuvent y être représentés, visiblement. La réutilisation est limitée par le fait que les squelettes de règles sont complétés manuellement, après génération. Seules les classes définies dans les ontologies, sont facilement réutilisables. AgentBuilder est un outil complexe qui demande des efforts d'apprentissage importants et de bonnes connaissances dans le domaine des systèmes multi-agents pour être utilisé de façon performante.

III.2.5. Plate-forme MADKIT

a. Présentation

MadKit (Multi agent development Kit), est une plate-forme multi-agents, implémentée en java et a l'originalité d'être basé sur un modèle organisationnel « modèle AGR » plutôt qu'une architecture d'agent ou un modèle d'interaction spécifique. L'utilisation de groupes et de rôles associés à des agents est mis en oeuvre tant en tant qu'outil de modélisation et de conception pour les développeurs de systèmes multi-agents, que de principe d'architecture de la plate-forme elle-même. Cette architecture est basée sur un noyau agent minimal découplé de tout modèle individuel d'agent. Elle permet d'intégrer au sein d'un même outil une grande variété d'architectures d'agents et de modèles de communication. De plus, les outils de communication sont déjà implémentés et gèrent les envois de messages distants (en utilisant le protocole TCP/IP). Les agents Madkit sont des Threads Java, ils sont donc indépendants les un des autres et évoluent de manière asynchrone.

b. Architecture

La structure organisationnelle est implémentée au coeur de la plate-forme MADKIT tant pour fournir un modèle organisationnel aux SMA exécutés que pour le fonctionnement interne du système. Cette plate-forme est basée sur trois principes :

· Architecture à micro-noyau (Figure 10).

· Agentification systématique des services


· Découplage applicatif entre noyau, agents et application d'accueil.

Concrètement, MadKit est un ensemble des packages Java qui implémentent le noyau agent, diverses bibliothèques de base de messages, d'agents et de sondes.

Figure 10 : L'Architecture Générale du MadKit.

D'après [Ricordel 2001], la principale caractéristique de MadKit est son micro- noyau agent. Ce centrage sur l'infrastructure simplifie les phases de développement et de déploiement. Les phases d'analyse et de conception sont encore peu documentées, le modèle AGR étant plutôt un modèle organisationnel descriptif qu'une méthode de conception. Le principal point faible de MadKit est son manque de modèle d'agent. La construction d'agent complexe nécessite l'écriture de beaucoup de code Java. De plus, cette propriété est aussi un point fort sous certains aspects, car elle offre une plus grande flexibilité, et permet à tout programmeur Java de commencer à utiliser la plate-forme, ce qui est un atout dans un contexte pédagogique.

III.3. Conclusion

On a parcouru dans ce chapitre quelques exemples des plates-formes multi-agents et on a présenté les principaux critères de chaqu'un d'eux.

Notre choix s'est porté donc sur la plate-forme MADKIT pour les raisons suivantes :

- Cette plate-forme a l'originalité d'être basé sur un modèle organisationnel « modèle AGR» plutôt qu'une architecture d'agent ou un modèle d'interaction spécifique.

- C'est un logiciel à sources ouvertes, gratuit pour un usage d'évaluation, de pédagogie ou de recherche.

Les aspects techniques de cette plate-forme seront traités en détails dans le chapitre d'implémentation.

PARTIE 2

NOTRE APPROCHE

CHAPITRE IV : CONCEPTION

Chapitre IV

Conception

IV.1. Introduction

Dans ce chapitre, on va essayer de concevoir notre système tout en se basant sur un modèle organisationnel qui va nous servir comme support pour la spécification de la structure organisationnelle, la décomposition de but global de l'organisation en sous buts, l'identification des rôles, des différentes interactions et des ressources nécessaires.

Notre objectif est de concevoir un SMA pour l'organisation de voyage en gérant les préférences de l'utilisateur et nécessitant la coopération de plusieurs sources d'informations. Dans ce cadre, l'Acquisition Coopérative d'Informations (ACI) considère la recherche comme une résolution distribué de problème menée par des agents informationnels spécialisés et coopératifs. Elle a pour intérêt de comprendre le problème posé par l'utilisateur, le décomposer en sous problèmes pouvant être adressés à des Sources d'Information (SI) différentes, acquérir les réponses de chaque SI impliqué dans ce problème, les filtrer, les fusionner afin de fournir des réponses utiles à l'utilisateur.

Ce chapitre est organisé comme suit : dans la première partie, on va introduire le modèle organisationnel sur lequel on va se baser et on va définir ses principaux concepts et aspects. Par la suite, on va présenter le problème de l'organisation de voyage, on va identifier les différents rôles de notre système et présenter une vue globale sur les interactions qui forment son architecture.

IV.2. Présentation du modèle organisationnel

D'après [Bouslimi 2007], ce modèle inclut les principaux concepts définis dans les différents MO existants (MOISE+, GAIA,...). Il est basé sur deux niveaux : un niveau abstrait et un niveau concret.

Le niveau abstrait décrit l'organisation d'une façon abstraite sans faire référence aux agents qui opèrent réellement dans le système. Il permet au concepteur d'identifier et de représenter les interactions et de structurer l'organisation en groupes.

Le niveau concret est une instanciation de la structure organisationnelle, il permet de définir une organisation physique du système.

IV.2.1. Les principaux concepts du MO

Dans cette partie on va s'intéresser aux concepts de rôles, de règles et de groupes.

Les autres notions importantes telles que les permissions, les obligations et les règles d'organisation seront mentionnés dans les trois concepts déjà cités: un rôle peut être défini par ses obligations, et les permissions qui lui sont accordées pour accéder aux différentes ressources (Figure 11).

a. Rôle

Un rôle est défini par un ensemble de devoirs et de droits (Tableau 2) :

Les devoirs sont définis par un ensemble d'actions abstraites, un ensemble d'interventions, et leurs règles de coordination. Les actions abstraites sont les actions internes que le rôle peut réaliser sans interagir avec d'autres rôles. Les interventions correspondent aux types de messages dans lesquels un rôle est impliqué en tant qu'émetteur ou récepteur. Les règles de coordination représentent les séquences autorisées d'actions abstraites et d'interventions.

Les droits sont représentés par les ressources et les autorisations. Les ressources correspondent à l'ensemble des ressources accessibles par le rôle durant l'exécution de ses actions. Les autorisations définissent le type d'accès d'un rôle à chacune de ses ressources. L'accès d'un rôle à une ressource peut être de type lecture, écriture ou modification.

Nom du rôle

Devoirs :

Actions abstraites Interventions

Règles de coordination

Droits :

Ressources Autorisations

Tableau 2 : Structure d'un rôle.

b. Règles

Elles sont définies comme étant les lois ou les protocoles servant à organiser les échanges inter-agents, la dynamique du système dans un environnement ouvert, l'autoorganisation, et l'attribution des rôles aux agents selon un ensemble de contraintes.

c. Groupes

Le fait de rassembler les agents en groupes permet de mieux appréhender la structure et la modularité du système. Les agents peuvent être regroupés selon certains critères : ceux qui participent par exemple à l'accomplissement du même sous-but ou ceux qui ont le même rôle.

aims

goal

link

decomposed

rules

type

have

execute

1..*

1..*

interaction protocol

attribution constraint

I/O Protocole

Role

Group

1..*

1..*

1.*

1

1..*

1..*

Task

contraintes inter-rôles

contraintes intra-rôles

assign

use

Enter/Leave

Plan

1..*

sub-goal

constituted

1..*

permissions

0..*

resou rces

1..*

1..*

agent

0..*

0..*

conversation

Organisation

have

 

1..*

organised

1..*

capacities

obey

communicate

Figure 11 : Le modèle organisationnel [Bouslimi 2007].

Les concepts de rôle, d'organisation, de groupe, de but, de sous but, de tâche, de plan d'action, de règles et de permissions forment le niveau abstrait dans ce modèle.

Les ressources, les agents et les conversations forment le niveau concret de ce

modèle.

IV.2.2. Les aspects organisationnels

Il existe trois aspects principaux traités dans plusieurs travaux concernant l'organisation des SMA :

a. L'aspect structurel

C'est la description de l'aspect statique de l'organisation. Elle définit les relations entre les agents à travers les notions de groupes, rôles et liens mutuels qui sont utilisés pour structurer le SMA.

b. L'aspect fonctionnel

C'est la description de l'aspect dynamique de l'organisation à travers la spécification de but global de l'organisation, sa décomposition en sous buts et l'identification de l'ensemble de rôles qui vont exécuter ces sous buts.

c. L'aspect déontique

C'est la description des permissions, des obligations et des restrictions relatives aux rôles, à l'attribution des rôles aux agents, aux contraintes intra et inter rôles...

Cet aspect peut être définis par :

-Les protocoles d'interaction : décrient la manière avec laquelle un rôle peut communiquer avec les autres rôles ainsi que le mode de communication (synchrone, asynchrone).

-Les permissions : décrivent les ressources accessibles par un rôle et le mode d'accès à ces ressources.

-Les contraintes inter-rôles : concernent la cardinalité des agents qui peuvent jouer le même rôle en même temps.

-Les contraintes intra-rôles : dans une organisation d'un SMA, un agent peut jouer un ou plusieurs rôles en même temps. Ce type de contraintes interdit le fait q'un agent peut jouer deux rôles conflictuels en même temps, tel est l'exemple d'acheteur et de vendeur.

-Les capacités : décrivent les caractéristiques d'un agent (autonome, réactif, proactif, social ...)

-Les protocoles d'entrée /sortie : définissent les conditions qu'un agent doit satisfaire pour s'introduire ou quitter une organisation.

IV.3. Le problème d'organisation de voyage

Ce problème nécessite la coopération de plusieurs sources d'informations relatif aux différents thématiques : de transport, d'horaire, d'hébergement, ...ce qui nécessite sa décomposition en deux grands sous problèmes : celui de transport et l'autre de

l'hébergement pouvant eux même être décomposés en d'autres sous problèmes plus simples en vue d'obtenir des simples tâches de recherche d'informations. Le schéma suivant (Figure 12) donne une vue global sur ce problème.

I

Hebergement

Transport

 

I

I I

A

A

A I

 
 
 

A A

 

A I

Voyage

Transport
par Avion

Transport
par Train

I I

I

Coût_train Gares Coût_avion

Num_vol Aéroports

A

Date_début Date_fin

I

A I I

A

A

G_départ G_arrivée

Prix_train Tarifs_train

TarifsAjeune TarifsA_famille

Tarifsjeune Tarifs_famille

RA(=)

A _départ A_arrivée

Prix_Avion Tarifs_Avion

Horaire

A A A A

A A

Heure_départ

Date_départ Heure_arrivée

Date_arrivée

 

A

Type Adresse Prix DatesHébergement

I

A A A

Légende :
I : Inclusion
A : Agrégation
RA(-) : relation de compatibilité entre attributs

Figure 12 : Le problème de voyage

Dans notre exemple, un voyageur demande au système de lui organiser un voyage selon les préférences qu'il souhaite. Le système décompose cette tâche en deux sous tâches : organisation de transport et organisation d'hébergement. Le premier sous problème concernant le transport est à la base de fournir la liste des voyages disponibles conformément aux spécifications et aux préférences de l'utilisateur à propos de la destination, du départ, de la date et du moyen de transport. Une fois que ce sous problème est résolu, le souci sera l'hébergement à la ville de destination qui doit respecter la contrainte que la date d'arrivée devant correspondre à la date du début de l'hébergement. Ce problème nécessite la coopération entre plusieurs rôles pour être résolu puisqu'il nécessite la décomposition en plusieurs sous problèmes reliés entre eux et impliquant des traitements en parallèle et des interactions entre les différents rôles. Ceci justifie notre adoption d'une approche multi-agents pour la résolution de ce problème.

IV.4. Conception de notre système

IV.4.1. L'objectif global du système

Il s`agit de concevoir un SMA qui a pour but de rechercher et d'extraire des informations à partir des différentes sources d'informations afin de répondre à des requêtes externes dans le but de l'organisation d'un voyage selon les préférences du voyageur.

IV.4.2. Spécification fonctionnelle

a. Décomposition de l'objectif global

L'objectif global de notre application est de récupérer des informations afin de répondre à des requêtes externes, cet objectif peut être décomposé en plusieurs sous buts :

-Réception des spécifications de l'utilisateur

-Décomposition du problème en sous problèmes plus simples -Recherche de source d'information convenable

-Extraction des informations utiles.

-composition du résultat final.

Ceci nous mène à distinguer les rôles suivants (Figure 13) : - Rôle Médiateur

Ce rôle assure les tâches suivantes : recevoir les requêtes externes au système et les reformuler en un langage compris par les agents.

Par la suite décomposer ces requêtes, les transformer en sous requêtes plus simples et les distribuer aux coordinateurs. Et enfin réunir les réponses de ces sous requêtes pour former la réponse à la requête d'origine.

- Rôle Coordinateur

Il est chargé d'exécuter des sous requêtes provenant du médiateur. Il est en communication avec le Matchmaker en vue d'avoir des informations sur les adresses des traducteurs capables de répondre à ses sous requêtes.

- Rôle Matchmaker :

Il Fournit aux coordinateurs les adresses des traducteurs capables de répondre aux services demandés.

- Rôle Traducteur :

Il est associé à une source d'information, traduit la question posée par le coordinateur dans le langage de requête de cette source et convertit les informations extraites de sa source dans un langage compréhensible par le coordinateur.

Spécification de l'utilisateur

Médiateur

Utilisateur

Coordinateur

Coordinateur

Traducteur

Matchmaker

Traducteur

Source
d'information

Source
d'information

Figure 13 : Structure du système. b. Spécification des rôles

Dans cette partie on va détailler les différents rôles conformément à la structure déjà définie par le modèle organisationnel.

Pour présenter l'ordre des enchaînements des tâches ainsi que le nombre d'occurrence, on a utilisé le formalisme de notation suivant :

T1 + T2 : la tâche T1 suivie de T2.

T1 || T2 : les deux tâches peuvent s'exécuter en parallèle. T* : la tâche T se répète plusieurs fois.

Après la saisie des données par l'utilisateur et le lancement de la recherche, il y aura création d'un agent qui va jouer le rôle Médiateur dont le but principal est de collecter les spécifications de l'utilisateur, de les reformuler, de décomposer le problème, stocker les résultats qui proviennent et enfin les réunir pour composer le résultat final (Figure 14).

Médiateur

Devoirs

Actions abstraites :

· T1 : Reformulation de la requête de l'utilisateur

· T2 : Décomposition de la requête en sous requêtes

· T3 : Stocker les résultats reçus

· T4 : Composition du résultat final

Interventions :

· T5 : Réception des spécifications de l'utilisateur

· T6 : Envoie des sous requêtes aux coordinateurs

· T7 : Réception des résultats des coordinateurs

· T8 : Envoie de la réponse finale à l'utilisateur Règle de coordination : T5+T1+T2+ (T6+ T7+T3)* +T4+T8 Droits

Ressources : Ø

Autorisations : Ø

Figure 14 : Rôle Médiateur.

Une fois que l'agent jouant le rôle Médiateur a envoyé ses sous requêtes, il y aura création de deux agents qui vont jouer le rôle Coordinateur (Figure 15), chacun d'entre eux va envoyer une demande de recrutement d'un Traducteur auprès du Matchmaker, lors de la réception du l'adresse du Traducteur, il envoie la sous requête au Traducteur correspondant, et il communique le résultat reçu au Médiateur.

Coordinateur

Devoirs

Actions abstraites :

· T1 : demande de recrutement d'un traducteur au Matchmaker Interventions :

· T2 : Réception de sous requêtes provenant du médiateur

· T3: Réception de l'adresse du traducteur

· T4 : Envoie de sous requête au traducteur concerné

· T5 : Réception du résultat du traducteur

· T6 : Envoie du résultat au médiateur

· T7 : Envoie d'informations supplémentaires

Règle de coordination : T2+T1+T3+T4+T5+ (T6||T7)

Droits

Ressources : Ø

Autorisations : Ø

Autorisations : Lecture

Figure 15 : Rôle Coordinateur.

L'agent jouant le rôle Matchmaker (Figure 16) a pour principal but de fournir à l'agent jouant le rôle Coordinateur la liste des Traducteurs capables de répondre à ces besoins.

Matchmaker

Devoirs

Actions abstraites :

· T1 : sélection de traducteur convenable

Interventions :

· T2 : réception de requête de coordinateur

· T3 : réception de publication de capacités de traducteur

· T4 : envoie de l'adresse de traducteur au coordinateur Règle de coordination : (T3*) || (T2+T1+T4)

Droits

Ressources : Ø

Autorisations : Ø

Figure 16 : Rôle Matchmaker.

Chacun des deux agents Coordinateur va communiquer la sous requête qui lui provient du Médiateur à un agent Traducteur (Figure 17) affecté à une source d'information. Après avoir publié ses capacités chez le Matchmaker et recevoir les sous requêtes, l'agent jouant le rôle Traducteur convertit ces sous requêtes reçues en langage de requête de la source d'information qui lui est affectée. Par la suite, il extrait les informations utiles de cette source, traduit les résultats obtenus en langage de communication des agents et enfin il les envoie à l'agent jouant le rôle Coordinateur.

Traducteur

Devoirs

Actions abstraites :

· T1 : traduction de la requête reçue en langage de requête de son système

d'information

· T2 : extraction des informations

· T3 : traduction de résultat en langage compréhensible par l'agent Interventions :

· T5 : publication des capacités

· T6 : Réception de sous requête de coordinateur

· T7 : envoie de sous requête à la source d'information

· T8 : réception du résultat

· T9 : envoie du résultat à l'agent coordinateur

Règle de coordination : (T5 *)| | (T6+T1 +T7+T2+T8+T3+T9)

Droits

Ressources : base de données

Autorisations : lecture

Figure 17 : Rôle Traducteur. c. Contraintes d'attribution des rôles

- Contraintes intra-rôles

Le système qu'on souhaite développer se base sur un ensemble d'agents travaillant en coopération afin d'accomplir un objectif globale. Chaque agent, amené d'accomplir un tel sous objectif, est chargé d'exécuter un ou plusieurs rôles à condition que ceux-ci ne soit pas conflictuels. Dans notre système chaque agent est chargé d'exécuter un rôle unique.

L'agent jouant le rôle Médiateur par exemple ne peut exécuter que ce rôle au sein de l'organisation (présenté par la notation conflit dans le Tableau 3).

- Contraintes inter-rôles

Ce type de contrainte définie la cardinalité des agents qui peuvent jouer le même rôle en même temps au sein d'une même organisation. Concrètement, notre système inclut d'une part des rôles attribués chacun à un seul agent, le cas de l'agent jouant le rôle Matchmaker, de l'autre part, il inclut des rôles attribués chacun à plusieurs agents, le cas des agents jouant le rôle Traducteur, de même les agents jouant le rôle coordinateur (Tableau 3).

 

Médiateur

Coordinateur

Matchmaker

Traducteur

Contrainte intra-rôle

Conflit

Conflit

Conflit

Conflit

Contrainte inter-rôle

1..1

1..2

1..1

1..2

Tableau 3 : Les Contraintes d'attribution des rôles.

IV.4.3. Les différentes interactions entre les rôles

Après la spécification fonctionnelle des rôles, le diagramme de séquences présenté par la Figure 18 suivante donne une vue globale sur les interactions entre ces différents rôles.

Figure 18 : Diagramme de séquence des rôles

47

Dans cette figure, un utilisateur saisie ses préférences concernant son voyage. Le Médiateur décompose le problème en deux sous problèmes et les sous-traite à deux Coordinateurs. Chaque Coordinateur envoie au Matchmaker une demande pour lui fournir l'adresse d'un traducteur pouvant répondre aux sous requête qu'il prend en charge. Le Matchmaker répond à chaque Coordinateur en fournissant l'adresse du Traducteur sélectionné. Chaque Coordinateur peut ensuite sous-traiter auprès du Traducteur correspondant la sous requête qu'il prend en charge. Chaque traducteur accède à la source de donnée qui lui est affectée pour extraire les données nécessaires. Lorsque tous les Coordinateurs fournissent la réponse au Médiateur, celui-ci peut composer ses réponses et fournir le résultat à l'utilisateur.

IV.5. Conclusion

Dans ce chapitre, on a adopté une approche organisationnelle pour la conception de notre système. Ceci a pour avantages de diminuer la complexité de la tâche de conception en ajoutant des concepts d'abstraction de haut niveau tel que les organisations, les groupes, les rôles...Et d'assurer l'indépendance entre la phase de conception et celle d'implémentation puisqu'on ne va pas penser dès le début à construire un agent spécifique pour jouer un rôle déterminé. Dans le chapitre qui suit on va passer au développement de notre système.

CHAPITRE V : IMPLÉMENTATION

Chapitre V
Implémentation

V.1. Introduction

Après avoir identifié les différentes fonctionnalités de notre système à travers la décomposition fonctionnelle de l'objectif global de l'organisation et la détermination des différents rôles qui composent notre application, nous allons passer à la dernière phase de notre projet : l'implémentation du SMA. Nous allons alors mettre en oeuvre la démarche conceptuelle adoptée dans le chapitre précédent afin d'aboutir à une organisation concrète d'un SMA d'ACI.

Le présent chapitre est structuré comme suit : la section 2 est consacrée à la description des outils logiciels utilisés lors du développement de notre application à savoir la plate-forme MADKIT et les deux SGBD MySQL et Access. La section 3 est dédiée à une présentation des schémas conceptuels des bases de données utilisées, de l'architecture d'implémentation du système et de quelques interfaces. Enfin, nous exposerons les conclusions de cette phase et dégagerons quelques perspectives.

V.2. Outils de développement de l'application V.2.1. Plate-forme MADKIT

Comme nous l'avons déjà mentionné, notre système est développé sur la base de la plate-forme Madkit qui est une plate-forme destinée au développement et à l'exécution des SMA fondés sur des critères organisationnels (groupes et rôles).

En fait, la plate-forme Madkit est basée sur un MO (le modèle AGR) qui permet en particulier de caractériser les agents en utilisant la notion de groupe et de rôle.

Dans cette partie on va s'intéresser avec plus de détails aux aspects techniques de la structure et des fonctions des agents dans cette plate-forme qui propose une librairie de classe JAVA pour la réalisation de ces agents.

Structure et fonctions d'un agent

La classe de base d'un agent MadKit (AbstractAgent)[URL 3], définit quelques fonctionnalités de base qui sont associées à chaque agent et qui sont :

· Cycle de vie

Le cycle de vie d'un agent est composé d'une séquence de quatre états : création, activation, exécution, et destruction.

Les agents héritant de la classe Agent doivent implémenter les méthodes suivantes:

public void activate() : qui est lancée lors de l'initialisation de l'agent

public void live() : qui définit le comportement permanent de l'agent.

On peut également employer la méthode end(), qui est appelée par le noyau si on lui demande d'arrêter l'agent.

· Communication

La communication est implémentée sous forme de passage de message asynchrone, soit d'un agent à un autre identifié par son AgentAddress ou son groupe et rôle, soit sous la forme d'une diffusion à tous les teneurs d'un rôle dans un groupe donné.

· Organisation

Tout agent dispose de primitives permettant d'observer son organisation locale (connaître les groupes et rôles courants) et d'y agir (prise de rôle, entrée et retrait d'un groupe).

· Outils

La classe de base des agents permet également de manipuler une éventuelle interface graphique associée à l'agent, les flots d'entrée/sortie ...


· Messages

Les messages sont définis par héritage à partir d'une classe de base Message qui ne définit que la notion d'émetteur et de destinataire. Une bibliothèque de messages de base (Figure 19) est néanmoins fournie et permet l'envoi de chaînes, d'objets sérialisés, de documents XML, ou bien de messages conformes aux spécifications KQML et FIPA-ACL.

AbstractMessage

Message

 
 
 
 
 
 
 
 

ActMessage

 

StringMessage

 
 
 

XMLMessage

 
 
 

ObjectMessage

 
 
 
 
 
 
 
 
 
 

KQMLMessage

 

ACLMessage

 
 
 

Figure 19 : Hiérarchie des messages standards dans Madkit.

V.2.2. Systèmes de gestion de base de données utilisés

Une base de données permet de mettre des données à la disposition des utilisateurs pour une consultation, une saisie ou bien une mise à jour, tout en respectant leurs droits. La gestion de la base de données se fait grâce à un système appelé système de gestion de bases de données (SGBD)

Un SGBD est un ensemble de services (applications logicielles) permettant de gérer les bases de données : permet d'accéder aux données d'une façon simple, d'autoriser un accès aux informations à de multiples utilisateurs et de manipuler les données présentes dans la base de données...

Dans notre application, nous avons opté aux choix de deux SGBD Access et MySQL pour la consultation et l'extraction des informations indispensables de répondre aux requêtes externes provenant de l'utilisateur.

· SGBD Access

Microsoft Access est un Système de Gestion de Base de Données Relationnel (SGBD-R) présentant une approche bureautique et n'est pas conçu pour supporter de très grandes bases de données opérationnelles sur de vastes réseaux. En Java, Microsoft Access peut être utilisé de façon transparente à l'aide de la passerelle JDBC-ODBC [URL 4].

· SGBD MySQL

MySQL est dérivé de SQL (Structured Query Language), en français, langage de requête structurée. C'est un système de gestion de base de données relationnel. Concrètement, SQL permet de dialoguer avec une base de données en langage presque courant. SQL s'utilise surtout via une fenêtre de commande, MySQL s'utilisant via un langage de programmation, PHP étant le langage de prédilection de MySQL. Le meilleur moyen de se mettre à MySQL et de progresser est d'installer EasyPHP. EasyPHP est un logiciel freeware qui crée un environnement serveur complet à la fois pour PHP et MySQL[URL 4].

Il est à noter que les deux SGBD présentés ci-dessus, sont utilisés afin de concevoir et réaliser deux Base de Données différentes et qui vont constituer par la suite nos deux sources d'informations depuis lesquelles nous allons extraire les données nécessaires afin de répondre à la requête de l'utilisateur.

V.3. Présentation de l'application V.3.1. Architecture du système

Le but essentiel de notre travail est la réalisation d'un SMA d'acquisition coopérative d'informations pour l'organisation d'un voyage en gérant les préférences de l'utilisateur. On va préciser dans cette partie comment se déroule le traitement d'un tel problème : L'utilisateur soumet son problème à l'interface et reçoit par la suite une réponse à sa requête .Cette réponse est assurée via un ensemble d'agents qui vont être en communication continuelle afin de répondre d'une manière coopérative à la requête posée par l'utilisateur. Les agents formant notre système sont :

- Un agent jouant le rôle Médiateur qui va se charger de la décomposition de problème en deux grands sous problèmes le premier concernant le voyage, et le deuxième concernant l'hébergement.

- Deux agents jouant le rôle Coordinateur : Coordinateur 1 et Coordinateur2.

Le Coordinateur 1 va se charger du premier problème concernant le voyage et le

Coordinateur2 va prendre la charge du deuxième problème concernant l'hébergement.

- Un agent jouant le rôle d'un Matchmaker qui va localiser les agents capables de

répondre à une requête donnée.

- Deux agents jouant le rôle Traducteur : Traducteur 1 et Traducteur2.

Le premier agent sera affecté à une source de données Access disposant des données sur les voyages, et le deuxième sera affecté à une source de données MySQL.

La figure référencée Figure 20 présente une vue globale sur l'architecture de notre

SMA.

Figure 20 : Architecture du système.

V.3.2. Les sources d'informations

Comme nous l'avons déjà mentionné, la réalisation de notre système nécessite la coopération de plusieurs sources d'informations différentes. En fait pour pouvoir organiser un voyage, il faut disposer de plusieurs informations relatives à ce type de problème : des informations sur les voyages disponibles, les dates de départ et d'arrivées des voyages, les horaires, les prix...notamment des informations sur l'hébergement : les hôtels disponibles, les adresses des hôtels, les disponibilités des chambres ...

Les informations concernant le voyage sont stockées dans une base de données Acces s dont le modèle conceptuel présenté par la Figure 21.

Figure 21 : Table Voyage.

Les informations concernant l'hébergement sont stockés dans une base de données MySQL, Le modèle conceptuel de cette base est présenté ci-dessous (Figure 22).

date

de but

date

fin

HOTEL

NumHotel no m_hote l ville

rue

Chambre

NumChamb re

Correspond

0, n

1,1

Reservation

1,1

1,n

Appartient

NumReservati on

_

_

Figure 22 : Modèle Conceptuel de la base Hébergement.

Le modèle logique de cette base de données est le suivant :

Hôtel (Num_Hotel, NomHoltel, Rue, CodePostal) ;

Chambre (Num_Chambre, #Num_Hotel) ;

Réservation (Num_Réservation , #Num_Chambre, Date_Debut , Date_Fin) ;

V.3.3. Captures d'écran a. Interface de l'application :

Figure 23 : Interface de l'application

La figure ci-dessus (Figure 23) représente l'interface principale de l'application.

Cette interface est en fait un agent MadKit disposant de certaines capacités et qui est dans notre cas l'agent Médiateur qui se charge de la réception du problème provenant de l'utilisateur, et par la suite le décomposer et l'envoyer aux coordinateurs.

L'interface permet aux utilisateurs d'effectuer leurs requêtes et permet aussi de gérer leurs préférences.

Pour cela l'interface est composée de :

- six listes de choix, la première pour le choix de moyen de transport, la deuxième pour le choix de la ville de départ, la troisième pour le choix de la ville de destination, et trois listes pour le choix de la date désiré : jour, mois et année.

- quatre boutons d'option : Les deux premier pour le choix de type de tarif : soit tarif jeune soit tarif famille. Si le tarif choisi est jeune, le voyageur va bénéficier d'une réduction de 20% sur le prix de son voyage.

Les deux autres boutons d'option sont pour le choix de la date désirée pour le voyage : soit la date de départ, soit la date d'arrivée.

- deux boutons : bouton Rechercher pour lancer la recherche des voyages et des hôtels disponibles, bouton Quitter pour quitter l'application

b. Les interfaces des agents

Comme nous l'avons signalé, notre SMA est composé d'un ensemble d'agent communicant tout le long de leur cycle de vie de façon continue afin de répondre d'une manière coopérative à la requête posée par l'utilisateur. Cette communication est assurée via un échange de messages String entre les différents agents du système. En effet, dès le lancement de la recherche, le Médiateur se charge de lancer tous les autres agents du système qui vont par la suite résoudre le problème reçu d'une manière coopérative jusqu'à l'obtention du résultat final.

Lors du fonctionnement de chaque agent, il indique qu'il est entré dans la communauté associée au projet à lequel il appartient, aussi dans le groupe qui lui correspond avec le rôle qui lui est attribué. Par exemple dans la Figure 24 l'agent Médiateur indique qu'il appartient à la communauté travel, et joue le rôle médiateur dans le groupe nommé Gmed.

Dans cette interface on peut également visualiser les différents messages reçus par

l'agent.

Dans ce qui suit on va présenter les interfaces affectées à chaque agent tout le long de son cycle de vie.

Figure 24 : Interface Médiateur.

Figure 25 : Interface Coordinateur 1.

Figure 26 : Interface Coordinateur2.

Figure 27 : Interface Matchmaker

Figure 28 : Interface Traducteur 1.

Figure 29 : Interface Traducteur2.

Il est possible de voir le fonctionnement des agents en utilisant le GroupObserver (Figure 30) qui est un agent Madkit qui permet d'observer la structure organisationnelle du système, c'est-à-dire l'ensemble des groupes et des rôles et la participation des agents aux groupes et aux rôles.

Figure 30 : Agent GroupObserver.

Le GroupObserver permet aussi de tracer les messages qui ont lieu entre les agents et notamment tous les messages à l'intérieur d'une communauté ou d'un groupe. La Figure 31 représente un exemple d'échange de messages entre les agents du système lors de la réception d'une requête.

Figure 31 : Exemple des messages échangés par les agents.

c. L'interface résultat

L'interface résultat représente le résultat final affiché par l'agent médiateur après avoir reçu les résultats provenant des agents coordinateurs.

La figure 32 est une capture d'écran d'un résultat proposé à un utilisateur, suite à une demande d'organisation de voyage.

L'interface est composée de deux tableaux :

- Le premier affiche les informations concernant les différents voyages disponibles correspondant aux préférences saisies par l'utilisateur : le numéro de voyage, les dates de départ et d'arrivée, l'heure de départ et d'arrivée de voyage.

- Le deuxième affiche les informations concernant les hôtels se trouvant dans la ville de destination choisie, et qui doivent être disponibles à la date d'arrivée du voyageur et disposer des chambres non réservés.

Figure 32 : Interface Résultat.

Pour un accès rapide à notre système, on a le choix d'accéder soit par double click sur l'icône de bureau portant le nom `Organisation de Voyage' soit par le menu démarrer du desktop MadKit :MadKit>SMA>Organisation de Voyage comme le présente Figure 33 :

Figure 33 : Menu principal.

V.4. Conclusion

Dans ce chapitre, nous avons présenté le volet technique de notre application. Il s'agit d'un système composé d'un ensemble d'agents qui se communiquent d'une manière continue et qui se chargent de la recherche et de l'extraction des informations dans le but de répondre d'une manière coopérative à une requête externe.

On a définit les aspects techniques utilisés lors de l'implémentation de notre SMA tels que la plate-forme Madkit et les SGBD-R Access et MySQL, et on a présenté les différents composants de notre système : les différents agents présentés via les captures d'écran.

On a respecté aussi les divers rôles et fonctionnalités fixés dans la phase de conception lors de développement de notre application et lors de la création des différents agents composant notre système.

Toutefois, des améliorations sont toujours envisageables :

- La structuration des messages échangés en utilisant des langages plus évolués tel que KQML et FIPA-ACL

- Déployer l'application dans le cadre du Web, ainsi les sources d'informations seront des sites hétérogènes et l'accès sera assuré via des API tel que Google ou Yahoo.

CONCLUSION GÉNÉRALE

Conclusion générale

On s'est intéressé dans ce travail à l'un des nouveaux paradigmes en informatique, présent actuellement comme un champ de recherche très actif, celui des Systèmes MultiAgents (SMA). Ce paradigme est apparu pour répondre aux exigences des applications complexes dont la réalisation nécessite la coopération entre plusieurs entités (agents). Le concept de base de ce domaine est la notion d'agent, qui représente une entité autonome capable de percevoir, de représenter et d'agir sur son environnement.

Les premiers SMA implémentés se sont focalisés sur la rubrique la plus fine qui est celle de l'agent. D'où l'émergence des travaux qui ont porté sur le modèle de raisonnement des agents tel que l'approche BDI. Par la suite, et vu la constatation du caractère social des agents qui existent souvent dans le cadre d'un SMA, l'accent est mise sur une nouvelle approche de conception : l'approche organisationnelle. Cette approche se base sur des concepts de plus haut niveau d'abstraction tel que les groupes, les rôles, les protocoles d'interactions, les normes et les permissions. Elle peut être vue comme une technique qui sert à contraindre les comportements individuels des agents vers les objectifs globaux à satisfaire. On part alors d'une organisation conçue par les développeurs du SMA pour arriver aux comportements individuels de chaque agent. C'est dans ce contexte que se situe notre travail qui consiste en l'adoption d'une approche organisationnelle pour la conception est l'implémentation d'un SMA dévoué au domaine de l'Acquisition Coopérative d'Informations (ACI).

Ce travail nous a permis d'aborder des domaines originaux par rapport aux études effectuées lors de notre cursus universitaire :

- Le domaine des SMA et plus précisément leur aspect conceptuel ;

- Le domaine d'ACI appliqué au problème d'organisation de voyage ;

- L'aspect technique relatif au développement des SMA via la plateforme

MadKit.

Le système développé a pour principal objectif de rechercher et d'extraire des informations à partir de sources d'informations différentes et hétérogènes afin de répondre à des requêtes externes. Notre contexte applicatif était l'organisation de voyage et le souci

de notre SMA était de fournir la bonne réponse devant être conforme aux besoins de l'utilisateur. Ceci est assuré moyennant la plate forme Madkit.

Toutefois, des améliorations sont envisageables :

- Tenir compte de l'interaction avec l'utilisateur lors de l'exécution. En effet, l'utilisateur peut interagir avec le système pour mentionner ses préférences ou reformuler sa requête initiale. Cet aspect est relativement difficile à réaliser et représente une lacune de plusieurs systèmes d'ACI présents dans la littérature ;

- Utiliser des API tel que Google ou Yahoo comme sources d'informations au lieu d'un simple SGBD ;

- Evaluer expérimentalement l'apport de l'adoption d'une approche organisationnelle par rapport à une approche centrée-agent.

ANNEXE

Annexe

1. Scripts de création de la base de données Hébergement

Dans cette partie on va s'intéresser à présenter les scripts de création des bases de données, générés par le logiciel AMC designer, dédié essentiellement au développement des applications à base de méthode de conception MERISE. Ces scripts sont générés suite au modèle conceptuel de donnée (MCD) qu'on a élaboré et qui est présenté dans le chapitre d'implémentation.

On va commencer par les scriptes de création de la base de données Hébergement et de scripts de leurs tables : HOTEL, CHAMBRE et RESERVATION .

-- Nom de la base : HEBERGEMENT -- Nom de SGBD : MySQL

-- Date de création : 30/04/2008 04:03

Create database HEBERGEMENT ;

 
 

-- Table: HOTEL

 
 
 

create table HOTEL

( NUMHOTEL varchar(20) not null,

NOM _HOTEL varchar(30) null ,

VILLE varchar(10) null ,

CODEPOSTAL varchar(10) null ,

RUE varchar(30) null ,
constraint PK_HOTEL primary key (NUMHOTEL)

);

-- Table: CHAMBRE

 
 
 

create table CHAMBRE;

 
 
 

( NUMCHAMBRE varchar(20) not null,

NUMHOTEL varchar(20) not null,

constraint PK_CHAMBRE primary key (NUMCHAMBRE)

);

 
 
 

-- Index: LIER_FK

 
 
 

create index LIER _FK on CHAMBRE (NUMHOTEL asc); /

-- Table: RESERVATION

create table RESERVATION

(

NUMRESERVATION varchar(20) not null,

NUMCHAMBRE varchar(20) not null,

DATE_DEBUT date null ,

DATE_FIN date null ,

constraint PK_RESERVATION primary key (NUMRESERVATION)

);

====================================================

-- Index : ASSOC_6_FK

====================================================

create index ASSOC_6_FK on RESERVATION (NUMCHAMBRE asc)

/

alter table CHAMBRE

add constraint FK _CHAMBRE _LIER _HOTEL foreign key (NUMHOTEL)

references HOTEL (NUMHOTEL)

/

alter table RESERVATION

add constraint FK _RESERVAT _ASSOC_6 _CHAMBRE foreign key (NUMCHAMBRE) references CHAMBRE (NUMCHAMBRE)

/

Celui-ci correspond au script de création de la base de données VOYAGE exécutée par le SGBD Access, elle ne contient que la table voyage contenant l'ensemble des voyages.

2. Scripts de création de la base de données Voyage
-- Nom de la base : VOYAGE

create database VOYAGE

/

 
 
 
 
 

-- Table : VOYAGE

 
 

create table VOYAGE (

NUM_VOYAGE TEXT not null,

DATE_DEPART DATE not null,

DATE_ARRIVEE DATE not null,

HEURE _DEPART DATE null ,

HEURE _ARRIVEE DATE null ,

VILLE _DEPART TEXT null ,

VILLE _ARRIVEE TEXT null ,

PRIX FLOAT(10) null );

RÉFÉRENCES BIBLIOGRAPHIQUES

Références Bibliographiques

[Bouslimi 2007] Bouslimi I, Barika F. (2007). A multi-agent organizational design of a distributed intrusion detection system

[CAS 1996] Castelfranchi C., Commitments : From Individual Intentions to Groups and Organizations.

[CAS 1998] Castelfranchi C., Modeling Social Action for AI Agents.

[Demazeau 1997] Demazeau, Y. (1997). Steps towards multi-agent oriented programming. In First international workshop on multi-agent systems.

[Erceau 1991] J.Erceau. J.Feber . 1991. L`Intelligence Artificielle Distribuée. [Ferber 1995] J. Ferber. Les systèmes multi-agents, vers une intelligence collective. [Ferber 1998] J.Feber, design of organizations in multi-agent systems.

[Finin 1994] T. Finin and R. Fritzson. KQML: a language and protocol for knowledge and information exchange.

[Fox 1981] Fox, M. (1981). An organizational view of distributed systems. In IEEE Transactions onSystems, Man, and Cybernetics.

[HAN 2000] Hannoun M., Boissier O., Sichman J, Sayettat C.,MOISE : An Organizational Model for Multi-A gent Systems

[Gutknecht, 2001] Gutknecht, O., Michel, F., et Ferber, J. (2001). Integrating tools and infrastructures for generic multi-agent systems. In Proceedings of Autonomous Agents 2001 conference.

[Gutknecht et al ., 2004] Gutknecht, O., Ferber, J., et Michel, F. (2004). From agents to organizations : an organizational view of multi-agent systems.

[Hoc 1 996]Hoc, J.M (1996) supervision et contrôle de processus la cognition en situation dynamique

[Hübner et al. . 2002] Hübner, J. F., Sichman, J. S., and Boissier, O. (2002). A model for the structural, functional, and deontic specification of organizations in multiagent systems.

[Malone 1988] Malone T. W. (1988) What is coordination theory.

[Müller 1996] J. P. Müller. The Design of Intelligent Agents - A layered Approach. [Ricordel 2001] P.-M. Ricordel. Programmation Orientee Multi-Agents : Developpement et Déploiement de Systèmes Multi-Agents Voyelles.

[Russell et Norvig 1995] : Russell, S. and Norvig, P. (1995). Artificial Intelligence : a Modern Approach.

[Wooldridge 1998] : Wooldridge, Jennings, Sycara, A Roadmap of Agent Research and Development

[Wooldridge et al. 2000] M. Wooldridge, N. R. Jennings, and D. Kinny. The Gaia

Methodology For Agent-Oriented Analysis and Design

.

Liste des URLs

[URL 1]: www.turing.cs.pub.ro/auf2/html/chapters/chapter1/chapter_1_2_4.html [URL 2]: www.limsi.fr/~jps/enseignement/examsma/2005/1.plate-formes_3 [URL 3]: http://www.madkit.org

[URL 4] : http://www.Wikipédia.org






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Je ne pense pas qu'un écrivain puisse avoir de profondes assises s'il n'a pas ressenti avec amertume les injustices de la société ou il vit"   Thomas Lanier dit Tennessie Williams