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

 > 

Intégration d'ontologie dans les actes de communication inter-agents

( Télécharger le fichier original )
par Mohamed GOUASMI
Université Ibn Khaldoun de Tiaret - Ingénieur d'état en informatique Option systèmes d'informations avancés 2005
  

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

INTRODUCTION GENERALE 1

PARTIE ETAT DE L'ART

I. Introduction 4

II. Problématique 5

II.1 Position du problème 5

II.2 Objectifs de notre travail 6

II.3 Définitions 7

II.3.1 Agent 7

II.3.2 Commerce électronique 7

III. Concept Agent et SMA 9

III.1 Définitions 9

III.2 Architecture d'agent 12

III.3 Une comparaison avec les objets 12

III.4 Classes d'agent : 14

III.5 Les systèmes multi-agents 15

III.5.1. Définition: Système multi-agent (SMA) 15

III.6 Les interactions et les agents 17

III.6.1 La communication 17

III.6.1.1 La communication par l'envoi de messages 18

III.7 Les langages de communication 18

III.7.1 La théorie des actes de langage 19

III.7.2 KQML 20

III.7.3 FIPA ACL 21

III.8 Les SMA : Coopération, Négociation et Coordination 23

III.8.1 La coopération 23

III.8.2 La négociation 24

III.8.3 La coordination 25

IV. Les ontologies 27

IV. 1 Définitions 27

IV.2 Construction d'une ontologie opérationnelle 31

IV.3 Rôle des ontologies dans les agents et les SMA 32

IV.4 Fonctions de l'ontologie et du langage de contenu dans JADE 34

IV.4.2 Le modèle de contenu de référence 37

V. Le formalisme CATN (Coupled Augmented Transition Network) 40

V.1 Définition 40

V.2 Les composants du formalisme CATN 41

V.3 Interactions entre CATN 42

V.4 Exemple de CATN : Offre de service 43

V.5 Un formalisme comparable 44

VI. Conclusion 46

PARTIE REALISATION

I. Introduction 47

II. Spécification des comportements des agents 47

II.1 Description des agents et de leurs types 48

II.1.1 Les agents acheteurs 48

II.1.2 Les agents vendeurs 48

II.2 Spécification des interactions inter-agents par le CATN 49

II.3 Enumération des actes de communication des agents 51

III. Représentation de la plate-forme JADE 53

III.1 Pourquoi la plateforme JADE? 53

III.2 La norme FIPA pour les systèmes multi-agents 53

III.3 L'environnement JADE 55

III.4 L'architecture de la plate-forme multi-agents 56

III.5 Les Actes de communication 58

IV. Définition et description de l'ontologie utilisée 62

IV.1 Définition de l'ontologie 63

IV.2 Développement des classes ontologiques en java 66

IV.3 Choix du langage de contenu 67

IV.4 Enregistrement des langages de contenu et des ontologies 68

IV.5 Création et manipulation des expression du contenu 69

V. Scénario d'exécution 70

VI. CONCLUSION 76

CONCLUSION GENERALE 77

Références bibliographiques 78

Liste des figures

Liste des figures

FIG 01. Différents types d'agents. 11

FIG 02. Architecture minimale d'un agent. 12

FIG 03. La structure d'un message KQML 20

FIG 04. La structure d'un message FIPA ACL 22

FIG 05. Le triangle sémantique 28

FIG 06. L'arbre de Porphyre 30

FIG 07. Construction d'une ontologie opérationnelle 32

FIG 08. Le mécanisme de conversion de contenu de message suivant une ontologie 36

FIG 09. Exemple de graphe CATN 43

FIG 10. Spécification des interactions inter-agents par le Formalisme CATN 49

FIG 11. Enumération des actes de communication des agents 51

FIG 12. Le modèle de référence pour une plate-forme multi-agents FIPA 54

FIG 13. Architecture logicielle de la plate-forme multi-agents JADE 56

FIG 14. Fenêtre principale - coté serveur - 70

FIG 15. Fenêtre principale - coté client - 71

FIG 16. Vendeur1 & Vendeur2 du côté serveur. 72

FIG 17. Vendeur 3 - coté client- 72

FIG 18. Agent acheteur (côté client). 73

FIG 19. Résultat de la recherche & validation de choix. 74

FIG 20. Fin de l'achat. 75

Listes des tableaux

Liste des tableaux

Tab 01. Approche orientée objet (AOO) versus approche orientée agent (AOA) 13

Tab 02. Les actes de communication de FIPA-ACL 61

1

INTRODUCTION GENERALE

Dans le monde de l'informatique, les machines ne sont pas capables de déchiffrer nos intensions et nos pensées, pour cela nous avons recours aux langages de programmations, ces derniers ont vu le jours sous le nom des langages de programmations structurées (Pascal, C,...) qui ont malheureusement comme inconvénients la non modularité, déclarativité, etc. Et pour pallier ces problèmes, d'autres langages sont apparus sous le nom des langages de programmations orientées objets (JAVA, OBJECTPASCAL, C++,...). Mais l'orientée objets atteint ses limites quand il s'agit de représenter des objets avec un état qui définit les notions mentales, comme leurs croyances, leurs décisions et leurs intensions. Pour ces raisons, Yoav Shoham1 a proposé la programmation orientée agents comme un nouveau paradigme de programmation, que l'on peut voir comme une spécialisation de la programmation orientée objets. Dans cette approche, les agents sont les éléments centraux, de la même façon que les objets sont centraux pour les langages orientés objets. En même temps, la programmation orientée agents suppose qu'on va développer des programmes dans lesquels plusieurs agents interagissent, ce qui met l'accent sur la dimension sociale des agents.

Les systèmes multi-agents sont l'un des paradigmes technologiques les plus prometteurs dans le développement de systèmes logiciels distribués, ouverts et intelligents. Nous entendons par systèmes ouverts, les systèmes auxquels peuvent se rattacher d'autres systèmes. La technologie agent commence par être utilisée pour concevoir des solutions facilitant la mise en place de nouveaux concepts notamment économique comme le e-commerce.

Cependant les agents développés répondaient à des besoins bien spécifiques d'une application, entraînant une diversité et une hétérogénéité au niveau des agents développés. Il apparaît donc un besoin naturel : celui de faire communiquer ces agents hétérogènes à travers un langage dit «Langage de communication entre Agents ». Un tel langage commun doit avoir une syntaxe non ambiguë pour que les agents puissent «parser» les informations de la même manière. Il doit y avoir une sémantique bien définie pour que les informations puissent avoir le même sens pour tous les agents.

1 Yoav Shoham : Professeur à Université de Stamford.

Le Knowledge Sharing Effort (KSE) a été initié en 1990 par le DARPA (Defense Advanced Research Projects Agency) du ministère de la Défense Américaine. Son objectif était de développer des techniques, des méthodologies et des outils logiciels pour le partage et la réutilisation des connaissances.

Le premier problème auquel on est confronté dans la construction d'un langage commun à plusieurs agents hétérogènes est la syntaxe. Le second problème concerne la sémantique. Le troisième l'ontologie :il s'agit de garantir que les concepts et les entités véhiculés au travers des applications ont la même signification, même si différentes applications utilisent des noms différents les référant.

Le dernier problème concerne la communication effective entre agents:

La communication dans les systèmes distribués se fait souvent par l'appel de procédures de bas niveaux. Cependant, ce n'est pas une communication de bits à bits mais les agents doivent être capables de communiquer des attitudes complexes à partir des informations et des connaissances qu'ils possèdent. Un agent pourra questionner d'autres agents, les informer, leur soumettre des requêtes pour accomplir une tâche ou encore trouver des agents qui peuvent l'assister dans sa tâche, etc.

Les techniques d'agents intelligents consistent à former une société d'entités logicielles capables de communiquer et autonomes face à des situations dont le système ne possède pas encore une solution adéquate. La communication entre agents se fait par envoie de message contenant plusieurs informations:

3

Nous avons jugé utile de diviser notre mémoire en deux parties.

I. Introduction

Les systèmes multi-agents (SMA) sont devenus l'un des courants systèmes les plus prometteurs. Le champ des applications des SMA s'est élargi avec le récent développement des réseaux et d'Internet en particulier. De nombreux travaux se sont intéressés à la gestion et la supervision des réseaux.

Le grand essor d'Internet a fait apparaître de nouvelles opportunités de développement de SMA tels que le commerce électronique et récemment l'accélération des réseaux. Mais la communication entre les agents dans les SMA doit se baser sur des messages compréhensibles par les différents agents. Il faudra donc penser à un moyen qui garantirait cette compréhension commune des contenus des messages échangés. Ce moyen n'est qu'une ontologie, qui représente une sorte de vocabulaire d'un domaine.

Dans cette partie nous aurons à explorer ces différentes notions ainsi que le formalisme de représentation des actes de communication inter-agents, en l'occurrence le CATN (Coupled Augmented Transition Network).

Cette partie est structurée comme suit:

5

II. Problématique

II.1 Position du problème

Actuellement, il existe pas mal de domaines qui utilisent la technologie agent et parmi ces domaines, le e-commerce. Le commerce électronique est une forme de commerce dans lequel les transactions financières se déroulent entièrement ou partiellement sur un réseau informatique avec un paiement et une livraison physique ou numérique.

Les objectifs de l'e-commerce sont: permettre aux marchands de promouvoir leurs produits sur un marché mondial (vaste clientèle), réduire le coût de la transaction autant que possible, rendre l'utilisation de l'ensemble le plus simple possible, etc.Un certain travail a été réalisé dans ce contexte à savoir les moteurs de shopping sur la toile tels que KELKOO, JANGO, PRICESCAN, etc.

Pour que les agents communiquent de façon simple il faut que les messages entre eux soient compréhensibles, et pour y parvenir, il faut intégrer une ontologie commune à tous les agents. Cette ontologie est appelée à permettre de: trouver la définition d'un terme, contrôler la sémantique des messages envoyés à/par un agent, simplifier la communication entre agents.

L'enchaînement des actes de communication de telle sorte à produire une "discussion" cohérente entre les agents nécessite une formalisation non seulement au niveau de ses composantes, c'est-à-dire les actes de communication. La logique et la sémantique des actes doivent alors être étendues pour la problématique de l'enchaînement par la notion de protocole.

L'objectif de la formalisation de cette sémantique est de coordonner et de contrôler les échanges entre plusieurs agents pour avoir un comportement collectif cohérent du système. Le cadre de l'étude qui nous motive particulièrement est l'utilisation d'ontologie comme base de dialogue dans la communication inter-agents.

Grâce a cette intégration d'ontologie dans les actes de communication inter-agents, nous cherchons a répondre a des questions concernant la communication inter-agents comme :

- Comment les agents peuvent-ils entreprendre des dialogues que l'on peut qualifier d'«intelligents», c'est-à-dire qui permettent des échanges de haut niveau?

- Quelles structures permettraient de rendre les dialogues les plus flexibles possibles ?

II.2 Objectifs de notre travail

Les objectifs que nous nous sommes données sont:

2 La définition d'une ontologie commune aux différents acteurs impliqués dans l'accomplissement d'une transaction d'achat et de vente dans un environnement réseau.

