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.
|