Vous êtes sur la page 1sur 55

Université de Rennes I

ENSSAT Lannion
LSI 2

INTELLIGENCE ARTIFICIELLE :
LES SYSTEMES EXPERTS

François Denis
Laboratoire d’Informatique fondamentale, Marseille
Laurent Miclet
ENSSAT-IRISA, Lannion

Janvier 2006
Première version mars 2002

2
Table des matières
1 Introduction 3
1.1 Qu’est-ce qu’un système expert? . . . . . . . . . . . . . . . . 3
1.2 Un système expert célèbre : MYCIN . . . . . . . . . . . . . . 5
1.3 Le cycle de vie d’un système expert . . . . . . . . . . . . . . . 8
1.4 Systèmes experts et générateurs de systèmes experts . . . . . 8
1.5 Un exemple introductif . . . . . . . . . . . . . . . . . . . . . . 8

2 La base de connaissances 10
2.1 La base de faits . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.1 Mémoire de travail . . . . . . . . . . . . . . . . . . . . 10
2.1.2 Le type d’un fait . . . . . . . . . . . . . . . . . . . . . 10
2.1.3 La valeur d’un fait . . . . . . . . . . . . . . . . . . . . 10
2.1.4 Les formules ou conditions . . . . . . . . . . . . . . . . 11
2.1.5 Métafaits et métavaleurs . . . . . . . . . . . . . . . . . 11
2.2 La base de règles . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Les métarègles et la métaconnaissance . . . . . . . . . . . . . 13

3 Les moteurs d’inférences 14


3.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2 L’évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.1 La sélection (ou restriction) . . . . . . . . . . . . . . . 14
3.2.2 Le filtrage ou pattern-matching . . . . . . . . . . . . . 15
3.2.3 La résolution de conflit . . . . . . . . . . . . . . . . . . 15
3.3 Régime irrévocable et retour en arrière . . . . . . . . . . . . . 15
3.4 L’éxécution : son mode de raisonnement . . . . . . . . . . . . 15
3.4.1 Le chaînage avant . . . . . . . . . . . . . . . . . . . . 16
3.4.2 Chaînage arrière . . . . . . . . . . . . . . . . . . . . . 18
3.4.3 Chaînage mixte . . . . . . . . . . . . . . . . . . . . . . 20
3.5 Mode d’inférence et raisonnement logique . . . . . . . . . . . 21
3.6 Les structures de données . . . . . . . . . . . . . . . . . . . . 22
3.6.1 Espaces d’états . . . . . . . . . . . . . . . . . . . . . . 22
3.6.2 Espaces de sous-problèmes . . . . . . . . . . . . . . . . 22
3.6.3 Lien avec la restriction . . . . . . . . . . . . . . . . . . 25
3.7 La monotonie . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4 La représentation des connaissances incertaines et le raison-


nement sur l’incertain 27
4.1 Comment représenter des connaissances incertaines? . . . . . 27

1
4.2 Comment raisonner? . . . . . . . . . . . . . . . . . . . . . . . 27
4.3 Une introduction aux réseaux bayésiens . . . . . . . . . . . . 28
4.3.1 Représentation des connaissances . . . . . . . . . . . . 29
4.3.2 Le raisonnement . . . . . . . . . . . . . . . . . . . . . 33

5 Une liste de systèmes experts 36


5.1 Quelques systèmes experts classiques . . . . . . . . . . . . . . 36
5.2 Quelques systèmes experts en service . . . . . . . . . . . . . . 36
5.3 Quelques générateurs de systèmes experts . . . . . . . . . . . 37
5.4 Quelques logiciels et applications des réseaux bayésiens . . . . 38

6 Conclusion 38

7 Exercices 39
7.1 Extraction des connaissances . . . . . . . . . . . . . . . . . . 39
7.2 Saturer la base de règles . . . . . . . . . . . . . . . . . . . . . 41
7.3 Arbres de décision et systèmes experts . . . . . . . . . . . . . 43
7.4 Chaînage avant - Chaînage arrière . . . . . . . . . . . . . . . 43
7.5 Chaînage mixte - les questions pertinentes . . . . . . . . . . . 43
7.6 Formalisation des connaissances . . . . . . . . . . . . . . . . . 45
7.7 Un système expert . . . . . . . . . . . . . . . . . . . . . . . . 47
7.8 Un système expert au zoo (DS 99-00) . . . . . . . . . . . . . . 48
7.9 Un système expert bancaire (DS 98-99) . . . . . . . . . . . . . 49
7.10 Implication et probabilité conditionnelle . . . . . . . . . . . . 51

2
1 Introduction
1.1 Qu’est-ce qu’un système expert ?
Un système expert est un logiciel qui reproduit le comportement d’un
expert humain accomplissant une tâche intellectuelle dans un domaine précis.
On peut souligner les points suivants :
– les systèmes experts sont généralement conçus pour résoudre des pro-
blèmes de raisonnement, de classification ou de décision (diagnostic
médical, prescription thérapeutique, régulation d’échanges boursiers...
)
– les systèmes experts sont des outils de l’intelligence artificielle, c’est-
à-dire qu’on ne les utilise que lorsqu’aucune méthode algorithmique
exacte n’est disponible ou praticable
– un système expert n’est concevable que pour les domaines dans lesquels
il existe des experts humains. Un expert est quelqu’un qui connaît un
domaine et qui est plus ou moins capable de transmettre ce qu’il sait :
ce n’est par exemple pas le cas d’un enfant par rapport à sa langue
maternelle.
Un système expert est composé de deux parties indépendantes :
– une base de connaissances elle-même composée d’une base de règles
qui modélise la connaissance du domaine considéré et d’une base de
faits qui contient les informations concernant le cas que l’on est en
train de traiter
– un moteur d’inférences capable de raisonner à partir des informa-
tions contenues dans la base de connaissance, de faire des déductions,
etc.
Le rôle du cogniticien est de soutirer leurs connaissances aux experts
du domaine et de traduire ces connaissances dans un formalisme se prêtant
à un traitement automatique, c’est-à-dire en règles. Ces deux tâches sont
aussi délicates l’une que l’autre. En effet, un expert est la plupart du temps
inconscient de la majeure partie de son savoir ; et s’il arrive à en exprimer une
partie, c’est souvent sous une forme qui ne se laisse pas facilement formaliser.
De plus l’extraction de connaissances peut avoir un effet perturbant sur
l’expert : il est bien connu que si l’on demande à un maître aux échecs de
réfléchir à sa manière de jouer, on observera une baisse de ses performances
dans les jours ou les semaines qui suivent cet effort d’introspection.
L’indépendance entre la base de connaissances et le moteur d’inférences
est un élément essentiel des systèmes experts. Elle permet une représentation

3
Interface cogniticien

Base de règles
Interface utilisateur

Moteur

d’inférences

Base de faits

Base de connaissances

Fig. 1 – Organisation d’un système expert.

des connaissances sous forme purement déclarative, c’est-à-dire sans lien avec
la manière dont ces connaissances sont utilisées. L’avantage de ce type d’ar-
chitecture est qu’il est possible de faire évoluer les connaissances du système
sans avoir à agir sur le mécanisme de raisonnement 1 .
Dans la réalité, les choses se passent de manière un peu moins idéale et il
est souvent nécessaire d’organiser la base de connaissances, de réfléchir sur
les stratégies d’utilisation des règles, etc.
1. Il en est de même pour nous : un accroissement ou une modification de nos connais-
sances n’entraîne pas nécessairement une restructuration en profondeur de nos mécanismes
de fonctionnement.

4
Le système expert est souvent complété par des interfaces plus ou moins
riches permettant un dialogue avec les utilisateurs, l’idéal étant une interface
en langage naturel.

1.2 Un système expert célèbre : MYCIN


MYCIN est un système expert qui a été conçu entre 1972 et 1974 afin
d’aider des médecins à diagnostiquer et soigner des maladies infectieuses du
sang. Cette version de base contenait environ 200 règles. Elle a été complétée
entre 1975 et 1978 par 300 règles supplémentaires concernant principalement
les méningites. Ce système expert a été abondamment étudié et commenté en
raison de l’importance du domaine concerné et surtout, de la grande qualité
de ses diagnostics et propositions thérapeuthiques.
"Même en se limitant à la version de base existant en 1974, les
résultats sont satisfaisants. Ainsi, en 1974, 15 cas représentatifs
d’infections bactériennes furent soumis à MYCIN d’une part et à
5 experts d’autre part. Les 5 experts approuvèrent les recomman-
dations thérapeuthiques de MYCIN dans 11 cas sur 15 (soit 55
accords pour 75 comparaisons). Dans les autres cas, les 5 experts
étaient en désaccord entre eux."
Extrait de [Far89]
Ce logiciel était d’autant plus séduisant qu’une interface en langage (quasi
naturel) permettait une communication confortable (et un peu bluffante)
avec les utilisateurs. Voir ci-dessous un exemple de conversation entre MY-
CIN et un médecin.

.............................................................
1) Please enter information about the patient.
- Name : Sally
- Age : 42 years
- Sex : Female
- Race : Caucasian
2)
Are there any positive cultures obtained from SALLY?
YES
3)
Please enter information
- site : CSF
- date collected : 3-Jun-75

5
- stain 2 examinated : Yes
- method of collection (urine, sputum 3 , smear 4 ) :
URINE AND SMEAR
4)
Stain of smear (type NONE if no organism was seen on the smear)
NONE
.............................................................
... N.B. Ici, une série de questions et de réponses sur les "positive
cultures"
.............................................................
13)
Has SALLY recently has symptoms of persistent headache or other ab-
normal neurologic symptoms (dizziness, lethargy, etc)?
Yes
14)
Has SALLY recently had objective evidence of abnormal neurologic si-
gns (nuchal rigidity, coma, seizures, etc.) documented by physician ob-
servation or examination?
Yes
The CSF cultures will be considered to be associated with MENINGI-
TIS.
.............................................................
...
.............................................................
34)
Is the meningitis a hospital-acquired infection?
No
35)
Is SALLY’s clinical history consistent with EPIGLOTTITIS?
No
36)
Is SALLY’s clinical history consistent with OTITIS-MEDIA?
No
37) Has the patient ever been to an area that is endemic for coccidio-
mycoses?
Unknown
38) Is SALLY a burn patient?
Why?
.............................................................
2. tache
3. salive
4. frottis

6
[i.e. WHY is it important to determine whether SALLY has been se-
riously burned?]
.............................................................
[4.0] This will aid in determining the organisms (other than those seen
on cultures or smears) which might be causing the infection. It has
already been established that
[4.1] the infection which requires therapy is meningitis, and
[4.2] organisms were not seen on the stain of the pending csf culture
(CULTURE-1), and
[4.3] the type of the infection may be bacterial
Therefore, if [4.4] SALLY has been seriously burned then there is sug-
gestive evidence that Pseudomanas-aeruginosa is one of the organisms
(other than those seen on cultures or smears) which might be causing
the infection [RULES578]
[back to question 38 ...]
How 4.3?
.............................................................
[i.e. HOW was it established that the type of the infection may be
bacterial?]
.............................................................
The following rules concluded about: the likelihood that the type of the
infection may be bacterial.
[4.5] RULE500 (0.4)
[4.6] RULE501 (0.17)
[4.7] RULE502 (0.1)
[4.8] RULE503 (0.42)
[4.9] RULE504 (0.28)
Thus, it has been established that the type of the infection may be bac-
terial.
My therapy recommendations will be designed to treat for organisms
that either are very likely or, although less likely, would have a signi-
ficant effect on therapy selection if they were present. It is important
to cover for the following probably infection(s) and associated orga-
nism(s):
INFECTION-1 is MENINGITIS +
ITEM-1 : MYCOBACTERIUM-TB [from clinical evidence only]
ITEM-2 : COCCIDIOIDES [from clinical evidence only]
ITEM-3 : CRYPTOCOCCUS [from clinical evidence only]
.............................................................

On remarque dans le dialogue ci-dessus (cf l’item 38), que MYCIN est ca-
pable d’expliquer son raisonnement mais aussi d’expliquer pourquoi il pose