3 L'amélioration du traitement des messages ACL reçu par un agent et la facilité de traduction de ces messages dans la représentation interne de l'agent.

4 La modélisation des actes de communication inter-agents par l'utilisation des CATNs et l'utilisation des protocoles de FIPA-ACL pour la structuration du dialogue entre les agents du SMA réalisé.

Pour mieux illustrer ces objectifs et permettre de les atteindre, nous donnons dans ce qui suit quelques définitions concernant les domaines impliqués dans notre étude.

7

II.3 Définitions II.3.1 Agent

Le terme agent, le plus utilisé est sans nul doute le plus difficile à définir. On considérera comme agent, une entité virtuelle capable d'agir dans un environnement, de communiquer avec les autres agents et de s'engager sur des propositions. L'agent évolue dans un milieu appelé système multi-agents (SMA), que l'on peut définir comme un environnement composé d'agents, offrant des opérations leur permettant de percevoir, de manipuler et de produire des objets.

II.3.2 Commerce électronique

Le terme commerce électronique, ou e-commerce est devenu une expression à la mode dans le monde de l'Internet. Des entreprises du monde entier se sont lancées sur Internet pour offrir tous ce qu'on peut imaginer en matière de produits et de services. Celles qui ont réussi ont une chose en commun: Elles ont compris que l'e-commerce est une source de profit permettant de gagner de l'argent en offrant de nouveaux services et en développant ou en fournissant un service existant à un coût inférieur.

II.3.2.1 Définition

Le e-commerce est un ensemble d'opérations commerciales effectuées par des personnes ou des organisations au moyen d'ordinateurs et de réseaux de télécommunication.

La plupart du temps, il s'agit de la vente des produits à travers le réseau Internet B To C, (Busness to Consomer), mais le terme de e-commerce englobe aussi les mécanismes d'achat par Internet B To B, (Busness to Busness).

II.3.2.2 Bases du commerce électronique

Les bases du commerce électronique sont étroitement liées aux fonctions suivantes:

9

III. Concept Agent et SMA

Ce chapitre a pour objectif de donner la définition des agents logiciels et les systèmes multi-agents. Il va aussi situer sommairement les concepts introduits.

III.1 Définitions

Il y a un nombre important d'ouvrages offrant des définitions des agents et des systèmes multi-agents. Les difficultés sont semblables en quelque sorte à celles rencontrées par les scientifiques qui ont essayé de définir la notion d'intelligence artificielle. Pourquoi a-t-il été si difficile de définir l'intelligence artificielle et pourquoi est-il si difficile de définir les systèmes d'agents, quand d'autres concepts de l'informatique, tels que l'objet et l'orienté objet, le calcul distribué, etc., n'ont pas rencontré une si grande résistance à être définis.

Une réponse possible est que la notion d'agent, ainsi que la notion d'intelligence artificielle, ont émergé des humains et de la société humaine. Il est évidement difficile de modéliser ou de simuler le comportement spécifique humain au moyen de programmes informatiques.

Il y'a plus de 30 ans, les scientifiques ont essayé d'écrire des programmes pour mimer le comportement humain intelligent, dont le but était de créer un système artificiel ayant les mêmes capacités qu'une personne intelligente.

Il n'y a pas une définition acceptée en unanimité pour la notion d'agent. Dans ce qui suit, on présente les définitions les plus importantes.

10

communiquer avec d'autres agents, et dont le comportement est la conséquence de ses observations, de ses connaissances et des interactions avec les autres agents [FER 95].

Nous pouvons identifier deux tendances principales en comparant les définitions données ci-dessus pour les agents et les agences. Quelques chercheurs considèrent que nous pouvons définir un agent en isolation, alors que d'autres considèrent les agents principalement comme entités agissant dans une société d'autres agents, à savoir le paradigme des systèmes multi-agents (SMA).

Les deux tendances ont déjà donné des résultats. C'est vrai qu'on pense que c'est le paradigme des SMA2 qui va s'imposer comme prépondérant car il est plutôt difficile de compter qu'un agent existe seulement comme une entité pour lui seul et ne rencontrera pas d'autres agents (soit artificiels ou humains) dans son environnement. Les agents personnels, ou les agents d'information, qui ne sont pas censés principalement travailler collectivement pour résoudre des problèmes, auront certainement beaucoup à gagner s'ils agissent par interaction avec d'autres agents et bientôt, avec la diffusion large de la technologie multi-agents, ils ne pourront pas réaliser leurs tâches en isolation. Par conséquent, les chercheurs considèrent la dimension sociale d'un agent comme une de ses caractéristiques essentielles.

D'autres considèrent la mobilité en tant qu'une des caractéristiques des agents informatiques. On a des réserves sur cette opinion parce que la mobilité est un aspect relié principalement à la mise en place ou à la réalisation des agents, soient-ils logiciels (agents mobiles sur la toile) ou matériels (robots qui se déplacent dans le monde physique) et peut être comprise dans la capacité des agents d'interagir avec l'environnement.

En partant de l'ouvrage de [WOO 95a], et des définitions citées, on peut identifier les caractéristiques suivantes pour la notion d'agent:

12

Par exemple, dans la FIG 01, les propriétés telles que la coopération, l'apprentissage et l'autonomie permettent de définir quatre types particuliers d'agents:

16

l'objet. Les agents sont aussi des entités informatiques qui possèdent un état interne (privé), qui sont capables d'agir et de communiquer par échanges de messages. Ce qui différencie les objets des agents, c'est que ces derniers reposent sur un concept très fort d'autonomie leur permettant d'agir de manière très flexible. La négociation, processus par lequel différents groupes arrivent à un accord, est un concept étranger au monde objet. La démarche en vue d'une négociation requiert un comportement flexible afin de pouvoir faire certaines concessions de part et d'autre.

De plus, les agents contrôlent d'une certaine façon leur état interne. Par exemple, si un objet O1 invoque une méthode M1 sur l'objet O2, cette méthode sera exécutée si aucune erreur ne survient. Cependant, si un agent A1 effectue une requête R1 à l'agent A2, c'est ce dernier qui décidera si la requête sera effectuée ou non. Toute la différence se situe dans les termes invocation et requête.

Le tableau Tab 01 présente un récapitulatif des éléments de base de l'approche orientée objet versus l'approche orientée agent présenté par Shoham [SHO 93].

Propriétés

AOO4

AOA5

élément de base

Objet

Agent

Paramètres définissant
l'élément de base

Sans contraintes

Croyances, engagements,
capacités, choix

Type d'exécution

Envoie et réception
de messages

Envoie et réception
de messages

Type de messages

Sans contraintes

Actes du langage

Contraintes sur les
méthodes

Sans contraintes

Honnête, consistant

 

Tab 01 - Approche orientée objet (AOO) versus approche orientée agent (AOA)
[SHO 93].

4AOO: Approche Orientée Objet. 5AOA: Approche Orientée Agent.

14

III.4 Classes d'agent:

De manière générale, il est possible de classer un agent selon les trois principaux points suivants :

a)- Selon leur nature :

- Agents réactifs : Ce sont des agents qui n'ont pas une représentation explicite de leur environnement, ni de mémoire de leur passé, ni de but explicite et leur comportemnt est de type stimulus réponse.

- Agents délibératifs : Ce sont des agents qui possèdent une représentation explicite de leur environnement. Ils se basent sur la connaissance qu'ils ont de leur environnement et leur habileté à raisonner sur leurs connaissances. Les agents dirigés par leurs buts ou par une fonction d'utilité font partie de ce groupe.

-Agents hybrides : De façon habituelle, un agent n'est pas complètement de type réactif ni de type délibératif. C'est plutôt une combinaison de ces deux approches.

Dans certaines circonstances, un agent doit agir très rapidement alors que dans d'autres, il aura la possibilité de prendre plus de temps pour avoir un processus délibératif de meilleure qualité. Dans ce cas, les agents sont dits hybrides.

b)- Selon l'utilisation :

- Agents collaboratifs : Ces agents ont des habiletés de coopération. Un regroupement de ces agents permet, entre autres, de réduire un problème complexe en sous-problèmes moins complexes.

- Agents d'interface : Ces agents collaborent avec l'utilisateur pour effectuer certaines tâches.

- Agents pour la recherche d'informations : Ces agents effectuent, en premier lieu, une recherche d'informations parmi une collection de données et, en second lieu, procèdent à une analyse des informations utiles trouvées afin de découvrir de nouvelles connaissances.

- Agents pour le commerce électronique : La montée de l'Internet a bien entendu créé de nouvelles nécessités. Les agents issus de cette tendance permettent la promotion, la vente ainsi que l'achat de produits et de services par l'entremise des réseaux informatiques, etc. c)- Selon la technologie employée :

- Agents stationnaires: Il s'agit du cas où l'agent s'exécute toujours sur la même machine. -Agents mobiles : Ces agents s'exécutent sur différentes machines en se promenant d'un hôte à l'autre. Typiquement, ils suivent ce que l'on appelle un «itinéraire».

Le plus grand avantage réside dans le fait qu'ils réduisent la charge des réseaux en se rendant directement sur la machine «utile» pour y effectuer les actions de manière locale. D'un point de vue général, les chercheurs aimeraient que les agents soient des composants logiciels réutilisables qui permettraient d'accéder et/ou contrôler des services et des ressources informatiques. Ces agents seraient les unités de base des applications informatiques et seraient organisés en réseau dans une optique de collaboration.

III.5 Les systèmes multi-agents

Les systèmes multi-agents font partie d'Intelligence Artificielle Distribuée (IAD), qui, à la différence d'IA classique, s'intéresse aux comportements intelligents, résultant de l'activité coopérative de plusieurs agents [LAB 93].

Bien qu'il soit difficile de donner une définition générale pour l'expression «Système Multi-Agents », les différentes caractérisations proposées par [BON 94], [FER 95] [OHA 96], [FRA 96], [WOO 98b] et autres permettent de dégager des idées fondamentales communes. La définition, mentionnée ci-dessous, est conforme à la plupart de ces idées.

III.5.1. Définition: Système multi-agent (SMA)

Le système multi-agents est considéré comme un système distribué composé d'un certain nombre d'entités autonomes6 (les agents), qui travaillent selon les modes complexes d'interaction, pour réaliser leurs propres buts et par-là même atteindre l'objectif global désiré. Les agents peuvent interagir en communiquant directement entre eux ou par l'intermédiaire d'un autre agent ou en agissant sur leur environnement.

En général, dans les systèmes multi-agents, deux types d'agents sont identifiés : les agents IAD7 et les agents mobiles. Les agents IAD sont capables de communiquer et de coopérer à l'aide de protocoles basés sur les réseaux contractuels et les actes de langage. Les agents mobiles peuvent se déplacer de site en site dans le réseau pour accomplir des tâches spécifiques.

