Vous êtes sur la page 1sur 87

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE

MINISTERE DE L’ENSEIGNEMENT SUPPERIEUR ET DE

LA RECHERCHE SCIENTIFIQUE

UNIVERSITE MENTOURI CONSTANTINE

FACULTE DES SCIENCES DE L’INGENIEUR

DEPARTEMENT INFORMATIQUE

Projet de Fin d’Étude en Vue d’Obtention du Diplôme

D’Ingénieur d’État en Informatique

OPTION:Systémes d’Information Avancés (SIA)

Génération d’Explications Avec


Prise En Compte du Contexte
(Application sur une base de
connaissances généalogiques)

Presenté par: Dirigé par:

• BOUCHERIT Mohamed Lotfi Dr. LARABA Mohamed

• DJEBASSI Houssem El-Habib

Session Juillet 2010


Table des matières
N° Chapitre Paragraphe Page
Table des Matières I
Dédicaces V
Introduction
1 Notion d’Explication 1
1. Introduction
2. Définition Formelle 3
3. Etude Linguistique 3
3.1. Contrainte sur l’explandum 4
3.2. Contrainte sur l’explanans 4
3.3. Contrainte sur le lien entre 4
l’explanans et l’explandum
4. Etude en Psychologie 5
5. Etude en Intelligence Artificielle 5
6. Difficultés Rencontrées 7
7. Qualités d’une explication performante 8
2 Notion de Contexte 9
1. Introduction 11
2. Contexte en Psychologie 11
3. Besoins d’une définition consensuelle 13
4. Corpus de la définition 13
5. Contexte dans l’IA 14
5.1. Le Contexte et le Raisonnement 14
5.2. Le Contexte et les Connaissances 14
6. Identification du Contexte 16

I
7. Le Contexte et l’explication 16
8. Représentation du Contexte, Graphes 18
Contextuels
3 Notion d’Agent 22
1. Introduction 24
2. Concept d’agent 24
2.1. Définition 24
2.2. Caractéristiques d’un agent 25
3. Typologie d’un agent 25
3.1. Agents Réactifs 25
3.2. Agents Cognitifs 26
3.3. Comparaison entre les agents 28
réactifs et les agents cognitifs
4. Les systèmes multi agents 28
4.1. Définition 28
4.2. Caractéristiques d’un système multi 29
agent
4.3. Les modèles d’un système multi 29
agents
4.3.1. Systèmes à tableau noir 30
4.3.2. Systèmes d’acteur 30
4.3.3. Systèmes distribués 31
5. Interaction dans les systèmes multi agents 31
5.1. Définition 31
5.2. Types d’interaction 31
5.2.1. Coordination 31
5.2.2. Coopération 31
5.2.3. Communication 32
5.2.3.a) Communication par envoi de 32

II
message
5.2.3.b) Communication par partage 32
d’information
5.2.3.c) Modèle hybride 33
5.3. Langages de communication 33
5.3.1. KQML 33
5.3.2. FIPA-ACL 34
5.3.3. Autres Langages 34
4 Analyse et Conception 35
1. Introduction 37
2. Méthodologie de développement 39
2.1. Analyse 40
2.1.1. Les tâches explicatives 40
2.1.2. Identification des agents 43
2.1.3. Identification des utilisateurs 43
2.1.4. Identification des interactions 44
2.1.5. Interactions entre les agents du 44
système
2.1.6. Organisation 44
2.2. Conception 45
3. Protocoles d’interaction du système 46
3.1. Protocole de validation 46
3.2. Protocole de construction 47
3.3. Protocole de génération 48
4. Architecture générale d’un agent 48
5. Classe d’agent 50
6. Diagrammes d’activités 52
6.1. Anque 52

III
6.2. Whow-Key/Whot-Key 53
6.3. Concex 53
6.4. Genex 54
7. Conclusion 54
5 Réalisation 55
1. Introduction 57
2. Outils de développement 57
2.1. Plate-forme JADE 57
2.2. Langage de programmation Java 57
2.3. Bibliothèque JPL 58
2.4. Langage de programmation logique, 58
Prolog
3. Les agents 59
3.a) Agent User 59
3.b) Agent Anque 60
3.c) Whow-Key/Whot-Key 63
3.d) Concex 65
4. Le prototype 67
4.1. Présentation 67
4.2. Etude de Cas 69
Conclusion Générale 75
Bibliographie 77
Table des Figures 79

IV
Dédicaces
Dédicaces

Dieu, merci

Notre plus profonde reconnaissance à toutes celles


et ceux qui, de près ou de loin, nous ont conseillés, orientés
et encouragés lors de la réalisation de ce modeste travail.

Nous remercions aussi notre encadreur DR. LARABA


Mohamed El-Habib qui nous a aidés à la réalisation de ce
mémoire

Merci pour ses encouragements, son dévouement et sa


grande générosité.

Plus généralement, nous remercions tous nos


enseignants et enseignantes du département
d’informatique.

Nous dédions ce travail à nos chers et bien aimés


parents, nos frères et sœurs et à toute la famille, ainsi qu’à
tous les enseignants qui ont contribué à notre formation
tout au long de notre cursus.

Avec toute notre Estime

VI
Introduction
Introduction

L’explication est une tâche quotidiennement effectuée par les êtres humains qui
l’utilisent pour justifier certains de leurs actes, communiquer leur savoir, ou s’en
servent pour la prise de décision. Une tâche humaine, si habituelle, n’a pas manqué de
susciter l’intérêt des chercheurs en intelligence artificielle (IA) dont certains ont
même caractérisé l’IA de « la science de l’explication fournie par le système à son
utilisateur, dans le langage de ce dernier »

Deux principaux thèmes ont caractérisé les recherches en IA concernant


l’explication:

• l’explication du monde: dont l’aspect intéressant est de considérer que les systèmes
de résolution de problèmes, tels que les systèmes de diagnostic par exemple,
expliquent un ensemble de données. .
• l’explication des décisions: dont l’objectif est de permettre à des programmes,
spécialement des Systèmes Experts (SE) ou Systèmes à Base de Connaissances
(SBC) d’expliquer leur propre raisonnement.
Une explication doit permettre à l’utilisateur d’un système à base de connaissances
d’assimiler de nouvelles connaissances par rapport à celles qu’il a déjà. L’utilisateur
est donc un élément essentiel à considérer lors de la production d’une explication.
Pourtant, nombreux sont les systèmes à base de connaissances dotés de capacités
explicatives qui n’impliquent pas l’utilisateur dans la construction d’une explication.
Ceux-ci n’ont pu lui être d’un apport effectif. Il est donc indispensable que
l’utilisateur participe à l’élaboration d’une explication qui est alors vue comme un
processus coopératif dont le système et l’utilisateur sont les agents. Au cours de ce
processus, l’explication est progressivement affinée par l’ajout de connaissances de la
part des deux agents. Il faut donc que ceux-ci interagissent dans le même contexte.
L’importance du contexte était déjà reconnue dans les années 80 Cependant, à
l’époque, on ne savait pas comment le prendre en compte effectivement et, par
conséquent, les recherches sur la génération d’explications piétinaient. En effet, on a
vite compris qu’il ne suffisait pas d’ajouter des connaissances supplémentaires
(connaissances explicatives) à celles utilisées dans la tâche expliquée (connaissances
du domaine, connaissances sur l’utilisateur, connaissances sur la construction

VIII
Introduction

d’explications, etc.). Il fallait plutôt les considérer dans le contexte de la question de


l’utilisateur.

C’est ainsi que, quelques années plus tard, et dans le cadre du développement des
systèmes intelligents, successeurs des systèmes à base de connaissances, des
recherches débutaient sur la modélisation du contexte pour des applications de taille
réelle.

Ces études ont mis en évidence la nécessité, pour expliciter le contexte, de revoir la
représentation des connaissances et du raisonnement. L’objectif était donc d’arriver à
une représentation uniforme des éléments de connaissances, de raisonnement et de
contexte.

Un cadre conceptuel cohérent a été alors proposé, qui a mené au développement d’un
logiciel —les graphes contextuels—qui a permis de rendre possible cette
représentation uniforme des éléments de connaissances, de raisonnement et de
contexte .

Le travail présenté dans le présent manuel, qui nous a été proposé dans le cadre de
notre projet de fin d’études pour l’obtention du diplôme d’ingénieur d’état en
informatique, vise justement à prendre en compte effectivement le contexte lors de la
génération d’explications par un système à base de connaissances généalogiques en
utilisant les graphes contextuels.

IX
Chapitre 01
Notion d’Explication
Notion d’Explication

1. 1. Introduction :

Le concept d'explication, ou l'acte d'expliquer, a plusieurs acceptions dans le


langage commun. Expliquer, c'est "faire comprendre ou faire connaître en détail par un
développement oral ou écrit" (Petit Larousse, 1995), l’action de rendre un énoncé clair et
non ambigu [Hachette 01].
Hempel a donné une définition plus formelle à ce concept, nous allons présenter
cette définition dans le paragraphe qui suit.

1.2. Définition formelle

Plus formellement donc, et pour reprendre la terminologie de Hempel [Hempel 66],


reprise dans [Laraba, M.E.H. 07], on appelle:
 explication: le processus de production des explanans pour des explandums.
Soit, par exemple, «je prends mon parapluie parce qu’il pleut».
 explandum: l’entité à expliquer (processus physique, phénomène, actions pour
accomplir une tâche, ...). Soit, par exemple, «je prends mon parapluie»
 explanans: l’entité qui constitue l'explication (texte, démonstration, énoncé,
propositions, représentation mentale, ....). Soit, par exemple, «il pleut»
Une telle définition formelle de l’explication a été la base d’une étude linguistique
sur les marques de l’explication, menée par le groupe λ-1 (Logique et Langage), un
groupe de professeurs et de chercheurs traitant des rapports possibles entre
l’enseignement de la langue et celui de la pensée logique, et dont nous présentons un
extrait dans paragraphe qui suit de ce chapitre.

1.3. Etude linguistique :

Nous présentons donc ici un extrait de l’étude menée par le groupe λ-1 que nous
avons tiré de [Karsenty et al 96], reprise dans [Laraba, M.E.H. 07]:
Les membres du Groupe λ-1considèrent, et conformément donc à la terminologie
de Hempel, une explication comme un énoncé constitué de trois composants :
• l’explandum, ou information à expliquer, noté p,
• l’explanans, ou contenu explicatif, noté q,
• et l’explication qui constitue le lien entre p et q.

3
Notion d’Explication

Un énoncé de la forme p parce que q représente pour ces auteurs un exemple


typique de l’acte explicatif.
Pour définir la spécificité de ce type d’énoncé, ils envisagent alors les contraintes
suivantes:

1.3.1. Contrainte sur l’explandum :


La vérité de p doit toujours être reconnue. C'est d'ailleurs ce qui permet de
distinguer sémantiquement les deux tournures suivantes : "p parce que q " et "q ; aussi p "
comme le montrent les deux énoncés suivants:
• Je suis sorti parce qu'il faisait beau
• Il faisait beau ; aussi suis-je sorti.
Dans les deux cas, q est donné pour l'origine de p. Mais lorsqu'on emploie "parce
que", p est considéré comme un fait déjà connu, que l'on cherche à expliquer, "cette
admission préalable (de p) étant cela même qui permet de parler d'un acte d'explication".

1.3.2. Contraintes sur l’explanans :


Aucune contrainte particulière ne semble s'appliquer sur q. Le producteur
d’explication (l’expliqueur) ne présente pas nécessairement q comme déjà connu du
destinataire de cette dernière (l’apprenti), ni davantage comme inconnu. Mais il faut
ajouter que si l'auditeur refuse d'admettre la vérité de q, il ne pourra pas, a fortiori, tenir q
pour cause de p (autrement dit, un énoncé de type : p parce que q "implique", parmi ses
multiples conséquences, la vérité de q).

1.3.3. Contraintes sur le lien entre explandum et explanans


Le contenu qui est asserté dans une explication est la relation causale entre p et q.
C’est ce lien qui est présenté comme un apport d'information nouvelle. Ceci conduit
d'ailleurs les auteurs à poser que la nécessité de croire q découle logiquement, une fois p
considéré comme incontestable, de la causalité affirmée entre p et q"
Ces travaux, en se penchant sur l’utilisation de la conjonction « parce que »,
amènent donc à dire que la spécificité de l'acte d'explication repose les deux aspects
suivants :
• l'admission préalable de l’explandum

