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
Information brute
Conceptualisation
Modèle Conceptuel
ontologisation
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
|