6 L'autonomie signifie que l'entité (l'agent) est capable de travailler sans l'intervention d'un humain ou des autres agents, et de contrôler ses actions ainsi que son état interne

7 IAD : Intelligence Artificiel Distribué.

En général, ils peuvent avoir deux types de mobilité [MAG 96a] :

III.6 Les interactions et les agents

L'interaction est une notion importante dans les systèmes multi-agents. Au dire de J.Ferber [FER 95], l'interaction permet d'avoir une relation dynamique entre deux ou plusieurs agents par le biais d'actions réciproques. Les situations d'interactions sont diverses (l'aide d'un robot à un autre, l'échange de données entre deux serveurs, etc.).

Pour un agent, interagir avec un autre agent constitue la source de sa puissance et l'origine de ses problèmes [FER 96]. En effet, seulement en coopérant les uns avec les autres, les agents peuvent accomplir leurs tâches collectives. D'autre part, à cause de leurs interactions avec les autres agents, ils doivent coordonner leurs actions et résoudre des conflits.

Traiter le problème d'interaction revient non seulement à décrire les mécanismes permettant aux agents d'interagir, mais aussi à analyser et à concevoir les différentes formes d'interaction, utilisées par les agents pour accomplir leurs tâches et satisfaire leurs buts. Nous présentons le concept d'une de ces formes - la communication - sur laquelle repose toute l' interaction.

III.6.1 La communication

La communication est essentielle dans la résolution coopérative des problèmes [LAB 93] [FER 95]. Elle permet de synchroniser les actions des agents et de résoudre les conflits des ressources par la négociation. D'après [BOU 92], la communication définit l'ensemble des processus physiques et psychologiques par lesquels s'effectue l'opération de mise en relation d'un agent émetteur avec un ou plusieurs agents récepteurs, dans l'intention d'atteindre les objectifs prévus. Les processus physiques décrivent les mécanismes d'exécution des actions, par exemple, l'envoi et la réception de messages. Les processus psychologiques désignent les changements opérés par la communication sur les buts et les croyances des agents.

18

En général, les actions de communication entre les agents sont considérées comme les actions d'échange d'information.

III.6.1.1 La communication par l'envoi de messages

Ce type de communication permet aux agents d'envoyer leurs messages directement aux destinataires par les mécanismes spécifiés (les canaux ou les ports). Il existe trois types de messages : les questions, les réponses et les informations. Au niveau protocolaire, un envoi de message peut être synchrone (un agent émetteur attend la réponse de son récepteur) et asynchrone (un agent émetteur peut agir immédiatement après avoir placer son message dans une fille d'attente).

La communication par l'envoi de messages peut être organisée suivant trois formes différentes:

D'après [FIN 97], pour que les agents puissent interagir de manière efficace, ils doivent posséder un langage de communication commun, leur permettant de se comprendre ainsi que de s'échanger des informations et des connaissances.

Avant d'aborder les langages de communication existants, nous présentons brièvement la théorie des actes de langage, considérée en intelligence artificielle comme un modèle général de communication entre les agents.

III.7.1 La théorie des actes de langage

La théorie des actes de langage (« Speech Act Theory »), constitue un fondement théorique de la communication, basée sur l'idée suivante: «Lorsqu 'on parle, on effectue des actions »9 [LAB 93]. Un acte de langage définit un message, qui contient l'affirmation positive ou négative, et provoque les changements de l'environnement.

Chaque acte de langage comprend trois composants :

20

III.7.2 KQML

KQML Knowledge and Query Manipulation Language ») [LABR 00] [MAY 96] est une approche basée sur les actes de langages, qui permet de réaliser les interactions des agents tenant en compte la diversité des langages de communication. La communication est considérée comme un ensemble d'échanges de messages KQML. Chaque message comprend trois couches [LABR 99]:

concernant le développement de nouveaux protocoles, basés sur KQML, on peut mentionner les langages de coordination COOL [BRA 95] et Agen Talk [KUW 95].

Bien qu'il présente un grand intérêt pour les utilisateurs, KQML montre quelques lacunes [COH 95] :

22

l'acte communicatif (par exemple, INFORM, REQUEST), le nom de l'agent émetteur et celui de l'agent récepteur, le contenu et le contexte du message, l'ontologie à utiliser pour interpréter ce contenu, et le protocole [FIPA 00] :

le méta-information
du message

l 'acte communicatif

)

(inform

:sender <name>

:receiver <name>

:content <expression>

:language <text>

:ontolog

<text>

le nom de l 'agent émetteur du message le nom de l 'agent récepteur du message le contenu du message

le langage de contenu

le vocabulaire du contenu de message le protocole du message

FIG 04. La structure d'un message FIPA ACL

FIPA ACL peut être considéré comme l'extension de KQML possédant deux langages différents. Le langage externe définit la signification intentionnelle du message. Le langage interne (ou le contenu) décrit l'expression à laquelle s'appliquent les croyances, les désirs et les intentions des agents, décrites dans le primitif de communication.

Différemment de KQML, FIPA ACL est basé sur la sémantique logique de la communication [DIG 00]. Ceci facilite la description des formats de la communication. Cependant, les agents ne possèdent pas toujours les capacités logiques nécessaires. Il est à noter que la sémantique de FIPA ACL est basée en grande partie sur les croyances des agents, qui peuvent être inconnus pour les autres agents.

Une autre grande différence entre FIPA ACL et KQML, concerne les actes communicatifs. FIPA ACL contient un ensemble d'actes communicatifs normatifs, qui peuvent être primitifs ou composés. Les nouveaux actes communicatifs ne peuvent être définis qu'en combinant les actes existants et en utilisant les opérateurs prédéfinis. Ceci permet de maintenir l'intégrité sémantique du langage.

III.8 Les SMA: Coopération, Négociation et Coordination III.8.1 La coopération

La coopération est l'une des caractéristiques fondamentales des systèmes multi-agents.

24

Cette dernière permet de décrire la manière dont les agents sont positionnés dans un groupe ainsi que les techniques de travail coopératif efficace.

III.8.2 La négociation

Les activités des agents dans un système multi-agents sont souvent interdépendantes et conflictuelles. L'arbitrage et la négociation sont deux moyens utilisés pour résoudre ces conflits. L'arbitrage permet de définir les règles de comportements, dont le résultat global limite des conflits et préserve les individus ainsi que la société d'agents [FER 95].

Dans une situation conflictuelle concernant l'objectif ou le ressource, les agents peuvent chercher eux-mêmes un accord bilatéral pendant le processus de la négociation. Cette dernière assure la coopération constructive à l'intérieur d'un groupe d'agents indépendants, ayant leurs propres buts [BRE 98].

D'après [BOU 92], la négociation définit une stratégie de résolution qui utilise le dialogue pour obtenir un accord concernant les conflits de croyances ou les conflits de buts. Les conflits de croyances sont les résultats de contradictions entre les croyances des différents agents, possédant des connaissances incomplètes. En ce qui concerne les conflits de buts, ils apparaissent à cause de l'incompatibilité des buts des différents agents.

Pendant le processus de négociation entre les agents, on peut distinguer les situations suivantes [BRE 98]:

compromis pour améliorer les capacités du système total. On peut considérer quatre formes d'interaction dans le processus de la négociation [BRE 98] :

26

les plans reçus en un seul plan global. Les conflits potentiels entre les agents sont supprimés soit en ordonnant leurs actions, soit en déterminant la synchronisation;

(3) La planification distribuée, où chaque agent planifie les actions par rapport à ses propres buts.

IV. Les ontologies

Les années 80 ont vu le développement de nombreux Systèmes Experts (SE) réalisant des tâches variées (conception, maintenance) dans des domaines également variés (médecine, ingénieries mécanique et électronique, robotique, finance). L'expérience de leur développement a toutefois montré que la construction d'une Base de Connaissances était un processus complexe et nécessitant un temps considérable. Le souhait des développeurs a été dès lors de pouvoir réutiliser et partager des BCs ou, au moins, des parties de BCs.

Cette question de la réutilisation et du partage de BCs est donc difficile et implique plusieurs dimensions. Au début des années 90, des chercheurs réunis au sein du projet américain «Knowledge Sharing Effort », soutenu notamment par la DARPA13 , décident de s'attaquer au problème en privilégiant la représentation explicite du sens. Ils nomment «ontologie » une telle représentation.

IV. 1 Définitions

Ontologie : Ce terme est un emprunt à la philosophie, car il désigne déjà

[P.ROB, 79]: la partie de la métaphysique qui s 'applique à l 'être en tant qu 'être, indépendamment de ses déterminations.

L'Ontologie, en tant que discipline, se donne pour objectif de caractériser les différents modes d'existence des objets, suivant les espèces d'objets (naturels, artificiels, esthétiques, etc.). On retrouve bien ce souci de caractériser les concepts dans différents domaines.

Définition

une ontologie est une spécifi cation explicite d'une conceptualisation. [GRUB 93]

Le terme «conceptualisation », dans la définition, fait référence à un système de concepts, autrement dit à un ensemble structuré de concepts. L'expression «spécification explicite» signifie, pour sa part, que la conceptualisation est représentée dans un langage, ce dernier peut être une langue naturelle (français, anglais) ou un langage formel (logique du 1er ordre, réseau sémantique).

13 DARPA: Defense Advanced Research Projects Agency.

28

IV.1.1 Nature d'un concept

Selon une tradition remontant à Aristote, un concept peut se définir comme une entité composée de trois éléments distincts:

30

L'arbre de Porphyre (FIG 06) peut être considéré comme un premier exemple d'ontologie.

Genre suprême

Différence matériel immatériel

Genre subordonné: CORPS ESPRIT

Différence :animé inanimé

Genre subordonné: ÊTRE VIVANT MINÉRAL

Différence : sensible insensible

Genre proche :ANIMAL PLANTE

Différence : rationnel irrationnel

Espèce : HUMAIN BÊTE

SUBSTANCE

FIG 06- L'arbre de Porphyre

Définir un concept par rapport à un autre revient à introduire un ordre sur les concepts. Cette relation, exprimée en français par l'expression «est un(e) », est appelée relation de «généralisation », et son inverse relation de «spécialisation ». L'existence d'un tel lien entre concepts se justifie par l'existence d'une relation d'inclusion entre les extensions de ces concepts.

Définition

Le concept CONCEPT1 généralise le concept CONCEPT2 (resp. le concept CONCEPT2 spécialise le concept CONCEPT 1) si et seulement si l'extension du concept CONCEPT2 est incluse dans l'extension du concept CONCEPT 1.

Dans l'arbre de Porphyre, le concept ÊTRE VIVANT généralise le concept ANIMAL, ce qui signifie que tout animal est un être vivant. Il faut noter qu'au fur et à mesure que l'on descend dans l'arbre, on ajoute des propriétés (les différences), ce qui a pour effet de réduire la taille des ensembles d'objets réalisant les concepts.

Le terme «subsomption» (encore un emprunt à la philosophie !) tend à remplacer le terme «généralisation» dans le domaine de l'ingénierie ontologique, concerné par la construction d'ontologies.

On parlera ainsi de «liens de subsomption» et on dira, dans le cas de l'arbre de Porphyre, que le concept ÊTRE VIVANT «subsume» le concept ANIMAL, ou inversement, que le concept ANIMAL «est subsumé par » le concept ÊTRE VIVANT.

Ces relations permettent de rendre compte d'autres propriétés vérifiées par les objets réalisant le concept et de contribuer ainsi à exprimer le sens des concepts. De cette remarque, nous déduisons la définition suivante pour la notion de «notion»:

Définition

La notion d'un concept est un ensemble de propriétés satisfaites par les objets réalisant le concept.

IV.2 Construction d'une ontologie opérationnelle

Le processus général de représentation des connaissances peut donc être découpé en 3 phases (FIG 07):

La conceptualisation : identification des connaissances contenues dans un corpus représentatif du domaine. Ce travail doit être mené par un expert du domaine, assisté par un ingénieur de la connaissance ;

L'ontologisation : formalisation, autant que possible, du modèle conceptuel obtenu à l'étape précédente. Ce travail doit être mené par l'ingénieur de la connaissance, assisté de l'expert du domaine ;

L'opérationnalisation : transcription de l'ontologie dans un langage formel et opérationnel de représentation de connaissances. Ce travail doit être mené par l'ingénieur de la connaissance.

Il est à noter que ce processus n'est pas linéaire et que de nombreux aller-retour sont a priori nécessaires pour bâtir une ontologie opérationnelle adaptée aux besoins. Remarquons pour finir que ce modèle de construction d'ontologie est ascendant, c'est-à-dire que l'on part des connaissances à représenter, pour aboutir à une représentation formelle. Mais une construction descendante est possible et qui consiste à choisir un modèle opérationnel de représentation, en fonction de l'objectif d'utilisation de l'ontologie, puis à instancier ce modèle avec les connaissances du domaine.

Informel

 

Formel

Information
brute

Conceptualisation

Modèle
Conceptuel

ontologisation

 

Semi-formel

Ontologie

Opérationnalisation

32

Ontologie Opérationnelle
et Formelle

FIG 07: Construction d'une ontologie opérationnelle.

Le rôle des ontologies au sein du processus de représentation des connaissances étant désormais fixé, il convient maintenant de préciser quelles sont les primitives cognitives utilisées dans la construction des ontologies.

IV.3 Rôle des ontologies dans les agents et les SMA

Les ontologies ont été développées pour fournir des vocabulaires spécifiques dépendants du domaine d'application pour la communication entre les agents. Une ontologie définit les concepts et les relations qui existent entre les mots d'un vocabulaire formel pour les agents qui l'utilisent. Il faut noter que les agents d'un système multi-agent partagent la même ontologie (le même vocabulaire) mais ceci ne veut pas pour autant dire qu'ils possèdent la même base de connaissances.

Un problème qui est étroitement lié à la sémantique des langages de communication est le traitement approprié des ontologies au niveau des langages de communication. FIPA -A CL et KQML incluent un élément qui est employé pour identifier la source de vocabulaire utilisé dans le contenu de message. Ceci est conçu pour rendre ces langages de communication indépendants des vocabulaires particuliers d'application, et pour donner aux destinataires des messages une manière d'interpréter les termes non logiques au niveau du contenu des messages. Dans les spécifications originales de KQML, cet élément a été conçu pour se rapporter à une ontologie indiquée dans Ontolingua14.

Dans FIPA-ACL, la sémantique de l'étiquette d'ontologie est efficacement définie pour l'utilisateur. Évidemment, une ontologie qui a une large couverture, concernant son domaine, et extensible, est nécessaire dans beaucoup de langages de communication. Ainsi, une ontologie qui exhibe une couverture de son domaine permet aux agents multiples de partager leurs connaissances dans plusieurs contextes. Il est cependant très important de garder à l'esprit qu'une large couverture peut mener à une ontologie volumineuse et ainsi les agents peuvent passer beaucoup de temps à essayer de trouver la signification du contenu de leur langage de communication au lieu d'interagir les uns avec les autres. Une bonne ontologie devrait également être extensible afin de permettre aux concepteurs d'aj outer de nouveaux éléments. Finalement, une ontologie doit être dépendante de son domaine ("domain-dépendant") et ses rapports devraient montrer clairement leur pertinence avec ce domaine.

La manière avec laquelle un agent se servirait des spécifications des ontologies de KQML ou de FIPA-ACL pour interpréter des parties peu familières d'un message ACL n'a jamais été définie de manière précise. Le fait d'approvisionner une étiquette d'ontologie ne résout pas le problème de la façon dont les agents acquièrent et emploient la base de connaissance ontologique commune qui est un préalable à une bonne communication. Ceci représente un problème particulièrement aigu dans les systèmes ouverts qui incluent des agents basés dans différents organismes. Au niveau des problèmes liés à l'étude des significations et au raisonnement avec un nouvel ensemble de terminologie, il devrait exister des règles de traduction qui permettent de convertir des termes significatifs d'une ontologie vers une autre. Bien qu'un fonctionnement humain avec des représentants de chaque

14 Ontolingua: est un logiciel qui fournit un environnement de collaboration distribué pour passer en revue, créer, éditer, modifier, et employer des ontologies).