4
Notion d’Explication

• l'énonciation d'une relation causale entre l’explandum et un ou plusieurs


explanans.

1.4. Etude en psychologie :

Les études récentes de l’explication en psychologie, sont rares. La majorité des


travaux sur ce concept dans le champ des sciences cognitives s’intéressent à l’étude
linguistique. Hilton (1988) a étudié le contenu des explications causales et les stratégies
utilisées pour les produire : prototype d’explication, modèle scientifique de la personne
novice. Nous distinguons que selon ce point de vue, nous parlons de structures des
connaissances entre lesquelles l’explication génère des connexions.

En psychologie cognitive les recherches les plus intéressantes, celles de Karsenty


(Karsenty 1992 ; Karsenty& Falzon 1992 ; Karsenty 1994 ; Karsenty&Brézillion
1995 ; Karsenty 1996, 2000,2001). Ces travaux sont tournés vers le rôle et la nature des
explications dans le cadre des dialogues coopératifs dans le travail de conception. Le but
des recherches de Karsenty est de comprendre comment les besoins d’explications
naissent et savoir quelles propriétés doivent avoir les explications pour être satisfaisantes.

(Karsenty&Brézillion 1995; baker 1992) travaillent sur l’explication comme co-


construction, c’est –à- dire le produit d’ajustement entre l’expliqueur et l’apprenti. Nous
remarquons, dans ce cas la dépendance de la qualité de l’explication à l’aide apportée à
l’apprenti. Ce point de vue renforce la recherche de l’explication suffisante. Qu’est –ce
qui fait qu’une première explication n’est pas elle-même suffisante ? Quand nécessite-t-
elle une reformulation, un complément, etc. ?

1.5. Etude en Intelligence Artificielle (I.A):

[Laraba, M.E.H. 07] relève que, comme toutes les tâches et les habitudes
humaines, l’explication a été parmi les intérêts des chercheurs en intelligence artificielle
dont certains ont même caractérisé l’I.A de « la science de l’explication fournie par le
système à son utilisateur, dans le langage de ce dernier ».
Cette notion a deux interprétations en intelligence artificielle :

5
Notion d’Explication

 La première interprétation traite l’explication comme un sous processus de


raisonnement.
 La deuxième interprétation met l’accent sur l’utilisation de l’explication, pour
rendre les résultats du raisonnement compréhensible pour l’utilisateur ou comprendre le
raisonnement lui-même.

Ces deux points de vue impliquent la naissance de différents thèmes de recherche en


intelligence artificielle sur l’explication.

 La première recherche dit que n’est explicable que ce qui est explicite. Cette
direction dit que : « pour que le domaine devienne accessible par le module explicatif, il
faut prendre en compte l’explication depuis le début de processus de conception des
systèmes a base de connaissance [Lemaire et al 91] [Jimenez 92] [Alexiset al 96]. »

 La deuxième direction travaille sur le processus de construction de


l’explication, modéliser le raisonnement explicatif dans les systèmes a base de
connaissances explicatifs : « que faut-il expliquer, comment, à quel moment? » [Bourcier
et al 94].

 Une troisième direction considère que la production de l’explication est un


processus coopératif entre agents (système et utilisateur) dans un contexte commun.
[Brézillon92a] [Brézillon 92b] [Brézillon 93a] [Brézillon et al 94] [Brézillon et al 95a]
[Brézillon et al 95b]. C’est dans le cadre de cette direction que le présent travail nous a
été proposé.

 la quatrième s’intéresse à la génération d’une explication.

Ces différents thèmes ont résulté sur différents systèmes explicatifs


• Dont, MYCIN [Buchanan et al 84] était l’un des premiers systèmes à fournir des
explications. Il pouvait produire une trace de son raisonnement, un enchaînement des règles
utilisées, pour expliquer la solution qu’il a produite. Une explication dans MYCIN était
alors qualifiée d’explication trace. Sa caractéristique principale est le couplage très fort
entre la ligne de raisonnement et la ligne explicative: les règles du système n’étant qu’une

6
Notion d’Explication

représentation codée du processus de raisonnement du système, la trace d’exécution ne


pouvait servir pour justifier les décisions du système.

• Swartout avait déjà pensé à pallier à cette limite dans son système XPLAIN
[Swartout 83]. L’approche d’explication suivie dans XPLAIN faisait appel à la programmation
automatique: le programmeur automatique, l’écrivain, construisait à partir de la base de
connaissances un programme prêt à être exécuté. Ayant lui-même construit son
programme de raisonnement, il était donc naturellement apte à justifier son raisonnement.
Avec XPLAIN, un nouveau paradigme de Systèmes à Base de Connaissances (SBC)
explicatif était né. Cependant, le bas niveau de représentation des connaissances dans ces
systèmes (règles, frames…) ne pouvait permettre l’obtention d’une explication à un haut
niveau d’abstraction.
• Chandrasekaran [Chandrasekaran et al 89] suggérait alors de décomposer le
système à expliquer en une hiérarchie de tâches contenant des connaissances explicatives de
base aux niveaux d’abstraction appropriés, chacune des tâches apportant sa contribution à
l’explication du système global.

1.6. Les difficultés rencontrées :

Les travaux en intelligence artificielle sur l’explication ont fortement diminué dans
les années 80-90, parce que l’étude de l’explication a rencontré plusieurs difficultés.

Nous citons ici les trois principaux problèmes :

 Il a été difficile de spécifier des modèles qui prennent en compte l’explication


isolement et parviennent à l’opérationnaliser .Ces modèles ont été construits à partir des
formalismes qui sont émergés des sciences du langage .La faiblisse a été localisée au
niveau de la compréhension sémantique des énoncés.

 Un autre problème : comment intégrer l’explication dans un modèle ? La


nature humaine de l’explication rend difficile l’identification de ses conditions.

 La troisième difficulté est venue de la méthodologie employée pour étudier


des corpus de dialogue entre humains afin de les spécifier en langage homme-machine.

7
Notion d’Explication

1.7. Qualités d’une explication performante :

Une explication qualifiée performante, doit avoir les qualités listées dans
[Swartout& Moore 1993] et [Roth-Berghofer 2004] :

 La fidélité : l’explication doit être une représentation précise de ce que fait le


système.

Par conséquent, les explications doivent être basées sur la même connaissance que
le système emploie pour le raisonnement.

 La compréhension : les explications produites doivent être compréhensibles


pour l’utilisateur. Elles doivent également apporter des informations nouvelles aux
connaissances de l’utilisateur.

 La suffisance : le système doit savoir de quoi il parle. Assez de connaissances


doivent être représentées dans le système pour répondre aux questions des utilisateurs.

 Le faible coût de construction : l’explication produite par le système expert


doit nécessiter un faible coût de chargement afin, par exemple, de faciliter les autres
processus mis en œuvre par le système expert.

 L’efficacité : la production d’explication ne devrait pas dégrader l’efficacité


d’exécution du système.

La coopération avec l’utilisateur était aussi très rare dans les systèmes développés,
mais certain systèmes prennent en charge cette approche pour construire une explication
performante, même ces systèmes n’ont pas arrivé à ce but car l’utilisateur doit interagir
avec le système par la saisie de commandes très complexes et parfois c’est difficile pour
des utilisateurs novices.

8
Chapitre 02
Notion de Contexte
Notion de Contexte

2.1. Introduction :

Le mot contexte est de plus en plus employé de nos jours. En 1997, seulement 5%
des pages web contenaient le mot contexte. En 2004, il y en avait 15 %, bien que ce mot
ne soit pas toujours bien employé. Depuis 10 ans, le nombre de pages web contenant ce
mot a crû exponentiellement.

On ne parle du contexte qu'en référence à quelque chose (pas de définition du


contexte hors contexte) : le contexte des interactions, le contexte de la résolution d'un
problème, etc.
Chaque domaine, a élaboré une définition de travail du contexte. En interaction
homme-machine (IHM), on définit une caractéristique contextuelle comme une
information qui peut être utilisée pour définir et interpréter une situation dans laquelle
interagissent des agents. Dans la communauté des « Context-Aware Applications1», DEY
et ABOWD, 1998 définissent par contexte :
« Toute information qui caractérise une situation reliée aux interactions entre des
humains, des applications et l'environnement immédiat. »
En IA, le contexte est ce qui n'intervient pas explicitement dans la résolution d'un
problème mais contraint cette résolution [Brézillon, 1999]. Ces définitions sont assez
proches et leurs différences proviennent essentiellement de leur différence de contexte.
Les références sur le contexte existent dans toutes branches de la psychologie. C'est
certainement le concept le plus utilisé. Nous y reviendrons plus tard. Essayons à présent,
de donner une définition è la notion de contexte.

2. 2. Contexte en psychologie :

Il existe plusieurs notions en psychologies qui sont considérées comme des notions
très proches à la notion du contexte, telles que les notions de Situation et du Champ
(par exemple dans la théorie WITKIN sur styles cognitifs2), la notion du Milieu (en
psychologie animale), la notion de Distracteur (dans la psychologie de perception),

1
http://en.wikipedia.org/wiki/Context_awareness
2
http://en.wikipedia.org/wiki/Cognitive_styles

11
Notion de Contexte

d’Arrière-plan (par exemple dans la théorie de GESTALT3). Toutes ces notions sont
considérées comme faisant partie du contexte stimulus immédiat.

En psychologie générale, le contexte est souvent utilisé dans le sens de l’ensemble


d'éléments de la situation dans laquelle l'objet est en cours de traitement.

Bastien, C. (1999) distingue deux points de vue opposés sur le rôle du contexte
dans la cognition humaine :

• Le premier point de vue considère la cognition comme un ensemble de


processus généraux qui modulent l'instanciation de pièces générales de la connaissance
par la facilitation ou l'inhibition.

• Dans le second point de vue, le contexte a un rôle plus central en tant que
composante de la cognition en déterminant les conditions d'activation des connaissances
ainsi que les limites de validité des connaissances.

Ces deux points de vue opposés soulignent que le contexte peut avoir un caractère
interne ou externe :

 D'une part, le contexte est un objet extérieur par rapport à un objet donné.

 D'autre part, le contexte appartient à une personne et fait partie intégrante de


la représentation et la construction de la situation où il est impliqué.

Selon ce deuxième point de vue, «le contexte ne peut être dissociée de la


connaissance qu'il l’organise, le rôle du contexte et le domaine de validité défini ».

Ces deux points de vue opposés peuvent être conciliés dans un modèle prototype.
Ainsi, ils semblent converger à :

1- un point local qui est lié à l'environnement structurel. Le contexte est activé et
construit au cours d’interactions, car il devient pertinent.

2- une perspective globale, qui se réfère aux composants externes étant donné le
contexte.

3
La psychologie de la forme (Gestalt) est une théorie générale qui offre un cadre pour différentes
connaissances psychologiques et leur emploi. L'être humain y est compris comme un système ouvert ;
l'homme interagit activement avec son environnement.

12
Notion de Contexte

Elle comprend des connaissances et des croyances, et l'expérience générale résultant


de l'interaction de la culture de la communauté sociale.

2.3. Besoin d'une définition consensuelle :

La section précédente montre que le contexte est presque un mot à la mode en


psychologie, comme pour les autres disciplines (informatique, linguistique etc...).
Cependant, le mot contexte comme certains mots comme «concept» ou «système» par
exemple, on n’a pas une définition universelle, on trouve autant de définitions que les
auteurs. Pour la raison qu’est utilisée partout et que tout le monde suppose qu’ils
connaissent sa signification, chaque auteur veut délimiter le sens particulier qu’il donne
à ce mot.

Définition :

Il n'y a pas une réelle définition consensuelle de la notion de contexte. Une telle
définition devrait dépendre de son contexte et de la discipline qui l’utilise.

Ainsi, Il y a maintenant une base de données de plus de 150 définitions du contexte


sur le web dans diverses disciplines telles que l'informatique, philosophie, économie
etc.….

2.4. Corpus4 de la définition :

Ainsi, BREZILLON et BRUN ont collecté une série de définitions du contexte,