7
une question, c’est-à-dire en quoi les réponses que fournira l’utilisateur in-
terviendront dans son raisonnement. Cette aptitude est essentielle. Nous
avons naturellement déjà beaucoup de réticences à accepter un avis ou un
conseil provenant d’autres personnes, lorsque ces interventions se font dans
nos propres domaines de connaissances. C’est a fortiori le cas lorsqu’il s’agit
d’une machine. Un médecin n’acceptera le diagnostic d’un système expert
que si celui-ci arrive à le convaincre de la justesse de ses conclusions, c’est-à-
dire de la correction de son raisonnement. Indépendamment de leur qualité
dans leur domaine déxpertise, les sytèmes experts ne s’intégreront dans une
société humaine qu’à mesure qu’ils seront capables de nouer un véritable
dialogue avec leurs utilisateurs.
On trouvera dans [3] une étude assez détaillée de MYCIN.

1.3 Le cycle de vie d’un système expert


à compléter

1.4 Systèmes experts et générateurs de systèmes experts


Un système expert concerne un domaine précis d’application. Un système
expert général (ou générateur de systèmes experts) est un outil de développe-
ment de systèmes experts particuliers. Un système expert général contient
un moteur d’inférences et un système de représentation des connaissances
(par exemple la possibilité de définir et de manipuler des faits booléens).
Une liste de tels systèmes générateurs est donnée au paragraphe 5.3.

1.5 Un exemple introductif


(Farreny [3], pp 51-58).

Le symbole ⊢ représente ici le contraire de l’implication logique. Il signifie :


Pour valider la partie gauche, il faut valider la partie droite. Les règles sont
donc ici écrites à la manière PROLOG.
Les faits non soulignés sont établis, c’est à dire connus comme V RAI ou
F AU X, les faits soulignés ne le sont pas : ce sont les problèmes à résoudre.
Le but est de saturer la base de faits de faits établis. C’est un type de
raisonnement qui sera appelé plus loin chaînage arrière.
L’algorithme utilisé (non justifié) est le suivant : si une règle a sa partie
gauche dans la BF courante, on peut l’appliquer. Ceci consiste à enlever de
BF les faits non établis de la partie gauche de cette règle et à y ajouter la

8
partie droite de cette règle. Si BF contient alors à la fois un fait établi et le
même non établi, on ne garde que le fait établi.
Si plusieurs règles sont ainsi applicables, on on choisit une (par exemple
la première). On se donne aussi une possibilité de retour en arrière en cas
d’impasse.
Enoncé
BF = {H,B,X,C}
Cette BF vient par exemple de ce que l’utilisateur a demandé d’établir
si H est V RAI ou F AU X alors que les connaissances courantes sont que B,
X et C sont établis (sont connus comme étant V RAI ou F AU X).
BR
1. P ⊢ B,E,D
2. A,B ⊢ D,G
3. A ⊢ C,P ,K
4. D,L ⊢ C,Y
5. E ⊢ D,M
6. H ⊢ A,L
7. H,W ⊢ Z
8. P ,L ⊢ W
Il est à noter qu’un fait peut avoir à être établi dans une règle et pas
dans une autre. Le fait C est dans ce cas dans les règles 3 et 4. La règle 3
signifie : "pour établir la valeur de vérité de l’hypothèse A, il suffit que C et
K soient des faits établis dans la base de faits BF et que P soit un fait non
établi dans BF .
Une solution
1. Règles applicables : 6. Règle choisie : 6. BF = {B,X,C,L,A}
2. Règles applicables : 2,3. Règle choisie : 2. BF = {B,X,C,L,D,G}
3. Règles applicables : 4. Règle choisie : 4. BF = {B,X,C,L,Y,G}
4. Règles applicables : aucune. Retour au dernier choix. BF = {B,X,C,L,D,G}
5. Règles applicables : aucune. Retour au dernier choix. BF = {B,X,C,L,A}
6. Règles applicables : 3. Règle choisie : 3. BF = {B,X,C,L,K,P }
7. Règles applicables : 1,8. Règle choisie : 1. BF = {B,X,C,L,K,D,E}
8. Règles applicables : 4,5. Règle choisie : 4. BF = {B,X,C,L,K,Y,E}
9. Règles applicables : 5. Règle choisie : 5. BF = {B,X,C,L,K,Y,M,D}
10. Règles applicables : 4. Règle choisie : 4. BF = {B,X,C,L,K,Y,M }
Commentaire : Si on applique les règles dans la priorité inverse, la résolution
est directe par la séquence : 6, 3, 8. Ce genre de choix ne peut être aidé que
par des métarègles (voir 2.3).

9
2 La base de connaissances
La base de connaissances est composée de faits et de règles.

2.1 La base de faits


2.1.1 Mémoire de travail
La base de faits BF est la mémoire de travail du système expert. Elle
est variable au cours de l’exécution et vidée lorsque l’exécution se termine.
Au début de la session, elle contient ce que l’on sait du cas examiné avant
toute intervention du moteur d’inférences. Puis elle est complétée par les
faits déduits par le moteur ou demandés à l’utilisateur.
Par exemple, dans le domaine médical, la base de faits pourra contenir
une liste de symptômes en début de session et un diagnostic lorsque celle-ci
se terminera.

2.1.2 Le type d’un fait


Les faits peuvent prendre des formes plus ou moins complexes. Nous
n’envisagerons que des faits élémentaires dont les valeurs possibles sont
- booléennes : vrai, faux
- symboliques ou nominales : c’est-à-dire appartenant à un domaine
fini de symboles
- réelles : pour représenter les faits continus.
Par exemple, actif est un fait booléen, profession est un fait symbolique
et rémunération est un fait réel.
Un système expert qui n’utilise que des faits booléens est dit d’ordre 0.
Un système expert qui utilise des faits symboliques ou réels, sans utiliser de
variables, est d’ordre 0+.
Un système utilisant la logique du premier ordre est d’ordre 1.

2.1.3 La valeur d’un fait


Il faut qu’un système expert puisse savoir si une valeur a été attribuée à
un fait. Dans la négative, cette valeur pourra être demandée à l’utilisateur.
Mais si l’utilisateur ne peut pas répondre, il faudra que le système puisse le
savoir afin de ne pas poser éternellement la même question. La seule manière
d’attribuer une valeur à un tel fait sera alors de la déduire d’autres faits.
On dira que la valeur d’un fait est :
- établie ou connue si une valeur lui a été attribuée

10
- inconnue si aucune valeur ne lui a été attribuée et si aucune question à
son sujet n’a été posée à l’utilisateur
- indéterminée si le système ne lui a attribué aucune valeur et si l’utili-
sateur a répondu "je ne sais pas" à une question concernant sa valeur.
On parle aussi de fait établi pour un fait dont la valeur est connue, et de
fait à établir pour un fait dont la valeur est inconnue (donc, de valeur soit
inconnue, soit indéterminée).

2.1.4 Les formules ou conditions


Dans un système expert d’ordre 0, on pourra par exemple écrire des
formules de la forme :
actif ou ¬actif
Dans un système d’ordre 0+, on pourra trouver les formules :

actif et (prof ession 6= medecin ou remuneration ≤ 20000)

Dans un système d’ordre 1, on pourra trouver :

∀X maladie(X) et (X 6= grippe) et (symptome(X) = f orteF ievre)

Ces formules sont appelées conditions lorsqu’elles servent à déclencher des


règles. On remarque que les faits booléens peuvent être interprétés comme
des formules puisqu’ils possèdent une valeur de vérité.

2.1.5 Métafaits et métavaleurs


Pour qu’un système expert puisse modéliser un raisonnement humain, il
est indispensable qu’il puisse raisonner sur ses propres raisonnements, réflé-
chir aux faits qu’il manipule, aux formules qu’il peut construire, etc. Autre-
ment dit, il n’est pas suffisant que le système ait des connaissances, il faut
aussi qu’il ait des métaconnaissances.
Ainsi,
valeur(prof ession)
est un métafait symbolique et

valeur(prof ession) = connue

est une métacondition.


Quand un fait est inconnu, on peut envisager de demander sa valeur
à l’utilisateur. Mais il est important de remarquer que tous les faits ne

11
peuvent pas faire l’objet de cette question directe. Il n’est pas envisageable
par exemple qu’un médecin demande à son patient
"quelle maladie avez-vous?"
ni qu’un juge demande à la personne comparaissant devant lui
"à quelle peine dois-je vous condamner?
Un système expert doit donc savoir si un fait est demandable ou non.
Donc,
demandable(diagnostic)
est un métafait booléen.

2.2 La base de règles


La base de règles BR rassemble la connaissance et le savoir-faire de l’ex-
pert. Elle n’évolue donc pas au cours d’une session de travail.
Une règle est de la forme
Si conjonction de conditions Alors conclusion
où une conclusion est de la forme

F ait = valeur

La conjonction de conditions, comprise entre Si et Alors, est appelée les


prémisses ou le déclencheur de la règle.
La conclusion, qui est après Alors, est aussi appelée le corps de la règle.
En formalisme logique, en notant les conditions C1 , · · · ,Cn , on écrit une
règle ainsi :
C1 ∧ · · · ∧ Cn ⇒ [F ait = valeur]
En langage Prolog, la notation est en général :

[F ait = valeur] : − C1 , · · · ,Cn

ou
[F ait = valeur] ⊢ C1 , · · · ,Cn
Déclencher une règle consiste à remplacer ses prémisses par sa conclusion (en
chaînage avant, voir 3.4.1), ou sa conclusion par ses prémisses (en chaînage
arrière, voir 3.4.2).
Exemple :
Si [population ≥ 200000] et [ville-universitaire]
Alors [cinémaArtEtEssai=VRAI]

12
Si [revenu-imposable = connu] et [quotient-familial = connu]
Alors [calculerMontantImpot=VRAI]

Le dernier exemple montre comment un système expert peut être utilisé


en association avec des programmes classiques. On peut supposer que le
passage à la valeur VRAI du fait booléen calculerMontantImpot déclenche
une procédure calculant le montant de l’impôt en question et l’attribuant au
fait réel MontantImpôt.
Une base de règles est un ensemble de règles dont la signification logique
est la conjonction de la signification logique de chacune des règles. En par-
ticulier, on peut aisément coder dans le formalisme précédent des règles de
la forme
Si A ou B Alors C
ou
Si A Alors B et C
Mais pas des règles de la forme :
Si A Alors B ou C

exercices 7.1 et 7.2

2.3 Les métarègles et la métaconnaissance


De même que dans un système expert, la connaissance est traduite en
règles, la métaconnaissance s’exprime par des métarègles (c’est-à-dire des
règles sur la manière d’utiliser les règles).
On trouve par exemple dans MYCIN les métarègles suivantes (voir [Gon84]) :
1. Si on recherche une thérapie Alors considérer dans cet ordre les règles
qui permettent de :
– acquérir les informations cliniques sur le patient
– trouver quels organismes, s’il en existe, sont causes de l’infection
– identifier les organismes les plus vraisemblables
– trouver tous les médicaments potentiellement utiles
– choisir les plus adaptés en plus petit nombre
2. Si le patient est un hôte à risque et Si il existe des règles mentionnant
des pseudo-monias dans une prémisse et Si il existe des règles men-
tionnant des klebsiellas dans une prémisse Alors il est probable qu’il
faille utiliser les premières avant les secondes

13
3. Si le site de la culture est non stérile et Si il existe des règles men-
tionnant dans leurs prémisses un organisme déjà rencontré auparavant
chez le patient et qui peut être le même que celui dont on recherche
l’identité Alors il est sûr qu’aucune d’entre elles ne peut servir
L’organisation d’une base de connaissances au moyen de méta-règles reste
essentiellement déclarative, par opposition à une organisation basée sur une
structuration a priori de l’ensemble des règles (écrire les règles dans un ordre
donné). D’un point de vue algorithmique, on remarquera que l’utilisation
d’un ordre fixe sur les règles autorise la programmation récursive en essais
successifs. Par contre, si on veut choisir à tout moment quelle règle appli-
quer parmi les règles applicables, il vaut mieux programmer itérativement
en PSEP.