communauté terminologique puisse souvent hacher hors d'un ensemble de règles satisfaisant, il est presque impossible de construire ces règles entièrement de manière automatique. En conséquence, les agents peuvent seulement entièrement communiquer que s'ils partagent déjà une ontologie commune, ou si un ensemble de règles de préexistence de traduction est fourni. Le problème ontologique général fait touj ours l'objet d'une recherche active.

IV.4 Fonctions de l'ontologie et du langage de contenu dans JADE

Quand un agent A communique avec un agent B, une certaine quantité d'information I est transférée à partir de A à B au moyen d'un message ACL (AclMessage). A l'intérieur du message ACL, I est représentée comme une expression de contenu conformée à un langage de contenu approprié ( par exemple SL15) et codé dans un format approprié (Par exemple String).

A et B ont probablement leurs propres manières intérieures de représentation de I. Tenant compte que la manière dont un agent représente intérieurement un morceau d'information doit permettre une manipulation facile de cette information, Il est bien évident que la représentation utilisée dans une expression de contenu d'ACL n'est pas appropriée à la représentation à l'intérieure d'un agent. Par exemple l'information concernant une personne dont le nom est Mohamed et qui a 33 ans dans une expression de contenu d'ACL peut être représentée comme un String

(Personne: nommée Mohamed, âge : 33 ans).

Stocker cette information à l'intérieur d'un agent simplement comme un String n'est pas approprié pour manipuler l'information comme par exemple pour obtenir l'âge de Mohamed il faudrait analyser le String à chaque fois.

34