principalement sur le Web. Initialement, le but était de développer un modèle efficace du
contexte pour être utilisé dans les systèmes à base de connaissance. Après un moment, il
est apparu qu'il n'était pas possible de développer un modèle du contexte en isolation,
parce que les connaissances et le raisonnement sont étroitement corrélés. L’idée était de
concevoir et de développer un logiciel basé sur un formalisme qui est basé sur le
contexte pour représenter les connaissances et le raisonnement. Ce formalisme sera
nommé les graphes contextuels.

4
Ensemble de d’outils indispensable pour l’extraction de l’information utile pour le traitement
statistique : http://fr.wikipedia.org/wiki/Corpus

13
Notion de Contexte

Dans [BREZILLON, 2002] l'absence d'une définition opérationnelle explique les


différents échecs dans les systèmes a base de connaissances parce que :

• Les utilisateurs et leurs contextes ne sont pas pris en compte.

• Il y a une mauvaise utilisation des connaissances hors du contexte de validité.

• Avec le nombre infini de contextes, il n'est pas possible de doter un système


avec toutes les connaissances nécessaires.

• Les systèmes informatiques n'ont pas les compétences pour identifier le


contexte dans lequel la demande d'un utilisateur doit être interprétée.

2.5. Le contexte dans L’IA :

2.5.1. Le Contexte et le raisonnement :

Le Contexte semble essentiel pour toutes les tâches de raisonnement et les


problèmes du monde réel. La prise en compte du contexte dans l'expression de
raisonnement peut permettre l'exploitation de diverses formes de raisonnement. Comme
le raisonnement non- monotone,le raisonnement sur des situations, le raisonnement
approximatif,le raisonnement abstrait, le raisonnement meta-theoretical , ainsi le contexte
est considéré comme une référence pour interpréter les informations acquise ou fourni et
le raisonnement.

Le contexte peut être aussi considéré comme un mécanisme de gestion,


d’organisation de connaissances et de raisonnement sur ses connaissances .La prise
explicite du contexte dans la représentation de connaissances et le résonnement donne aux
systèmes la capacité d’inférence et de changer le raisonnement explicitement dans les
différent contextes. Le raisonnement contextuel peut être également considéré comme
une forme généralisée de raisonnement basé sur les cas5.

Une question associée à l'étude du contexte est la relation entre les contextes et leur
organisation. Les contextes sont liés les uns aux autres: Un contexte est défini dans un
autre contexte. Bien que les contextes sont liés les uns aux autres dans la définition de

5
Le raisonnement par cas ou Case Based Reasoning (CBR), copie ce comportement humain. Il résout
les problèmes en retrouvant des cas analogues dans sa base de connaissances et en les adaptant au
cas considéré. Cette technologie est apparue il y a une quinzaine d’années mais les travaux initiaux
sur le sujet remontent cependant aux expériences de Schank et Abelsonen 1977 à l’Université Yale.

14
Notion de Contexte

base, il y a des relations qui peuvent conduire à une gestion efficace du mouvement d'un
contexte à l'autre. Par exemple, en utilisant les règles du pont, vous pouvez localiser les
faits et le raisonnement à un contexte unique avant de passer à un autre.

2.5.2. Le contexte et les connaissances :

[BREZILLON & POMEROL, 1990] distinguent à une étape donnée d’un


processus de décision ou de la réalisation d’une tâche, les connaissances pertinentes de
celles qui ne le sont pas. Les premières sont appelées connaissances contextuelles et les
autres connaissances externes. Les connaissances contextuelles dépendent clairement de
l’agent qui les possède et de la décision à élaborer. A une étape de la prise de décision, un
sous-ensemble des connaissances contextuelles est procéduralisé. Celui-ci est invoqué,
structuré et situé par rapport à un focus d’attention donné (l’étape courante de la prise e
décision). Il constitue un véritable CHUNK OF KNOWLEDGE [SCHANK, 1982].
Ainsi, le contexte ne se distingue pas des autres objets du raisonnement, de
l’apprentissage, etc., objets qui sont ou non dans le contexte courant selon les
circonstances. La connaissance contextuelle est une connaissance d’arrière-plan alors que
le contexte procéduralisé est utile immédiatement pour la tâche en cours
d’accomplissement. Dans cette représentation du cotexte, les connaissances contextuelles
sont largement tacites parce qu’elles représentent ce que tout le monde connaît sans avoir
besoin de l’exprimer. Lorsque le processus de décision ou la réalisation de la tâche passe
d’une étape à la suivante, il apparaît une dynamique du contexte qui est liée au
mouvement entre les connaissances contextuelles et le contexte procéduralisé. D’une
étape à la suivante, le contexte procéduralisé change, par exemple en y intégrant le
résultat de la première étape. Le contexte procéduralisé précédent va alors dans le corps
des connaissances contextuelles comme un tout (un chunk of knowledge) qui pourra être
rappelé tel quel ultérieurement.

Les connaissances externes sont des connaissances divers tels que la connaissance
connue de l’utilisateur mais laissée implicite selon le focus courant, la connaissance
inconnue de l’utilisateur (hors de ses compétences), la connaissance contextuelle d’autres
acteurs dans une équipe, etc.

15
Notion de Contexte

2.6. Identification du contexte :

Les résultats de recherches montrent que le contexte a une dimension infinie, ce qui
implique qu'il est toujours lié à un autre contexte englobant, et 'il est difficile à le décrire
totalement.
Au début on distingue la partie du contexte qui concerne le problème à résoudre
(les connaissances contextuelles) des connaissances qui ne sont pas pertinentes (les
connaissances externes). Au cours du processus de la résolution du problème (le focus
d'attention), un sous-ensemble de connaissances contextuelles est mobilisé, situé, organisé
et structuré (le contexte procéduralisé) afin d'être utilisées dans la résolution.
On peut dire que le contexte est dynamique, cela veut dire, qu'il se change d'une
étape à une autre. Par ailleurs, il est noté que l’on ne peut connaître la frontière entre
connaissances contextuelles et externes qu’a posteriori.

Le contexte est connaissance, et la connaissance est contexte. A un instant donné, il


y a des connaissances qui sont externes et d'autres contextuelles, et une partie des
connaissances contextuelles est "compilée" dans le focus d'attention. Le contexte est
relatif à un focus d'attention (e.g. le contexte d'utilisation), et les connaissances
contextuelles sont organisées autour du focus d'attention (voir la métaphore de l'oignon
dans Brézillon et al., 1997). La granularité des connaissances contextuelles dépend de la
distance au focus d'attention, et, le focus d’attention se déplaçant au cours de la résolution
du problème, le contexte procéduralisé change également.

2.7. Le contexte et l’explication :

Le développement des systèmes explicatifs a été abandonné après trente ans de


recherche, car il s’est avéré que ces systèmes ne prenaient pas en compte la notion du
contexte. [BREZILLON & POMEROL, 1996] en discuté pour générer un
essoufflement dans le domaine.

Ce manque a été pallié progressivement jusqu’aux débuts des années 90


(CLARCK, 1993 ; GIBBS & MOISE, 1997 ; HOFFMAN, 1986). Le problème était la
négligence du contexte comme élément essentiel dans l’explication. Avant de parler de
contexte, il a fallu envisager l’explication comme une activité de coopération entre

16
Notion de Contexte

l’apprenti et l’expliqueur [KARSENTY, 1995] sans laquelle la compréhension ne


pouvait être atteinte.

Aujourd’hui, la notion de contexte paraît essentielle. Il est en effet maintenant


reconnu que la représentation des connaissances et des raisonnements exige une
explication du contexte dans les formalismes utilisés et les logiciels qui en découlent et
qu’une bonne explication est explication contextualisée. Il y a en effet, une dépendance de
l’explication au contexte peut être vue comme un processus permettant de faire une
distinction entre la situation actuelle et les autres classes de situations. Une théorie
intégrant les inférences contextuelles devrait permettre de déterminer quelles explications
sont présentement appropriées.

La recherche a arrivé à des études ne concernant que le contexte, son rôle dans les
communications (ex : LEGROS, PEMBROKE & ACUNA, 2003 ; LEGROS, 2002).
On cite par exemple, «La notion de contexte partagé dans les communications» de
[KARSENTY, 2003] où son habilitation à diriger des recherches ne porte que sur cette
notion, son importance, son rôle et ses apports à la compréhension des dialogues
explicatifs.

Aujourd’hui, la prise en compte du contexte est indispensable dans toutes études des
processus de communication. Le contexte fait partie intégrante aujourd’hui du concept
d’explication. [VERGNIOUX, 2003] Affirme : «Une explication est toujours
contextualisée»

Voici un extrait de [Brézillion 1993] qui montre l’importance du contexte dans le


dialogue explicatif.

« Expliciter le contexte permet une production coopérative des


explications. L’explication est une construction des deux agents,
chacun amenant des connaissances que l’autre doit partager. Ces
connaissances sont alors organisées par les deux agents, et une
fois mutuellement acceptée, la construction est remplacée par un
concept résultant, et les connaissances partagées deviennent
implicites entre les deux agents. Le contexte est vu comme

17
Notion de Contexte

l’ensemble des connaissances dont les deux agents discutent à un


instant donné.»

2.8. REPRESENATION DU CONTEXTE, Les graphes contextuels:

Ainsi, de nouvelles approches ont récemment été élaborées afin de prendre en


compte la notion de contexte et permettre ainsi de s’intéresser de nouveau à des travaux
qui n’étaient plus d’actualité comme la génération d’explication.

Les graphes contextuels, un des rares formalismes basés sur le contexte


actuellement proposés, permettent de décrire non seulement les procédures officielles de
résolution de problème mais aussi les pratiques qui sont véritables contextualisations que
font les opérateurs des procédures pour prendre en compte le contexte du problème.

Le formalisme des graphes contextuels permet une acquisition des connaissances de


manière incrémentale dépendant du contexte qui permet une introduction efficace des
explications. Dans ce formalisme, le contexte est représenté explicitement et la
connaissance est acquise dans son contexte d’utilisation ce qui permet de rendre possible
la production d’explications.

Plus précisément, un graphe contextuel est un graphe acyclique orienté (acyclique


car nous partons du problème vers sa résolution et orienté pour indiquer le déroulement
temporel de la résolution du problème) représentant les actions à exécuter en fonction du
contexte (BREZILLON, 2002a, 2002b ; BAZIRE, 2003 ; BREZILLON & TIJUS,
2005 ; Potier, 2005). Ce graphe possède une unique entrée et une unique sortie car les
opérateurs sont un unique but. Les chemins du graphe représentent les différentes
stratégies pour accomplir ce but en fonction du contexte. /es éléments d’un graphe
contextuel sont les actions, les éléments contextuels, les sous graphes, les activités et les
groupements d’actions parallèles. Ce graphe utilise différents types de nœuds reliés par
des arcs orientés pour représenter les éléments de connaissance. Le processus de
raisonnement suit la direction du graphe et évalue le contexte à chaque élément
contextuel. Cette évaluation du contexte permet de choisir quel chemin emprunter. Le
chemin défini par tous les éléments traversés représente une pratique spécifique qui peut
être aussi utilisée pour décrire la logique du système.

18
Notion de Contexte

Figure 1 : Exploitation des informations sur une page Web (tirée de Brézillion 2005). Les
carrés Correspondent aux actions, les cercles aux éléments contextuels : les grands cercles
aux nœuds contextuels et les petit cercles aux nœuds de recombinaison

Les tableaux 1 et 2 suivants, donnent une légende des symboles utilisés dans la
figure 1 précédente.

Elément Contextuel Définition

CE3 La page est-elle intéressante

CE4 Y a-t-il des figures à récupérer ?

CE1 Quel est le temps de chargement de la page ?

CE14 Tout le site est-il exploité ?

CE5 Est-ce que toute la page est intéressante ?

CE2 Type de recherche ?

Tableau 1 Exploitation d’une page web au bout du lien [BREZILLON, 2005]

(Les éléments contextuels)

19
Notion de Contexte

Action Définition

A7 Fermer la fenêtre

A11 Sauvegarder la page html

A12 Copier et coller le contenu de la page dans un éditeur

A6 Localiser les mots clés dans la page

A15 Aller à la page d’accueil du site

A5 Sélectionner la partie intéressante de la page

A8 Localiser l’item recherché (ex. l’adresse)