3 Les moteurs d’inférences


3.1 Présentation
Un moteur d’inférences est un mécanisme qui permet d’inférer des connais-
sances nouvelles à partir de la base de connaissances du système.
Quelques notions fondamentales sur les moteurs d’inférence vont être
développées :
– Le cycle de base d’un moteur d’inférences : évaluation, éxécution.
– Le fonctionnement en régime irrévocable.
– Les rapports entre le mode d’inférence et le raisonnement logique.
– La stratégie de recherche d’un moteur d’inférence.

3.2 L’évaluation
3.2.1 La sélection (ou restriction)
On est dans un état BF de la base de faits. Etant donnés BF et BR, la
base de règles, on cherche à déterminer un sous-ensemble F1 de BF et un
sous-ensemble R1 de BR qui méritent a priori d’être mis en présence lors de
l’étape de filtrage.
C’est entre autres à ce stade que les métarègles sont utilisées, en particu-
lier celles qui sont liées au problème. Par exemple on peut regrouper en blocs
les règles qui sont fréquemment utilisées ensemble et parcourir BR bloc par
bloc.

14
3.2.2 Le filtrage ou pattern-matching
En chaînage avant (voir 3.4.1), on compare la partie prémisses des règles
de R1 avec l’ensemble des faits.
En chaînage arrière (voir 3.4.2), on compare la partie conclusion des règles
de R1 avec le sous-but à atteindre.
Dans les deux cas, on détermine un ensemble R2 de règles qu’il est pos-
sible de déclencher, appelé ensemble de conflit.

3.2.3 La résolution de conflit


Ceci consiste à choisir dans R2 un sous-ensemble R3 de règles qu’il va
falloir effectivement déclencher.
Ici encore, on utilise des métarègles, mais non liées au problème. Par
exemple, déclencher de préférence les règles qui ont le moins souvent servi,
ou celles qui introduisent le moins de nouveaux sous-problèmes.

3.3 Régime irrévocable et retour en arrière


Lorsque R3 est vide, les systèmes les plus simples se contentent de s’ar-
rêter. Ils fonctionnent selon un algorithme glouton. On dit que ces moteurs
d’inférence sont en régime irrévocable.
Un fonctionnement un peu plus rusé consiste à réexaminer l’ensemble de
conflit R2 du cycle précédent. Certaines règles y ont déjà été déclenchées. On
peut décider de ne pas remettre en question les modifications de BF consé-
cutives à ces déclenchements et de déclencher d’autres règles de R2 . Dans ce
cas également, on dira que le système expert est en régime irrévocable.
Par contre, si on annule les modifications en question dans BF avant de
choisir d’autres règles à déclencher dans R2 , on dit qu’on a effectué un retour
arrière ou un backtracking. Un système expert fonctionnant de cette manière
est en régime par tentatives ; il s’agit d’un algorithme d’essais successifs 5 .

3.4 L’éxécution : son mode de raisonnement


On distingue essentiellement trois modes principaux de fonctionnement
pour la phase d’éxécution des moteurs d’inférences, c’est à dire trois façons
de raisonner :
– le chaînage avant
– le chaînage arrière
5. Si cet algorithme est programmé itérativement, on peut le voir alors comme appar-
tenant famille branch and bound, ou PSEP.

15
– le chaînage mixte
On remarquera que les moteurs d’inférence décrits ci-dessous le sont indépen-
damment de tout domaine d’application. Cette séparation entre connaissance
et raisonnement est essentielle pour les systèmes experts.

3.4.1 Le chaînage avant


Le mécanisme du chaînage avant est très simple : pour déduire un fait
particulier, on déclenche une règle dont les prémisses sont connues dans BF .
Sa conclusion est ajoutée à BF comme fait connu. La règle est ensuite désac-
tivée (une règle n’a besoin d’être déclenchée qu’une fois au plus, puisque ses
prémisses restent dans BF ). L’algorithme tourne ainsi jusqu’à ce que le fait
à déduire soit connu ou qu’aucune règle ne soit plus déclenchable. Il s’agit
d’un algorithme d’essais successifs, programmé en version itérative (PSEP
sans élagage).
Plus précisément, soit BF une base de faits, BR une base de règles (on
suppose pour le moment qu’elle ne comporte que des faits booléens positifs)
et F le fait que l’on cherche à établir ; l’algorithme 1 calcule si F peut être
déduit ou non de la base de connaissances.

Algorithme 1 Le raisonnement par chaînage avant


ENTREE : BF , BR, F
F est le fait à déduire
tant que F n’est pas dans BF et qu’il existe dans BR une règle applicable
faire
choisir une règle applicable R par les étapes de filtrage et de résolution
de conflits, grâce à l’utilisation d’heuristiques et de métarègles
BR = BR − R (désactivation de R)
fin tant que
si F appartient à BF alors
F est établi
sinon
F n’est pas établi
fin si

On remarque que l’algorithme 1 n’indique pas comment choisir une règle


applicable. C’est à ce niveau que la métaconnaissance du domaine intervient
et permet de définir une stratégie de choix. Voir par exemple les métarègles

16
implantées dans MYCIN au paragraphe 2.3.

Exemple :
Soit BF = {B,C} et soit H le fait à établir 6
Soit BR composée des règles :
1. Si B et D et E Alors F
2. Si G et D Alors A
3. Si C et F Alors A
4. Si B Alors X
5. Si D Alors E
6. Si X et A Alors H
7. Si C Alors D
8. Si X et C Alors A
9. Si X et B Alors D
L’algorithme précédent appliqué à ces paramètres prouve que H se déduit de
la base de connaissances. En effet :

Etape 1 Règles applicables : 4 ou 7. On choisit 4.


BF = {B,C,X}
La règle 4 est désactivée.
Etape 2 Règles applicables : 7, 8 ou 9. On choisit 7.
BF = {B,C,X,D,E}
La règle 7 est désactivée.
Etape 3 Règles applicables : 5, 8 ou 9. On choisit 5.
BF = {B,C,X,D,E}
La règle 5 est désactivée.
Etape 4 Règles applicables : 1, 8 ou 9. On choisit 1.
BF = {B,C,X,D,E,F }
La règle 1 est désactivée.
Etape 5 Règles applicables : 3, 8 ou 9. On choisit 3.
BF = {B,C,X,D,E,F,A}
La règle 3 est désactivée.
Etape 6 Règles applicables : 6, 8 ou 9. On choisit 6.
H est établi.
6. C’est la même chose que d’écrire la base de faits BF = {B,C,H}, en remarquant
qu’il n’y a aucun fait établi dans BR.

17
Remarques :

– l’algorithme de chaînage avant peut être très lent, mais


– il s’arrête toujours
– si l’on utilise des règles dont les conclusions peuvent être des faits
négatifs, pour tout fait F , il peut se produire 4 situations :
– F ∈ BF : le fait est établi.
– F 6∈ BF : la négation du fait est établie.
– ni F ni ¬F ne sont dans BF : le système ne déduit rien à propos
du fait. C’est une troisième valeur de vérité qui apparaît naturel-
lement et dont l’interprétation peut être diverse selon les cas.
– F et ¬F ∈ BF : la base est incohérente. On peut prévoir un
fait "Base-incohérente" et une méta-règle de la forme : si il existe
un fait qui appartient, ainsi que sa négation, à BF alors "Base-
incohérente".
– Une étape de saturation de la base de connaissances, qui consiste à
la compléter par tous les faits déductibles, peut être nécéssaire (voir
Exercice 7.2).

3.4.2 Chaînage arrière


Le mécanisme de chaînage arrière s’appuie sur le fait que l’on souhaite
établir, recherche toutes les règles qui concluent sur ce fait, établit la liste des
faits qu’il suffit de prouver pour qu’elles puissent se déclencher puis applique
récursivement le même mécanisme aux faits contenus dans ces listes.
L’algorithme de chaînage arrière est nettement plus compliqué que le
précédent 7 . Nous nous contenterons d’étudier un exemple.
L’exécution de l’algorithme de chaînage arrière peut être décrit par un
arbre dont les noeuds sont étiquetés soit par un fait, soit par un des deux
mots ET , OU (une variante graphique consiste à étiqueter les arcs associés
par un ET ou un OU). On parle d’arbre ET-OU (voir la figure 2).
Les figures 3 et 4 montrent une représentation du raisonnement en chaî-
nage arrière par un arbre ET-OU. L’exemple est celui qui avait été traité en
chaînage avant au paragraphe précédent.
Si les faits déjà examinés ne peuvent pas être mémorisés (par exemple
parce qu’ils sont trop nombreux), l’algorithme de chaînage arrière peut bou-
cler.
7. Il s’agit d’un algorithme de type essais successifs ou PSEP, mais dans une structure
donnée plus complexe qu’un arbre,un arbre ET-OU (voir plus loin).

18
A A
\
 \
ET
 ET
\
ET B C
\
 \
 \
B C

Fig. 2 – Deux représentations d’une branche ET dans un arbre ET-OU

Enrichissement de l’algorithme
On peut enrichir l’algorithme de chaînage arrière en tenant compte du
caractère demandable ou non d’un fait. Dans ce cas, lorsqu’un fait deman-
dable n’a pas encore été établi, le système le demandera à l’utilisateur avant
d’essayer de le déduire d’autres faits connus. Mais pour que ce mécanisme
soit efficace (ce qui implique entre autres qu’il n’agace pas l’utilisateur en
posant des questions stupides), il faut que le moteur d’inférences soit capable
de déterminer quelles sont les questions pertinentes. Et ce problème est loin
d’être simple.
Considérons par exemple la base de règles suivante :
Si B et C Alors A
Si D et E Alors A
Si F et G Alors A
Si I et J Alors G
Si J Alors ¬ E
On suppose que les faits B, D, F et I sont les seuls faits demandables.
La mémoire de travail est initialisée avec l’information J est vrai.
La question posée au système est : A est-il V RAI ?
Quelles sont les questions pertinentes à poser à l’utilisateur?
– B est-il V RAI ? n’est pas une question pertinente. En effet, aucune
règle ne conclut sur le fait C qui n’est pas non plus demandable. Comme
le fait B ne peut être utilisé que conjointement à C, la valeur de vérité
de B n’apportera aucune information sur celle de A
– D est-il V RAI ? n’est pas non plus pertinente. En effet, comme on
sait que J est vrai, que cela implique que E est faux et que D n’est
utilisé que conjointement à E, la valeur de vérité de D est inutile pour
connaître celle de A

19
H