15 SL : est un langage de contenu String-encoded (l 'expression du contenu en SL est une chaîne de caractères) lisible pour l'homme et est probablement le langage de contenu le plus diffusé dans la communauté scientifique traitant les agents intelligents.

Considérons des agents logiciels écrits dans Java (Comme le sont les agents de Jade), l'information peut être convenablement représentée à l'intérieur d'un agent comme des objets Java. Par exemple, représentons l'information ci-dessus concernant Mohamed comme une instance (un objet Java) d'une classe spécifique à une application

class Person {

String name;

int age;

public String getName() {

return name;

}

public void setName(String n) {

name = n;

}

public int getAge() {

return age;

}

public void setAge(int a) {

age = a;

}

....

}

Initialisé avec name = "Mohamed ";

age = 33;

permettra de manipuler facilement cette information.

Il est clair cependant que si d'une part l'exploitation de l'information à l'intérieur d'un agent est soulagée, d'autre part, chaque fois que l'agent A envoie une information I à l'agent B alors :

1- L'agent A a besoin de convertir sa représentation interne de I en représentation d'expression de contenu d'ACL correspondant et l'agent B doit exécuter la conversion opposée.

2- D'ailleurs B devrait également exécuter un certain nombre de contrôles sémantiques pour vérifier que I est une information significative, c à d qu'elle est conforme aux règles (par exemple l'âge de Mohamed est réellement une valeur de nombre Entier) de l'ontologie au moyen de laquelle les agents A et B attribuent une signification appropriée à l'information I.

Le support des langages de contenu et des ontologies fourni par Jade est conçu pour exécuter automatiquement toutes les conversions et vérifier les opérations comme représenté sur le schéma ci-dessous.

Propriété de contenu d'un message ACL L'intérieur de l'Agent

Information représentée sous forme de String ou séquence de bits (Facile à transférer)

Support Jade pour
les langages de
contenu et
l'ontologie

Information représentée sous forme d'objets java (Facile à manipuler)

36

FIG 08 :Le mécanisme de conversion de contenu de message suivant une ontologie

IV.4.1 Eléments principaux

Les opérations de conversion et de contrôle décrites dans le schéma précédent sont effectuées par l'objet gestionnaire de contenu (une instance de la classe ContentManager incluse dans le package Jade.content).

Chaque agent jade possède un gestionnaire de contenu accessible par la méthode getContentManager() de la classe Agent, la classe ContentManager fournit toutes les méthodes pour transformer des objets Java en String (ou séquence de bits) et pour les insérer dans la propriété de contenu d'un message ACL et vice versa.

Le gestionnaire de contenu fournit les interfaces appropriées pour accéder à la fonctionnalité de conversion, mais actuellement délègue les opérations de conversion et de contrôle à une ontologie (une instance de la classe ontology inclus dans le package Jade.content.onto) et un codec16 de langage de contenu (une instance de l'interface codec inclus dans le package Jade.content.lang). Plus spécifiquement l'ontologie valide l'information à convertir du point de vue sémantique tandis que le codec effectue la traduction en String (ou séquence de bits) selon des règles syntaxiques du langage de contenu.

16 Codec: Il permet de coder les messages du format String ou séquence de bits en objets java.

IV.4.2 Le modèle de contenu de référence

Pour que Jade exécute les contrôles sémantiques appropriés sur une expression de contenu donnée, il est nécessaire de classifier tous les éléments possibles dans le domaine de discours (les éléments qui peuvent apparaître dans une information valide employée par un agent comme contenu d'un message ACL) selon leurs caractéristiques sémantiques génériques. Cette classification est dérivée du langage ACL défini dans FIPA qui exige du contenu de chaque message (A CLMessage) d'avoir une sémantique appropriée selon la performative du message ACL. Plus en détails, en premier lieu nous faisons la distinction entre prédicats et termes.

38

Pour récapituler nous pouvons dire que l'ontologie assure une sémantique commune à la terminologie utilisée dans les messages échangés entre les agents,

Nous avons présenté toutes les notions de base contribuant au développement de l'ontologie utilisée par les agents pour communiquer et raisonner. Ces notions sont propres à la plateforme JADE, elles présentent une certaine analogie avec les notions utilisées dans d'autres plateformes.

Nous détaillerons plus ces notions dans la partie implémentation, où nous expliciterons toutes les étapes suivies pour développer notre ontologie.

40

V. Le formalisme CATN (Coupled Augmented Transition Network)

La mise en point de tout système doit en principe passer par une étape de modélisation, cette dernière est donc une étape incontournable et doit se baser sur un formalisme de représentation.

Actuellement il existe une multitude de formalisme de représentation, mais certains formalismes sont plus adaptés que d'autres et la tendance actuelle veut privilégier les formalismes graphiques qui sont jugés pus faciles à comprendre. Cela s'applique dans notre cas dans la description des comportements d'agents.

Dans ce chapitre nous présentons le formalisme de représentation que nous allons utiliser pour décrire les actes de communication entre les agents, ce formalisme est le CATN (Coupled Augmented Transition Network) qui est un langage interprétable.

Le CATN se présente sous la forme d'une machine à transition d'états présentant l'exécution en parallèle des différents agents en interaction.

V.1 Définition

Un CATN est une machine à transitions d'états à laquelle on associe un but (ou signification) particulier. Il possède également la caractéristique d'être récursif : un CATN peut être décomposé lui-même en sous-CATN, et ce avec autant de niveaux que nécessaires.

Chacun de ces composants est un CATN à part entière, ayant son propre but. Tous les sous- CATN qui dépendend d'un CATN principal héritent de l'agent et du rôle correspondant. Un CATN peut être appelé par différents CATN en tant que sous-CATN dans des contextes différents et avec des rôles d'agents différents.

Les composants d'un CATN sont reliés entre eux par l'intermédiaire de transitions ad hoc appelées « transitions d'interaction ». Parmi celles-ci, nous distinguons les transitions d'interaction non terminales de celles, terminales, correspondant à des actes de langages (entre agents) ou à des actions privées des agents. Cet aspect récursif des CATN permet dès lors une approche de conception descendante, du comportement le plus abstrait d'un groupe d'agents jusqu'à leurs actions les plus concrètes (actions terminales individuelles et communications au travers des transitions d'interaction).

Au sein des transitions d'interactions nous distinguons différents niveaux d'abstraction. Par exemple, dans le cas du commerce électronique, une transition peut indiquer, au niveau le plus abstrait, que l'agent vendeur veut interagir avec l'agent acheteur à un instant donné, tandis qu'au niveau le plus bas, l'émission - réception d'un acte de langage concret, échangé afin de réaliser la vente, est également représenté par une transition.

Un autre point important concernant les CATN est le fait que chaque agent peut exécuter de façon concurrente plusieurs CATN en fonctions des tâches qu'il a à réaliser ; tout en permettant à un même CATN d'être exécuté en même temps par plusieurs agents (en fait, il s'agit ici d'instanciations différentes du même CATN).

V.2 Les composants du formalisme CATN

Un CATN représente une tâche que doit exécuter un agent jouant un rôle spécifique. Un agent peut exécuter simultanément plusieurs CATN.

Les éléments qui composent un CATN sont :

42

les arcs d'une transition AND doivent avoir pour origine le même état tout en ayant pour destination un autre état également unique Graphiquement représenté par un arc au trait continu connectant deux états, chaque arc appartient à un des types suivants :

- Interactions non terminales18, lesquelles relient deux arcs de type CATN

(de deux CATN différents). Pour ce type d'interaction, il n'y a pas d'échange explicite de messages : ils servent à indiquer que lors de l'exécution des deux CATN inter-reliés il y aura, éventuellement, échange de messages entre eux.

- Interactions terminales19, lesquelles relient un arc de type CATNMessageSender à un arc CATNMessageReceiver (de deux CATN différents).

V.4 Exemple de CATN : Offre de service

L'exemple de CATN que nous proposons ici (Voir FIG 09) décrit un protocole entre un agent demandeur et 0 ou plusieurs agents fournisseurs de service. Il met en oeuvre des sous-CATN, l'envoi de message par broadcast (diffusion) et l'envoi de message à un agent particulier.

Application .catn

Envoi msg Request!

Envoi msg

Personne n'offre un service?

3 4

Envoi msg éxecussion du service

Reçoi msg Informe?

Timer?

Jump!

1 2

Message exécution Service

Request

Inform Message

Reçoit msg exécu tion service

Timer= true? Jump

5 6 7 8 9

Reçoit msg Request?

Envoi msg Inform!

Exécution service

serviceProviderListener.catn

FIG 09: exemple de graphe CATN Message

Timer? Jump!

Timer=-1 ? Jump!

18 L'arc représentant ce type d'interaction sera hachuré, avec un flèche à une seule extrémité lorsque l'envoi des messages ne pourra se faire que dans un sens, avec deux flèches dans le cas contraire.

19 L'arc représentant ce type d'interaction sera plein et unidirectionnel.

44

Le comportement attendu du système est le suivant :

1. un message request est broadcasté (diffusé) par l'agent exécutant le CATN applicant. catn;

2. les agents exécutant le CATN serviceProviderListener.catn calculent alors le coût du service, puis envoient un message Inform contenant ce coût au demandeur ;

3. le demandeur attend 1 seconde pour recevoir un message, s'il reçoit un message dans cet intervalle il attend une seconde supplémentaire ;

4. une fois qu'il a reçu les messages il envoi un message LaunchService à l'agent proposant le coût le plus faible ;

5. s'il n'a reçu aucun message au bout d'une seconde il affichera un message ad hoc;

6. l'agent recevant le message LaunchService va exécuter ce service ;

7. les autres agents attendront 10 secondes puis afficheront un message indiquant qu'ils n'ont pas été sélectionnés.

V.5 Un formalisme comparable

Les Réseaux de Pétri Parmi les formalismes de réseaux de transitions les plus proches des CATN se trouvent les Réseaux de Pétri (RdP), dans leurs diverses variantes ; lesquels RdP ont déjà été appliqués à des systèmes multi agents. Les principales différences entre les différents types de RdP et les CATN se situent essentiellement au niveau de leurs représentations graphiques. La première différence tient au fait que les RdP sont des graphes bipartis comprenant deux types de noeuds (les places et les transitions), alors que les CATN sont des graphes ayant un seul type de noeud (lesquels représentent les états des agents en cours d'exécution d'une tâche). Les RdP permettent de modéliser des systèmes distribués complets ; l'état du système étant représenté par l'ensemble des marques, également appelées jetons, distribuées dans les différentes places du système. Le fait d'avoir dans le cas des RdP deux types de noeuds complique au niveau graphique la compréhension d'un système de moyenne dimension. À l'inverse, les CATN permettent une représentation explicite des actions et des états des différents agents en tout moment.

La deuxième différence est liée au fait que les CATN introduisent deux types d'arcs, les arcs entre états du CATN d'un même agent et les interactions entre CATN d'agents associés à la résolution d'une tâche commune. Dès lors, on obtient une plus grande

expressivité graphique, en permettant d'analyser séparément, soit l'exécution des actions de chaque agent en suivant ses CATN respectifs, soit les interactions entre agents.

Parmi les variantes des RdP utilisées pour les SMA on trouve les RdP Colorés, [RdPC, 18], qui bien qu'ayant la même puissance de description que les RdP, essayent de mieux synthétiser les informations, particulièrement celles des jetons distribuées dans les places du RdPC. Malheureusement cette synthétisation ne se reflète pas dans une plus grande lisibilité des diagrammes des RdPC, ce qui n'aide pas a ce que cette représentation puisse être plus largement utilisée. Une autre variante est celle des RdP Récursifs [RdPR, 6], RdPR, qui a été appliquée pour modeler la fusion de plans, leur coordination dynamique et leur exécution. Les RdPR introduisent les notions d'action, de transition et de méthode abstraites qui permettent une définition de RdPR de hauts niveaux chaque fois plus détaillés jusqu'à arriver à des transitions simples. Cette capacité de description de plans ou de processus qui vont de modèles abstraits à des modèles touj ours plus concrets correspond parfaitement à la démarche naturelle d'utilisation des CATN.

46

VI. Conclusion

Dans cette partie, nous avons essayé de présenter un état de l'art sur les notions théoriques en rapport direct avec le thème de notre mémoire. Cet état de l'art présente de manière plus ou moins detailée des définitions et explications sur les concepts d'agents, de SMA, d' e-commerce, d'ontologie, etc. Une importance particulière a été accordée à la communication dans les systèmes multi-agents et les langages qui sont employés (FIPA-ACL). Il est ainsi possible d'établir, indéniablement, une certaine analogie entre la communication chez les agents et la communication humaine puisque toutes les deux servent à transférer de l'information d'un interlocuteur à un autre tout en se basant sur une méthode tel que les actes de langage.

Pour enrichir la sémantique de ces actes de langage, nous avons abordé la notion d'ontologie afin de voir ce qui se cache derrière ce vocabulaire. La conclusion à laquelle nous avons abouti est que l'objectif principal d'une ontologie est de permettre le partage et la réutilisation de connaissances ainsi que de spécifier de manière précise le sens de chaque terme employé à un moment particulier.

Introduction

Cette partie est basée sur la définition et la présentation de l'ontologie utilisée et la modélisation des actes de communication inter agents. Elle se veut de présenter l'application réalisée à l'issue du travail effectué. Notre application comporte des agents acheteurs et vendeurs situés dans un réseau, en communication et coopération partageant une ontologie commune.

Nous présentons ici le rôle de chaque agent (Acheteur, Vendeur), les actes de communication utilisés entre eux, le modèle CATN illustrant le protocole de communication, un bref overview sur la plate forme Jade et l'explication de l'ontologie utilisée.

I. Spécification des comportements des agents

Les agents sont des entités logicielles dotées de suffisamment d'autonomie décisionnelle pour effectuer des tâches spécifiques (Vente, Achat) avec peu ou pas de surveillance humaine.

L'importance des agents est de plus en plus grande. Ces derniers sont utilisés pour optimiser la recherche d'informations et pour dialoguer avec les utilisateurs et les aider à faire des choix, etc.

Ils permettent de substituer les interfaces existantes (entre homme et ordinateur). Cependant, le e-commerce est seulement un des innombrables services que peut offrir cette technologie.

Le commerce électronique couvre essentiellement le domaine de la vente de produits mais on peut également l'imaginer couvrant le domaine des services tels que (réservation d'hôtel, achat des billets d'avion, etc.). Dans le premier cas, les agents intelligents commencent à prendre une place importante en vue d'automatiser un certain nombre de tâches. Il s'agit de rendre la comparaison des prix, la fonction d'achat, la fonction de vente et la négociation de plus en plus automatisées. Cette tendance permettra à l'entreprise d'améliorer les connaissances qu'elle a de ses clients pour mieux adapter son offre aux besoins du marché. Quand au client, cela lui permettra de tirer avantage des comparaisons des prix et des produits.

On distingue des agents qui interviennent du côté client (agents acheteurs) et des agents qui interviennent côté entreprise (agents vendeurs). Les agents destinés au commerce électronique sont en pleine expansion et pourront bouleverser les pratiques commerciales dans les années à venir.

48

Au cours de ce travail nous avons essayé de faire apparaître l'intérêt des agents et l'échange des messages entre eux (acheteurs et vendeurs) tout en intégrant une ontologie afin de permettre aux agents de mieux comprendre les messages pendant les opérations de ventes et d'achats de livres.

II.1 Description des agents et de leurs types II.1.1 Les agents acheteurs

L'intervention des agents côté clients (agents acheteurs) permettra au client de comparer les prix et d'acheter des produits à des prix avantageux. Plus concrètement, les consommateurs dotés d'agents dédiés à l'analyse de l'offre, peuvent trouver un produit en menant une recherche par marque, par catégorie. L'idée, à terme, est de fournir une présélection automatique d'articles en fonction des préférences du consommateur avec un comparatif sur les prix.

Les agents contrôlés par les clients interviennent donc pour faciliter le processus d'achat. Plus précisément ces agents peuvent nous renseigner sur:

II.2 Spécification des interactions inter-agents par le CATN

jump (pas de vendeur)

Répondeur : Vendeur.catn

Reçoit msg Reject-Proposal
/ou Fin de temp.

Livre demandé n'existe pas

Initiateur : Acheteur.catn

Tous les agents ont répandu/
Ou Fin de temps

Inscription AMS et DF

1

Recherche

dans le DF

2 3 4 5

Envoie msg
CFP

6

Envoie msg Accept-Proposal Envoie msg Reject-Proposal

Reçoit msg Propose

Erreur (carte crédit)

Reçoit msg

1 2 3 456

Envoie msg (Lancer la vente)
Propose

Enregistrement
AMS et DF

Reçoit msg CFP

Exécuter service
(La vente)

FIG 10: Spécification des interactions inter-agents par le Formalisme CATN

50

Comportements attendus du système

Les actes de communication inter-agents obéis sent aux deux CATN présentés précédemment:

Côté vendeur:

1) Dans le cas contraire, il sélectionne la meilleure offre et il la passe au client en lui demandant de valider la vente. Dans ce cas le client doit saisir le numéro et le type de la carte de crédit, ainsi l'agent acheteur pourra enfin acheter le livre par l'envoi d'un message « LancerVente » à l'agent vendeur sélectionné.

II.3 Enumération des actes de communication des agents

Les actes de communications entre agents suivent un processus qui se déroule suivant un ordre donné. Nous présentons sur la figure suivante un tel processus.

Acheteur

 

Vendeur 1

 

Vendeur 2

 

Vendeur 3

cfp:Le Titre

En stock, prix=268

Propose:204

choix Rejet

Lancer la vente

refuse

Pas en stock

Propose:268

En stock, prix=204

Informe (fin de vente)

FIG 11 : Enumération des actes de communication des agents

Explication de la FIG 11:

Pour commencer, il faut noter qu'il existe des agents acheteurs et des agents vendeurs. Nous avons choisi de créer 3 agents vendeurs pour les besoins de l'application. Pour ce qui est des agents acheteurs, leur nombre n'est pas limité. Ils sont créés dynamiquement, en cas de besoins, par l'utilisateur (dans le cas réel les vendeurs sont créés par l'application otherside).

4 CFP : Call For Proposal.

52

Les différentes interactions ou actes de communication se déroulent suivant un ordre donné comme indiqué ci-après:

1- L'agent acheteur (ou l'initiateur) envoie un message «CFP4 » à tous les agents vendeurs inscrits dans le DF et proposant des services (ventes de livres). Ce message porte sur la disponibilité de livre demandé; après il attend une réponse des agents possédant le livre demandé dans leurs bases d'articles.

2-Chaque vendeur traite le message reçu et renvoie, en réponse à l'acheteur, un message qui est soit « Propose », soit «Refuse » selon qu'il possède ou non le livre demandé.

3- L'acheteur attend un certain temps. Si ce temps s'écoule et qu'il manque encore quelques messages en réponse, il se contente de traiter les messages qu'il a reçus. Si ce temps s'écoule et qu'il n'a reçu aucun message, alors il considère que l'article recherché n'est pas disponible. S'il reçoit toutes les réponses, il n'a pas à attendre l'écoulement de ce délai, il commence immédiatement le traitement qui consiste à sélectionner la meilleure offre en se basant sur le critère relatif au prix.

4-L'agent acheteur demande au client de saisir les renseignements nécessaires pour valider l'achat. En plus l'agent acheteur vérifie les renseignements (numéro de la carte de crédit,...) et envoie un message «Request »« LancerVente » au vendeur sélectionné.

5-L'agent vendeur choisi traite le message «Request »« LancerVente », et si toutes les conditions sont remplies (Validité de la carte de crédit), il lance la vente tout en éliminant la quantité vendue de sa base de données. En fin, il envoie un message d'information indiquant la fin de l'opération de vente.

53

III. Représentation de la plate-forme JADE

Le meilleur moyen pour construire un système multi-agent (SMA) est d'utiliser une plate-forme multi-agent. Cette dernière est un ensemble d'outils nécessaire à la construction et à la mise en service d'agents au sein d'un environnement spécifique. Ces outils peuvent servir également à l'analyse et au test du SMA ainsi créé. Ces outils peuvent être sous la forme d'environnement de programmation (API) et d'applications permettant d'aider le développeur. Nous allons étudier dans cette section la plate-forme JADE5.

JADE est une plate-forme multi-agents développée en Java par CSELT (Groupe de recherche de Gruppo Telecom, Italie) qui a comme but la construction des systèmes multi-agents et la réalisation d'applications conformes à la norme FIPA6 (FIPA, 1997). JADE comprend deux composantes de base : une plate-forme agents compatible FIPA et un paquet logiciel pour le développement des agents Java.

III.1 Pourquoi la plateforme JADE?

On a développé notre application sous la plate forme multi agent JADE qui offre les avantages suivants:

Dans la FIG 12, on voit qu'il existe trois rôles principaux dans une plate-forme multi-agents FIPA :

55

s'exécuter sur des plates-formes différentes et utiliser technologies différentes d'interconnexion, FIPA spécifie que les messages transportés entre les plates-formes devraient être codés sous forme textuelle. On suppose que l'agent est en mesure de transmettre cette forme textuelle.

III.3 L'environnement JADE

Le but de JADE est de simplifier le développement des systèmes multi-agents en conformité avec la norme FIPA pour réaliser des systèmes multi-agents interopérables. Pour atteindre ce but, JADE offre la liste suivante de caractéristiques au programmeur d'agents :

est cachée au programmeur d'agents qui a seulement besoin de traiter la classe d'objets Java.

57

thread interne de contrôle ; cependant, un agent peut engager des conversations simultanées multiples, tout en poursuivant d'autres activités qui n'impliquent pas d'échanges de messages.

JADE utilise l'abstraction Comportement pour modéliser les tâches qu'un agent peut exécuter et les agents instancient leurs comportements selon leurs besoins et leurs capacités.

De point de vue de la programmation concurrente, un agent est un objet actif, ayant un thread de contrôle. JADE utilise un modèle de programmation concurrente "un thread par agent" au lieu d'un modèle "un thread par comportement" pour éviter une augmentation du nombre de threads d'exécution exigés sur la plate-forme d'agents. Ceci signifie que, pendant que les agents différents s'exécutent dans un environnement multi-threads de préemption, deux comportements d'un même agent sont

les plus communes dans la programmation des agents, tels que l'envoi et la réception des messages et la décomposition des tâches complexes en des agrégations de tâches plus simples.

III.5 Les Actes de communication

Les actes de communications proposés par JADE sont: agree, cancel, confirm, cfp, disconfirm, failure, inform, inform_if, query_if, query_ref, reject_proposal, request, request_when, request_whenever, subscribe, null, propose, not_understood.

L'acte de communication traduit la nature du message envoyé entre agents. Les actes se classent dans des catégories, certaines permettent d'amorcer des protocoles alors que d'autre sont utilisés pour répondre. Ainsi request, cfp, request_when, request_whenever, query_if, query_ref, subscirbe sont utilisés pour amorcer un questionnement ou une demande de proposition et agree, inform, failure, propose, not_understood, sont des réponses possibles .Le plus usité est le not_understood, dès qu'un agent ne comprend pas le message reçu, il répond par un message not_undertood pour avoir plus de clarté.

Et voici, le Tab 02 qui explique tous les performatifs:

59

61

62

IV. Définition et description de l'ontologie utilisée

Cette section décrit les dispositifs de base du nouveau support du langage de contenu et d'ontologie de JADE inclus dans le package jade.content. Ces dispositifs sont dans la majorité des cas suffisants. Le package jade.content cependant fournit un certain nombre de dispositifs avancés, tels que la possibilité de créer les requêtes, qui sont importantes pour des applications complexes et qui n'étaient pas disponibles dans l'ancien support. Ces dispositifs sont importants pour faire communiquer des agents et leur permettre de raisonner au sujet des « objets et des faits » liés à un domaine donné.

Le processus d'exploitation de ces outils suit les étapes suivantes:

1) Définir une ontologie comprenant les schémas pour les types de prédicat, d'action d'agent et de concept qui sont pertinents au domaine considéré.

2) Développer des classes Java pour tous les types de prédicat, d'action d'agent et de concept définis dans l'ontologie.