Tableau 2 Exploitation d’une page web au bout du lien [BREZILLON, 2005]

(Les actions)

Cette figure représente l’ensemble des exploitations qui peuvent être faites d’une
page web qui est visitée (l’application est détaillée dans BREZILLLON & TIJUS,
2005), les le tableau suivant donne le contenu des symboles utilisés dans la figure 1. Le
contexte d’une action, comme l’action A6 dans cette figure, est décrit de manière statique
par un ensemble de connaissances contextuelles (CE14 et CE5 pour l’action A11) et un
ensemble d’éléments contextuels instanciés (CE1 avec la valeur <COURT>, CE2 avec
la valeur <EXPLORATION>, CE3 avec la valeur <OUI> et CE4 avec la valeur <OUI>
pour l’action A11). Notons qu’une action telle A7 apparaît plusieurs fois dans des
contextes différents dans le graphe contextuel.

Le formalisme des graphes contextuels permet de représenter la dynamique du


contexte (le mouvement entre connaissances contextuelles et contexte procéduralisé)
présentée dans l’état des lieux ; en effet, le contexte procéduralisé correspond ici à la suite
des éléments contextuels qui ont été instanciés car traversés par la pratique exécutée, et
les connaissances contextuelles sont les éléments contextuels qui ne sont pas instanciés
lors de l’application de la pratique.

Avec les graphes contextuels, un grand nombre d’informations peuvent être


exploites, comme la manière dont un graphe contextuel s’est développé, quelle est la
contribution d’un utilisateur donné à l’évolution d’un graphe, la mesure d’une distance

20
Notion de Contexte

entre deux graphes contextuels ou deux pratiques. Les explications qui peuvent être
générées à partir de ces informations représentent aussi un challenge très au-delà de ce
que représentaient les explications dans les premiers systèmes experts. Un autre intérêt
des graphes contextuels provient du caractère transdisciplinaire des graphes contextuels.
Ce formalisme a prouvé son caractère opérationnel dans de nombreuses applications liées
à des domaines variés : la prise de décision RATP, la résolution de problèmes, le
diagnostic médical, la sécurité informatique, etc. Grâce à ce formalisme, la connaissance
est représentée d’une manière qui la rend explicable de manière efficace.

21
Chapitre 03
Notion d’Agent
Notion d’Agents

3.1. INTRODUCTION :
De nos jours, les systèmes multi-agents sont devenus une discipline d'ingénierie
dont le but est de procurer des solutions à des problèmes de la vie réelle. Ils sont
maintenant couramment utilisés en économie, en médecine, en ingénierie et dans de
nombreuses autres disciplines, et ils sont intégrés à de nombreuses applications courantes
de logiciels d'ordinateurs domestiques, aux jeux de stratégie traditionnels, comme les
échecs sur ordinateur et d'autres jeux vidéo.

Ces systèmes sont de plus en plus aptes à résoudre des problèmes très complexes
par des procédés relativement simples à mettre en œuvre et de simuler le fonctionnement
des organisations les plus complexes.

Les apports les plus importants des systèmes multi-agents sont résumés comme
suit :

 L'automatisation et l'amélioration des processus de prise de décisions ;


 La découverte et la représentation des connaissances d’une manière distribuée
 La simulation des fonctionnements des organisations, comme ils sont utilisés
pour simuler de nombreux mécanismes afin de vérifier les hypothèses des nombreuses
recherches
Tout au long de ce présent chapitre nous allons progressivement cerner les systèmes
multi-agents et leurs axes principaux. Pour ce faire, nous commençons par définir les
concepts d’agent et son fonctionnement puis on présente les caractéristiques et les
différents modèles d’un système multi-agents ainsi que les différents types d’interactions
entre agents dans de tels systèmes.

3.2. LE CONCEPT D’AGENT :

3.2.1. Définition :
Plusieurs définitions ont été proposées pour la notion d’agent. D’après Ferber « Un
agent est une entité autonome, réelle ou abstraite, qui est capable d’agir sur elle-même et
sur son environnement, qui, dans un univers multi-agent, peut 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 » [TOUAF 05].

24
Notion d’Agents

Ou encore, « un agent est tout ce qui peut être compris comme percevant son
environnement à travers des senseurs et comme agissant sur cet environnement par
l'intermédiaire d'effecteurs » [THOMAS 05].

Et en plus « l'agent doit être capable de comportements qualifiables de spontanés,


avoir une certaine initiative, proactivité, dans son action, le tout dans le but de satisfaire
son utilisateur, ou, plus globalement, de remplir sa tâche ». [CHICOISNE 02]

3.2.2. Les caractéristiques d’un agent :


Tout agent doit posséder au moins quelques-unes de ces caractéristiques qui le
marquent d’un degré plus ou moins important [STRATULAT 02] :

a) Autonomie : les agents contrôlent leurs actions et leurs états internes. Le


système dans son ensemble est capable de réagir sans l’intervention d’un humain ou d’un
autre agent. l’autonomie est considérée comme la notion centrale de l’agent. Il possède
certains états inaccessibles aux autres agents ;
b) Réactivité : ils perçoivent leur environnement et réagissent aux changements
qui s’y produisent dans le temps requis ;
c) Proactivité : ils ont un comportement proactif et opportuniste pour ne pas agir
uniquement par réaction à leur environnement mais prendre des initiatives selon leurs
buts individuels ;
d) Sociabilité : ils sont capables d’interagir les uns avec les autres quand la
situation l’exige afin d’accomplir leurs tâches ou d’aider les autres agents à accomplir
leurs buts.
e) Apprentissage : ils peuvent évoluer et améliorer leurs connaissances, ainsi
adapter ou changer leurs comportements faces à des situations similaires et cela en
fonction de leurs expériences passées. Cette caractéristique est principalement réservée
aux agents qualifiés « d’intelligents ».

3.3. Typologie des agents :


Il existe deux grandes tendances dans la communauté des agents. Ces deux types
d’agents sont [TOUAF 05] :

3.3.1. Agents réactifs : Les agents réactifs, sont des entités extrêmement simples
qui ne disposent pas presque d’une capacité de raisonnement, n’ayant pas de mémoire,

25
Notion d’Agents

sont de plus bas niveau, ils disposent d’un protocole et d’un langage de communication
réduit, et qui sont situés très localement. (Voir la figure 2.)
Les agents réactifs sont souvent qualifiés de « non-intelligents » qui perçoivent
l’environnement et sont capables d’agir sur celui-ci mais ils n’ont pas une représentation
symbolique de l’environnement ou des connaissances et ils ne possèdent pas de
croyances, pas de mécanisme d’envoi de messages. Leurs capacités répondent
uniquement au mode stimulus/action qui peut être considéré comme une forme de
communication.

Un SMA constitué d’agents réactifs possède généralement un grand nombre


d’agents et présente un comportement global intelligent. Les agents réactifs ne sont pas
intelligents individuellement, mais ils le sont au niveau du groupe. Le comportement
intelligent devrait émerger de l’interaction entre ces agents réactifs et l’environnement qui
les entoure. Chaque agent réactif comporte plusieurs modules, chaque module étant
responsable de la réalisation d'une tâche simple. Ces modules correspondent à des
comportements spécifiques pour accomplir une tâche particulière, et s'appellent modules
de compétence.

Figure2 : Architecture un agent réactif [TOUAF 05]

3.3.2. Agents cognitifs : ils sont plus « intelligents ». Plus complexes, ils peuvent se
construire une représentation de l’environnement, ils possèdent une base de connaissances
et ils sont capables de raisonner, ils peuvent tenir compte de leur passé et ainsi anticiper
sur l’avenir pour planifier leurs actions. Ils peuvent aussi connaître les états des autres
agents.

26
Notion d’Agents

De nombreux travaux de recherche peuvent se classer dans ce type d’approche,


notamment l’approche BDI qui repose sur le modèle « Croyance-Désir-Intention », en
anglais « Belief-Desire-Intention ». Il existe plusieurs architectures d’agents cognitifs, la
figure 3 suivante donne une représentation générale de ce type d’agent :

Figure 3 : Architecture d’un agent cognitif.

L’agent doit élaborer un plan d’action en fonction des connaissances et des


croyances dont il dispose, et des buts qu’il se fixe suite à une perception ou à une
interaction avec le monde extérieur (l’environnement ou les autres agents). Pour cela, il
doit décider du but à retenir et à satisfaire en premier, planifier en fonction de ce but et
passer à l’exécution.

Leur structure fonctionnelle, comme l’illustre la figure 4, est axée autour de trois
fonctions principales qui sont la perception, la communication, la décision [TOUAF 05] :

Figure 4 : Structure de fonctionnement de l’agent cognitif

27
Notion d’Agents

3.3.3. Comparaisons entre agents cognitifs et agents réactifs : le tableau 3


résume les principales différences entres les deux types d’agents.
Agents cognitifs Agents réactifs

Petit nombre d’agents Grand nombre d’agents

Représentation explicite de Pas de représentation


l’environnement

Peut tenir compte de son passé Pas de mémoire de son historique

Connaissances individuelles Pas de connaissances individuelles

Agents complexes Fonctionnement Stimulus/Réponse

Tableau 3 : Comparaison entre agents cognitifs et agents réactifs

Toutefois, pour avoir le meilleur des deux solutions, à savoir architectures


cognitives et réactives, les chercheurs ont conçu des architectures hybrides qui combinent
les caractéristiques de ces deux architectures. Il est possible de concevoir des systèmes
hétérogènes comportant les deux types d’agents. Il est aussi possible de doter les agents
cognitifs de capacités de réactions aux événements : on parlera alors d’agents hybrides.

3.4. LES SYSTEMES MULTI-AGENTS (SMA) :


Contrairement à la description d’un agent qui donne une vision locale, la description
des systèmes multi-agents offre une vue globale et externe, et s’intéresse aux moyens et
méthodes permettant aux agents d’avoir un comportement collectif.

3.4.1. Définition :
Un système multi-agents est « un ensemble d’entités qui coordonnent leurs
connaissances, buts, expériences et plans pour agir ou résoudre des problèmes, incluant
le problème de la coordination inter-agent lui-même ». [TOUAF 05]

Les systèmes multi-agents consistent à « gérer une société d’entités autonomes


appelées agents qui peuvent s’organiser de façon à résoudre des problèmes, réaliser des
tâches et d’une manière générale produire des phénomènes globaux qu’aucun agent ne
peut réaliser ou pas avec la même efficacité individuellement. Les SMA utilisent la
métaphore sociale que ce soit celle des insectes dits sociaux quand les agents sont

28
Notion d’Agents

réactifs (SMA réactifs) ou des organisations humaines quand les agents sont
cognitifs ». [MULLER 02]

Un système multi-agents peut donc être défini comme un ensemble d’agents,


cognitifs ou réactifs, qui adaptent des comportements coopératifs afin de résoudre des
problèmes et d’atteindre leurs buts et de réaliser leurs objectifs.

D’après Ferber, un système multi-agents est constitué de [FERAND 98]:

 Un environnement E, c’est-à-dire un espace disposant généralement d’une


métrique.
Un ensemble d’objets O. Ces objets sont situés, c’est-à-dire que, pour tout objet,

 il est possible, à un moment donné, d’associer une position dans E. Ces objets
sont passifs, c’est-à-dire qu’ils peuvent être perçus, créés, détruits et modifiés par les
agents.
 Un ensemble A d’agents, qui sont des objets particuliers (A С O), lesquels
représentent les entités actives du système.
 Un ensemble de relations R qui unissent des objets (et donc des agents) entre
eux.
 Un ensemble d’opérations Op permettant aux agents de A de percevoir, produire
consommer, transformer et manipuler des objets de O.
 Des opérateurs chargés de représenter l’application de ces opérations et la
réaction du monde à cette tentative de modification, que l’on appellera les lois de
l’univers.

3.4.2. Caractéristique d’un système multi-agents :


Les systèmes multi-agents, possèdent généralement les caractéristiques suivantes :

 Les agents agissent et travaillent indépendamment les uns des autres ;


 Chaque agent est une partie intégrante du système ;
 Chaque agent travaille dans le but d’accomplir ses taches ;
 Chaque agent est capable de communiquer et d’interagir avec d’autres agents ;
 Un agent coopère avec les autres agents lorsque nécessaire ;
 Un agent est capable de coordonner ses activités avec les autres agents pour