(
ET
((((((( Z
(( Z
(((( Z
(((( Z
X A

B ∈ BF OU
 ``
 ZZ`````
 Z ```
 Z ```
``
 Z
ET ET inutile
Z Z
Z Z
Z Z
Z
Z Z
G (échec) inutile C ∈ BF F

ET...
Fig. 3 – Une visualisation du raisonnement en chaînage arrière par un arbre
ET-OU (début)

– F est-il V RAI est par contre pertinente. En effet, le fait G est encore
déductible. Mais si la réponse à cette question est NON, la question I
est-il V RAI ? n’est plus pertinente car la valeur de G ne sert plus à
rien.

exercices 7.8, 7.5

3.4.3 Chaînage mixte


L’algorithme de chaînage mixte combine, comme son nom l’indique, les
algorithmes de chaînage avant et de chaînage arrière. Son principe est donné
dans l’algorithme 2.
Bien entendu, les trois parties de l’itération de cet algorithme nécessite-
raient d’être développés et précisés pour transformer ce qui précède en un
véritable algorithme.

20
...ET
XXXXX
 XXX
 XXX
 X
B ∈ BF D E

OU D ∈ BF
Z
Z
Z
Z
C ∈ BF inutile

Fig. 4 – Une visualisation du raisonnement en chaînage arrière par un arbre


ET-OU (suite)

Algorithme 2 Le raisonnement par chaînage mixte


ENTREE : BF , BR, F
F est le fait à déduire
tant que F n’est pas déduit mais peut encore l’être faire
Saturer la base de faits par chaînage avant
(c’est-à-dire, déduire tout ce qui peut être déduit)
Chercher quels sont les faits encore éventuellement déductibles
Déterminer une question pertinente à poser à l’utilisateur et ajouter sa
réponse à la base de faits
fin tant que

On trouvera dans l’exercice 7.5 une application du chaînage mixte.

3.5 Mode d’inférence et raisonnement logique


Pour les systèmes d’ordre 0, le mécanisme de base du chaînage avant
consiste à constater d’une part la présence d’un fait P dans la base de faits
établis et d’autre part la présence dans la base de règles d’une règle de
prémisse P . Si cette règle a pour conclusion Q, le fait Q est mémorisé dans
la base de faits. Il s’agit donc d’inférence logique en modus ponens, que l’on
peut résumer par : "Si P implique Q est VRAI et Si P est VRAI, Alors Q
est VRAI".

21
Quand on travaille en ordre 1, les règles peuvent comporter des variables
quantifiées. Le chaînage avant s’appuie sur l’existence d’une règle dont la
prémisse est de la forme P (x) et la conclusion de la forme Q(x) (x est une
variable). S’il existe un fait établi P (a) dans la base de faits, on peut alors y
ajouter Q(a). Il s’agit d’une combinaison du modus ponens et de la spécia-
lisation universelle, qui énonce : "Si R(x) est VRAI quelque soit x, Alors
R(a) est VRAI". C’est un cas particulier de la résolution par unification.
L’inférence logique utilisée en chaînage arrière est fondamentalement la
même ; c’est l’organisation des enchainements des raisonnements élémen-
taires qui est différente.

3.6 Les structures de données


3.6.1 Espaces d’états
On peut considérer que la base de faits peut prendre un certain nombre
d’états et qu’un déclenchement de règle (que ce soit en chaînage avant ou
arrière) fait passer d’un état à un autre.
Dans ce cas, l’état initial du problème n’est autre que la base de faits à
la mise en marche du système expert.
L’état final est :
– soit une base de faits où apparaît un fait cherché
– soit une base de faits dont auront disparu tous les faits à établir
– soit une base de faits telle que le déclenchement d’aucune règle ne lui
apporte de modification
Le premier cas correspond à un succès en chaînage avant, le second à un
succès en chaînage arrière, le dernier à la saturation de la base de faits.
On peut donc considérer la stratégie de recherche sous l’angle d’une re-
cherche de solution dans un graphe d’états et s’inspirer d’algorithmes comme
A∗ (s’inspirer, car son application directe est en général inpraticable). On
peut aussi utiliser une stratégie profondeur d’abord, escalade, etc.

3.6.2 Espaces de sous-problèmes


Les espaces de sous-problèmes ou espaces de réduction ou graphes ET-
OU, dont on a donné vu définition et un exemple au paragraphe 3.4.2, sont
des structures de représentation des connaissances plus complexes que les
graphes d’états, dans lesquels existent aussi des algorithmes exacts et heu-
ristiques (éventuellement admissibles) de recherche de solution. On a déjà
vu aussi l’utilisation d’un arbre ET-OU pour représenter le chaînage arrière

22
dans un moteur d’inférence d’ordre 0 (logique des propositions). Ici, on s’in-
téresse au fait que ces structures sont aussi adaptées à la logique du premier
ordre. Les raisonnements correspondants au déclenchement des règles (es-
sentiellement à base d’unification) peuvent se traduire par des modifications
dans ces graphes.
Voyons sur des exemples la notion d’unification 8 et les deux modes de
raisonnement dans ce formalisme.
Unification
La règle R : ∀x,A(x) ⇒ B(x) et le fait F se résolvent en B(F ) par
l’unification représentée graphiquement sur la Figure 5 (à lire de haut
en bas).

A(F )

Unification (F/x)
A(x)

Application de R
B(F )

Fig. 5 – Une représentation graphique de l’unification de la règle


R : ∀x,A(x) ⇒ B(x) et du fait F en B(F )

Raisonnement par chaînage avant


Sur l’exemple suivant ([Nil80] page 211) :
BF = {¬CHIEN (F ) ∨ [ABOIE(F ) ∧ M ORD(F )]}
But (rajouté à BF comme fait non prouvé :

∃z : ¬T ERRIER(z) ∨ BRU Y AN T (z)

BR

R1 : ∀x,T ERRIER(x) ⇒ CHIEN (x)


R2 : ∀x,¬CHIEN (x) ⇒ ¬T ERRIER(x)
R3 : ∀y,ABOIE(y) ⇒ BRU Y AN T (y)
8. Pour être tout à fait exact, l’unification n’est utilisée ici avec toute sa puissance : il
s’agit ici seulement la combinaison du modus ponens et de la spécialisation universelle,
comme on l’a vu plus haut.

23
La règle R2 est logiquement équivalente à R1 . Elle a été rajoutée pour
la facilité de la construction. D’une manière générale, savoir comment
compléter ainsi la base de règles n’est pas un problème simple. La figure
6 donne l’arbre ET/OU correspondant.

¬CHIEN (F ) ∨ [ABOIE(F ) ∧ M ORD(F )]


HH
 HH


OU HH
OU
¬CHIEN (F ) ABOIE(F ) ∧ M ORD(F )
"HH
" HH
"
Unification (F/x) ET " HH
ET
"
¬CHIEN (x) ABOIE(F ) M ORD(F )

Règle R2 Unification (F/y)


¬T ERRIER(F ) ABOIE(y)

Unification (F/z) Règle R3


¬T ERRIER(z) BRU Y AN T (F )

Unification (F/z)
BRU Y AN T (z)

Fig. 6 – Raisonnement par chaînage avant


Le raisonnement se propage de haut en bas.

Raisonnement par chaînage arrière


Sur l’exemple suivant ([Nil80], page 216) :
BF
F1 CHIEN (F )
F2 ¬ABOIE(F )
F3 REM Q(F )
F4 M IAU LE(M )
Fait à prouver :
(∃x)(∃y)[CHAT (x) ∧ CHIEN (y) ∧ ¬P EU R(x,y)]

24
BR

R1 [REM Q(x1 ) ∧ CHIEN (x1 )] ⇒ SY M P A(x1 )


R2 [SY M P A(x2 ) ∧ ¬ABOIE(x2 )] ⇒ ¬P EU R(y2 ,x2 )
R3 CHIEN (x3 ) ⇒ AN IM AL(x3 )
R4 CHAT (x4 ) ⇒ AN IM AL(x4 )
R5 M IAU LE(x5 ) ⇒ CHAT (x5 )

Les figures 7 et 8 donnent l’arbre ET-OU correspondant.

CHAT (x) ∧ CHIEN (y) ∧ ¬P EU R(x,y)


``
 @ `````
```
 @ ``` ÈT
ET
 @ET `
CHAT (x) CHIEN (y) ¬P EU R(x,y)

Unification (x/x5 ) Unification (F/y) Unif. (x/x2 ) et (y/x2 )


CHAT (x5 ) CHIEN (F ) ¬P EU R(x2 ,y2 )

Règle R5 R2
M IAU LE(x) suite...

Unification (M/x)
M IAU LE(M )

Fig. 7 – Raisonnement par chaînage arrière (début)


Le raisonnement se propage de haut en bas.

3.6.3 Lien avec la restriction


En chaînage arrière, seuls les faits à établir composent l’ensemble F1
qu’il faut comparer aux règles lors de l’étape de filtrage (voir 3.2.1). Si on
se place dans la représentation en espace d’états et que la stratégie suivie
soit profondeur d’abord, F1 se réduit aux seuls faits à établir issus du dernier
déclenchement de règle. Si le régime est irrévocable, la stratégie se ramène
alors à l’algorithme de l’escalade.

25
...suite
a aa
aa
ET aa ET
a
¬ABOIE(y) SY M P A(y)

Unification (F/y) Unification (x1 /y)


¬ABOIE(F ) SY M P A(x1 )
!!HH
!!! HH
ET !! HH ET
! H
REM Q(y) CHIEN (y)

Unification (F/y) Unification (F/y)


REM Q(F ) CHIEN (F )

Fig. 8 – Raisonnement par chaînage arrière (suite)


Le raisonnement se propage de haut en bas.

3.7 La monotonie
Un fonctionnement monotone signifie que :
– aucune connaissance ne peut être retirée de la base de faits BF ni de
la base de faits BR
– l’ajout d’une connaisance à BF n’y introduit pas de contradiction lo-
gique
En principe, un système expert est monotone puisque son raisonnement est
fondé sur une résolution logique. En pratique, beaucoup de réalisations en-
richissent le fonctionnement à une non-monotonie contrôlée. Il est courant
que certaines règles puissent être inhibées durant certaines phases en suivant
des métarègles. Par exemple, si la stratégie de résolution est basée sur la
planification, des faits provisoires peuvent être ajoutés à BF .

26
4 La représentation des connaissances incertaines
et le raisonnement sur l’incertain
4.1 Comment représenter des connaissances incertaines?
Un des plus grand problèmes que rencontre le cogniticien lorsqu’il tente
de formaliser le savoir d’un expert, c’est que celui-ci est capable de raisonner
sur des connaissances incertaines et qu’on ne dispose que de très peu d’outils
pour rendre compte de cette capacité.
Un médecin par exemple n’est jamais totalement sûr que tel symptôme
est signe de tel maladie, que tel médicament sera supporté par le malade,
que le malade guérira, etc.
On peut reconnaître globalement un objet sans être capable d’identifier
à 100 pour cent chacun de ses détails.
L’observation du temps qu’il fait ne permet pas de savoir avec certitude
s’il pleuvra ou non une heure plus tard.
On peut utiliser la théorie des probabilités pour définir la vraisemblance
d’un fait. De nombreux générateurs de systèmes experts offrent la possibilité
aux utilisateurs de nuancer leur certitude concernant un fait en leur associant
un degré de vraisemblance.
"Reconnaissez-vous votre agresseur sur cette photo? "
"Oui, enfin c’est-à-dire, non. En fait, je le reconnais à 72 %"
Cette technique permet aussi de graduer une sensation.
"Avez-vous très mal à la tête? Ou seulement, un peu mal "
"Sur une échelle qui associerait 0 au fait de ne pas avoir mal à la
tête et 1 au fait de ne pas pouvoir le supporter, je dirai que j’ai
mal à la tête avec un coefficient 0,45 "
Les exemples qui précèdent révèlent une des principales difficultés de
cette méthode : il n’est pas raisonnable d’attendre d’un être humain, expert
ou non, qu’il puisse définir avec précision de tels degrés de vraisemblance.

4.2 Comment raisonner ?


Un autre problème concerne la combinaison des coefficients de vraisem-
blance. Si les faits A et B sont connus respectivement avec les coefficients de
vraisemblance p et q et si la règle
Si A et B Alors C
figure dans la base de règles, que peut-on déduire pour le fait C?
Naïvement, on a envie de dire que C est VRAI est vrai avec le degré de
vraisemblance p × q. Mais ceci exige de se placer dans un cadre probabiliste

27
et, dans ce cadre, de supposer que les faits A et B sont indépendants. Voilà
qui pose quelques questions :
– Comment définir un cadre probabiliste rigoureux?
– Comment s’assurer que deux faits sont indépendants?
– Comment faire s’ils ne le sont pas?
– Comment rendre compte par une règle d’une connaissance du type
le fait que A soit vrai rend B plus vraisemblable?
De nombreux travaux en Intelligence Artificielle sont consacrés à ces ques-
tions. Ils utilisent des techniques variées parmi lesquelles on peut citer :
– la logique floue qui explore la voie esquissée plus haut consistant à
associer des coefficients de vraisemblances à des faits
– les logiques modales qui introduisent des opérateurs comme "il est pos-
sible que" ou "il est nécessaire que"
– les logiques non monotones qui étudient la possibilité de réviser un
raisonnement (si on me dit que TITI est un oiseau, j’en déduis qu’il vole
mais si l’on ajoute que TITI est une autruche, je révise mon inférence)
– les raisonnements probabilistes : par exemple les réseaux bayésiens que
nous abordons plus en détail au paragraphe suivant.

4.3 Une introduction aux réseaux bayésiens


Ce matin, je sors de chez moi. Il fait aussi beau qu’hier, alors
pourquoi ma pelouse est-elle mouillée ? Aurait-il plu cette nuit?
Ai-je oublié de couper l’arroseur avant de me coucher? Ce modèle
automatique asperge vingt minutes toutes les heures et en ce
moment, il est au repos. Un coup d’oeil à travers la haie vers la
pelouse de mon voisin me rassure : elle a l’air mouillée comme la
mienne. Je monte dans ma voiture sans vérifier mon arroseur 9 .

Un raisonnement de ce type semble simple et intuitif. Il possède pourtant


quelques caractéristiques plus subtiles qu’il n’y paraît. D’abord, la décision
prise n’est pas forcément la bonne : il peut avoir plu cette nuit et je peux avoir
oublié mon arroseur. Je peux également me tromper en observant la pelouse
du voisin. D’autre part, il n’y a aucun rapport a priori entre le fait que
celle-ci soit (vraisemblablement) humide et mon éventuel oubli. Cependant,
constater le premier me rassure sur mon second. Quelle est la structure sous-
jacente à mon raisonnement?
9. Cet exemple est adapté de [BN99]

28
On peut isoler quatre faits dans cet univers, associés à une probabilité
d’être V RAI : ma pelouse est mouillée, celle de mon voisin aussi, il a plu
cette nuit, j’ai oublié de fermer mon arroseur. Clairement, les données de
départ sont que ma pelouse est certainement mouillée et que celle de mon
voisin l’est avec une forte probabilité. D’autre part, je connais les relations
de cause à effet suivantes :
Si il a plu cette nuit Alors ma pelouse est mouillée
Si il a plu cette nuit Alors la pelouse de mon voisin est mouillée
Si j’ai oublié de fermer mon arroseur Alors ma pelouse est mouillée
Ma pelouse est humide soit à cause d’une averse nocturne, soit du fait
de mon oubli (ou des deux). Les deux causes sont a priori plausibles. Mais
observer la pelouse de mon voisin me dit qu’il a très probablement plu cette
nuit. Donc, cette averse devient beaucoup plus vraisemblable comme cause
de l’humidité de ma pelouse. Je peux partir avec la quasi-certitude de ne pas
gaspiller d’eau. Les réseaux d’inférences bayésiens sont des modèles qui per-

Mon arroseur n’est pas debranche Il a plu cette nuit

Ma pelouse est humide La pelouse du voisin est humide

Fig. 9 – Pourquoi ma pelouse est-elle mouillée?

mettent de représenter des situations de raisonnement probabiliste à partir


de connaissances incertaines. Chaque fait est représenté graphiquement par
un noeud et les relations directes de cause à effet sont des arcs orientés entre
les noeuds. L’exemple précédent (Figure 9) comporte donc quatre noeuds et
trois arcs. Complètement défini, il représenterait de manière condensée toute
l’information sur les dépendances entre les faits.

4.3.1 Représentation des connaissances


Ce que sont et ne sont pas les réseaux bayésiens
On supposera ici que les faits sont binaires. Les réseaux bayésiens défi-
nissent certaines relations de dépendance probabiliste entre les valeurs des
faits. Ils ne sont pas une description probabiliste complète des dépendances
entre les valeurs des faits, puisqu’ils font des hypothèses sur l’indépendance
de certains ensembles d’attributs. Ils ne sont pas exactement non plus un

29
système expert en logique des propositions sur lequel un calcul probabiliste
aurait été ajouté. Disons qu’ils sont un compromis entre les méthodes bayé-
siennes naïves et des systèmes experts probabilisés. Des seconds, ils héritent
d’une description de l’univers sous forme de raisonnement ; des premiers, ils
conservent la cohérence mathématique et la capacité d’apprentissage.
Structure
Un réseau d’inférence bayésien, ou réseau bayésien, est construit sur un
graphe orienté sans cycle 10 . Nous emploierons donc ici le vocabulaire clas-
sique de la théorie des graphes : par exemple, un noeud V sera dit descen-
dant d’un noeud W s’il existe un chemin (une suite d’arcs, ici orientés) entre
V et W . Les termes de parent, descendant direct ou fils, descendant, non-
descendant et ancêtre seront utilisés (des exemples sont donnés sur la Figure
10). Chaque noeud d’un réseau bayésien porte une étiquette qui est un des

A B C

D E

F G

Fig. 10 – Un graphe orienté sans cycle. Les parents de F sont D et E.


Les ancêtres de F sont D, E, A, B et C. Les fils de B sont D et E. Les
descendants de B sont D, E, F et G. Les non-descendants de A sont B, C,
E et G.

attributs du problème. Ces attributs sont binaires, pouvant prendre avec une
certaine probabilité la valeur V RAI ou F AU X, ce qui signifie qu’une va-
riable aléatoire est associée à chaque attribut. Comme à chaque noeud est
associée un attribut, donc une variable aléatoire différente, nous pouvons
confondre par la suite un noeud, un attribut et la variable aléatoire associée.
Nous noterons la probabilité que la variable X soit vraie par p(X =
V RAI), ou, en raccourci : p(X). On a évidemment : p(X = F AU X) = 1 −
p(X = V RAI), ce que nous notons : p(¬X) = 1 − p(X).
Contraintes et propriétés
Pour rendre le modèle opérationnel, il faut imposer une contrainte sup-
plémentaire. La règle de fonctionnement est que chaque noeud V est indé-
10. On dit souvent : un DAG, de l’anglais directed acyclic graph

30
pendant de tout autre noeud qui n’est pas son descendant, mais indépendant
sachant les parents de V . Ou encore :
Dans un réseau bayésien, tout noeud est conditionnellement indépendant
de ses non-descendants, sachant ses parents.
En termes plus formels, notons A(V ) n’importe quel ensemble de noeuds
qui sont pas des descendants de V et P(V ) l’ensemble des parents de V . Ceci
s’écrit :
p(V | A(V ),P(V )) = p(V | P(V )) (1)
Autrement dit, l’ensemble des valeurs p(V | P(V )), avec V parcourant l’en-
semble des noeuds du graphe, suffit à déterminer complètement l’ensemble
de toutes les probabilités conditionnelles d’un réseau bayésien.
Si on tient compte de la structure du graphe, on démontre que cette
condition peut se mettre sous la forme équivalente :
Soit V = {V1 , . . . ,Vk } l’ensemble des noeuds du graphe :

Y
k
p(V1 , . . . ,Vk ) = p(Vi | P(Vi )) (2)
i=1

Exemple
Nous empruntons à [Nil98] l’exemple dont le graphe est donné à la Fi-
gure 11. Ce réseau traduit le comportement d’un robot dont l’univers est

B L

G M

Fig. 11 – Le réseau bayésien exprimant le comportement d’un robot.

représenté par quatre paramètres :


B la batterie est chargée
L le bloc à soulever n’a pas d’autre bloc posé sur lui (il est libre)
M le bras du robot bouge
G la jauge de la batterie indique un chargement complet de celle-ci

31
Par conséquent, B et L ont une influence directe sur M ; ce sont donc ses
noeuds parents. De même, B a une influence directe sur G. Ce dernier cas
signifie simplement que, selon que la batterie est plus ou moins chargée, la
jauge est plus ou moins haute.
La spécification complète d’un réseau bayésien doit affecter à chaque
variable toutes les probabilités conditionnelles significatives. Compte tenu
des dépendances de notre exemple, il faut donc d’abord spécifier les valeurs
p(B) et p(L) qui sont non conditionnelles, puisque les noeuds correspon-
dants sont tous les deux sans ancêtres. Notons que les variables B et L sont
indépendantes pour la même raison. Il nous faut, pour le noeud G, don-
ner p(G | B) et p(G | ¬B) et pour le noeud M , donner quatre valeurs :
p(M | B,L),p(M | B,¬L), p(M | ¬B,L) et p(M | ¬B,¬L)
Notre exemple sera donc complet si nous lui ajoutons par exemple le
tableau :
p(B) 0.95
p(L) 0.7
p(G | B) 0.95
p(G | ¬B) 0.1
p(M | B,L) 0.9
p(M | B,¬L) 0.05
p(M | ¬B,L) 0
p(M | ¬B,¬L) 0
Ces valeurs sont données arbitrairement pour spécifier notre exemple. Par
exemple, p(G | B) = 0.95 signifie que nous posons qu’il y a 95% de chances
que la jauge soit sur "complet" quand on sait que la batterie est chargée, et
p(G | ¬B) = 0.1 qu’il y a 10% de chances que la jauge soit sur "complet"
quand on est sait que la batterie est déchargée.
Définition formelle
Compte tenu de ce qui a été dit, nous pouvons maintenant donner une
définition complète d’un réseau bayésien.
Un réseau bayésien est un couple (G,P ), avec :
– G est un graphe orienté sans cycle
– A chaque noeud de G est associée une variable aléatoire et une seule.
– Soit {V1 , . . . ,Vn } l’ensemble de ces variables aléatoires. La propriété
suivante est vérifiée :

Y
k
p(V1 , . . . ,Vk ) = p(Vi | P(Vi ))
i=1

32
avec P(Vi ) l’ensemble des variables associées aux parents du noeud
associé à Vi .
Un réseau bayésien sera donc complètement spécifié quand son graphe aura
été décrit et quand, pour chaque noeud de ce graphe, les probabilités condi-
tionnelles de ce noeud sachant chacun de ces parents auront été données.

4.3.2 Le raisonnement
Nous cherchons maintenant à calculer d’autres probabilités condition-
nelles pour exprimer l’influence des variables les unes sur les autres. Par
exemple, comment le réseau donné en exemple peut-il répondre aux ques-
tions :
– Quelle est la probabilité pour que le bras du robot se déplace sachant
que le bloc est libre?
– Quelle est la probabilité que le bloc ne soit pas libre sachant que le
bras ne se déplace pas?
– Quelle est la probabilité que le bloc ne soit pas libre sachant que la
batterie est vide et que le bras ne bouge pas?
En termes formels, il s’agit ici de calculer les probabilités conditionnelles
p(M | L), p(¬L | ¬M ) et p(¬L | ¬B¬M ). Le premier cas s’appelle une
inférence causale ou descendante : en effet, le noeud L est un ancêtre du
noeud M . On peut donc considérer L comme une cause de M . Mais cela
ne veut pas dire qu’il n’y ait pas de dépendance inverse. Le second calcul
s’appelle une inférence ascendante ou un diagnostic : il s’agit de comprendre
une variable par ses conséquences. Le troisième cas est une combinaison des
deux premiers, appelée une explication.
D’une manière générale, le calcul de ces probabilités conditionnelles se
base sur la formule de Bayes :

p(X,Y ) = p(X | Y )p(Y ) = p(Y | X)p(X)

et sur la règle du chaînage des probabilités conditionnelles :

p(X1 , . . . ,Xn ) = p(Xn | Xn−1 , . . . ,X1 )p(Xn−1 | Xn−2 , . . . ,X1 ) . . . p(X2 | X1 )p(X1 )

soit :
Y
n
p(X1 , . . . ,Xn ) = p(Xi | Xi−1 , . . . ,X1 )
i=1

33
Pour trois variables :
P (X,Y,Z) = P (Z | X,Y )P (X,Y )
= P (Z | X,Y )P (Y | X)P (X) (3)
= P (Z | Y,X)P (Y,X)P (X)
Un calcul d’inférence causale
Pour calculer p(M | L), il nous faut d’abord faire intervenir l’autre parent
de M :
p(M | L) = p(M,B | L) + p(M,¬B | L)
puis "conditionner" ce parent par rapport à L :

p(M | L) = p(M | B,L)p(B | L) + p(M | ¬B,L)p(¬B | L)

Nous savons, puisque B n’a pas de parent, que p(B | L) = p(B) et que de
même p(¬B | L) = p(¬B).
D’où :

p(M | L) = p(M | B,L)p(B)+p(M | ¬B,L)p(¬B) = 0.9×0.95+0.×(1−0.95) = 0.855

La généralisation du calcul fait sur cet exemple est facile à imaginer. On


la trouvera développée formellement dans [Nil98] et [BN99].
Un calcul de diagnostic
Ici, il faut renverser l’ordre des variables en utilisant la règle de Bayes .
Elle nous donne :
p(¬L | ¬M )p(¬M )
p(¬M | ¬L) =
p(¬L)
Nous pouvons maintenant calculer p(¬M | ¬L) par inférence causale, ce qui
nous donne :

p(¬M | ¬L) = p(¬M,B | ¬L) + p(¬M,¬B | ¬L)


= p(¬M | B,¬L)p(B,¬L) + p(¬M | ¬B,¬L)p(¬B,¬L)
= p(¬M | B,¬L)p(B) + p(¬M | ¬B,¬L)p(¬B)
= (1 − 0.05) × 0.95 + (1.) × 0.05
= 0.9525

D’où :
0.9525 × p(¬L) 0.9525 × 0.3 0.28575
p(¬L,¬M ) = = = (4)
p(¬M ) p(¬M ) p(¬M )

34
Nous ne connaissons pas p(¬M ), mais nous contournons la difficulté en le
traitant comme un facteur de normalisation en calculant, sans donner encore
une fois le détail :
p(¬M | L)p(L) 0.0595 × 0.7 0.03665
p(L | ¬M ) = = = (5)
p(¬M ) p(¬M ) p(¬M )

Comme p(¬L | ¬M ) + p(L | ¬M ) = 1, on déduit des équations 4 et 5 :

p(¬L | ¬M ) = 0.88632

La généralisation de ce calcul à tout réseau bayésien est également pos-


sible.
Un calcul d’explication
Ici, le calcul se fait en employant à la fois la règle de Bayes et la règle de
chaînage des probabilités conditionnelles.
p(¬L | ¬B,¬M ) = p(¬M,¬B,|¬L)p(L)
p(¬B,¬M ) par la règle de Bayes

p(¬M |¬B,¬L)p(¬B|¬L)p(¬L)
= p(¬B,¬M ) par définition
des probabilités conditionnelles

p(¬M |¬B,¬L)p(¬B)p(¬L)
= p(¬B,¬M ) car B et L sont indépendants

Tous les termes de cette expressions sont définies avec le réseau, sauf p(¬B,¬M ),
que l’on peut calculer par diagnostic. On trouve finalement :

p(¬L | ¬B,¬M ) = 0.03

On peut remarquer que cette valeur est inférieure à p(¬L,¬M ), ce qui est
consistant avec l’intuition : savoir en plus que la batterie du robot n’est pas
chargée doir réduire la probabilité que le bloc n’est pas libre sachant que le
bras ne bouge pas.
La généralisation de ce calcul à tout réseau bayésien est encore pos-
sible, mais l’organisation des calculs demande évidemment un algorithme
plus complexe.
Complexité des calculs
Comme on l’a vu ci-dessus, il est donc possible, en organisant proprement
les calculs, de dériver (à partir de la structure et des probabilités données au
départ) toutes les probabilités conditionnelles du type p(V | W), où V et W
sont des ensembles de noeuds.

35
Malheureusement, il a été démontré que ce calcul est NP-complet, c’est
à dire qu’il n’existe vraisemblablement pas, si V et W sont quelconques,
d’algorithme dont le temps de calcul soit polynomial en fonction du nombre
total de noeuds du réseau. Il faut donc chercher à réduire ce temps de calcul
en tenant compte le mieux possible de la structure, ce qui peut se faire de
deux manières. La première technique consiste à trouver une relation entre
la géométrie du graphe du réseau et l’indépendance conditionnelle de sous-
ensembles de ses noeuds. La seconde consiste à contraindre la structure pour
que les calculs se développent facilement.

5 Une liste de systèmes experts


5.1 Quelques systèmes experts classiques
– DENDRAL, 1969, chimie, recherche la formule développée d’un corps
organique à partir de la formule brute et du spectrogramme de masse
du corps considéré.
– CRYSALIS, 1979, chimie, recherche la structure de protéines à partir
de résultats d’analyse cristallographique.
– MOLGEN, 1977, biologie, engendre un plan de manipulations géné-
tiques en vue de construire une entité biologique donnée.
– PROSPECTOR, 1978, géologie, aide le géologue à évaluer l’intérêt d’un
site en vue d’une prospection minière. (1600 règles)
– AM, 1977, mathématiques, proposition de conjectures, de concepts in-
téressants. (500 règles)
– MUSCADET, 1984, mathématiques, démonstration de théorèmes (EVT).
– MYCIN, 1974, médecine, système d’aide au diagnostique et au traite-
ment de maladies bactériennes du sang.

On trouvera dans [Lie90] de nombreuses applications économiques et finan-


cières des systèmes experts et dans [ea87] une application à l’archéologie.

5.2 Quelques systèmes experts en service


Darlington ([Dar00]) donne une liste thématique de systèmes experts
actuellement opérationnels.

36
Tâche Description Système
Interprétation
Planification Décider d’une DART
séquence d’actions employé par le gouvernement
des USA pour la logistique
du transports des troupes
durant la guerre du Golfe
Diagnostic MYCIN
maladies infectieuses

TRACKER
Utilisé par British Telecom
pour détecter les anomalies
dans les alimentations
en énergie électrique
Design Configurer XCON
sous contraintes Employé par DEC
pour configurer ses machines
en fonction du client
Prédiction Inférer PROSPECTOR
une conclusion Détection de minerais
plausible
Surveillance Suivre FRAUDWATCH
en temps réel La Barclay’s Bank s’en sert pour
détecter les fraudes
à la carte bancaire
Enseignement Aider à GUIDON
l’apprentissage Sert à apprendre
à utiliser MYCIN
Commande VM
Surveille les patients
dans une unité de soins intensifs
et suggère des interventions
Réparation TQMSTUNE
Réglage d’un
spectrogramme de masse
Déboguage ONCOCIN
surveille le traitement
de malades
sous chimiothérapie

5.3 Quelques générateurs de systèmes experts


Quelques exemples de systèmes experts généraux :
– VP-Expert (pour des applications peu complexes)
– SNARK (beaucoup plus complet, mais date un peu)

37
– GURU (idem)
– PROLOG (c’est plus un langage de programmation qu’un générateur)
– SMECI (un générateur contemporain)

5.4 Quelques logiciels et applications des réseaux bayésiens


à compléter

6 Conclusion
Les systèmes experts sont une des applications de l’intelligence artificielle
qui ont quitté les laboratoires de recherche pour être utilisées dans le monde
de léntreprise. De nombreux systèmes experts ont été implantés avec succès
pour résoudre des problèmes concrets. On les a même accusé d’avoir provoqué
le crach boursier de 1986, ce qui est plutôt bon signe du point de vue de l’IA !
Mais les grandes difficultés que l’on rencontre lorsqu’on cherche à ex-
traire des experts leur connaissance, puis lorsqu’on tente de formaliser ces
connaissances dégagées à grand peine, sont peut être signes d’une faiblesse
intrinsèque des systèmes experts. La possibilité de concevoir des systèmes
experts repose en effet sur une hypothèse psychologique dont il n’a pas été
question ci-dessus : la structuration de nos aptitudes en règles symboliques
parfaitement identifiables. Majoritaire chez les psychologues et chercheurs en
intelligence artificielle dans les années 70, cette hypothèse est de plus en plus
battue en brèche et l’on envisage maintenant des modèles de savoir qui n’y
ont plus recours (modèles connexionistes, systèmes adaptatifs, etc.). Il n’est
par ailleurs pas exclu que les techniques à venir utilisent à la fois des sys-
tèmes experts et d’autres techniques comme les réseaux de neurones basées
sur des hypothèses plus adaptatives que symboliques (systèmes hybrides).

38
7 Exercices
Commentaires préliminaires
L’exercice 7.1 montre que l’on n’est pas toujours conscient de ce que l’on
sait et que le travail consistant à soutirer ses connaissances à un expert n’est
pas facile. Dans cet exercice, vous êtes à la fois l’expert et le cogniticien.
Dans l’exercice 7.2, la connaissance est déjà extraite et elle est décrite en
français dans une forme qui semble très proche de la forme des règles dans
un système expert. On voit pourtant que passer de la logique d’une langue
naturelle à la logique propositionnelle n’est pas si simple qu’il y paraît. On
voit également qu’il est essentiel dans certaines applications qu’un moteur
d’inférences soit logiquement complet, c’est à dire qu’il permette d’inférer
tout ce que l’on peut logiquement déduire. L’exercice 7.5 illustre la notion
de question pertinente.
L’exercice 7.6 donne un exemple grandeur nature de (petit) système ex-
pert.

7.1 Extraction des connaissances


Un polynôme de degré inférieur ou égal à 2, à coefficients entiers relatifs
se décrit en mathématiques de la manière suivante :

ax2 + bx + c

où a,b,c ∈ Z
Mais l’écriture usuelle de ces polynômes est parfois très éloignée de cette
description. Par exemple, si a = 1, b = −1 et c = 0, on écrira :

x2 − x
et non
1x2 + −1x + 0
Nous appliquons donc des règles identiques (ou plutôt ayant des effets iden-
tiques) de manière plus ou moins consciente (plutôt moins que plus : qui a
jamais réfléchi à ce problème?).
Il y a donc là un savoir-faire attesté et non analysé, bref matière à un
système expert.
Formalisons ce problème afin qu’il puisse être traité par un générateur
de système expert simple (faits booléens, réels ou symboliques, pas de mé-
tarègles, etc).

39
Les données en entrée sont des variables à valeurs dans Z : a, b et c.
Les sorties sont des variables :

(sg2 ,coef2 ,var2 ,expo2 ,sg1 ,coef1 ,var1 ,sg0 ,coef0 )

prenant comme valeurs :


– ’+’, ’-’ ou ’vide’ pour sg2 , sg1 et sg0
– ’x’ ou ’vide’ pour var2 et var1
– ’2’ ou ’vide’ pour expo2
– un entier > 0 ou ’vide’ pour coef2 , coef1 et coef0 .
La valeur ’vide’ d’une variable de sortie signifie que celle-ci ne doit pas être
écrite.
Dans l’exemple précédent (a = 1, b = −1 et c = 0) :
sg2 = vide, coef2 = vide, var2 = x, expo2 = 2,
sg1 = -, coef1 = vide, var1 = x,
sg0 = vide et coef0 = vide.
Une fois obtenues les valeurs des variables de sortie, il est très facile (à
la notation en exposant près) d’écrire un algorithme ou un programme (en
Pascal par exemple) qui affiche correctement le polynôme. La partie difficile,
qui nécessite un expert humain, est donc celle qui consiste à passer des valeurs
de a,b et c aux valeurs de sg2 , coef2 , etc. C’est évidemment la seule qui nous
intéresse dans ce projet.
Question 1
Ecrire ce système expert. Les règles doivent être de la forme :
Si a = 0 Alors (sg2 =vide et coef2 =vide et var2 =vide et expo2 =vide)
Tous les cas de figure doivent être pris en compte.
Question 2
Peut-on écrire un programme qui produise une base de règles comme la
précédente avec pour seul paramètre n, le degré du polynôme?
Solution
Question 1
1. Si a = 0 Alors (sg2 = V ide, coef2 = V ide, var2 = V ide, expo2 = V ide)
2. Si a = 1 Alors (sg2 = V ide, coef2 = V ide, var2 = x, expo2 = 2)
3. Si a > 1 Alors (sg2 = V ide, coef2 = a, var2 = x, expo2 = 2)
4. Si a = −1 Alors (sg2 = −, coef2 = V ide, var2 = x, expo2 = 2)
5. Si a < −1 Alors (sg2 = −, coef2 = |a|, var2 = x, expo2 = 2)
6. Si b = 0 Alors (sg1 = V ide, coef1 = V ide, var1 = V ide)
7. Si (b = 1 et a = 0) Alors (sg1 = V ide, coef1 = V ide, var1 = x)
8. Si (b = 1 et a 6= 0) Alors (sg1 = +, coef1 = V ide, var1 = x)

40
9. Si (b > 1 et a = 0) Alors (sg1 = V ide, coef1 = b, var1 = x)
10. Si (b > 1 et a 6= 0) Alors (sg1 = +, coef1 = b, var1 = x)
11. Si b = −1 Alors (sg1 = −, coef1 = V ide, var1 = x)
12. Si b < −1 Alors (sg1 = −, coef1 = |b|, var1 = x)
13. Si (c = 0 et |a| + |b| = 0) Alors (sg0 = V ide, coef0 = 0)
14. Si (c = 0 et |a| + |b| =
6 0) Alors (sg0 = V ide, coef0 = V ide)
15. Si (c > 0 et |a| + |b| = 0) Alors (sg0 = V ide, coef0 = c)
16. Si (c > 0 et |a| + |b| =6 0) Alors (sg0 = +, coef0 = c)
17. Si c < 0 Alors (sg0 = −, coef0 = |c|)
Question 2 Oui, par exemple en écrivant d’abord le terme de degré 0, puis
celui de degré 1, ainsi de suite jusqu’à n. Chacun d’entre eux ne dépend que
d’informations disponibles.

7.2 Saturer la base de règles


Lewis Caroll demande dans [Car82] de dire ce que l’on peut déduire des
propositions suivantes si l’on énonce : "cet animal est un raton-laveur"
1. Les animaux sont toujours mortellement offensés si je ne fais pas at-
tention à eux
2. Les seuls animaux qui m’appartiennent se trouvent dans ce pré
3. Aucun animal ne peut résoudre une devinette s’il n’a reçu une forma-
tion convenable dans une école
4. Aucun des animaux qui se trouvent dans ce pré nést un raton-laveur
5. Quand un animal est mortellement offensé, il se met toujours à courir
en tout sens et à hurler
6. Je ne fais jamais attention à un animal qui ne m’appartient pas
7. Aucun animal qui a reçu dans une école une formation convenable ne
se met à courir en tout sens et à hurler
Si l’on voulait construire un système expert pour résoudre ce problème, com-
ment devrait être constituée la base de connaissances?
Solution
On peut coder les propositions précédentes par des règles ne faisant in-
tervenir que des faits booléens. On définit les abréviations :
– o : il est mortellement offensé
– a : je fais attention à lui
– ap : il m’appartient
– p : il est dans ce pré

41
– d : il peut résoudre une devinette
– f : il a reçu une formation convenable dans une école
– r : c’est un raton-laveur
– c : il se met à courir en tout sens et à hurler
La base de faits est alors initialisée à

BF = {r}

et la base de règles est constituée de :


1. si ¬a alors o
2. si ¬p alors ¬ap
3. si ¬f alors ¬d
4. si r alors ¬p
5. si o alors c
6. si a alors ap
7. si c alors ¬f
Par chaînage avant, de r on peut déduire ¬p, de ¬p on peut déduire
¬ap... et c’est terminé ! Il est pourtant possible de déduire logiquement plus
de choses que celà. Pour le voir, il suffit de remarquer que (règle 6) :

a ⇒ ap

est logiquement équivalent à sa contraposée (règle 6bis)

¬ap ⇒ ¬a

On peut donc logiquement conclure(règle 6bis) que ¬a est vrai, puis que o est
vrai (règle 1), que c est vrai (règle 5), que ¬f est vrai (règle 7) et finalement
que ¬d est vrai.
Cet animal est donc incapable de résoudre une devinette. Pour pouvoir
le déduire par chaînage avant, il aurait fallu
– soit enrichir le mécanisme du chaînage avant de façon qu’il puisse dé-
duire toutes les conséquences logiques de la base de connaissances
– soit pour chacune des règles, faire figurer dans la base la règle et sa
contraposée
Cet exemple pourtant élémentaire montre à la fois qu’il n’est pas si facile de
formaliser une phrase en "bon français" et aussi qu’il faut veiller à la "com-
plétude logique" du mécanisme de déduction automatique que l’on souhaite
utiliser.

42
7.3 Arbres de décision et systèmes experts
Dans le calendrier grégorien, une année dont le millésime n’est pas divi-
sible par 4 n’est pas bissextile. Si par contre, son millésime est divisible par
4 mais pas par 100, elle est bissextile. Mais si son millésime est divisible par
400, elle est également bissextile.
Question
Ecrivez un arbre de décision et un système expert capables de décider si
une année est bissextile ou non. Mettez en évidence les rapports entre ces
deux modes de représentation.

7.4 Chaînage avant - Chaînage arrière


1. Ecrire un algorithme de chaînage avant lorsque les règles ne contiennent
que des faits booléens mais pouvant être positifs ou négatifs.
2. Ecrire un algorithme de chaînage avant pour un système expert d’ordre
0+
3. Ecrire l’algorithme de chaînage arrière pour un système d’ordre 0

7.5 Chaînage mixte - les questions pertinentes


Cet exercice est tiré de [DEL87]. Le système expert ci-dessous est conçu
pour déduire d’informations disponibles dans des guides touristiques si une
ville mérite le voyage ou non.
Les faits, tous booléens, sont :
– ville méritant le voyage (non demandable)
– ville historique (non demandable)
– ville artistique (non demandable)
– nombreuses animations (non demandable)
– ville agréable (non demandable)
– tradition gastronomique (non demandable)
– belle ville (non demandable)
– nombreux monuments (demandable)
– ville ancienne (demandable)
– nombreux concerts (demandable)
– nombreux théatres (demandable)
– activités sportives (demandable)
– traditions folkloriques (demandable)
– espaces verts (demandable)

43
– climat agréable (demandable)
– nombreux restaurants (demandable)
– bons restaurants (demandable)
Les règles sont :
1. Si ville historique Alors ville méritant le voyage
2. Si ville artistique Alors ville méritant le voyage
3. Si nombreuses animations Alors ville méritant le voyage
4. Si ville agréable et tradition gastronomique Alors ville méritant le
voyage
5. Si belle ville et nombreux monuments Alors ville artistique
6. Si ville ancienne et nombreux monuments Alors ville historique
7. Si nombreux concerts et nombreux théatres Alors nombreuses anima-
tions
8. Si activités sportives et traditions folkloriques Alors nombreuses ani-
mations
9. Si espaces verts et climat agréable Alors ville agréable
10. Si espaces verts et nombreux monuments Alors belle ville
11. Si nombreux restaurants et bons restaurants Alors tradition gastro-
nomique
Les solutions suivent immédiatement les questions posées.
Pour faire l’exercice, il est recommandé de cacher l’énoncé et
de le découvrir petit à petit.
L’utilisateur pose au système la question :
Utilisateur - est-ce une ville méritant le voyage?
Tous les faits sont encore déductibles. On suppose que le système choisit
la première question pertinente (dans l’ordre induit par une exploration en
profondeur d’abord de l’arbre et-ou). Laquelle est-ce?
SE - est-ce une ville ancienne?
Utilisateur - NON
Question
Quels sont les faits qui ne sont plus déductibles?
La question y a t-il de nombreux monuments est elle encore pertinente?
Quelle est la question suivante posée par le SE?
Réponse
Le fait ville historique n’est plus déductible mais nombreux monuments?
reste une question pertinente
SE - y a t-il des espaces verts?
Utilisateur - NON

44
Question
Quels sont les faits qui ne sont plus déductibles?
Quelles questions ne sont-elles plus pertinentes?
Quelle est la question suivante posée par le SE?
Réponse
Les faits ville agréable, belle ville et ville artistique ne sont plus dé-
ductibles. Les questions concernant les faits nombreux monuments, climat
agréable, nombreux restaurants et bons restaurants deviennent des questions
non pertinentes.
SE - y a t-il de nombreux concerts?
Utilisateur - JE NE SAIS PAS
Question
Quels sont les faits qui ne sont plus déductibles?
Quelles questions ne sont-elles plus pertinentes?
Réponse
Le fait nombreuses animations reste encore déductible mais la question
Y a t-il de nombreux théatres? devient non pertinente.

7.6 Formalisation des connaissances


La liste ci-dessous décrit la classification des champignons à lamelles. Elle
est tirée de [Mon82] qui contient bien d’autres choses intéressantes pour qui
s’intéresse aux champignons. Nous allons supposer que l’on souhaite écrire
un système expert permettant de classifier correctement les champignons
à lamelles à partir d’une description. Léxpert du domaine est l’auteur de
ce livre et l’on suppose que les définitions ci-dessous correspondent à une
première extraction de connaissances de son savoir.
1. Amanita : un champignon à lamelles, à spores blanches et possédant
une volve.
2. Armillaria : un champignon à lamelles possédant un anneau et dont le
pied ne peut se séparer du chapeau sans entraîner une déchirure de la
chair.
3. Cantharellus : champignon à lamelles qui sont plutôt des plis épais et
ramifiés que de véritables lamelles, spores blanches.
4. Clitocybe : champignon à lamelles décurrentes, à pied central (ce qui les
distingue des Pleurotus) et à spores blanches.
5. Clitopilus : champignon à lamelles décurrentes et à spores roses.
6. Collybia : champignon à lamelles, à spores blanches et à pied cartilagi-
neux.

45
7. Coprinus : champignon à lamelles déliquescentes.
8. Cortinarius : champignon à lamelles, à spores ocracées et à pied muni
d’une cortine.
9. Entoloma : champignon à lamelles échancrées et à spores roses.
10. Gomphidius : champignon à lamelles écartées, fortement décurrentes,
colorées en gris plus ou moins foncé selon l’âge, et à spores noires.
11. Hebeloma : champignon à lamelles échancrées et à spores ocracées.
12. Hygrophorus : champignon à lamelles décurrentes, écartées et épaisses,
spores blanches.
13. Hypholoma : champignon possédant une cortine et des spores noires.
14. Inocybe : champignon à lamelles adhérentes, à spores ocracées, à cha-
peau possédant des fibrilles rayonnantes à partir du sommet et souvent
fendu radialement, cést-à-dire dans le sens des fibrilles.
15. Laccaria : champignon à lamelles écartées, de couleur rose ou violette,
décurrentes par une dent.
16. Lactarius : champignon à chair grenue et cassante et ayant du lait.
17. Lepiota : champignon à lamelles libres, à pied muni d’un anneau et
pouvant aisément se séparer du chapeau sans provoquer de déchirure ;
chapeau plus ou moins écailleux, spores blanches.
18. Marasmius : champignon se déssèchant sans pourrir, pied ne cassant
pas à la torsion, spores blanches.
19. Mycena : champignon fragile, à chapeau cônique avant d’être étalé et
à pied tubuleux.
20. Paxillus : champignon à lamelles longuement décurrentes et aisément
séparables du pied, spores ocracées.
21. Pholiota : champignon à lamelles possédant un anneau, à spores ocra-
cées.
22. Pleurotus : champignon à lamelles décurrentes, à pied excentrique et à
spores blanches.
23. Pluteus : champignon à lamelles libres et à spores roses poussant géné-
ralement sur les arbres.
24. Psalliota : champignon à pied muni d’un anneau aisément séparable du
chapeau et à spores noires.
25. Russula : champignon à chair grenue et cassante, pas de lait.
26. Stropharia : champignon à pied muni d’un anneau (souvent disparu ou
mal venu - ressemblant à une cortine) et à spores noires.
27. Tricholoma : champignon à lamelles échancrées et à spores blanches.

46
28. Volvaria : champignon ayant une volve et les spores roses.
Question
Réaliser ce système expert. Ce travail sera décomposé en plusieurs étapes :
1. Définir les faits pertinents. Décrire pour chacun déux leur type, éven-
tuellement leur domaine, etc.
2. Vérifier que les faits dégagés sont suffisants pour classer chacun des
genres. On peut pour celà représenter les genres et les faits associés sous
forme d’arbre.
3. Ecrire les règles du système expert.
4. On supposera que le moteur utilisé fonctionne en chaînage arrière et
que chaque fois qu’il sélectionne un but de la forme :
F = valeur
dans lequel F est un fait demandable qui n’a pas encore reçu de valeur, il
pose à l’utilisateur la question :
"Connaissez-vous la valeur du fait F? "
Choisissez un exemple (pas trop simple) et décrivez dans le détail ce que fait
le système que vous avez écrit sur cet exemple.

7.7 Un système expert


1. Réalisez un système expert d’ordre 0+ capable de décider si l’écriture
littérale d’un nombre en français est correcte ou non. Pour simplifier,
on ne s’intéressera qu’aux nombres ordinaux 11 compris entre un et
quatre vingt dix neuf. On suppose ces expressions écrites à l’aide de 4
mots appartenant à l’ensemble
{un, deux, trois, quatre, cinq, six, sept, huit, neuf, dix, onze, douze,
treize, quatorze, quinze, seize, vingt, trente, quarante, cinquante, soixante, vide}
On supposera que l’absence d’un mot est représenté par le mot vide et
que les nombres sont "calés à gauche". Cést-à-dire que
un vide vide vide
est une expression correcte alors que
vide un vide vide
ne l’est pas. On suppose que le système doit contenir les faits sym-
boliques X1 , X2 , X3 et X4 qui ont pour domaine l’ensemble de mots
défini plus haut. Par définition, Xi désigne le mot présent à la position
i. Par exemple, soixante dix neuf est représenté par la base de faits :
X1 = soixante X2 = dix X3 = neuf X4 = vide
11. cést-à-dire que l’on écrit quatre vingt et non quatre vingts

47
On utilisera le fait booléen correct dont la présence dans la base de
faits (c’es-à-dire la vérité) signifiera que l’écriture littérale est correcte.
Les autres faits pourront être symboliques ou booléens (on peut écrire
une version de ce système dans laquelle tous les faits autres que les Xi
sont booléens). Il pourra être utile d’identifier les ensembles de mots
interchangeables dans au moins un contexte.
2. Une fois que vous aurez écrit ce système, détaillez le raisonnement (par
chaînage avant ou arrière) qui lui permet de décider de la correction
éventuelle des expressions
(a) cinquante sept
(b) quatre vingt dix sept
(c) sept vingt dix huit
3. Donnez une évaluation grossière du nombre de règles nécessaires à la
réalisation d’un système expert capable de décider de la correction des
nombres de un à
(a) neuf cent quatre vingt dix neuf
(b) neuf cent quatre vingt dix neuf mille neuf cent quatre vingt dix neuf
(c) neuf cent quatre vingt dix neuf million neuf cent quatre vingt neuf
mille neuf cent quatre vingt dix neuf
Est-il envisageable d’écrire un système expert qui n’ait, dans ce do-
maine pas plus de limite qu’un expert humain?

7.8 Un système expert au zoo (DS 99-00)


Vous vous promenez au zoo avec un livre dans lequel vous venez d’ap-
prendre les informations suivantes :
1. Si un animal a des poils Alors c’est un mammifère
2. Si un animal donne du lait Alors c’est un mammifère
3. Si un animal a des plumes Alors c’est un oiseau
4. Si un animal vole et Si il pond des oeufs Alors c’est un oiseau
5. Si un animal est un mammifère et Si il mange de la viande Alors c’est
un carnivore
6. Si un animal est un mammifère et Si il a des dents pointues et Si il a
des crocs Alors c’est un carnivore
7. Si un animal est un mammifère et Si il a des sabots, Alors c’est un
ongulé
8. Si un animal est un mammifère et Si il rumine Alors c’est un ongulé
avec un nombre pair de doigts

48
9. Si un animal est un carnivore et Si il est de couleur fauve avec des
taches noires Alors c’est une panthère
10. Si un animal est un carnivore et Si il est de couleur fauve avec des
rayures noires Alors c’est un tigre
11. Si un animal est un ongulé et Si il a un long cou et Si il est de couleur
fauve avec des taches noires Alors c’est une girafe
12. Si un animal est un ongulé et Si il est de couleur blanche avec des
rayures noires Alors c’est un zèbre
13. Si un animal est un oiseau et Si il ne vole pas et Si il a un long cou
Alors c’est une autruche
14. Si un animal est un oiseau et Si il ne vole pas et Si il nage Alors c’est
un manchot
15. Si un animal est un oiseau et Si il vole bien Alors c’est un albatros
16. ...
Soudain, vous observez un animal de couleur fauve avec des taches noires
qui, tout en ruminant, plie son long cou pour regarder le petit qu’il allaite.
Question 1.
Vous choisissez de raisonner en chaînage arrière.
Quelle question allez-vous poser au gardien du zoo avant de conclure que
c’est une girafe?
NB : Quand il y a des choix à faire, choisissez une stratégie en l’expliquant.
Question 2.
Vous choisissez de raisonner en chaînage avant. Que déduisez-vous?
Solution. On peut considérer "ongulé avec un nombre pair de doigts"
comme une variable unique, et choisir (ou non) de la lier à "ongulé" en
ajoutant la règle
Si un animal est un ongulé avec un nombre pair de doigts Alors c’est
un ongulé.
On peut aussi considérer que "ongulé avec un nombre pair de doigts" se
décompose en deux variables "ongulé" et "avec un nombre pair de doigts".
Dans ce cas, la règle 8 prend une forme non clausale.
Si on considère "ongulé avec un nombre pair de doigts" comme une va-
riable unique et qu’on n’ajoute pas là règle ci-dessus, il faut poser la question :
l’animal a-t’il des sabots ?
Dans les autres cas, il n’y a pas de question à poser.
Une autre manière de faire est d’affaiblir la règle 8 en :
Si un animal est un mammifère et Si il rumine Alors c’est un ongulé
ce qui permet de conclure.

49
En chaînage avant : les règles 2, 8 (affaiblie) et 11 mènent à la solution.
Si 8 n’est pas affaiblie, on ne peut pas conclure, sauf en ajoutant la variable
"ongulé" et la règle précédente.

7.9 Un système expert bancaire (DS 98-99)


Une banque utilise un système expert pour accorder un prêt. Les variables
suivantes sont employés pour décrire les propositions associées :
– OK : le prêt est accordé
– CO : le conjoint se porte garant
– PA : le candidat au prêt peut payer ses traites
– RE : le dossier du candidat est bon
– AP : les revenus du conjoint sont élevés
– RA : le taux d’intérêt est faible
– IN : les revenus du candidat sont supérieurs à ses dépenses
– BA : le candidat n’a jamais de découvert sur son compte courant
– MB : le conjoint doit hériter
Les règles sont les suivantes (la colonne 3 sera utile plus tard) :

1 Si MB Alors CO 0.8
2 Si AP Alors CO 0.7
3 Si RA Alors RE 0.8
4 Si IN Alors PA 0.8
5 Si BA,RE Alors OK 0.9
6 Si CO,PA,RE Alors OK 1

Question 1 Soit un moteur d’inférence fonctionnant en chaînage arrière


et profondeur d’abord. Donner son graphe ET/OU complet pour la base de
faits initiale {BA, RA, MB, AP, IN} avec OK pour but à établir.

Question 2 On associe à chaque règle le "coefficient de certitude" CA de


la colonne 3. Il est compris entre 0 et 1. Par exemple, la règle 5 s’interprète
maintenant comme suit :
"Si BA et RE sont certains, Alors OK a une certitude de 0.9".
Chaque fait initial possède lui-même un coefficient de certitude CF entre
0 et 1 : un client qui fait la demande d’un prêt est donc décrit par un vecteur
de 5 valeurs entre 0 et 1.

50
La propagation de la certitude dans le moteur d’inférence se fait ainsi :
– Lorsqu’une règle de certitude CA est déclenchée par des prémisses
de certitudes (CF1 ,...,CFn ), sa conclusion prend la certitude CA ∗
M ini=n
i=1 (CFi )
– Si un fait a déjà une certitude CF1 et qu’il est inféré à nouveau avec
la certitude CF2 , on lui attribue la certitude : CF1 + CF2 − CF1 ∗ CF2
Quel est la certitude d’attribuer un prêt au client décrit par la base de
faits initiale suivante ? Pour que cette certitude vale environ 0.9, il suffirait
de faire passer à 1 un seul coefficient de certitude de cette base... lequel?

BA RA MB AP IN
0.9 0.4 0.9 0.2 0.8
Solution.
Le nœud du haut est étiqueté OK. Valeur : 0.288 + 0.32 − 0.288 × 0.32 =
0.516
Il a deux fils OU : étiquetés par OK de valeurs
min(0.9,0.32) × 0.9 = 0.288 et min(0.76,0.64,0.32) × 1 = 0.32
Celui de gauche a deux fils ET : BA et RE, de valeurs 0.9 et 0.4 × 0.8 =
0.32 (cette dernière valeur venant du fils de RE, qui est RA, de valeur 0.4.
Celui de droite a trois fils ET : 1) CO (0.76) qui a deux fils OU MB et
AP. 2) PA (0.64) qui a un fils IN (0.8). 3) RE (0.32) qui a un fils RA (0.4)
Faire passer la valeur de RA à 1

7.10 Implication et probabilité conditionnelle


Nilsson [Nil98], 19.2
Soit un réseau bayésien à deux nœuds A et B, avec B fils de A. On
connaît donc P (A), P (B|A) et P (B|¬A).
1. Calculer P (A ⇒ B), où ⇒ représente l’implication logique.
2. Quand a-t’on P (A ⇒ B) = P (B|A)?
3. Supposons qu’au lieu de P (B|A) et P (B|¬A) on connaisse P (A ⇒ B).
Que peut-on dire de P (B)?
Implication et probabilité conditionnelle : Solution

1. Calculer P (A ⇒ B), où « ⇒ » représente l’implication logique.


P (A ⇒ B) = P (¬A ∨ B) = 1 − P (A ∧ ¬B) = 1 − P (¬B ∧ A)
= 1−P (¬B|A)P (A) = 1−(1−P (B|A))P (A) = 1−P (A)+P (B|A)P (A)
ou encore :
P (A ⇒ B) = P (¬A) + P (B|A)P (A)

51
2. Quand a-t’on P (A ⇒ B) = P (B|A)?
Quand P (A) = 1 ou quand P (B|A) = 1
3. Supposons qu’au lieu de P (B|A) et P (B|¬A) on connaisse P (A ⇒ B).
Que peut-on dire de P (B)?
P (B) = P (A ∧ B) + P (¬A ∧ B) = P (B|A)P (A) + P (B|¬A)P (¬A)
Or P (B|A) = P (A⇒B)−P
P (A)
(¬A)

D’où : P (B) = P (A ⇒ B) − P (¬A) + P (B|¬A)P (A)


Il n’y a pas de modus ponens probabiliste.

Références
[BN99] A. Becker and P. Naïm. Les réseaux bayésiens. Eyrolles, 1999.
[Car82] L. Caroll. La logique sans peine. Hermann (première édition : 1896),
1982.
[Dar00] K. Darlington. The essence of expert systems. Prentice-Hall, 2000.
[DEL87] J.-P. DELAHAYE. Systèmes experts : organisation et programma-
tion des bases de connaissances en calcul propositionnel. Eyrolles,
1987.
[ea87] J.-C. Gardin et al. Systèmes experts et sciences humaines : le cas
de l’archéologie. Eyrolles, 1987.
[Far89] H. Farreny. Les systèmes experts : principes et exemples. Cepadues
éditions, 1989.
[Gon84] M. Gondran. Introduction aux systemes experts. Eyrolles, 1984.
[GR93] J. Giarratano and G. Riley. Expert systems Principles and Practice.
PWS Publishing, Boston, 1993.
[Har84] A. Hart. Acquisition du savoir pour les systèmes experts. Eyrolles,
1984.
[Lau88] J.-L. Laurière. Intelligence artificielle, tome 2, Représentation des
connaissances. Eyrolles, 1988.
[Lie90] J. Liebowitz. Expert systems for business and management. Your-
don Press, Prentice Hall, 1990.
[LP89] P. Levine and J.-C. Pomerol. Systèmes interactifs d’aide à la déci-
sion et systèmes experts. Hermes, 1989.
[Mon82] P. Montarnal. Le petit livre des champignons. Hachatte, 1982.
[Nil80] N. Nilsson. Principles of Artificial Intelligence. Tioga Press, 1980.
[Nil98] N. Nilsson. Artificial Intelligence, a new synthesis. Morgan-
Kaufmann, 1998.

52
[Voy87] R. Voyer. Moteurs de systèmes experts. Eyrolles, 1987.

53