3) Choisir un langage de contenu approprié parmi ceux directement soutenus par JADE. Il peut être facilement étendu pour soutenir de nouveaux langages de contenu définis par l'utilisateur, mais dans la grande majorité des cas l'utilisateur n'a pas besoin de définir son propre langage de contenu.

4) Enregistrer l'ontologie définie et le langage de contenu choisi pour l'agent.

5) Créer et manipuler l'expression de contenu comme des objets Java qui sont des classes développées dans l'étape 2 pour permettre à JADE de traduire ces objets Java en chaînes de caractères ou séquences de bits qui seront utilisées par le champ contenu d'un message ACL.

Nous illustrons les étapes ci-dessus par le développement de l'ontologie associée à notre SMA. Ce dernier consiste en un agent vendeur contrôlant une base de données d'une bibliothèque où un type d'article (livre) est disponible pour la vente. Chaque article a un numéro de série, un titre et un auteur. L'agent vendeur possède un certain nombre d'articles et peut les vendre à un agent acheteur. L'agent acheteur lui demande s'il possède un livre donné et, si c'est le cas, il lui demande éventuellement de le lui vendre.

Tous ces actes de communication obéissent au vocabulaire d'une ontologie dont nous présentons le détail à travers les sections suivantes :

IV.1 Définition de l'ontologie

Une ontologie en JADE est une instance de la classe jade.content.onto.Ontology à laquelle les schémas définissant la structure des types de prédicat, d'actions d'agent et de concept concernant le domaine adressé ont été ajoutés. Ces schémas sont des instances des classes PredicateSchema, AgentActionSchema et ConceptSchema incluses dans le package jade. content.schema. Ces classes ont des méthodes au moyen desquelles il est possible de déclarer les champs qui définissent la structure de chaque type de prédicat, d'action d'agent et de concept. Comme une ontologie est fondamentalement une collection de schémas qui typiquement n'évoluent pas pendant la durée de vie d'un agent, il est plus pratique de déclarer l'ontologie comme un objet singleton et de définir une classe qui étend le package jade.content.onto.Ontology avec une méthode d'accès statique à cet objet singleton. Ceci permet de partager le même objet ontologie (et tous les schémas inclus) entre différents agents d'une même JVM.

Dans notre application, concernant la vente de livres, nous définissons trois concepts (article, livre, Auteur), deux prédicats (coût/cost), (possède/owns) et une action d'agent (vente/sell). En outre nous devrons traiter le concept AID11.Même si ce concept n'a pas besoin d'être défini puisque toute ontologie définie dans JADE étend automatiquement une ontologie de base (représentée comme un objet singleton de la classe jade.content.onto.BasicOntology) qui inclut les schémas:

· Les types primitifs (String, Integer, Float...).

· Quelques prédicats, actions d'agent et concepts génériques à travers lesquels le concept d'AID identifie un agent.

Afin de déclarer que l'ontologie O1 étend l'ontologie O2 (c.-à-d. tous les prédicats, les actions d'agent et les concepts inclus dans O2 sont également inclus dans O1) il suffi de passer O2 comme paramètre dans la construction de O1.

11 AID : identification de l'agent.

64

L'ontologie pour le domaine de vente de livres peut être définie comme suit:

import jade.content.onto.*;

import jade.content.schema.*;

public class Livre-ontologie extends Ontology {// le nom qui identifie l'ontologie public static final String ONTOLOGY_NAME = "Livre-ontologie"; // VOCABULAIRE

public static final String ITEM = "Item";

public static final String ITEM_SERIAL = "serial-number";

public static final String LIVRE = "Livre";

public static final String LIVRE_TITRE = "titre";

public static final String LIVRE_AUTEUR = "Auteur";

public static final String AUTEUR = "Auteur";

public static final String AUTEUR_NOM = "nom";

public static final String AUTEUR_PRENOM = "maison";

public static final String OWNS = "Owns";

public static final String OWNS_OWNER = "owner";

public static final String OWNS_ITEM = "item";

public static final String SELL = "Sell";

public static final String SELL_BUYER = "buyer";

public static final String SELL_ITEM = "item";

private static Ontology theInstance = new Livre-ontologie();

public static Ontology getInstance() {

return theInstance;

}

private LivreOntologie() {

super(ONTOLOGY_NAME, BasicOntology.getInstance())

try {

add(new ConceptSchema(ITEM), Item.class);

add(new ConceptSchema(LIVRE), Livre.class);

add(new ConceptSchema(AUTEUR), Auteur.class); add(new PredicateSchema(OWNS), Owns.class); add(new AgentActionSchema(SELL), Sell.class);

ConceptSchema cs = (ConceptSchema). getSchema(ITEM); cs.add(ITEM_SERIAL,(PrimitiveSchema).getSchema(BasicOntology.INTEGER),

ObjectSchema.OPTIONAL);

cs = (ConceptSchema). getSchema(LIVRE);

cs.addSuperSchema((ConceptSchema). getS chema(ITEM)); cs.add(LIVRE_TITRE,(PrimitiveSchema).getSchema(BasicOntology.String));

cs.add(AUTEUR, (ConceptSchema). getSchema(AUTEUR), 1 ,ObjectSchema.UNLIMITED);

cs = (ConceptSchema) .getSchema(AUTEUR);

cs.add(AUTEUR_NOM, (PrimitiveSchema). getSchema(BasicOntology.STRING));

cs.add(AUTEUR_PRENOM,(PrimitiveSchema).getSchema(BasicOntology.INTEGER),
ObjectSchema.OPTIONAL);

PredicateSchema ps = (PredicateSchema).getSchema(OWNS); ps.add(OWNS_OWNER,(ConceptSchema).getSchema(BasicOntology.AID)); ps.add(OWNS_ITEM, (ConceptSchema). getSchema(ITEM));

AgentActionSchema as = (AgentActionSchema).getSchema(SELL);

as.add(SELL_ITEM, (ConceptSchema) getSchema(ITEM));

as.add(SELL_BUYER, (ConceptSchema ).getSchema(BasicOntology.AID)); }

catch (OntologyException oe) {

oe.printStackTrace();

}

}

Toutes les classes de XXXSchema sont incluses dans le package jade.content.schema .A partir du code ci-dessus nous pouvons voir que:

· Chaque schéma ajouté à l'ontologie est associé à une classe Java, par exemple le schéma pour le concept Livre est associé à la classe Livre.java. Tout en utilisant l'ontologie définie, les expressions indiquant des livres seront des instances de la classe Livre. Ces classes Java doivent avoir une structure appropriée comme il est décrit dans la section IV.2.

· Chaque champ dans un schéma a un nom et un type, c. -à-d. les valeurs pour cette propriété doivent être conformes au schéma indiqué.

· Un champ peut être déclaré comme OPTIONAL pour préciser que sa valeur peut être nulle. Autrement un champ est considéré MANDATORY. Si une valeur nulle pour un champ MANDATORY est rencontrée dans la validation de l'expression de contenu, une exception (OntologyException) est levée.

· Un schéma peut avoir un certain nombre de super-schémas. Ceci permet de définir des rapports de spécialisation/généralisation parmi des concepts. Par exemple le schéma du livre a le schéma d'article comme super-type. Cela signifie que le livre est un type d'article et donc chaque instance de livre est également un instance d'article.

66

IV.2 Développement des classes ontologiques en java

Comme nous l'avons indiqué dans la section IV.1, chaque schéma inclus dans l'ontologie est associé à une classe Java. Ces classes doivent obéir aux règles suivantes:

1) Implémenter une interface appropriée:

IV.3 Choix du langage de contenu

Le package jade.content inclut directement des codecs pour deux langages de contenu (le langage SL et le langage LEAP).Un codec pour un langage de contenu L est un objet Java capable de contrôler des expressions de contenu écrites en langage L. Dans la majorité des cas, un programmeur peut juste adopter un de ces deux langages de contenu et employer le codec relatif sans aucun effort additionnel. Cette section donne quelques conseils qui peuvent aider dans le choix entre ces deux langages. Si un réalisateur veut que ses agents «parlent » un langage de contenu différent il peut définir un codec qui lui est approprié.

Le langage SL est un langage de contenu String-encoded (l'expression du contenu en SL est une chaîne de caractères) lisible pour l'homme et est probablement le langage de contenu le plus diffusé dans la communauté scientifique traitant les agents.

À la différence du langage LEAP, SL ne supporte pas des séquences de bits. Enfin le réalisateur devrait tenir compte du fait que le langage SL traite des actions d'agent en particulier. Toutes les actions d'agent dans le langage SL doivent être insérées dans la construction d'ACTION (inclus dans BasicOntology et implémenté par la classe jade.content.onto.basic.Action) qui associe l'action d'agent à l'AID de l'agent qui est prévu pour exécuter l'action. De ce fait l'expression

(Sell (Book: title «Java») (agent-identifier :name Agent1))

ne peut pas être employée directement comme contenu d'un message de (demande/re quest), même s'il correspond à une action d'agent dans le modèle de référence de contenu. En fait, la grammaire de SL ne le permet pas comme expression de premier niveau. L'expression suivante doit être employée à la place

(ACTION

(agent-identifier :name Agent1) (Sell

(Book :title «Java»)

(agent-identifier :name Agent2)

)

)

L'Agent1 est l'agent qui est sollicité pour vendre le livre indiqué à l'agent Agent2.

68

IV.4 Enregistrement des langages de contenu et des ontologies

Avant qu'un agent puisse réellement employer l'ontologie définie et le langage de contenu choisi, ils doivent être enregistrés par le gestionnaire de contenu de l'agent. Cette opération est effectuée pendant la création de l'agent (c. -à-d. dans la méthode setup() de classe Agent).

Le code suivant montre cet enregistrement dans le cas de l'agent vendeur (l'agent acheteur obéit à la même règle) en supposant que le langage SL est choisi.

public class Vendeur extends Agent

{

private Codec codec = new SLCodec();

private Ontology ontologie = LivreOntologie.getInstance();

....

protected void setup() {

getContentManager(). registerLanguage(codec); getContentManager().registerOntology(ontologie) }

A partir de maintenant le gestionnaire de contenu associera le codec et les objets de l'ontologie enregistrés au Strings retournés par leurs méthodes getName () respectives.

IV.5 Création et manipulation des expression du contenu

Après avoir défini une ontologie (et les classes associées aux types de prédicat, d'action d'agent et de concept qu'elle inclut), il faudra choisir un langage approprié et enregistrer tout cela dans le gestionnaire de contenu de l'agent. La création et la manipulation des expressions de contenu comme des objets Java est directe.

Le code suivant montre comment l'agent acheteur demande à l'agent vendeur s'il possède un livre dont le titre est: «Java ».

// prépare le message Query-IF

A CLMessage msg = new A CLMessage (A CLMessage. QUERY_IF); msg. addReceiver(Vendeur)

msg.setLanguage(codec.getName());

msg.setOntology(ontology.getName());

Livre livre = new Livre();

livre.setTitre(«Java»);

Auteur aut = new Auteur ();

aut.setNom(«Claude»); Livre.setMaison(«Dunod»); Owns owns = new Owns(); owns.setOwner(Vendeur); owns.setItem(livre);

try {

getContentManager().fillContent(msg, owns);

send(msg);

}

catch (CodecException ce) {

ce.printStackTrace();

}

catch (OntologyException oe) {

oe.printStackTrace();

}

70

V. Scénario d'exécution

Ce scénario d'exécution illustre un exemple d'utilisation de notre application, nous avons jugé utile de donner un exemple complet d'un achat de livres.

Le processus d'achat s'effectue comme suit:

A partir de cette fenêtre nous pouvons:

72

74

FIG 20 : Fin de l'achat

Dans notre scénario d'exécution, l'ontologie n'apparaît pas de façon directe pour l'utilisateur, mais son rôle est exprimé essentiellement dans les échanges des messages entre les agents. Quand un agent envoie un message vers un autre agent, le message envoyé est de format String, ce dernier porte une information, si l'agent récepteur reçoit ce message, alors en ce moment il valide l'information en se basant sur l'ontologie et effectue la traduction des objets Java selon des règles syntaxiques du langage de contenu.

76

VI. CONCLUSION

Dans cette partie, nous avons réalisé une application, ce qui nous a permis de mettre en pratique les interactions entre agents au moyen des actes de communication Inter-agents. Ces derniers utilisent une ontologie que nous avons intégrée, et cela pour que les agents puissent accéder à la sémantique des messages qu'ils s'échangent. Pour modéliser ces actes de communication et les comportements des agents, nous avons utilisé le formalisme CATN, car il permet une représentation graphique et explicite des actions et des états des différents agents à tout moment. Concernant la plateforme, on a choisi JADE qui est une plateforme facilitant la mise en place des systèmes multi-agents grâce à une interface personnalisée qui répond aux spécifications de la Fondation pour les Agents Intelligent Physique (Foundation for Intelligent Physical Agents -FIPA-) et grâce à un ensemble d'outils qui supportent la résolution des bugs.

CONCLUSION GENERALE

Il existe plusieurs organisations de recherche qui se penchent vers la construction des applications orientées agents pour simplifier la vie des utilisateurs dans ce domaine. Cette approche, orienté agent, n'est plus un aspect théorique: il existe plusieurs entreprises qui sont en train de développer des applications agents pour le commerce électronique utilisables via l'Internet. Malgré les difficultés de la conception et de la standardisation, les applications agents sont utilisées de plus en plus pour le commerce électronique.

Pour mettre notre étude théorique en application, on a jugé utile de choisir ce domaine (e-commerce). Pour cela nous avons réalisé une application qui nous a permis de mettre en pratique les interactions entre agents au moyen des actes de communication inter-agents et l'intégration d'une ontologie dans ces actes de communication, intégration dont l'objectif est de simplifier l'utilisation et la compréhension de ces actes de communication inter-agents.

Perspectives

Le concept d'agent nous intéresse dans la mesure où il donne la possibilité de construire des artefacts logiciels capables d'apprendre à partir des actions de l'utilisateur. Les agents que nous avons eu à développer effectuent essentiellement des ventes de livres. Cependant cette vente peut s'étendre à d'autres articles tels que les CD, ou tout autre produit. On pourra ajouter d'autres fonctionnalités aux agents acheteurs afin d'améliorer leur performance. Par exemple, on pourrait inclure des méthodes multi-critères d'aide à la décision telles que AHP (Analysis Hiararchical Procedural) ou ELLECTRE dans la phase du choix de la meilleure offre dans le cas où le produit proposé doit satisfaire plusieurs critères. En outre on peut améliorer les actes de communication utilisés pour réaliser la transaction d'achat au sein des messages ACL utilisés, notamment par l'utilisation des requêtes.

Résumé:

Les systèmes multi-agents sont l'un des paradigmes technologiques les plus prometteurs dans le développement de systèmes logiciels distribués. La technologie agent commence par être utilisée pour concevoir des solutions facilitant la mise en place de nouveaux concepts notamment économiques comme le e-commerce.

Mais la communication inter-agents doit se baser sur des messages compréhensibles par les différents agents. Il faudra donc penser à un moyen qui garantirait cette compréhension commune des contenus des messages échangés. Ce moyen n'est qu'une ontologie, qui représente une sorte de vocabulaire d'un domaine.

Le thème de notre mémoire étant l'Intégration d'ontologie dans les actes de communication inter-agents, pour ce fait, nous avons choisi d'intégrer une ontologie dans la communication inter-agents d'un système e-commerce qui consiste en un certains nombres d'agents vendeurs de livres et un agent acheteur lancé par un client désirant se procurer un livre.

Mots-clés : ACL, Acte de communication, Agents, E-commerce, Fipa, JADE, Langage de contenu, ontologie, SMA.

Références bibliographiques

[BER 00] Bernon Carole, Gleizes Marie-Pierre, Glize Pierre, «L'agentification du code en perspective », 4ème Ecole Inform atique des Systèmes Parallèles et Réparties : ISYPAR '2000, 1-3 février 2000.

[BOU 92] Bouron T., Structure de communication et d'organisation pour la coopération dans un univers multi-agents, Université Paris VI, (Thèse 3ème cycle, Informatique), Novembre 1992

[BRA 95] Brassac Christian, Pesty Sylvie, « Coopération dans les systèmes multi-agents: comportement ou conduite ? », Decentralized Intelligent Multi-Agent Systems'95, Krakow, Pologne, 22-24 novembre, 1995.

[BRE 98] Brenner Walter, Zarnekow Rüdiger, Wittig Harmut, Intelligent Software Agents: Foundations and Applications, Springer-Verlag, Berlin, 1998.

[COH 95] Cohen P.R., Levesque H.J., "Communicative actions for artificial agents», Proceedings of the First International Conference on Multi-Agent Systems - ICMAS-95, AAAI Press/The MIT Press, California, June 1995, 65-72 p.

[DAV 83] Davis R., Smith R.G., «Negotiation as a metaphor for distributed
problem solving », Artificial Intelligence, v.20, 1983, 63-109 p.

[DUR 91] Durfee E.H., Lesser V.R., «Partial Global Planning: A Coordination Framework for Distributed Hypothesis Formation », IEEE Transactions on Systems, Man and Cybernetics, v.2 1, n°5, 1991, 1167- 1183 p.

[FER 98] Ferber Jacques, Gutknecht Olivier, «A meta-model for the analysis and design of organizations in multi-agent systems », In: Proceedings of the Third International Conference on Multi-Agent Systems - ICMAS'98, IEEE Computer Society, USA, 1998, 128-135 p.

[FER 96] Ferber Jacques, «Technologie multi-agent », Mémento : Les interfaces intelligentes et images de communication et l 'images, France Télécom Recherche, n°8, Octobre 1996.

[RUS, 97] Rationality and intelligence. Artificial Intelligence, Russell, Vol. 94.

[FER 95] Ferber Jacques, Les systèmes multi-agents : vers une intelligence
collective,
1995.

[FIN 97] Finin Tim, Labrou Yannis, Mayfield James, «KQML as an Agent Communication Language », Software Agents, Bradshaw Jeffrey (Eds.), AAAI/MIT Press, 1997.

[FIPA 00] Foundation for Intelligent Physical Agents, «FIPA Abstract
Architecture Specification », August 2000, http://www.fipa.org.

[FRA 96] Stan Franklin, Art Graesser, «Is it an agent or just a program?: a taxonomy for autonomous agents », In: Intelligent Agents III : Agents Theories, Architectures and Languages, ECAI'96 Workshop (ATAL), Springer-Verlag, 1996.

[INV 97] Inverno Mark de, Luck Michael, Wooldridge Michael, «Cooperation Structures », In: Proceedings of the Fifteenth International Joint Conference on Artificial Intelligence (IJCAI-97), v.1, Nagoya, Japan, 1997, 600-605 p.

[KRA 97] Kraus Sarit, «Negotiation and cooperation in multi-agent
environments », Artificial Intelligence, v.94, n°1-2, 1997, 79-97 p.

[KRA 95a] Kraus Sarit, Wikenfeld Jonathan, Zlotkin Gilad, «Multi-agent negotiation under time constraints », Artificial Intelligence, v.75, n°2, 1995, 297-345 p.

[KRA 95b] Kraus S., Lehmann D., «Designing and building a negotiating automated agent », Computational Intelligence, v.11, n°1, 1995, 132- 171 p.

[KUW 95] Kuwabara Kazuhiro, Ishida Toru, Osato Nobuyasu, "AgenTalk: Coordination Protocol Description for Multiagent System", Proceedings of the First International Conference on Multi-Agent Systems - ICMAS'95, AAAI Press/ the MIT Press, 1995, 455 p.

[LAB 93] S. Labidi, W. Lejouad, « De l'Intelligence Artificielle Distribuée aux Systèmes multi-agents », Rapport de recherche n°2004, INRIA, Août 1993

[LABR 00] Labrou Yannis, Finin Tim, «History, State of the Art and Challenges for Agent Communication Languages », Informatik - Informatique, n°1, Février 2000, 17-24 p.

[LABR 99] Labrou Yannis, Finin Tim, Peng Yun, «Agent Communication Languages: the Current Landscape », IEEE Intelligent Systems & Their Applications, v.14, n°2, 1999, 45-52 p.

[MAY 96] Mayfield James, Labrou Yannis, Finin Tim, «Evaluating KQML as an Agent Communication Language », In: Wooldridge Michael, Müller Jörg P., Tambe Milind (Eds.), Intelligent Agents II: Agent Theories, Architectures, Languages - IJCAI'95 Workshop (ATAL), Lecture Notes Artificial Intelligence v.1037, Springer-Verlag, 1996, 347-360 p.

[MUL 96] Jörg P. Müller, The design of intelligent agents. A layer approach,
Lecture Notes of Computer Science v.1177, Springer-Verlag, 1996

[OBR 98] O'Brien P.D., Nicol R.C., «FIPA - towards a standard for software
agents », BT Technology Journal, v.16, n°3, July 1998, 51-59 p.

[OCC 94] Occello Michel, Demazeau Yves, «Building Real Time Agents using Parallel Blackboards and its use for Mobile Robotcs », 1994 IEEE International Conference on Systems, Man and Cybernetics, v.2, San Antonio, USA, 1994, 1610-1615 p.

[OHA 96] G.M.P. O'Hare, N.R. Jennings (Eds.), Foundations of Distributed
Artificial Intelligence,
Wiley & Sons, New York, 1996

[ROB 96] Robert Frédéric, Coopération multi-robots par insertion incrémentale de plans, Institut National Polytechnique de Toulouse, (Thèse 3ème cycle, Robotique), Juin 1996

[SAN 95] Sandholm Tuomas, Lesser Victor, «Issus in Automated Negotiation

and Electronic Commerce: Extending the Contract Net Framework »,

In: Proceedings of the First International Conference on Multi-Agent

Systems - ICMAS-95, AAAI Press/The MIT Press, 1995, 328-335 p.

[SHO 93] Yoav Shoham, «Agent-oriented programming », Artificial
Intelligence,
v.60, n°1, 1993, 51-92 p.

[WOO 98a] Michael Wooldridge,« Agent-Based Computing », Interoperable
Communication Networks,
v.1, n°1, January 1998, 71-97 p.

[WOO 98b] Michael Wooldridge, Nicholas R. Jennings, «Pitfalls of Agent-Oriented Development », In: Proceedings of the 2nd Conference on Autonomous Agents (Agents-98), Minneapolis, USA, 1998, 385-391 p.

[WOO 98c] Michael Wooldridge, Afsaneh Haddadi, «Making it up as they go along: A theory of reactive cooperation », In Wobcke W., Pagnucco M., Zhang C. (Eds.), Agents and Multi-Agent Systems -- Formalisms, Methodologies, and Applications, Lecture Notes in Artificial Intelligence, v. 1441, Springer-Verlag, 1998, 15-30 p.

[WOO 95a] Michael Wooldridge, Nicholas R. Jennings, «Intelligent Agents: Theory and Practice », The Knowledge Engineering Review, v.10, n°2, 1995, 115-152 p.

[WOO 95b] Wooldridge Michael, «This is MyWorld: the Logic of an Agent-

Oriented DAI Testbed", Proceedings of ECAI-94 Workshop on Agent

Theories, Architectures and Languages, Lecture Notes in Artificial

Intelligence v.890, Springer-Verlag, Germany, 1995, 160-178 p.

[Fipa Os 9] FIPA-OS Website, http://www.nortelnetworks.com/fipa- Os

[Pet W, 20] P. Werner. The Paradigm Shift from Algorithms to Interaction,
CACM,40 :80-91. 1997.

[RdPC, 18] R. Scott, Y. Chen, T. Finin, Y. Labrou, Y. Pen, Modeling Agent

Conversations with Colored Petri Nets, Third Conference on

Autonomous Agents (Agents-99), Workshop on Agent

Conversation Policies, Seattle, WA (May 1999).

[RdPR, 6] A. El Fallah Seghrouchni, S. Haddad, A recursive Model for DistributedPlanning, ln Mario Tokoro(Ed) Proceedings ICMAS-96, AAAI Press, 1996.

[GRUB 93] GRUBER T., A Translation approach to portable ontology spécification, Knowledge Acquisition 5(2) pages 199-220, 1993. [P.ROB, 79] Dictionnaire Petit Robert, édition 1979.

Web graphies






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








"Il faudrait pour le bonheur des états que les philosophes fussent roi ou que les rois fussent philosophes"   Platon