accéder à des ressources et à des services dont il a besoin pour réaliser ses taches ;

29
Notion d’Agents

 Les agents peuvent avoir des buts communs ;


 Chaque agent a une vue partielle du système ;

3.4.3. Les modèles de systèmes multi-agents :


On distingue trois types de systèmes multi-agents qui sont [TOUAF 05] :

3.4.3.1. Les systèmes à tableaux noirs (Système centralisé) : Dans ce type de


système, le tableau noir est le seul moyen de coopération entre les agents, elle est alors
indirecte et les agents s’ignorent totalement. Chacun des agents, appelés aussi « sources
de connaissances », renferme une partie de la connaissance du domaine.
Les agents n’ont pas une vue globale du problème, ni de l’état global de la solution.
Ils réagissent uniquement aux informations auxquelles ils ont accès et ne peuvent pas
raisonner sur leurs coopérations avec les autres.

Tout système basé sur ce modèle est constitué de trois entités :

 Les sources de connaissances (KS) : qui sont l’ensemble des agents du système ;
 Tableau noir (blackboard) : contient une description de l’état de la résolution
sous formes d’entités appelées faits, hypothèses ou noeuds. Il sert à partager les données
entre les agents ;
 Le mécanisme de contrôle : il gère les conflits d’accès où ressources contenues
dans le tableau noir entres les agents ;
3.4.3.2. Les systèmes d’acteurs : Ils sont des systèmes dont les connaissances et les
contrôles sont totalement distribués sur l’ensemble des acteurs, un acteur est un agent
actif, autonome et communiquant librement avec ses semblables pour se déléguer des
tâches et se transmettre des résultats (figure 5). Ces systèmes se caractérisent par :
 Un traitement local qui veut dire qu’un agent ne peut manipuler que sa base de
connaissance locale et envoyer des messages aux autres agents qu’il connaît. De ce fait,
les connaissances des uns et des autres sont distribuées parmi les agents, qui effectuent
des tâches en parallèle et de manière indépendante.
 La seule structure de contrôle dans se type de système est l’envoi de message.

30
Notion d’Agents

Figure 5 : Les systèmes d’acteur.

3.4.3.3. Les systèmes distribués : Les systèmes distribués sont composés d’agents
plus complexes que précédemment, dotés de capacités de raisonnement avancées.
Généralement, ces agents sont localisés sur des sites physiquement différents. Cela
implique la mise en œuvre de stratégies de coordinations très élaborées entres les agents.
Ces derniers doivent en effet être capables de planifier intelligemment leurs activités
locales en fonction de celles des autres.

3.5. Les interactions dans les SMA :


La notion d'interaction constitue l'essence d'un système multi-agents puisque c'est
grâce à elle que les agents vont pouvoir produire des comportements collectifs complexes
et dépendants les uns des autres. Toutefois, le terme d'interaction recouvre plusieurs
aspects.

3.5.1. Définition : d’après Ferber « On appellera situation d'interaction un


ensemble de comportements résultant du regroupement d'agents qui doivent agir pour
satisfaire leurs objectifs en tenant compte des contraintes provenant des ressources plus
ou moins limitées dont ils disposent et de leurs compétences
individuelles. »[THOMAS05]
Ferber a proposé une classification des situations d'interaction selon plusieurs
critères en distinguant trois situations :

 La présence d'objectifs communs ou compatibles ;


 L'accès à des ressources communes ;
 La répartition des compétences au sein des agents.
3.5.2. Types d’interactions : les agents utilisent plusieurs types d’interactions pour
coordonner leurs actions. Parmi ces types on peut citer :

31
Notion d’Agents

3.5.2.1. Coordination : Les résultats des travaux de certains agents (les solutions)
sont utiles pour les autres agents. Donc à un certain moment (temps) ils doivent
coordonner leurs taches. La coordination permet aux agents d’une part de traiter toutes les
tâches et d’autre part elle évite aux agents de refaire un travail qui a été fait par l’un des
agents. Elle est la colle qui lie les activités séparées des agents en un ensemble.

3.5.2.2. Coopération : la coopération peut être considérée comme une attitude


adoptée par les agents qui décident de travailler ensemble, elle peut être vue comme la
détermination de : qui fait quoi?, quand?, où?, avec quel moyen? De quelle manière? et
avec qui?

3.5.2.3. La communication : Les communications dans les SMA sont l’essentiel


des interactions et un moyen d’organisation. Une communication peut être définie comme
une forme d’action locale d’un agent vers d’autres agents.
Toute communication suscite les interrogations suivantes : qui communique quoi, à
qui, quand, pourquoi, et comment.

Il existe plusieurs modes de communications entres agents, parmi ces types on peut
citer [TOUAF 05] :

a) Communication par envoi de message : Les agents sont en liaison directe et


envoient leurs messages directement et explicitement au destinataire. Ce mode de
communication est utilisé dans les systèmes d’acteurs.
La Communication par envoi de message se fait suivant deux modes de
transmissions qui sont :

 Transmission point à point : l’agent émetteur connaît et précise l’adresse de ou


des agent(s) destinataire(s).
 Transmission par diffusion : le message est envoyé à tous les agents du système.

b) Communication par partage d’information : Les agents ne sont pas en liaison


directe mais communiquent via une structure de données partagée où les agents accèdent
pour déposer des informations et / ou prendre celles qui leurs sont destinées. Le meilleur
exemple qui utilise ce type de communication est les systèmes à tableau noir, qui est
illustré dans la figure 6 suivante :

32
Notion d’Agents

Figure 6 : Communication par partage d’information.

c) Modèle hybride : Le principe est de concevoir des systèmes d’agents à base de


tableau noir qui communiquent par le mode d’envoi de message,

3.5.3. Les langages de communication agent (ACLs) :


Dans les SMA cognitifs, la tendance est à l’utilisation des langages explicite pour
coder les interactions entres les agents du système, cela permet d’améliorer
considérablement la coordination entres les agents et leurs efficacités

La propriété essentielle des ces langages et qui les rend très utiles, c'est que le sens
de leurs signes est partagé par l’ensemble des agents

Ces langages utilisent au minimum [PASQUIER 05]:

 Un dictionnaire de vocabulaire de signes communs ;


 Des actes de langage qui servent de briques de bases de la communication et
correspondent aux attitudes propositionnelles transmises entre les agents.
Il existe plusieurs types d’ACL (Agent Communication Language), les plus utilisés
sont :

3.5.3.1. KQML [KnowledgeQuery and Manipulation Language] : KQML est


issu d'un projet de la DARPA6, le KSE [Knowledge Sharing Initiative] en 1993,
initialement prévu comme moyen d'échange d'informations entre programmes à base de
connaissances. Toutefois, sa structure orientée message et la généricité de ses primitives
lui permettent d'être utilisé comme ACL.
Ses performatifs sont divisés en trois catégories :

6
Une agence américaine pour la recherche militaire.

33
Notion d’Agents

 Sept (7) performatifs de régulation de conversation traitent quelques cas


particuliers (sorry, error) et permettent quelques variantes de la conversation (standby,
ready, next, rest, discard) ;
 Dix-sept (17) performatifs de discours permettent l'échange d'informations et
de connaissances (ask-if, tell, deny, stream-all, ...) ;
 Onze (11) performatifs d'assistance et de réseau pour étendre la conversation à
plus de deux agents (forward, broker-all, ...).

3.5.3.2. FIPA-ACL (Foundation for Intelligent Physical Agents) : L'organisation


FIPA a défini un standard de langage basé sur la théorie des actes de langages. Les
spécifications de FIPA-ACL se composent d’un ensemble de types de message et de la
description. Elles fournissent également la description normative d’un ensemble de
protocoles d’interactions de haut niveau, y compris la demande d’action, l’établissement
de contrat (contract net) et plusieurs mécanismes d'enchère.
Sa syntaxe est identique à celle de KQML excepté différents noms pour quelques
primitifs réservés. FIPA-ACL possède 21 actes communicatifs, exprimés par des
performatives. En FIPA-ACL, il n'existe pas de primitives de gestion ni de facilitation.
Les actes communicatifs peuvent être primitifs c'est-à-dire qu'ils ne sont pas définis à
partir d'autres actes, ou composés d’un ensemble d’actes.

3.5.3.3. Les autres langages : Il existe une multitude d’autres langages comme :
 ARCOL (ARtimis Communication Language)
 ICL (InterAgent Communication Language).
 AOP (Agent OrientedProgramming).
 MAC (Mobile Agent Communication).

34
Chapitre 04
Conception et Analyse
Conception et Analyse

4.1. Introduction :

Notre travail vise à montrer que la prise en compte explicite du contexte dans le
processus de génération d’explications, apporte un plus pour l’interlocuteur des systèmes
à base de connaissances au niveau de production des explications et le raisonnent
explicatif.

Pour représenter ce concept, on a choisi le formalisme des graphes contextuels qui


nous rend possible de donner une représentation uniforme des éléments du contexte ainsi
le raisonnement sur ses derniers.

Le processus explicatif peut être modélisé par un graphe contextuel où chaque


chemin représente une pratique pour générer une explication, depuis la requête de
l’interlocuteur jusqu’à la génération d’une explication acceptable pour ce dernier.

Le graphe qui illustre ce processus, est donné comme suit :

Figure 7 : Graphe contextuel qui illustre le processus explicatif

37
Conception et Analyse

Elément Définition
Contextuel

CE3 Requête valide ?

CE12 Type de la requête ?

CE16 Le type de la question ?

CE23 Règles disponibles ?

CE29 Explication satisfaisante ?

Tableau 4 processus explicatif (Les éléments contextuels)

Action Définition

A1 Acquérir la requête

A2 Valider La requête

A11 Déterminer le type de la requête

A15 Déterminer le type de la question

A17, A18 Extraire les connaissances

A19, A20 Envoyer la requête à la tâche Whow-Key

A21, A22 Rechercher dans la bibliothèque de règles commençant par


les connaissances déjà acquises

A27, A28 Appeler la tache Conexp

A25 Demander plus de détails

A31 Appeler la tache Genexp

A34 Redémarrer le processus explicatif

Tableau5 processus explicatif (Les actions)

38
Conception et Analyse

Pour concrétiser le processus explicatif illustré par le graphe contextuel, on a choisi


de concevoir un système multi-agents.

4.2. LA METHODOLOGIE DE DEVELOPPMENT :

Il existe plusieurs méthodes qui facilitent le cycle de développement d’un système


multi-agents. Nous avons choisi la méthodologie Voyelles pour modéliser notre système.
Notre choix est justifié par:

 Cette méthode repose sur la décomposition du système en quatre dimensions :


Agent, Environnement, Interaction, Organisation (AEIO). Cette décomposition
permet de modulariser le système, simplifier sa construction et offrir une meilleure
réutilisation du code.
 Voyelles n’est couplée à aucune notation ni plateforme, ce qui offre la
possibilité d’utiliser le langage AUML (Agent Unified Modeling Language), qui est une
extension du langage UML, dans la phase de conception du système et la plateforme
JADE pour réaliser le système.
 Voyelles repose sur des principes purement multi-agent.

La méthodologie « AEIO » se décompose en trois phases qui sont :

1. La phase d'analyse, qui permet d’identifier et de décomposer le problème en


quatre composantes fondamentales : Agents, Environnement, Interactions et
Organisation, pour dégager l'architecture générale du système.

2. La phase de conception, qui permet de choisir les modèles opérationnels des


composantes pour aboutir à la spécification du fonctionnement global du système,
exprimée sous forme de diagrammes de comportement ; Les modèles d'agents ou
architectures d'agents vont de modèles simples comme les automates à états finis (agents
réactifs) aux modèles plus complexes comme les systèmes à base de connaissances
(agents cognitifs). Les modèles d'environnement dépendent du domaine d'application, ils
sont généralement spatialisés et dotés d'une métrique. Les structures et langages
d'interaction vont des modèles issus de la physique, comme les modèles à base de forces,
à des interactions de haut niveau basées sur la théorie des actes de langages. Enfin, les

39
Conception et Analyse

modèles d'organisations vont des modèles biologiques jusqu'aux modèles inspirés par les
lois sociales.

3. La phase de programmation : (ou implémentation) consiste en


l’instanciation des modèles, en utilisant des plates-formes et des langages choisis. Le
résultat, le système implémenté, peut alors être exécuté, évalué (test et validation) et
repensé en cas d’inadéquation avec les besoins exprimés par le type de problème et le
domaine d’application [PICA, 04].

4.2.1. ANALYSE :

Les agents constituent les acteurs principaux de notre système. Pour identifier nos
agents nous devons discuter les tâches qui constituent le processus explicatif.

4.2.1.1. Les taches explicatives:

Notre système peut être décomposé en sept taches principales comme il est illustré
dans la figure7, chaque tâche a un rôle, des entrés et des sorties bien définies.
Nous présentons en bref chaque tâche et son rôle dans notre système explicatif.

1 -La tâche d’analyse de l’intervention de l’utilisateur final, notée Analque:

La tâche Analque:

Rôle : analyse l’intervention de l’utilisateur.


Entrée : intervention de l’utilisateur.
Sortie : selon nature de l’intervention
Structure de contrôle :
Si requête valide
Alors déclencher production d’explication
Sinon Si information
Alors mettre à jour base des connaissances
Sinon Erreur
Fréquence d’utilisation : régulière

40
Conception et Analyse

2 -La tâche de traitement de la requête avec l’adverbe interrogatif


Pourquoi, notée Why-how-key.

La tâche Why-how-key:

Rôle : identifier un adverbe interrogatif


Entrée : sortie de la tâche Why-not-key
Sortie : exécuter la tâche Why-how-know
Structure de contrôle :
Si adverbe Pourquoi identifié
Alors chercher connaissances appropriées
Sinon chercher connaissances relatives à l’adverbe « comment »
Fréquence d’utilisation : régulière

3-La tâche de traitement de la requête avec l’un des adverbes interrogatifs


Pourquoi, chargée de chercher dans la base des connaissances, les connaissances
nécessaires à la construction du texte explicatif. Nous la notons Why-how-know

La tâche Why-how-know:

Rôle : rechercher les connaissances appropriées


Entrée : contenu de la requête
Sortie : explication à construire
Structure de contrôle : néant
Fréquence d’utilisation : faible

41
Conception et Analyse

4-La tâche de traitement de la requête avec l’adverbe interro-négatif Pourquoi-pas,


chargée d’identifier l’adverbe interro-négatif. Nous la notons,Why-not-key.

La tâche Why-not-key:

Rôle : identifie l’adverbe interro-négatif Pourquoi-pas


Entrée : adverbe de la requête.
Sortie : selon résultat de l’identification.
Structure de contrôle :
Si adverbe interro-négatif Pourquoi-pas identifié
Alors executer tâche Why-not-know
Sinon executer tâche Why-how-key
Fréquence d’utilisation : Faible

5-La tâche de traitement de la requête avec l’adverbe interro-néogatif Pourquoi-


pas, chargée de chercher dans la base des connaissances, celles nécessaires à la
construction du texte explicatif. Nous la notons, Why-not-know.

La tâche Why-not-know:

Rôle : rechercher les connaissances appropriées


Entrée : contenu de la requête
Sortie : explication à construire
Structure de contrôle : néant
Fréquence d’utilisation : faible

6-La tâche de construction du texte explicatif. Nous la notons Consexp

La tâche Consexp:

Rôle : construit un texte explicatif intermédiaire


Entrée : sortie de la tâche Why-how-know ou Why-not-know
Sortie : texte explicatif intermédiaire
Structure de contrôle : néant

42
Conception et Analyse

Fréquence d’utilisation : régulière

7- La tâche de génération du texte explicatif. Nous la notons Genexp.

la tâche Genexp:

Rôle : génère le texte explicatif final


Entrée : sortie de la tâche Consexp
Sortie : texte explicatif final
Structure de contrôle : néant
Fréquence d’utilisation : régulière

4.2.1.2. IDENTIFICATION DES AGENTS :

Les SMA sont en effet mieux adaptés que d’autres techniques de modélisation à
générer cette sorte de phénomène émergent. En plus, avec la propriété dialogique de
ses agents, le SMA explicatif pourra interagir avec l’utilisateur, à un haut niveau
sémantique pour recevoir des requêtes et fournir des explications.
Chaque tâche précédemment citée peut être affectée à un agent, alors notre système
va être composé par l’ensemble d’agent suivant :

 L’agent Anque: pour exécuter la tâche Analque


 L’agent Whot-key : pour exécuter la tâche Why-not-key
 L’agent Whow-key : pour exécuter la tâche Why-how-key
 L’agent Conex: pour exécuter la tâche Consexp
 L’agent Genex: pour exécuter la tâche Genexp

De plus, l’agent User, qui sera chargé de la communication directe avec l’utilisateur
par l’interface graphique. Autrement dit, c’est l’agent qui s’occupe de l’organisation du
dialogue avec l’utilisateur et le système.

Le rôle de chaque agent est résumé précédemment dans la description de tâches


explicatives.

43
Conception et Analyse

4. 2.1.3. IDENTIFICATION DES UTILISATEURS


Notre système est un prototype d’un système explicatif qui a comme but de donner
des explications adéquates aux besoins de son interlocuteur.
L’utilisateur pourra :
 Poser des questions au système.
 Demander des explications sur le raisonnement du système.
 Enrichir la base de connaissance du système.

4.2.1.4. IDENTIFICATION DES INTERACTIONS :


Le processus explicatif est un processus coopératif ce qui implique la présence des
interactions dans notre système.
Nous distinguons deux types d’interactions dans notre système :
 Les interactions entre les agents du système qui représentent les relations de
dépendance et de collaboration entre nos agents.
 Les interactions entre le système et l’utilisateur à travers l’interface utilisateur.

4.2.1.5. LES INTERACTIONS ENTRE LES AGENTS DU SYSTEME :


 Interactions Agent Anque – Agent Whow-key :
 Transmettre la requête utilisateur par AnqueàWhow-key.
 Interactions Agent Anque – Agent Whot-key:
 Transmettre la requête utilisateur par Anque à Whot-key
 Interactions Agent Whow-key – agent Conex:
 Transmettre les connaissances nécessaires pour la construction de
l’explication initiale par Whow-key à Conex.
 Interactions Agent Whot-key – agent Conex :
 Transmettre les connaissances nécessaires pour la construction de
l’explication initialep à Whot-key à Conex.
 Interactions Agent Conex- Agent Genex :
 Transmettre le texte explicatif initial par Conex à Genex.

44
Conception et Analyse

4.2.1.6. L’ORGANISATION :

L’organisation décrit la structure des éléments du système qui interagissent entre


eux et qui sont en relation afin d’atteindre un objectif commun.
Comment notre système est organisé ?
L’organisation de notre système est illustrée dans le schéma qui suit.

Figure 8 : Diagramme d’organisation

45
Conception et Analyse

4. 2.2. Conception :

La conception est une des parties importantes de notre projet, dans cette partie nous
affinons notre analyse en introduisant la structure opérationnelle des composantes de
notre système explicatif.
Dans ce qui suit, nous définirons :
 L’architecture interne des agents.
 Le comportement des agents;

4.3. PROTOCOLES D’INTERACTIONS DU SYSTEME :

4.3.1. PROTOCOLE « Validation de la requête» :

Figure 9 : Protocole de validation de la requête

Lorsqu’un utilisateur désire poser une question ou enrichir la base de connaissance,


il envoie à l’Agent Anque une requête.

46
Conception et Analyse

L’Agent Anque vérifie la validité syntaxique et sémantique de la requête si la


requête est valide suivant son type il envois la requête à l’Agent Whow-key ou l’Agent
Whot-key, il enrichit la base de connaissance si elle est non valide il refuse et demande à
l’utilisateur de reformuler sa requête.
4.3.2. PROTOCOLE « Construction d’explication» :

Figure 10 : Protocole de construction d’explication

L’Agent Conex a pour mission de construire un texte explicatif puis le transmettre a


l’agent Genex.
L’agent Conex reçoit les connaissances nécessaires pour construire un texte
explicatif de l’agent Whot-Key ou Whow-Key.

Puis l’agent Conex construit un texte explicatif initial et le transmet à l’agent Genex

47
Conception et Analyse

4.3.3. PROTOCOLE « Génération d’explication» :

Figure 11 : Protocole de génération d’explication

Lorsque l’agent Genex reçoit le texte explicatif de l’agent Concex, il génère


l’explication à l’utilisateur.
Si l’utilisateur est satisfait il arrête le processus explicatif où il peut poser une autre
question.
Si l’utilisateur n’est pas satisfait il demande une explication plus détaillée.

4.4. ARCHITECTURE GENERALE D’AGENT :

Une meilleure compréhension des besoins de chaque utilisateur et les agents qui
composent notre système explicatif nécessite des informations spécifiques au contexte.
Les connaissances contextuelles interviennent de façon implicite dans le processus
de génération de l’explication, ces connaissances sont élaborées au cours du raisonnement
explicatif. De plus, elles apparaissent à différents niveaux depuis la source de
connaissances nécessaires à la construction de l’explication jusqu'à la génération à
l’utilisateur final.

48
Conception et Analyse

Dans notre système, l’agent n’a pas besoin seulement d’expliciter le contexte mais
aussi le partager avec les autres agents qui coopèrent avec lui et le comprendre pour
générer une bonne explication.
Le but de l’architecture proposé par [Laraba2009] illustrer dans la figure 12 est de
permettre les agents qui composent notre système de raisonner sur le contexte et le
capturer, ainsi distribuer les connaissances contextuelles entre les agents.

Figure 12 : Architecture d’agent [Laraba 2009]

Le composant linguistique :
Ce composant est chargé de faire l’analyse lexicale et syntaxique ainsi la
sémantique des requêtes de l’utilisateur vers le système, et aussi les requêtes interne du
système entre les agents qui le composent.

Le composant dialogique :
Ce composant est chargé de gérer le dialogue entre le système et l’utilisateur, et le
dialogue entre les agents qui composent notre système.

49
Conception et Analyse

Le composant de communication :
Ce composant est dédié à gérer les différents communications entre le système et
l’utilisateur, et entre les agents du système et les différents composants d’un agent.

Le composant cognitif :
Ce composant gère les différents types de connaissances d’un agent.
Le composant contexte :
 Sous composant de capture du contexte:
Ce composant agit quand une nouvelle requête de l’utilisateur est reçue, pour
connaître les informations personnelles de l’utilisateur final, ses compétences, le lieu
d’intervention, l’heure ex…
 Sous composant de raisonnement sur le contexte :
Créer le profil de l’utilisateur final selon les informations transmis par Sous
composant de capture du contexte, et transmet cette information au composant cognitif de
l’agent.

4.5. CLASSE D’AGENT :

Une classe d'agent représente un agent ou un groupe d'agents pouvant jouer un rôle
ou avoir un comportement déterminé.
Une classe d'agent comporte :
• Description de la classe d'agent et des rôles
• Description de l'état interne
• Actions, méthodes et services fournis
• Messages échangés

Le diagramme de classes d’agents qui composent notre système est illustré dans la
figure 13.

50
Conception et Analyse

Figure 13 : Diagramme de classe d’agents

Nous allons donner plus de détails sur les classes d’agents dans le chapitre de
réalisation.

51
Conception et Analyse

Pour mieux décrire les protocoles d’interactions, on présente les diagrammes


d’activités de chaque agent.

4.6. DIAGRAMMES D’ACTIVITES DES AGENTS :


4.6.1. DIAGRAMME D’ACTIVITE DE L’AGENT Analque :

Figure 14 : Diagramme d’activité de l’agent Anque

4.6.2. DIAGRAMME D’ACTIVITE DE L’AGENT Whot-key / Whot-key :

52
Conception et Analyse

Figure 15 : Diagramme d’activité de l’agent Whow-key / Whot-key

4.6.3. DIAGRAMME D’ACTIVITE DE L’AGENT Concex :

Figure 16 : Diagramme d’activité de l’agent Conex


4.6.4. DIAGRAMME D’ACTIVITE DE L’AGENT Genex :

53
Conception et Analyse

Figure 17 : Diagramme d’activité de l’agent Genex

4.7. CONCLUSION

Nous avons vu dans ce chapitre le cheminement que nous avons suivi pour
l’élaboration de notre prototype explicatif. La modélisation du raisonnement explicatif
par le formalisme des graphes contextuels, la structure du système et les différents
agents pourront intervenir et la manière dont ils coopèrent pour produire une explication.
Nous retrouvons dans notre modèle un ensemble d’agents, chaque agent est muni un
ensemble des modules pour bien accomplir sa tâche.
L’Agent Anque intercepte les requêtes des utilisateurs, il assure la validité
syntaxique et sémantique de ses requêtes puis détermine leurs types et les transmettre
aux agents Why-not-key ou Why-how-key suivant le type de la requête. Ces derniers
collectent les connaissances nécessaires pour la construction de l’explication. En suite,
vient le rôle de l’agent Concex qui construit le texte explicatif et le transmettre à l’agent
Genex qui génère le texte explicatif final aux utilisateurs.
La modélisation du contexte d’exécution du processus explicatif par le formalisme
des graphes contextuels nous a permis de mieux voir les conditions et les situations qui

54
Conception et Analyse

peuvent être présentent dés l’arrivée de la requête de l’utilisateur à la génération d’une


explication.

Dans le chapitre suivant nous verrons, entre autres, l’implémentation des agents
ainsi que l’implémentation des interactions ses agent, et les utilisateurs.

55
Chapitre 05
Réalisation
Réalisation

5.1. Introduction:
Après avoir vu, toutes les notions, les concepts ainsi que la conception que nous
venons de proposer, on arrive à la phase de réalisation. Là, où on doit présenter les outils,
le langage de programmation que nous avons jugés, pour leurs caractéristiques, à
répondre aux buts que nous avons fixés au début.

5.2. Outils de développement :

5.2.1. La plate-forme JADE (Java Agent Developpement Environment) :


Jade est un environnement de développement d’agents Open Source, qui était
développée par le laboratoire de recherche en télécommunications, CSELT7 . Ses
principales caractéristiques sont :

 N’importe quelle méthode de développement pourrait être utilisée


(indépendance de la méthode de développement).

 Les agents sont développés entièrement en Java, ce qui motive aussi notre
choix du langage.

 Jade permet un échange transparent de messages par le langage normalisé


FIPA-ACL.

 Jade s’occupe de la gestion des agents depuis leurs naissances jusqu’à leurs
morts.

5.2.2. Le langage de programmation, Java :


Nous avons dit ci-dessus, que tous les agents dans la plate-forme Jade, sont
entièrement écrits en Java, nous ajoutons aussi comme justification du choix du
langage les critères suivants :

 Java est un langage orienté objet, contenant beaucoup de concepts assez


avancés et simples à utiliser. (Par ex. Héritage, Polymorphisme…)

7
Centro Studi E Laboratori Telecomunicazioni, traduit par Centre d’Etude et Laboratoire de
Télécommunication :http://jade.cselt.it

57
Réalisation

 Java est un langage multiplateforme, grâce à la JRE8, qui permet aux


programmes Java de s’exécuter sur n’importe quelle machine (quel que soit le Système
d’Exploitation) dotée de cette composante logicielle.

 Java est très riche, en matière de bibliothèques dont nous nous sommes servi,
par exemple : pour les interfaces graphiques, pour les expressions régulières…

 Parmi les bibliothèques Java disponibles sur Internet, on en trouve beaucoup,


qui servent pour l’interfaçage avec autres langages de programmation et qui permettent
aux programmes écrits en Java de les manipuler et exécuter des commandes de
compilation et d’interprétation comme si on utilisait ce langage de programmation
directement, par exemple : la bibliothèque JPL9 (que nous présenterons ci-après).

5.2.3. La bibliothèque JPL :


JPL est une bibliothèque utilisant l’API du logiciel SWI-PROLOG et l’interface
10
JNI de SUN, fournissant une interface bidirectionnelle entre Java et PROLOG (intégrer
Java en PROLOG ou l’inverse).

5.2.4. Le langage de programmation logique, Prolog :


Le PROLOG est un acronyme de PROgramationLOGique, qui est un langage créé
par par Alain Colmerauer et Philippe Roussel vers 1972, dans le but de faire un langage
qui permet d’utiliser l’expressivité de la logique au lieu une simple succession
d’instruction.

Le PROLOG est utilisé essentiellement dans le domaine d’intelligence artificielle et


dans le traitement du langage naturel. Sa syntaxe et sa sémantique sont considérées
comme très simples et claires.

Prolog est basé sur le calcul des prédicats du premier ordre ; cependant il est
restreint dans sa version initiale à n’accepter que les clauses de Horn. Une des
particularités de Prolog est que l'on peut construire une base de connaissances dans un

8
Java Runtime Machine : http://fr.wikipedia.org/wiki/Environnement_d%27ex%C3%A9cution_Java
9
Java Prolog Library : http://www.swi-prolog.org/packages/jpl/
10
http://fr.wikipedia.org/wiki/Java_Native_Interface

58
Réalisation

ordre indéterminé. Prolog peut ensuite résoudre des séries de problèmes logiques relatifs
à une telle base de connaissances

5.3. Les agents


Comme nous avons dit avant, (cf. Chapitre Conception et Analyse), l’activité de nos
agents, est résumée dans des tâches cycliques (en Jade, on dit, des Comportements), car
elles dépendent de la fréquence de l’envoi et la réception de messages ou requêtes de
différents acteurs du système (agents ou utilisateurs).

Pour l’acheminement des messages, c’est le graphe contextuel (cf. Chapitre


Conception et Analyse) qui nous indique l’expéditeur et les récepteurs.

Dans ce qui suit, on va donner le prototype de chaque agent (tâche), ainsi que la
technologie pour qu’il puisse accomplir son rôle :

a. Agent User :

Figure 18 : Agent User

Il faut distinguer l’agent User de l’agent Anque, car User ne fait que la gestion de
l’interface graphique et libérer l’agent Anque de cette tâche, aussi pour simplifier le code
source des deux agents pour qu’il soit facile à gérer.

Cet agent, comme nous l’avons dit ci-dessus, est responsable du dialogue entre les
différents agents du système, et l’utilisateur, par l’interface graphique que nous verrons
après. C’est pour ça, que sa classe hérite d’une classe spéciale GuiAgent, qui contient
une méthode abstraite :

59
Réalisation

protectedvoidonGuiEvent(GuiEventge)

Dans le code de cette dernière, on doit traiter tous les types d’évènements que notre
système pourrait recevoir.

public class User extends GuiEvent


{
public void setup();
protected void onGuiEvent(GuiEventge);
}
La tâche qui lui est confiée, est Dialog, qui est un comportement cyclique :

public class Dialog extends CyclicBehaviour


{
public voidaction();
}
Dans sa méthode action(), les messages de/vers l’utilisateur seront passés.

b. Agent Anque :

Figure 19 : Agent Anque

60
Réalisation

Les activités qui sont affectées à l’agent Anque, et qui les realise par sa tâche
Analquesont :

• validateSyntaxe() : pour valider la syntaxe de la requête selon un automate à


etats finis pour l’analyse syntaxique :

Figure 20 a : Automate d’état fini de l’analyse syntaxique de questions Pourquoi et


Pourquoi Pas

Figure 20 b : Automate d’état fini de l’analyse syntaxique de l’information

61
Réalisation

• Cet automate, et pour faciliter sa programmation, est codé en PROLOG, parce


qu’il offre des mécanismes assez puissants pour la gestion de Listes, que toute la partie de
la base de connaissances dédiée aux automates est basée sur des listes.

• nettoie() : pour le nettoyage de l’information de mots vides, par exemple :

Pour la requête : [mohamed, est, le,pere, de,said],

La méthode nettoie, donne : [mohamed,pere,said].

• addInformation() : pour l’enrichissement de la base de connaissances par des


informations saisies par l’utilisateur.

• checkPerson(), verifyPersons() : servent pour la verification et l’analyse


sémantique de l’information qui fera partie de la base de connaissance. Par exemple :

Si l’utilisateur tente d’enrichir la base de connaissances par l’information :

moh11 est le pere de said.

Tel que moh11, n’est pas encore défini dans la base de connaissances,
checkPerson(), le signale, et le système affiche le message :

Informations Manquantes : La(les) personne(s) n’est (sont) pas reconnue(s) dans la


base de connaissances :

» moh11.

• verifyQuery() : sert à vérifier l’existence de l’information ou pas, que


l’utilisateur tente d’ajouter. Par exemple :

mohamed est le pere de said.

Cette information existe déjà dans la base de connaissances, donc, par la fonction
verifyQuery(), le système affiche :

L'information : "mohamed est le pere de said" déjà existe dans la base de


connaissances.

62
Réalisation

La classe de l’agent ainsi de la tâche est comme suit :

public class Anque extends CyclicBehaviour


{
public void action();
protectedbooleanvalidateSyntax(String query);
protectedArrayList<String>nettoie(String[] qry);
public void addInformation();
protected boolean checkPerson(String pers);
protected boolean verifyPersons(ArrayList<String> al);
protected boolean verifyQuery(String qry);
}
public class Anque extends Event
{
public void setup();
protected void onGuiEvent(GuiEventge);
}
c. Agent Whow-Key,Whot-Key:
Les codes de ces deux agents sont assez similaires, donc tout ce que nousallons dire
pour l’un est valide pour l’autre. Seuls quelques points de différence qui seront envisagés
au niveau du codage.

Figure 21: Agent Whow-Key etWhot-Key

63
Réalisation

Les actions de cet agents ce résument en :

• createQuery() : qui s’occupe de la création d’une chaine de prédicats, format


PROLOG, pour l’envoyer à l’agent CONCEX, à partir d’un tableau de motsreprésentant
les mots composants la requête. la requête est nettoyée par la méthode nettoyer(). Par
exemple :

• La requête (pourquoi mohamed est le grand_pere de ismail) après sont


nettoyage par la méthode nettoyer() :

[mohamed,pere,pere,ismail]

Devient par cette méthode : pere(mohamed,V1),pere(V1,ismail).

• nettoie() : identique à celle de Anque.

• findOtherLevel() : C’est une fonction qui se base sur la classe HashTable11,


pour la définition des possibles approfondissements au le niveau de l’explication générée.
Par exemple :

[mohamed,grand_pere,ismail] devient par cette méthode

[mohamed,pere,pere,ismail]

• ableToProvidMoreInformation() : c’est la fonction qui nous dit, en se basant


sur le même principe de findOtherLevel(), et en parcourant tous les chemins possibles, si
on peut ou pas obtenir une explication plus détaillée.

Pour le code de cet agent (Whow-Key ou Whot—Key) :

public class Whow-Key extends Event


{
public void setup();
protected void onGuiEvent(GuiEventge);
}
public class Why-how-key extends CyclicBehaviour
{
public void action();
protected String createQuery(ArrayList<String> al, int i);

11
java.util.Hashtable

64
Réalisation

protected ArrayList<String>nettoie(String[] qry);


protected ArrayList<String>findOtherLevel(ArrayList<String>
al);
protected booleancheckPerson(String pers);
protected booleanableToProvideMoreInformation
(ArrayList<String> al);
}

d. L’agent Concex:
C’est l’agent qui génère l’explication dans son format final.

Figure 22: Agent Concex

Pour ses méthodes :

• findSolutions() : C’est la méthode qui fait un accès à la base de


connaissances, par la bibliothèque JPL, pour trouver des solutions au résultat(La chaine
PROLOG générée par la méthode Whow_key .createQuery()). Par exemple :

Pour la requite : pere(mohamed,V1),pere(V1,ismail), le système génère les


instructions suivantes :

If(Main.openPROLOG())
{
Query q2 = new Query(“pere(mohamed,V1),pere(V1,ismail)”);
If(q2.hasSolution())
{

65
Réalisation

//Traitement de solutions.
}
}

• match() : Cette méthode trouve, dans cette chaine de caractères, toutes les
variables utilisées dans la construction de l’ensemble de prédicats PROLOG.

Par exemple :

Pour : pere(mohamed,V1),pere(V1,ismail), cette méthode nous retourne V1.

Pour ce faire, nous avons utilisé un concept de Compilation qu’est les expressions
régulières (Regex)12 :

Pattern pattern = Pattern.compile("\\w+[0-9]*\\b");


//C’est le motif de recherche
Matcher matcher1 = pattern.matcher(s);
//La compilation de la chaine pere(mohamed,V1),pere(V1,ismail)
while (matcher1.find())
{
//Traitementde : matcher1.group();V1
}

• generateExplication() : C’est la méthode qui génère l’explication en langage


naturel en se basant sur le résultat de findSolutions().

• refineExplication() : Cette méthode permet de raffiner l’explication en


éliminant des mots comme : enfant, parent,…, et en les remplaçant par des mots plus
clairs tels que : fils, fille, pere, mere,…,

1. Base de Connaissances :
Chaque base de connaissances, ce compose d’un ensemble de faits, et un ensemble
de règles.

Dans notre base de connaissances, on a utilisé des faits pour :

 Identifier les personnes. Par exemple :

homme(mohamed).

12
http://fr.wikipedia.org/wiki/Expression_rationnelle

66
Réalisation

femme(lamia).

 Identifier les relations de base (parenté) entre les personnes déjà identifiées.
Par exemple :

pere(X,Y) :- parent(X,Y),homme(X).

mere(X,Y) :- parent(X,Y),femme(X).

grand_parent(X,Y) :- parent(X,Z),parent(Z,Y).

Aussi, la base de connaissance, contient une implémentation des automates qui


servent à l’analyse syntaxique. Par exemple :

etat1([pourquoi|L]):-etat2(L).
etat2([X|L]):-etat3(L).
etat3([est|L]):-etat4(L).
…….

5.4. Le prototype :
5.4.1. Présentation :
Notre système ne comporte pas beaucoup d’interfaces graphiques, car la plupart du
traitement est dans le code. (voir la page suivante)

67
Réalisation

Figure 23 : La première fenêtre du prototype

Tout d’abord, l’utilisateur doit choisir un fichier (*.pl), fichier de base de


connaissances (PROLOG).

68
Réalisation

Figure 24 : Boite de dialogue pour le choix de la base de connaissances

L’utilisateur doit choisir le fichier de la base de connaissances (Fichier .pl, dans la


figure : BC1.pl).

Puis, dans la figure 23, clique sur Lancer le système, pour avoir la fenêtre suivante :

69
Réalisation

1
4
6 3
5

Figure 25 : Fenêtre principale de l’application

1) Champs de texte pour inscrire la requête (question, information) .

2) Champs de texte pour afficher l’historique de toutes les interactions de


l’utilisateur avec le système.

3) Bouton pour lancer la requête de l’utilisateur, son activité dépend de l’état de


la case à cocher (6), Information :

a. Cochée : Enrichir la base de connaissances.

b. Décochée :Générer l’explication.

4) Bouton pour effacer le contenu des deux champs de texte.

5) Bouton pour sauvegarder l’historique (2) dans un fichier texte.

6) Case à cocher, que son état détermine ce que le système attend de l’utilisateur :

a. Cochée : Information.

b. Décochée : Question.

70
Réalisation

5.4.2. Etude de Cas :

Maintenant, supposons le scénario suivant :

 L’utilisateur : demande une information en saisissant dans le champ de texte


(1) la requête suivante :

o qui est le pere du grand_pere de ramzi

Figure 26 : Exemple 1 (dialogue explicatif)

Le système, après le traitement déjà décrit ci-dessus, répond par :

o mohamed est le père du grand_père de ramzi

 Puis demande, si l’utilisateur a besoin d’une explication du raisonnement qui a


mené à une telle affirmation : (page suivante)

71
Réalisation

Figure 27 : Exemple 2 (dialogue explicatif)

 Si l’utilisateur choisit Oui, le système justifie son affirmation en répondant à la


question :

o pourquoi mohamed est le père du grand_père de ramzi ? (page suivante)

72
Réalisation

Figure 28 : Exemple 3 (dialogue explicatif)

 Quand on clique sur OK, le système demande si l’utilisateur a compris


l’explication ou non (Si c’est possible de générer une autre explication avec un niveau de
détails plus profond). (page suivante)

73
Réalisation

Figure 29 : Exemple 4 (dialogue explicatif)

 Si l’utilisateur demande plus d’informations, le système utilise la méthode


findOtherLevel() de l’agent Whow-key/Whot-key.

 Enfin, quand le système trouve par la méthode


ableToProvideMoreInformation(), qu’il ne pourra plus à générer une explication plus
détaillée, il affiche ce message :

Impossible de générer plus d’information

Comme la figure ci-dessous

74
Réalisation

Figure 30: Exemple 5 (dialogue explicatif)

75
CONCLUSION
GÉNÉRALE
Conclusion Générale

Aujourd'hui, l'intérêt d'une explication contextualisée et la prise en compte du


contexte dans la conception des SBC qui sont capables d’expliquer leurs raisonnements
n'est plus à démontrer. De nombreux travaux de recherche continuent à explorer les
possibilités pour intégrer le contexte dans les modèles des SBC explicatifs et comment
représenter ses éléments d’une manière uniforme.
Dans ce mémoire, nous avons donné un aperçu sur la relation de dépendance entre
l’explication et le contexte. Nous avons proposé de modéliser le processus explicatif par
le formalisme des graphes contextuels.
Le modèle que nous avons développé a été basé sur le graphe contextuel conçu. Ce
modèle a été pensé en incluant les composantes principales du contexte dans lequel se
déroule le processus explicatif, les composantes ont été bien représentées grâce au graphe
contextuel.
Ce modèle est un système multi-agents que nous avons implémenté à l’aide de la
plateforme JADE qui nous a offert les différents outils nécessaires.

Notons néanmoins que notre travail peut être enrichi par des travaux futurs, et ce,
afin d’améliorer certains aspects qui restent à développer, particulièrement :
 Développement d'un moteur de recherche pour apporter de la flexibilité au
processus de génération de l'explication.
 Développement d’un module d’apprentissage des agents.
 Application ces notions dans une base de connaissances assez riche.

76
Bibliographie
[Bastien,C.1999] Bastien « Does context modulate or underlie human knowledge? » In
Quelhas, A.C. & Péreira, F., Cognition and Context.
[Bazire, M. 03] Bazire, « Effets des composantes du contexte sur la compréhension. »
Mémoire de DEA: Université de Paris 8.
[Bazire, M. and Bazire et Brézillon « Understanding context before to use it » Modeling
Brézillon, P. 05] and Using Context (CONTEXT-05), A. Dey, B.Kokinov, D.Leake, R.Turner
(Eds.), Springer Verlag, LNCS 3554, pp. 29-40.
[Brézillon, P. 03] Brézillon «Context-based modeling of operators’ practices by contextual
graphs» Proceedings of HCP-2003, the 14th Mini-Euro Conference on
Human Centered Processes, R. Bisdorf (Ed.), Fonds National de la
Recherche, Luxembourg, pp. 129-137
[Brézillon, P. and Tijus, Brézillon et Tijus « Une représentation basée sur le contexte des
Ch.05] utilisateurs à travers leurs pratiques » . Proceedings of the EGC-2005
Workshop on "Modélisation de l'Utilisateur et Personnalisation"
[Brézillon, P. 05] Brézillon Patrick « Task-realization models in Contextual Graphs » In 5th
International and Interdisciplinary Conference on Modeling and Using Context,
Lectures Notes in Artificial Intelligence,
[Buchanan et al 84] BUCHANAN B.G. & SHORTLIFFE E.H «Rule-Based Expert
Systems: The MYCIN Experiments of the Stanford Heuristic
Programming Project». Addison-Wesley, Reading, Mass.
[Chandrasekaran et al. B. Chandrasekaran, M. C. Tanner et J. R. Josephson. « Explaining
89] Control Strategies in Problem Solving». In IEEE Expert (1989), pp 9-24.
[CHICOISNE 02] Guillaume CHICOISNE, « Dialogue entre agents naturels et agents
artificiels Une application aux communautés virtuelles » INPG, 2002
[FERB, 97] J.Ferber, « Les Systèmes Multi Agents: vers une intelligence Collective »,
1997.
[Karsenty L. , Brézillon Karsenty L. et Brézillon P. « Cooperative problem solving and
P 1995] explanation » International Journal of Expert Systems With Applications, 8(4):
445-462.
[Karsenty L & Brézillon Karsenty L. et Brézillon P. « Coopération homme-machine et explication.
P 1995] Revue Travail Humain » 1995, 58(4): 289-310.
[LARABA, M.E.H 06] Laraba mohamed EL habib , «A Dialogical Agent-based Framework for
Explaining the Results of QSIM Algorithm to the End-User, Qualitative
reasoning» workshop QR 2006, Hannover, USA.
[Laraba, M.E.H. , Laraba mohamed EL habib et Ziadi Sahnoun « a dialogical agent based
Sahnoun , Z 06] framework for explaining the results of QSIM algorithm to the End-
User»
Lire Laboratroy- Computing Sciences Departement Mentouri University Of
Constantine Algeria
[Laraba, M.E.H. 07] Laraba mohamed EL habib «Sur le Raisonnement Qualitatif: Une
Approche à base d’Agents Dialogiques pour l’Explication de la
Simulation Qualitative», Thèse de Doctorat, Université Mentouri de
Constantine, Algeria.
[MULLER 02] Jean-Pierre Müller, « Des systèmes autonomes aux SMA Interaction,
émergence et systèmes complexes » Université Montpellier II ,2002
[Naveiro R.M., Naveiro et Brézillon Souza «Contextual knowledge in design: the SisPro
Brézillon P. and Souza project »
F.R. 02]
[PASQUIER 05] Philippe Pasquier, « Aspects cognitifs des dialogues entre agents
artificiels L'approche par la cohérence cognitive » Université LAVAL août

77
2005
[PICA, 04] G. PICARD, « Méthodologie de développement de systèmes Multi-
Agents adaptatifs et conception de logiciels à fonctionnalité émergente.
», Thèse Doctorat, Université Paul Sabatier de Toulouse III, 2004.
[Pomerol J.-Ch. and Pomerol et Brézillon « About some relationships betweenn knowledge
Brézillon P. 01] and context. Modeling and Using Context (CONTEXT-01) » Lecture Notes
in Computer Science, Springer Verlag, pp. 461-464
[STRATULAT 02] Tiberiu STRATULAT, « Système d'agents normatifs conception et outils
logiques » Université de cæn ,13 décembre 2002
[THOMAS 05] Vincent THOMAS, « Proposition d’un formalisme pour la construction
automatique d’interactions dans les systèmes multi-agents réactifs »
Nancy1, 2005.
[Swartout 83] SWARTOUT W.R. « XPLAIN a System for Creating and Explaining
Expert Consulting Programs». Artificial Intelligence, 21(3), pp. 285-325.
[TOUAF 05] Samir TOUAF, « Diagnostic logique des systèmes complexes dynamiques
dans un contexte multi-agents » » l’Université Joseph Fourier 02 mars
2005

78
Table des figures
N° Figure Page
1 Exploitation des informations sur une page Web (tirée de Brézillion 2005) 19
2 Architecture un agent réactif 26
3 Architecture d’un agent cognitif 27

4 Structure de fonctionnement de l’agent cognitif 27

5 Les systèmes d’acteur. 31

6 Communication par partage d’information 33

7 Graphe contextuel qui illustre le processus explicatif 37

8 Diagramme d’organisation 45

9 Protocole de validation de la requête 46

10 Protocole de construction d’explication 47

11 Protocole de génération d’explication 48


12 Architecture d’agent 49
13 Diagramme de classe d’agents 51
14 Diagramme d’activité de l’agent Anque 52
15 Diagramme d’activité de l’agent Whow-key / Whot-key 53
16 Diagramme d’activité de l’agent Conex 53
17 Diagramme d’activité de l’agent Genex 54
18 Agent User 59

19 Agent Anque 60

20a Automate d’état fini de l’analyse syntaxique de questions Pourquoi et 61


Pourquoi Pas

79
20b 61

21 Agent Whow-Key etWhot-Key 63

22 Agent Concex 65

23 La première fenêtre du prototype 68

24 Boite de dialogue pour le choix de la base de connaissances 69

25 Fenêtre principale de l’application 70

26 Exemple 1 (dialogue explicatif) 71


27 Exemple 2 (dialogue explicatif) 72

28 Exemple 3 (dialogue explicatif) 73

29 Exemple 4 (dialogue explicatif) 74

30 Exemple 5 (dialogue explicatif) 75

80

Vous aimerez peut-être aussi