Vous êtes sur la page 1sur 43

SYSTEMES EXPERTS EN REPRESENTATION DES CONNAISSANCES

Objectif : utiliser les éléments fondamentaux des systèmes experts dans des cas simples en
Ingénierie.

I – INTRODUCTION

II – REPRESENTATION DES CONNAISSANCES (Rappels)

III – SYSTEMES DE PRODUCTION

IV – PRINCIPE DE FONCTIONNEMENT DES MOTEURS D’UINFERENCES

V – PRESENTATION DES OUTILS DE DEVELOPPEMENT

VI – LES LANGAGES GENERAUX


PRESENTATION DE LISP
PRESENTATION DE PROLOG
EXERCICES AVEC LE LANGAGE PROLOG (Projet)
CHAPITRE I – INTRODUCTION

1 . Définition
Un système expert est un ensemble de logiciels capables d’atteindre les performances d’un
expert humain pour une tâche donnée, ceci dans un domaine restreint et bien limité, grâce à
l’exploitation d’un ensemble de connaissances fournies explicitement et acquises auprès
d’experts domine considéré.

2 . Origine et historique
Les systèmes à règles de productions sont à la base des systèmes experts même si ces
derniers intègrent maintenant d’autres techniques de raisonnement et de représentations des
connaissances. Leur succès provient en partie du fait qu’ils ont permis d’aborder, avec des
résultats significatifs, des tâches auparavant très peu informatisées relevant du diagnostic,
de la prise de décision, etc.

L’apparition des systèmes experts se situe au début des années 1970. Le projet pionnier en
la matière fut DENTRAL lancé en 1965 par E. Feingenbaum et ses collègues à l’Université
de Stanford, aux USA, destiné à aider le chimiste à trouver la structure d’un composé
organique à partir de la donnée de son spectrogramme de masse et de sa formule chimique
brute. Ce projet aboutit initialement à un énorme programme Fortran dont la moindre
amélioration entraînait des coûts prohibitifs de reprogrammation.

L’idée de séparer explicitement les connaissances spécifiques (intégrées au mécanisme de


raisonnement du DENTRAL) de leur mécanisme d’interprétation émergea du projet.

L’idée fondamentale des systèmes experts à base de connaissances et des systèmes


experts va apparaître progressivement avec la notion de moteur d’inférences exploitant un
ensemble de connaissances et de faits pour résoudre un problème donné. La méthode fut
raffinée avec l’expérience des systèmes tels que MYCIN (Shoetliffe, Université de Stanford
1976) dans le domaine de la médecine (diagnostic de certaines maladies du sang), et qui a
eu une grande influence sur l’évolution des systèmes experts MOLGEN (Stefik, Université de
Stanford) destinés à la planification d’expériences en génétique moléculaire ou
PROSPECTOR (Duda et Hart, Stanford Research Institute en 1979) en géologie.

2
Depuis lors des centaines de systèmes experts ont été développés et utilisés dans la
pratique. On assiste de plus en plus à l’apparition de systèmes experts de deuxième
génération intégrant une connaissance profonde des phénomènes traités.

procédé de création d’un système expert et les différents acteurs

3 . Procédé de création
Le procédé de création d’un système expert est souvent appelé ingénierie de la
connaissance (knowledge engineering). Il implique une forme spéciale d’interaction entre :
le constructeur du système expert appelé ingénieur de la connaissance ou ingénieur
cogniticien ou tout simplement cognititien.
Un ou plusieurs expert(s) humain(s) du domaine considéré.
L’ingénieur de la connaissance extrait des experts procédures, stratégies et règles sur le
domaine pour construire le système expert.

requêtes, problèmes

Expert du Ingénieur de la Système


Domaine Connaissance Expert
stratégies
règles sur le domaine

réponses, solutions

2 – Différents acteurs
Les principaux différents acteurs d’un système expert sont :
l’expert du domaine, l’ingénieur de la connaissance, l’outil de création du système expert et
l’utilisateur.

procède à l’extension et teste


Expert du
Créateur de Domaine
l’OUTIL
interviews
construit
construit Système utilise
Ingénieur de Utilisateur
Expert final
OUTIL de la
raffine
création du Connaissance
utilise et teste ajoute des
Système Expert connaissances

staff de
bureau

3
 Le système expert est une collection de programmes ou de logiciels qui résout des
problèmes du domaine d’intérêt. Il s’appelle système au lieu de programme parce qu’il
contient à la fois une composante de la résolution du problème et une autre servant de
support. L’environnement support permet une interaction de l’utilisateur avec le
programme principal et peut inclure des utilitaires de débogage sophistiqués, des éditeurs
faciles d’utilisation ainsi que du matériel graphique avancé pour permettre des E/S à
l’utilisateur au cours de l’exécution du système expert.

 L’expert du domaine utilise des astuces et raccourcis pour une efficacité dans les
recherches. Ces stratégies sont modélisées par le système expert. Bien qu’un système
expert modélise à la fois un ou plusieurs experts, il peut aussi contenir de l’expertise
acquise auprès d ‘autres sources telles que les livres et articles de journaux.

 Le cogniticien a souvent un background en informatique et en I.A. et sait comment


construire un système expert. Il interroge les experts et organise la connaissance. Il
décide comment celle-ci devrait être présentée dans le système expert et peut aider les
programmeurs à écrire le code.

 L’outil de création est le langage de programmation utilisé pour construire le système


expert. Les outils diffèrent des langages conventionnels de programmation en ce sens
qu’en I.A. le terme outil se réfère à la fois au langage et à l’environnement support utilisé
pour réaliser le système expert.

L’utilisateur final est celui qui fait usage du système expert une fois réalisé. Il peut être un
scientifique utilisant le système pour la découverte de nouveaux emplacements d’un minerai,
un avocat cherchant à instruire un cas ou un étudiant pour l’apprentissage de chimie
organique, etc.

4
CHAPITRE II – REPRESENTATION DES CONNAISSANCES (Révisions)

1. INTRODUCTION
On entend par connaissance toutes les formes de savoir de l'homme :
- objets du monde réel
- faits et événements
- groupements ou généralisations d'objets de base
- relations entre concepts
- heuristiques et stratégies de savoir-faire ou procédures de raisonnement.

On ajoute à cela la "métaconnaissance" relative à la confiance que l'on accorde


à sa connaissance et à la vision que l'on a de son propre raisonnement: On parle
aussi de connaissance sur la connaissance.

Le problème de représentation des connaissances est celui de leur transcription sous


forme symbolique pouvant être exploitée par un système de raisonnement. Un mode
de représentation associe ainsi deux aspects imbriqués voire confondus :
- la structure de données pour représenter l'information;
- la méthode associée d'exploitation de cette information ou raisonnement.
Le mécanisme de raisonnement permet de découvrir dynamiquement de nouvelles
connaissance sur le problème traité. Cela distingue nettement une base de
connaissances d'une base de données classique dont on ne peut extraire que les
informations qui y sont rangées de façon explicite.

3. LOGIQUE DES PROPOSITIONS ET DES PREDICATS DU PREMIER ORDRE

4. RAISONNEMENT APPROXIMATIF

1) Le besoin de représentation de l’information incertaine


Dans plusieurs situations l’information disponible est incomplète et inexacte (prédiction
météorologique, diagnostic médical etc.). Cependant l’homme peut et utilise des
généralisations et approximations permettant de résumer son expérience et prédire certains
aspects de choses qu’il ne sait pas encore. Bien sûr les généralisations sont sources
d’erreurs mais nous ne saurions nous en passer.

La connaissance dans une machine est toujours limitée aussi. Puisque les machines
intelligentes devraient faire le maximum lorsque leurs connaissances sont limitées, nous
voudrions qu’elles utilisent aussi des généralisations et des approximations.

5
Le raisonnement probabiliste permet aux systèmes d’Intelligence Artificielle l’utilisation de
connaissance incertaine (ou probabiliste).
Les méthodes probabilistes sont des outils permettant de prendre des décisions. La théorie
de décision reliée à la théorie des probabilités apporte des techniques additionnelles pour
minimiser les risques dans les décisions prises.

2) La nature de l’information probabiliste


Supposons que quelqu’un dise : « il pleuvra à Abidjan demain » et qu’une seconde personne
entrevoie d’aller à la plage. Il serait intéressant pour ce dernier de savoir oui ou non il
pleuvra. Supposons qu’il ait le sentiment qu’il pleuvra mais pas avec certitude.
Sur quoi donc devrait-il reposer son pressentiment ?
Comment ce sentiment devrait-il affecter sa décision d’aller à la plage ?
Quels sont les facteurs conscients ou inconscients lui inspirant cette intuition ?
Comment un programme informatique devrait-il prendre tous ces facteurs en compte ?

Ces questions montrent bien l’importance de la prédiction. Cependant les mêmes questions
pourraient être posées concernant l’intuition du diagnostic à poser sur un patient par un
médecin ou encore le sentiment d’un analyste financier sur le stock du marché. Dans de tels
domaines il peut bien exister des critères formels en plus de l’intuition ou qui sont sous-
jacents à l’intuition. Ensuite on pourrait concevoir des mécanismes informatiques consistants
avec ces différents critères formels et l’intuition.
Le phénomène de l’incertitude peut être étudié mathématiquement en s’appuyant sur la
théorie des probabilités et les théories de l’évidence.

3) la notion de certitude

La croyance en un fait quelconque de tout un chacun pourrait conduire à un jugement à


valeur : « sûr », «impossible» ou «peut-être».

Les probabilités étant des nombres compris entre 0 et 1, elles représentent de façon idéale la
certitude en des faits rencontrés. Cependant il est important que dans toute étude les
différents axiomes de probabilités soient satisfaits.

a) Utilisation de la formule (règle) de BAYES

La formule de BAYES s’illustre très bien par le problème fictif de diagnostic médical suivant :

« Nous voulons savoir la probabilité que Jacques a le paludisme sachant qu’il a un


symptôme inhabituel : une forte fièvre ».

information d’ordre général


- La probabilité pour qu’une personne ait le paludisme, indépendamment de n’importe quel
symptôme.
- La probabilité pour qu’une personne ait le symptôme de fièvre sachant qu’elle a le
paludisme
- La probabilité pour qu’une personne ait le symptôme de fièvre sachant qu’elle n’a pas le
paludisme.

information particulière à Jacques


Jacques a le symptôme (de la forte fièvre).

6
Supposons que :
H = « Jacques a le paludisme »
E = « Jacques a une forte fièvre »

L’information générale ou le modèle est donnée par :


 P(H) : probabilité pour qu’une personne ait le paludisme
 P(E/H) : probabilité pour qu’une personne ait une forte fièvre étant
donné qu’elle a le paludisme.
 P(E/¬H) : probabilité pour qu’une personne ait une forte fièvre étant
donné qu’elle n’a pas le paludisme.
Particularité
 « le fait que Jacques ait le symptôme de forte fièvre »

Nous voulons trouver la valeur de P(H/E) correspondant à probabilité pour que Jacques ait
paludisme sachant qu’il a une forte fièvre.

La formule de BAYES permet de l’obtenir

P(H/E) = [P(E/H) x P(H)] / P(E) où

P(E) = P(E/H) x P(H) + P(E/¬H) x P(¬H)

Supposons par exemple que : P(H)=0.0001, P(E/H)=0.75, P(E/¬H) =0.14 alors on a :


P(E)=(0.75)(0.0001)+(0.14)(0.9999)  0.14006 et
P(H/E)=(0.75)(0.0001)/0.14006  0.0005354.
Donc la probabilité du paludisme de Jacques, sachant qu’il a une forte fièvre, est
environ 0.0005.

Inversement, s’il n’avait pas la fièvre, sa probabilité du paludisme serait :

P(H/¬E) = [P(¬E/H) x P(H)] / P(¬E) = (1-P(E/H)) x P(H)/(1-P(E))


= (1-0.75)(0.0001)/(1-0.14006)  0.000029.

Interprétation : l’information que Jacques a une forte fièvre augmente sa probabilité de


paludisme par un facteur de 5 tandis que l’information inverse réduit cette probabilité
d’un facteur de 3.

Remarque : Nous pouvons généraliser l’exemple ci-dessus en montrant comment


l’évidence, les probabilités d’à priori et conditionnelles, et la formule de BAYES
s’accommodent pour servir de premier niveau d’un système de prise de décision.

7
Symptômes
et évidence

Probabilités d’à Probabilités


priori des états conditionnelles des
Formule de symptômes étant
liés à la nature du
BAYES donnés les états liés à
problème
la nature du problème

Probabilités d’à
priori des états étant
donnés les
symptômes

Schéma pour
l’assignation de Preneur de décision de
risques aux risque minimum
alternatives de
décisions

Décision ou
cours de l’action

Forme générale d’un système idéal de prise de décision

Sur la figure, les symboles et désignent les parties fixes du système

Tandis que les désignent l’évidence, les probabilités conditionnées par

l’évidence et la décision basée sur l’évidence.

Dans la pratique tout système Bayésien ne peut être construit (habituellement on a pas une
bonne connaissance des probabilités conditionnelles des ensembles de symptômes (ou
évidence) sachant l’état de santé considéré (la vérité cachée).
Cependant des outils de modélisation heuristiques peuvent servir à la représentation de
relations connues entre évidence et conclusion.
La complexe relation entre évidence et conclusions finales peut s’exprimer comme un réseau
de simples relations comportant en plus des assertions intermédiaires (conclusions partielles
et proches conclusions de l’évidence). Un tel réseau s’appelle ”réseau d’inférence
probabiliste”

4) – réseaux d’inférence probabiliste

– Domaines concernés

les réseaux d’inférence probabiliste sont de bons outils permettant le traitement


d’informations ayant les caractéristiques suivantes :

8
a. Les informations sont disponibles à divers niveaux de certitude et sont complètes.
b. Besoin de décisions optimales ou presque optimales
c. Possibilité de vouloir justifier les arguments en faveur de choix importants
d. Règles générales d’inférence (basées sur la théorie scientifique ou simplement
heuristique) sont connues ou peuvent être trouvées pour le problème.

Habituellement il doit avoir un besoin d’économie dans l’application de ces techniques.


Les modèles fiables de phénomènes complexes demandent beaucoup d’efforts même avec
l’aide d’experts.

Quelques exemples de domaines d ‘application :

 Diagnostic médical
 Diagnostic de défauts de machines et de logiciels informatiques (automobiles, avions,
ordinateurs etc.)
 Prospection de minerais
 Investigations (crimes)
 Stratégies militaires (prise de décision en temps de guerre)
 Stratégies de marketing et d’investissement
 Prise de décision dans les processus de conception (logiciels, suspension de ponts,
circuits intégrés VLSI).

9
– Composants heuristiques de réseaux d’inférence
A cause du manque de connaissance de la distribution des probabilités conditionnelles des
différents états liés à la nature du problème (symptômes) (ex. avoir ou ne pas avoir le
paludisme), il est difficile d’obtenir un réseau d’inférence à partir de la formule de BAYES.
Une alternative raisonnable est de développer une hiérarchie d’assertions ”floues” ou
hypothèses (cf. figure ci-dessous) et utiliser des hypothèses supportées par l’évidence au
niveau k pour supporter des hypothèses de niveau k+1.
La formule de BAYES peut servir à établir les valeurs des probabilités des hypothèses de
niveau 1 à partir de l’évidence si celle-ci peut être considérée comme certaine. Ensuite des
”règles d’inférence floues” sont utilisées pour obtenir des probabilités des autres hypothèses
à partir de l’évidence. S’il y a de l’incertitude associée à l’évidence alors une ”inférence floue”
peut être utilisée au premier niveau.

symptômes états liés à la


nature du problème
Formule de BAYES

Probabilités d’à priori


et
Probabilités condition-
nelles

(a)

Symptômes assertions états liés à la nature du problème

mise à jour des hypothèses mise à jour des hypothèses des


de niveau 1 avec la formule autres niveaux utilisant l’inférence floue
de BAYES

(b)
De BAYES

(a) système BAYESIEN pure (b) système d’inférence heuristique

10
Règles d’inférence floue

Les règles d’inférence floue sont des fonctions de propagation de valeurs de probabilités.

Forme générale

f : [0,1]n [0,1].
Le choix de f est lié à une décision de modélisation du domaine concerné.
Deux ensembles de règles d’inférence floue analogues aux opérations dans la logique de
calcul des propositions sont utilisés pour la construction de réseaux d’inférence. Ils ont un
comportement qui suit l’intuition et sont faciles à utiliser.

A B ¬A AB AB A B A B
F F T F F T F
F T T F T T T
T F F F T F T
T T F T T T F
a b 1-a min(a, b) max(a, b) max(1-a, b) xor(a, b)
a b 1-a ab a+b-ab 1-a+ab Xor(a, b)

Règles d’inférence pour le calcul des propositions avec deux variables logiques floues

La règle de logique possibiliste pour A B est : xor(a, b)=max[min(a, 1-b), min(1-a,b)]


La règle de logique probabiliste pour A B est : Xor(a, b) = a+b-2ab+a2b+ab2-a2b2

Remarque :
A B correspond à ¬A B
(A  ¬B) (¬A  B) correspond à A  B = A B

Le système utilisant min et max est quelquefois appelé ”logique possibiliste”. Dans un tel
système la valeur de A  B n’est pas plus petite que les deux valeurs de A et B à la fois. Si
min(a, b) est la probabilité de A  B alors A et B devraient être considérés comme deux
propositions dépendantes.

Pour le deuxième système qui assigne la valeur ab à A  B, donne une plus petite valeur à la
conjonction que les valeurs de chacune des composantes. Ainsi si ab<a sauf si a=0 ou b=1,
et ab<b sauf si b=0 ou a=1.
Si ab est considéré comme la probabilité de A  B alors A et B devraient être considérées
comme (statistiquement) indépendants.

Exemple (utilisant la logique floue avec des règles de logique possibiliste) :

Transformons le domaine de réparation d’automobiles en un exemple de réseau d’inférence


avec assertions intermédiaires.

11
Supposons les symptômes suivants :

S1 : il y a un bruit sourd dans le moteur


S2 : le véhicule n’a pas une bonne lancée de départ
S3 : le moteur a des problèmes de démarrage

Particularité :
S4 : les pièces de ce modèle de voiture sont difficiles à trouver

L’état final lié à la nature du problème est d’inférer la véracité de l’affirmation :


C1 : l’estimation de la réparation est au dessus de 80 000 F CFA.
Compte tenu de la complexité d’inférer directement C1 de S1, S2 et S3, les assertions suivantes relevant de la situation sont ajoutées.

Hypothèses dépendant directement de l’évidence (hypothèses de niveau 1)


H1 : une corde est tombée dans le moteur
H2 : un boulon est mal serré
H3 : le moteur ne s’allume pas

Hypothèses de niveau 2
H4 : le moteur a besoin d’être remplacé ou d’être refait
H5 : le moteur a besoin d’allumage

Chacune des hypothèses de niveau 1 est reliée à un ou plusieurs symptômes. On peut


choisir d’exprimer ces relations de telle sorte que la formule de BAYES permette d’établir les
probabilités d’hypothèses correspondant à un ensemble particulier de symptômes.
En vue d’exprimer convenablement les probabilités d’à priori et les probabilités
conditionnelles on peut utiliser une table comme celle ci-dessous où P(S) donne les valeurs
des probabilités d’à priori pour des combinaisons de S1, S2 et S3.

symptômes P(S/H1) P(S/H2) P(S/H3) P(S)


S1 S2 S3 P(H1)=0.0001 P(H2)=0.0002 P(H3)=0.1
F F F 0.001 0.2 0.2 0.4405
F F T 0.003 0.1 0.2 0.25
F T F 0.006 0.1 0.2 0.109
F T T 0.15 0.1 0.396 0.20
T F F 0.04 0.125 0.001 0.0001
T F T 0.06 0.125 0.001 0.0001
T T F 0.11 0.125 0.001 0.0001
T T T 0.63 0.125 0.001 0.0002

Table des probabilités du problème de réparation d’automobiles

12
En utilisant les règles de logiques floue nous pouvons modéliser la dépendance de H4 et H5 de H1, H2, et H3 comme suit : H4 = H1  H2 et H5 = ¬(H1
 H2) H3

Avec le schéma de la table utilisant deux variables floues (les deux dernières lignes) on obtient :

P(H4/S) = P(H1  H2/S) = max[P(H1/S), P(H2/S] et


P(H5/S) = P[¬(H1  H2) H3/S]
= min {1-max[P(H1/S), P(H2/S)], P(H3/S)] }

Finalement C1 dépend de H4, H5 et S4.

C1= H4(H5S4) de telle sorte que


P(C1/S) = P(H4(H5S4)/S)
= max[P(H4/S), P(H5S4/S)]
= max{ P(H4/S), min[P(H5/S), P(S4/S) }
= max{ P(H4/S), min(P(H5/S), v }
où v = 1 si S4 est vraie et 0 autrement.

Supposons par exemple le cas où S1, S2, S3 et S4 sont vraies alors on a :

P(S/H1)=0.63 et P(S)=0.0002. La formule de BAYES donne


P(H1/S)=P(S/H1) x P(H1)/P(S)=0.63x0.0001/0.0002=0.325

De même P(H2/S)=P(S/H2) x P(H2)/P(S)=0.125x0.0002/0.0002=0.125


P(H3/S)=P(S/H3) x P(H3)/P(S)=0.0.001x0.1/0.0002=0.5

En combinant ces résultats par usage des règles de la logique floue on obtient :

P(H4/S=max[P(H1/s), P(H2/S)]=max(0.325,0.125)=0.325
P(H5/S)=min{ 1-max[P(H1/s), P(H2/S)], P(H3/S) }=min(1-max(0.325,0.125), 0.5)
= min(1-0.325, 0.5)=0.5
P(C1/S)=max[ P(H4/S), min(P(H5/S), 1) ]
=max(0.325, min(0.5, 1))=max(0.325, 0.5)=0.5.

H1 H4
S1 BAYES

C1

H2
S2 BAYES  ¬

H3 H5
S3 BAYES 

S4 
Réseau d’inférence probabiliste pour le problème d’automobiles

13
CHAPITRE III – SYSTEMES DE PRODUCTION

1. Raisonnement en logique
Ce raisonnement revient à démontrer de nouvelles formules à partir d'un ensemble
de formules existantes. La représentation d'un tel procédé s'appelle règle d'inférence.

1.1 La règle d'inférence du "Modus ponens"


A partir des formules P et P Q, on peut dériver Q. Il peut être utile d’instanciation
(opération consistant à substituer à une variable une constance ou une autre variable).

Exemple :
Des formules CEREALE(Y) REGION(Y, nord) et CEREALE(mil) on peut
déduire REGION(mil, nord) La substitution de mil à Y permet de mettre
correspondance CEREALE(Y) et CEREALE(mil).
Le mécanisme de correspondance lui-même est appelé "Unification" ou
"filtrage". Il se retrouve dans tous les modes de représentation des
connaissances prenant en compte des variables.

1.2 La règle d'inférence du "Modus tollens"


A partir des formules P Q et ¬Q, on peut dériver ¬P.

1.3 La règle d'inférence de "spécification universelle"


(x) P(x) implique P(a) pour un individu particulier a.

2. Le principe de résolution
C'est une règle d'inférence qui s'applique à une famille de fbf appelées clauses.
La notion de clause : une clause est formée de la disjonction (la réunion par
des OU ) de formules atomiques.
Exemple :
¬CHOIX(x) v ROBE(x, rouge) v ROBE(x, rose) est une clause.
On démontre que toute fbf peut se transformer en un ensemble de clauses
(algorithme de Skolem). Ainsi, la clause ci-dessus résulte-t-elle de la transformation
de la formule logique :
(x) (CHOIX(x) ROBE(x, rouge) v ROBE(x, rose)).

14
La méthode de résolution : Elle consiste à :
rechercher deux clauses distinctes où apparaît le même littéral une fois en négatif
et une fois positif. Dériver de ces deux clauses une clause résolvante qui est
composée de la disjonction de tous les littéraux des deux clauses-parents, une fois
retirés les deux littéraux qui ont déclenché le mécanisme.

Schématiquement :
L1 v L2 v ... v Ln (1) ¬L1 v M2 v ... v Mn (2)

L2 v ... v Ln v M2 v ... v Mn (3)


Exemples
1) P ¬P v Q

Q (résolvant de P et ¬P v Q)
puisque ¬P v Q est équivalent à P Q, le principe de résolution recouvre donc la règle
d'inférence du Modus ponens.
2) ¬G v K (i.e. G K ) est une résolvante des clauses
¬G v H et ¬H v K (i.e. G H et H K)
¬G v H ¬H v K

¬G v K
3) les clauses G et ¬G se résolvent en la clause vide ou NIL
(i.e. ensemble vide) G ¬G

NIL

4) ¬Q ¬P v Q

¬P

Il en résulte que ¬P est une résolvante de ¬Q et ¬P v Q


(ou encore de ¬Q et P Q on peut dériver ¬P). Le principe de résolution
recouvre donc la règle de Modus tollens.
15
2. Les systèmes de déduction logique par réfutation
Objet : Pour montrer qu'une formule logique X est conséquence logique
d'un ensemble FL de formules logiques
La preuve par réfutation s'apparente au raisonnement par l'absurde :
on suppose ¬X le contraire de X vrai (on nie X) ;
on joint ¬X à FL pour obtenir C = FL  (¬X) ;
on déroule ensuite le mécanisme de résolution de façon répétitive.
Par ce procédé, on engendre progressivement l'ensemble R(C) de toutes les
conséquences logiques de C. S'il existe une contradiction dans l'ensemble
C de départ, le mécanisme rencontrera forcément deux clauses contraires à
un moment donné dont il dérivera la clause NIL (vide) de valeur de vérité F (faux ):

P ¬P

NIL
Ainsi on aura prouvé que FL  (¬X) est contradictoire et, par suite, que X
est une conséquence logique de FL.

3. Avantages et inconvénients de la logique formelle

Avantages

16
- Elle exprime dans de nombreux cas, les faits de façon naturelle ainsi que les
relations déductives entre ces faits
- Adaptée au raisonnement exact avec des données complètes (théorèmes,...).
Inconvénients
- Formalisme trop rigide dans lequel les prédicats prennent les valeurs binaires V
(vrai) ou F (faux), sans remise en cause et ne permettant pas d'exprimer les
appréciations nuancées.
- Elle ne permet pas de prendre des décisions dans le cas d'informations
manquantes. D'autres logiques (non monotones, multivaluées, modales)
ont été introduites pour pallier ces limitations.
4. Règles de production
Une règle de production est une parcelle de connaissances de la forme :
Si conditions alors conclusions (coefficient)
La partie conditions s'appelle les prémisses. Si les prémisses sont vérifiées,
on
peut tirer les conclusions (déclencher une action, une procédure de calcul,
....).
Le coefficient (optimal) traduit ici la confiance qui est accordée à la règle. Il
traduit la vraisemblance de cette connaissance. Les coefficients affectés aux
règles, permettent de faire du raisonnement "incertain" et résulte souvent de
l'espérance que l'on a du domaine étudié.

5. Architecture logicielle d'un système de production

BF

BC MI

La connaissance exprimée sous forme de règles est purement déclarative.


La
séparation entre celle-ci et le mécanisme de son exploitation est totale.
Ci-dessus est illustrée l'architecture.
BC : la base de connaissances composée de règles
Elle équivaut à une mémoire à long terme du système. Elle
renferme les connaissances sur un domaine donné ayant un
certain caractère de permanence.
MI : le moteur d'inférences ou interpréteur
C'est le mécanisme algorithmique chargé de manipuler la BC
dans une situation de consultation donnée.

18
BF : la base des faits. Elle équivaut à une mémoire à court terme
renfermant à tout instant les informations connues sur le
problème
en cours. Elle contient en début de consultation les données
préliminaires sur le problème traité. Elle s'enrichit ensuite par
application des règles de production de la BC ou grâce aux
réponses fournies par l'utilisateur à d'éventuelles questions
posées par le système et ceci jusqu'à ce qu'on parvienne à la
solution du problème. Tout comme les règles, les faits peuvent
être assortis de coefficients de vraisemblance.

6. Le raisonnement
Le moteur d'inférences (MI) fonctionne suivant deux (2) mécanismes de
base :
le chaînage avant et le chaînage arrière qui peuvent être combinés en un
chaînage mixte (souvent, c'est le cas dans la pratique).

a. Le chaînage avant
C'est un raisonnement guidé par les données. Il consiste donc à envisager les
règles dans le sens conditions conclusions, c'est à dire de la gauche
vers la droite. A une étape donnée du raisonnement, le MI parcourt un cycle
de trois (3) phases :

(i) Détection des règles dont la partie prémisses est vérifiée à partir
des éléments connus dans la BF. A ce niveau, le MI met en jeu le
mécanisme de filtrage évoqué dans la représentation logique dans cas où
les règles referment des variables.
Le MI est dit d'ordre 1 conformément à la logique des prédicats. Ainsi, une
règle peut être déclenchée plusieurs fois pour des instances différentes des
variables. Lorsqu'à une variable, on ne peut substituer qu'une constante et
non une autre variable, on parle d'ordre 0+. Lorsque les règles admises ne
renfermant pas de variables, on parle d'ordre 0. Dans ce cas une règle est
"tuée" dès qu'elle est appliquée puisqu'une nouvelle application ne pourrait
apporter d'information nouvelle.

(ii) Sélection d'une règle parmi les candidates appelée "résolution de

19
conflits", cette étape peut se faire suivant des critères
heuristiques divers.
Exemples
- une règle encore jamais envisagée ou la moins récemment utilisée
(cas des règles avec des variables)
- une règle faisant intervenir un fait nouvellement apparu dans la BF
- le règle ayant le plus fort coefficient de vraisemblance...

Il faut noter aussi que des règles d'un niveau supérieur, métarègles, faisant
référence aux règles par leur contenu, peuvent être utilisées pour gouverner
cette sélection.

Exemples
- si condition 1 alors se focaliser sur les règles...
- si condition 2 alors éliminer les règles...

(iii) Application de la règle sélectionnée


La BF va s'enrichir des éléments contenus dans la partie conclusion
(de droite). Quand une action est spécifiée dans la conclusion, celle-ci est
déclenchée.
Le cycle va reprendre i., ii. et iii. jusqu'au moment où :
- aucune règle n'est plus applicable (on dit qu'on a "saturé" la BF) ou
- on a réussi à prouver un but préalablement fixé.

b. Le chaînage arrière
C'est un raisonnement guidé par un but. Il consiste à utiliser les règles
dans le sens conclusions conditions. Le MI fonctionne à partir d'un but initial à
prouver rangé dans une pile initialement vide, suivant un cycle à trois phases comme le
cas précédent.

(i) Détection des règles qui concluent sur le but (sommet de la pile
courant)
(ii) Sélection de la règle à envisager (résolution des conflits)
(iii) Application de cette règle

Ici les éléments des prémisses sont à considérer comme de nouveaux sous-

20
buts atteindre.
Si les sous-buts sont déjà présents dans la BF (déjà connus comme
vrais ou faux avec éventuellement des coefficients de plausibilité) alors le travail est fait
Sinon ils sont empilés dans la pile des buts.
Le cycle (i), (ii) et (iii) reprend en traitement le sommet courant de la pile
comme le nouveau but jusqu'à ce que :
- la pile soit vide (le but est alors atteint) ou
- aucune règle ne soit plus envisageable
Le chaînage arrière met ainsi en œuvre une technique de réduction de problèmes.

d. Le chaînage mixte
Dans de nombreux cas, l'homme met en jeu alternativement une démarche dirigée par
les données (tirer des conclusions à partir d'informations sur le patient en diagnostic
médical par exemple) et une démarche dirigée par les buts (tenter de prouver une idée de
diagnostic). Ceci se traduit par un mécanisme de chaînage mixte dans les systèmes de
production.

Exemple
Considérons la base de connaissances (BC) sur les vins blancs composée
de l'ensemble des règles de production suivantes :
R1 : si jaune et liquoreux alors sauternes (sûr)
R2 : si bourgogne et ferme alors côte-de-beaune (sûr)
R3 : si côte-de-beaune et non velouté alors corton
charlemagne (probable)
R4 : si côte-de-beaune et non velouté et goût-pierre-à-fusil
alors carton-charlemagne (sûr)
R5 : si sec et non ambré et fruité alors alsace (probable)
R6 : si sec et bouquet-délicat et non ambré alors bourgogne (sûr)

Ici les coefficients de vraisemblance sont exprimés de façon symbolique.


Le but du système est l'identification du vin proposé à une séance de dégustation.

Déroulons une consultation à partir des données résultant de la dégustation :


le vin n'est pas ambré, il a un bouquet-délicat, il est ferme, sec et non velouté. Les
données du problème (non ambré, bouquet-délicat, ferme, sec et non velouté) sont
introduites dans la BF et servent de point d'ancrage pour le chaînage avant :

21
seule la règle R6 est applicable. Son application fournit le fait bourgogne(sûr) qui est
inclus dans la BF. Le système poursuit en chaînage avant et détecte que R2 est
applicable. L'application de R2 a lieu et côte-de-beaune (sûr) est inclus dans la BF.
Poursuivant toujours en chaînage avant, le système détecte que R3 est candidate.
L'application de R3 fournit corton-charlemagne (probable) qui est inclus dans la BF. A ce
stade du raisonnement, la BF contient :
- non ambré (sûr)
- bouquet-délicat (sûr)
- ferme (sûr)
- sec (sûr)
- non velouté (sûr)
- bourgogne (sûr)
- côte-de-beaune (sûr)
- corton-charlemagne (probable)

Le processus de chaînage avant est bloqué puisque aucune règle n'est plus applicable. Le
système a exploité au mieux les données fournies mais l'identification du vin blanc
proposé comporte un certain degré d'incertitude.

Pour confirmer cette intuition que le vin est un corton-charlemagne, le moteur


(MI) va fonctionner en chaînage arrière en essayant de prouver ce but avec plus de
certitude : la règle R4 conclut sur corton-charlemagne (sûr) et elle est la seule applicable.
Son application fait apparaître trois (3) nouveaux buts : côte-de-beaune (sûr) et non
velouté (sûr) sont dans la BF. Le fait goût-pierre-à-fusil est inconnu et devient ainsi le
nouveau but à atteindre.
Le système recherche les règles qui concluent sur goût-pierre-à-fusil et n'en trouve pas.
La seule façon d'obtenir l'information est d'interroger l'utilisateur du système par exemple
en posant la question : "le vin blanc a-t-il un goût-pierre-à-fusil ?"
Enfin, imaginons que l'utilisateur réponde oui à la question posée. Cette nouvelle
connaissance s'ajoute à la BF, toutes les prémisses de R4 sont vérifiées et le système
conclut avec certitude que le vin blanc étudié est un corton-charlemagne.

22
Avantages et inconvénients

Avantages
- Les règles de production constituent un moyen simple et naturel de traduire la
connaissance heuristique mise en jeu dans un raisonnement de type conditionnel.
- Un système de production (à règles) est parfaitement modulaire et par conséquent aisé
à modifier ou à compléter.
Inconvénients
- Les règles posent un problème de maintien de la cohérence dans leur ensemble. Le
programmeur ou un système automatisé évolué doit s'en charger.
- Les règles représentent des connaissances heuristiques de "surface" ne permettant pas
de rendre compte des connaissances sur les concepts profonds sur lesquels s'appuie
l'expert. Cela nécessite l'association aux règles d'autres modes de représentation.

23
CHAPITRE IV - PRINCIPE DE FONCTIONNEMENT DES MOTEURS D’INFERENCES

I - LE CYCLE DE BASE D’UN MOTEUR D’INFÉRENCES

1 - présentation

Phase1 : EVALUATION Phase2 : EXECUTION

Exécution des actions des règles de


RESTRICTION/SELECTION
fournit : R3
R1 inclus dans BR
F1 inclus dans BF
BF et, éventuellement BR peuvent
être modifiées
FILTRAGE/PATTERN-MATCHING
fournit : par comparaison entre
R1 et F1, R2 inclus dans R1

D’autres effets sont possibles


(vers l’environnement du système
RESOLUTION DES CONFLITS par exemple)
Fournit : R3 inclus dans R2

Dans chaque phase on a éventuellement :


Arrêt ou retour-arrière ou autres effets sur le contrôle du moteur.

BR et BF désignent respectivement la base des règles et la base des


faits au début de l’évaluation.
Le moteur commande l’enchaînement des étapes de la phase
d’évaluation, des phases évaluation et exécution, puis des cycles
complets entre eux.

Remarque : sur un plan plus général, le FILTRAGE constitue R2 comme


un ensemble de couples (<faits>, <règle>) qui déterminent la
compatibilité du déclencheur de la règle avec F1.

a) SÉLECTION OU RESTRICTION
Au cours de cette première étape sont déterminés un sous-ensemble F1
de BF et un sous-ensemble R1 de BR qui, à priori méritent d’être
comparés lors du FILTRAGE.
Une technique courante consiste à répartir les faits et règles en familles
particulières souvent matérialisées par la définition de structures
séparées (par exemple, dans le contexte de diagnostic médical, on peut
séparer les règles propres aux maladies infantiles des autres règles ou
les faits relatifs aux analyses de sang des autres faits). 24
b) FILTRAGE
Au cours de cette seconde étape, la partie déclencheur de chacune des règles de R1 est
comparée, par le moteur d’inférences, à l’ensemble F1 de faits. Il en résulte un sous-
ensemble R2 de R1 de règles jugées compatibles avec F1. R2 est « l’ensemble de
conflits ».

c) RÉSOLUTION de CONFLITS
Au cours de cette troisième étape de l’évaluation le moteur détermine un sous-ensemble
R3 de R2 de règles qui doivent être déclenchées. Si R3 est vide, il n’y a pas de phase
d’exécution pour le présent cycle. Couramment, le choix des règles est sans rapport
apparent avec la signification attachée aux règles dans le contexte d’application. On peut
par exemple utiliser la technique FIFO sur les règles ordonnées dans une liste.

1 - La phase d’exécution
Elle constitue la deuxième partie de chaque cycle : le moteur d’inférences commande la
mise en œuvre des actions définies sur les règles de R3 (si R3 est non vide). Lorsque R3
contient plus d’une règle, la conduite à tenir peut être très différente d’un moteur à un
autre.

2 - Régimes irrévocables , par tentatives - Retour-arrière


Lorsque R3 est vide certains moteurs très simples s’arrêtent. On dit qu’ils ont un «régime
de contrôle irrévocable ». D’autres moteurs reconsidèrent l’ensemble de conflits R2, d’un
cycle antérieur, et examine la possibilité de déclencher d’autres règles de R2. Cependant
si aucun des déclenchements de règles réalisés depuis le précédent choix de R2 n’est
remis en cause (effets de ces règles non annulés), On dit encore que ces moteurs
fonctionnent selon un «régime de contrôle irrévocable ».
A l’inverse lorsqu’il y a remplacement de déclenchements de règles par d’autres on parle
de «régime de contrôle par tentatives ».
Pour signifier qu’un moteur revient sur une résolution de conflits antérieure, en remettant
en cause des déclenchements de règles, on dit qu’il opère un «retour-arrière »
(backtracking en anglais).
D’une manière générale :
- lorsqu’au cycle de rang n R3 est vide il n’y a pas de phase d’exécution ;
- au cycle n+1 l’étape SELECTION/RESTRICTION impose directement l’ensemble R1
du cycle de rang n-1 ;
- l’étape de FILTRAGE fournit directement l’ensemble R2 du cycle de rang n-1 ;

25
- l’occurrence de règle qui avait été retenue par la RESOLUTION de CONFLITS du
cycle n-1 est écartée de l’ensemble R2 au cycle n+1.

Ce type de «retour-arrière » est appelé «retour-arrière chronologique». D’autres types de


«retour-arrière» déterminent différemment le contexte de retour.

En pratique chaque étape du cycle de base du moteur d ‘inférences peut subir des
aménagements. La figure précédente symbolise le déroulement d’un cycle.
La résolution d’un problème quelconque nécessite couramment l’enchaînement de milliers
de cycles.

Remarque :
- le cycle de base d’un moteur d’inférences fait penser au cycle-instruction d’une
machine informatique traditionnelle ;
- chaque cycle du moteur d’inférences ou cycle d’inférence nécessite l’exécution de
centaines ou de milliers de cycles-instructions ;
- au cœur du projet japonais de « 5ème génération » d’ordinateurs se trouve l’intention
de réalisation des circuits et d’architectures de machines spécifiques permettant
d ‘atteindre des vitesses de l’ordre du million ou du milliard de ”lips” (Logical Inference
per Second).

II – QUELQUES SCHEMAS DE BASE POUR REPRESENTER DES MOTEURS D’INFERENCES

1 - CONVENTIONS DE PRESENTATION

Lors du lancement de chacun des quatre moteurs d’inférences ci-dessous, deux variables
globales, BASEDESFAITS et BASEDESREGLES sont supposées représenter
respectivement un ensemble de faits et un ensemble de règles.

Le mot-clé renvoyer permet de quitter une procédure dans laquelle il est rencontré. La
valeur de l’expression qui suit constitue «la valeur renvoyée» de la procédure; en
particulier celle-ci peut être un appel de procédure qui prendra une valeur (elle même
renvoyée) à l’exécution. Pour quitter une procédure on utilise systématiquement un
renvoyer.

Les variables-paramètres figurant dans l’en-tête des définitions de procédures sont


supposées «protégées » au moment où une procédure est appelée, les valeurs de telles
26
variables avant appel sont sauvegardées ; lorsque la procédure est abandonnée, les
valeurs avant appel sont restaurées. Ces variables sont locales à chaque procédure.

Les autres variables apparaissant dans le corps d’une procédure sont globales.

Dans l’en-tête des définitions de procédures on note en majuscules les variables qui
doivent recevoir une valeur au moment de l ‘appel, et en minuscules celles qui ne
reçoivent pas de valeur au moment de l’appel (variables auxiliaires). Cependant dans le
corps de procédures toutes les variables sont notées en majuscules.

Exemple de base de connaissances

BASEDESREGLES est la liste des règles

1 K, L, M I
2 I, L, J Q
3 C, D, E B
4 A, B Q
5 L, N, O, P Q
6 C, H R
7 R, J, M S
8 F, H B
9 G F

BASEDESFAITS est la liste {A, C, D, E, G, H, K}

27
2 - INVOCATION DES RÈGLES EN CHAÎNAGE AVANT, AVEC RÉGIME IRRÉVOCABLE ET MONOTONIE

a) SCHEMAVANT-1
SCHEMAVANT-1 invoque les règles en chaînage-avant, c’est à dire. il compare les éléments de la partie
prémisse des règles aux éléments de la base des faits, considérés chacun comme des faits établis. En
d’autres termes, dans ce cas, la partie prémisse des règles correspond à leur partie déclencheur.
Lorsqu’une règle est déclenchée, l’élément conclusion est établi et immédiatement rangé dans la base des
faits BASEDESFAITS.
Procédure ETABLIR-UN-FAIT(LEFAIT)
1 si LEFAIT appartient à BASEDESFAITS alors renvoyer « succès »
2 renvoyer EXECUTER-UN-CYCLE(BASEDESREGLES)

Procédure EXECUTER-UN-CYCLE(LESREGLES, unerègle)


1 si LESREGLES est vide alors renvoyer «échec »
2 UNEREGLE choix d’un élément quelconque de LESREGLES
(par exemple le premier rencontré)
3 LESREGLES LESREGLES diminué de UNEREGLE
4 si tous les faits de la prémisse de UNEREGLE appartiennent à BASEDESFAITS alors
4.1 début
4.2 si la conclusion de UNEREGLE est LEFAIT alors renvoyer «succès»
4.3 adjoindre la conclusion de UNEREGLE à BASEDESFAITS
(si elle n’appartient pas déjà à BASEDESFITS)
4.4 BASEDESREGLES BASEDESREGLES diminué de UNEREGLE
4.5 renvoyer EXECUTER-UN-CYCLE(BASEDESREGLES)
4.6 fin
5 renvoyer EXECUTER-UN-CYCLE(LESREGLES)

Exercice : application avec l’exemple de la BASEDESFAITS ci-dessus


Pour l’établissement de Q, lançons le moteur par l ‘appel de ETABLIR-UN-FAIT(”Q”).
Donner ensuite l’enchaînement des règles appliquées comme un graphe ET-OU ”graphe de sous-
problèmes”, puis une représentation par ”graphe d’états”.

Remarque : par rapport au cycle de base général, l’étape de RESTRICTION consiste à éliminer toute règle
déjà servie : (cf. instruction 4.4 de EXECUTER-UN-CYCLE). Les étapes de FILTRAGE et de RESOLUTION
DE CONFLITS sont enchevêtrées dans les instructions 1 à 4 de EXECUTER-UN-CYCLE.

28
b) SCHEMAVANT- 2 «invoque les règles en chaînage-avant et produit les faits en largeur d’abord »
Procédure ETABLIR-UN-FAIT(LEFAIT, faitsneufs)
1. si le LEFAIT appartient à BASEDESFAITS alors renvoyer « succès »
2. FAITSNEUFS liste vide
3. renvoyer EXECUTER-UN-C YCLE(BASEDESREGLES, FAITSNEUFS)

Procédure EXECUTER-UN-CYCLE(LESREGLES, FAITSNEUFS, unerègle)


1. si LESREGLES est vide alors
1.1 début
1.2 si FAITSNEUFS est vide alors renvoyer «échec»
1.3 BASEDESFAITS BASEDESFAITS augmentée de FAITSNEUFS
1.4 FAITSNEUFS liste vide
1.5 renvoyer EXECUTER-UN-CYCLE(BASEDESREGLES, FAITSNEUFS)
1.6 fin
2. UNEREGLE choix d’un élément quelconque de LESREGLES
(par exemple le premier rencontré)
3. LESREGLES LESREGLES diminué de UNEREGLE
4. si tous les faits de la prémisse de UNEREGLE appartiennent à BASEDESFAITS alors
4.1 début
4.2 si la conclusion de UNEREGLE est LEFAIT alors renvoyer «succès»
4.3 adjoindre la conclusion de UNEREGLE à FAITSNEUFS
(si elle n’appartient pas déjà à BASEDESFAITS ou FAITSNEUFS)
4.4 BASEDESREGLES BASEDESREGLES diminué de UNEREGLE
4.5 fin
5. renvoyer EXECUTER-UN-CYCLE(LESREGLES, FAITSNEUFS)
Soit E un état de la base des faits, dans SCHEMAVANT-2, contrairement à SCHEMAVANT-1, le moteur
cherche à déclencher en priorité, l’une après l’autre, toutes les règles compatibles avec E ; avant d’adjoindre
leurs conclusions à E et de les utiliser pour établir de nouvelles règles.
Appelons :
- faits de niveau 0 les faits initiaux
- faits de niveau 1 ceux obtenus à partie des règles qui peuvent être déclenchées à partir des faits initiaux
- plus généralement, faits de niveau n+1 faits obtenus à partir de faits dont un au moins est de niveau n
tandis que les autres sont de niveaux inférieurs ou égaux à n. SCHEMAVANT- 2 ne produit de faits de
niveau n+1 que si les faits de niveau n ont été produits, on dit qu’il développe la production des faits
” en largeur d’abord”.
Les conclusions de toutes les règles compatibles avec E sont rangées dans FAITSNEUFS
(instruction 4.3). Enfin FAITSNEUFS est vidé dans BASEDESFAITS lorsque toutes ces règles ont été
exploitées.

Exercice : Application avec l’exemple de la BASEDESFAITS ci-dessus.


Pour l’établissement de Q, lançons le moteur par l ‘appel de ETABLIR-UN-FAT(”Q”). (on Présenter par un
graphe ET-OU le travail accompli par le SCHEMAVANT-2).

29
A partir de l’état initial de la base de faits, le déclenchement de la règle 3 conduit à FAITSNEUFS = {B}. Puis
les déclenchements des règles 6 puis 9 à partir du même état initial conduisent à FAITSNEUFS = {B, R, F}.
Il ne reste alors aucune règle déclenchée depuis l’état initial. FAITSNEUFS est alors vidé dans
BASEDESFAITS qui devient :
{A, C, D, E, G, H, K, B, R, F}. A partir de cet état la règle 4 est déclenchée.

Remarques : l’étape de RESTRICTION consiste d’une part à éliminer toute règle qui a déjà servie et d’autre
part à interdire l’utilisation de faits de niveau n+1 tant que tous ceux de niveau inférieur ou égal à n n’ont pas
été produits. Les étapes de FILTRAGE et de RESOLUTION DE CONFLITS sont enchevêtrées dans
EXECUTER-UN-CYCLE.

c) Des moteurs à régimes irrévocables, monotones


Les deux moteurs SCHEMAVANT-1 et SCHEMAVANT-2 fonctionnent selon un régime
irrévocable puisque le déclenchement d’une règle n’est jamais remplacé par un autre. De
même le codes de ces moteurs ne permet de réaliser que des ajouts de faits. En définitive
ils sont monotones.

30
3 - INVOCATION DES RÈGLES EN CHAÎNAGE ARRIERE, AVEC RÉGIME PAR TENTATIVES ET MONOTONIE

a) SCHEMARRIERE-1 Invoque les règles en chaînage-arrière et produit les sous-problèmes


«en profondeur d’abord »
SCHEMARRIERE-1 invoque les règles en «chaînage-arrière», c’est à dire qu’il compare la partie conclusion
des règles aux faits à établir du moment. Ici, la partie conclusion des règles constitue leur partie
déclencheur.

Procédure ETABLIR-UN-FAIT(LEFAIT)
1 si LEFAIT appartient à BASEDESFAITS alors renvoyer «succès»
2 renvoyer ETABLIR1(BASEDESREGLES)
Procédure ETABLIR1(LESREGLES, unerègle)
1 si LESREGLES est vide alors renvoyer « échec »
2 UNEREGLE choix d’un élément quelconque de LESREGLES
(par exemple le premier rencontré)
3 LESREGLES LESREGLES diminué de UNEREGLE
4 si UNEREGLE comporte LEFAIT en conclusion alors
si ETABLIR2(UNEREGLE) = «succès» alors renvoyer «succès»
5 renvoyer ETABLIR1(LESREGLES)
Procédure ETABIR2(LAREGLE, desfaits)
1 DESFAITS tous les faits composant la prémisse de LAREGLE
2 renvoyer ETABLIR-CONJONCTION-FAITS(DESFAITS)

Procédure ETABLIR-CONJONCTION-FAITS(LESFAITS, unfait)


1 si LESFAITS est vide alors envoyer «succès»
2 UNFAIT choix d’un élément quelconque de LESFAITS
(par exemple le premier rencontré)
3 LESFAITS LESFAITS diminué de UNFAIT
4 si ETABLIR-UN-FAIT(UNFAIT) = «échec» alors renvoyer «échec»
5 renvoyer ETABLIR-CONJONCTION-FAITS(LESFAITS)

On lance ce moteur par l’appel de ETABLIR-UN-FAIT ou ETABLIR-CONJONCTION-FAITS.


Lors de l’appel ETABLIR-UN-FAIT(”Q”), l ‘ensemble des faits à établir est {Q}.si la règle 2 est invoquée et
déclenchée, cet ensemble devient {I, L, J}. I, L, J sont des sous-problèmes du problème Q tandis que Q est
père de I, L, J.
Associons un niveau 0 aux problèmes initiaux et un niveau n+1 à tout problème dont le père est de niveau n
tandis que les autres pères éventuels sont de niveau inférieur ou égal à n. SCHEMARRIERE –1 produit et
attaque des sous-problèmes selon une stratégie qui est un cas particulier de la famille des ”stratégies en
profondeur d’abord” [NILSON 80] : il s’attache à résoudre prioritairement les sous-problèmes de niveaux les
plus élevés.

31
Exercice : Application avec l’exemple de la BASEDESFAITS ci-dessus.
Cherchons à établir Q.
On lance SCHEMARRIERE-1 par ETABLIR-UN-FAIT(”Q”) on obtient :
Le déclenchement de la règle 2 qui introduit les faits à établir I, L, J. Le fait à établir d’abord considéré est I.
Il s’ensuit le déclenchement de la règle 1 pour introduire les faits à établir K, L, M. A ce niveau K est déjà
établi tandis qu’aucune règle ne comporte L ou M dans son déclencheur, le fait à établir redevient I. Comme
aucune règle ne comporte I dans son déclencheur, le fait à établir considéré redevient Q. Ensuite la règle 4
est déclenchée et A, B sont introduits. Comme A est déjà établi, le Moteur considère le fait à établir B. Il
s’ensuit le déclenchement de la règle 3 qui introduit C, D, E. Comme C, D, E sont déjà établis, la règle 3 est
immédiatement concluante : B puis Q sont établis.

Remarque :
- Il faut faire la distinction entre «déclencher» une règle et «tirer la conclusion » d’une règle : lorsqu’une
règle-en-arrière est utilisée pour établir le fait présent dans sa partie conclusion, à partir des faits présent
en prémisse supposés établis, on dira qu’on tire la conclusion de la règle. Tandis que lorsqu’une règle-
en-arrière est utilisée pour substituer les faits présents dans sa partie prémisse à ceux présents dans en
conclusion on dit qu’on déclenche la règle.
- Le fait à établir Q s’appelle ”hypothèse poursuivie” ou ”problème” ou ”but”. Les sous-problèmes introduits
ne sont pas inscrite dans la base explicite des faits : ils sont mémorisés à travers des appels de
procédures. Les sous-problèmes en suspens constituent une partie implicite de la base des faits qui va
jouer un rôle déterminant pour la choix de la règle à exécuter au prochain cycle.

32
SCHEMARRIERE- 2
« invoque les règles en chaînage-arrière et produit les sous-problèmes en profondeur d’abord sauf si
une règle est immédiatement concluante»
Procédure ETABLIR-UN-FAIT(LEFAIT, desrègles)
1 si LEFAT appartient à BASEDESFAITS alors renvoyer «succès»
2 DESREGLES toutes les règles de BASEDESFAITS qui comportent LEFAIT en partie
conclusion
3 si DRECTETABLIR1(DESREGLES) = «succès» alors renvoyer «succès»
4 renvoyer ETABLIR1(DESREGLES)

Procédure DIRETETABLIR1(LESREGLES, unerègle)


1 si LESREGLES est vide alors renvoyer «échec»
2 UNEREGLE choix d’un élément quelconque de LESREGLES
(par exemple le premier rencontré)
3 LESREGLES LESREGLES diminué de UNEREGLE
4 si DIRECTETABLIR2(UNEREGLE) = «succès» alors renvoyer «succès»
5 renvoyer DIRICTETABLIR1(LESREGLES)

Procédure DIRETETABLIR2(LAREGLE, desfaits)


1 DESFAITS tous les faits composants la prémisse de LAREGLE
2 renvoyer DIRECT-ETABLIR-CONJONCTION-FAITS(DESFAITS)

Procédure DIRECT-ETABLIR-CONJONCTION-FAITS(LESFAITS, unfait)


1 si LESFAITS est vide alors renvoyer «succès»
2 UNFAIT choix d’un élément quelconque de LESFAITS
(par exemple le premier rencontré)
3 LESFAITS LESFAITS diminué de UNFAIT
4 si UNFAIT n’appartient pas à BASEDESFAITS alors renvoyer « échec »
5 renvoyer DIRECT-ETABLIR-CONJONCTION-FAITS(LESFAITS)

Procédure ETABLIR1(LESREGLES, unerègle)


1 si LESREGLES est vide alors renvoyer « échec »
2 UNEREGLE choix d’un élément quelconque de LESREGLES
(par exemple le premier rencontré)
3 LESREGLES LESREGLES diminué de UNEREGLE
4 si ETABLR2(UNEREGLE) = «succès» alors renvoyer «succès»
5 renvoyer ETABLIR1(LESREGLES)

Procédure ETABIR2(LAREGLE, desfaits)


1 DESFAITS tous les faits composant la prémisse de LAREGLE
2 renvoyer ETABLIR-CONJONCTION-FAITS(DESFAITS)

Procédure ETABLIR-CONJONCTION-FAITS(LESFAITS, unfait)


1 si LESFAITS est vide alors renvoyer «succès»
2 UNFAIT choix d’un élément quelconque de LESFAITS
(par exemple le premier rencontré)
3 LESFAITS LESFAITS diminué de UNFAIT
4 si ETABLIR-UN-FAIT(UNFAIT) = «échec» alors renvoyer «échec»
5 renvoyer ETABLIR-CONJONCTION-FAITS(LESFAITS)

33
CHAPITRE IV – PRESENTATION DES OUTILS DE DEVELOPPEMENT

Un outil de développement démarre souvent dans un environnement de recherche comme


un système expérimental créé pour une tâche spécifique. Très peu d’outils de
développement de systèmes experts ont atteint l ‘étape de système commercialisé car
difficile à parfaire pour l’utilisateur.

Système Système pour Système


expérimental la recherche commercialisé

non testé, testé, raffiné,


dédié à une tâche spécifique, pour des problèmes généraux, rapide,
lent, inefficace peu être lent, efficace
inefficace
Évolution d’un outil de développement de systèmes experts

I - MODE DE REPRÉSENTATION ET MÉTHODES DE PROGRAMMATION SUPPORTÉS


PAR LES OUTILS
Un outil de développement de systèmes experts peut supporter une ou plusieurs
méthodes de représentation de la connaissance.
Exemples : EMYCYN supporte la méthode basée sur les règles de productions
LOOPS supporte les méthodes orientées objets, procédures, à règles de productions.

1) Méthodes utilisant les règles, les réseaux sémantiques et les frames

Méthodes description outil


utilise la structure
si (conditions) alors (conclusions) EMYCYN
à règles pour effectuer le chaînage
avant/arrière
utilise la hiérarchie de
frames pour l’héritage de
à frames propriétés et l’attachement SRL
procédural
utilise les objets qui se
orientées objets communiquent par des SMALL-TALK
messages
utilise le calcul des PROLOG
basées sur la prédicats pour structurer le
logique programme et guider son
exécution

34
2) Méthodes procédurales : elles permettent au programmeur d’écrire des procédures
appelées (cas de ROOSIE) ensembles de règles contenant chacun des règles pour
appeler d’autres ensembles de règles.
3) Méthodes orientées objets : ici, les objets, appelés acteurs, représentent des entités
capables de produire un certain comportement. C’est le cas de SWIRL qui est un
système de simulation de bataille de l’air. Dans SWIRL les acteurs sont appelés
attaquants (avions offensifs) et combattants (avions défensifs) etc.
4) Méthodes basées sur la logique : c’est le cas de PROLOG.
5) Méthodes orientées à accès : c’est le cas de LOOPS qui fait usage de démons lors de
la lecture ou le changement d’une donnée pour l’activation d’un programme etc. Ils
agissent comme des sondes connectées à des valeurs de variables particulières dans
un programme.

II - EXEMPLES DE LANGAGES D’INGENIERIE DE LA CONNAISSANCE


Ces langages (OUTILS de développement) ont différents niveaux de sophistication
d’implémentation. Cependant, la plupart ont un moteur d’inférences prédéfini prête à
utiliser une base de connaissance construite suivant les spécifications du langage. Ceci
les rend préférables aux langages de programmation comme LISP qui demanderait plus
de temps et d’effort. La difficulté avec un langage d’ingénierie est de trouver celui qui
convient à notre problème. Quatre langages d’ingénierie méritent une attention particulière
(conf. Tableau ci-dessous).

outil Type caractéristiques langage développer


d’implémentation
Chaînage arrière,
EMYCYN spécialisé coefficient de certitude, INTERLISP Stanford
explication, University
acquisition
à règles,
chaînage avant, RUTGERS
EXPERT spécialisé coefficient de certitude, FORTRAN University
explication,
acquisition,
vérification de
consistance
à règles,
OPS5 général chaînage avant, FRANZ LISP CARNEGIE
contrôle flexible, MELLON
représentation flexible University
à règles, The RAND
ROSIE général chaînage avant, INTERLISP Corporation
syntaxe «anglais
littéral »)

35
 EMYCYN est un langage d’ingénierie dont le noyau est MYCYN auquel a été ôtée la
connaissance sur le domaine. Il utilise une méthode de représentation basée sur les
règles de productions doté d’un rigide mécanisme de chaînage arrière limitant son
application au diagnostic (et des problèmes de classification d’objets). Cependant, il
est doté d’un système d’explication sophistiqué ainsi que de facilités d’acquisition qui
contribuent à l’accélération du développement de systèmes experts. Il a été utilisé pour
bâtir des systèmes experts dans le domaine du diagnostic en médecine, géologie,
ingénierie, agriculture, etc.

SACON : aide à la détermination des stratégies de résolution


de problèmes d’analyse structurale.

PLANT/dps
prédiction (si oui ou non) BLUE Box
les champs de maïs seront aide à la sélection d’une thérapie
dévastés par des parasites EMYCYN pour patients sujets à des dépressions

LITHO
aide à la caractérisation de roches
souterraines par l’interprétation de PUFF
données provenant d’un forage diagnostic d’affections pulmonaires
par l’interprétation de tests respiratoires
réalisés en laboratoire

Applications en MYCYN

 EXPERT est, comme MYCYN, un langage d’ingénierie spécialisé représentation basée


sur les règles de productions mais doté d’un mécanisme limité de chaînage avant. Il
est adapté aux problèmes de diagnostic et aux problèmes de classification d’objets. il
est aussi doté d’un système d’explication, d’un système d’acquisition et de facilités de
vérification de la consistance pour accélérer les développements. Il a été utilisé pour
construire des programmes de diagnostic en médecine, géologie, etc.
Étant conçu pour des problèmes de consultation en médecine, il structure la
connaissance de telle sorte à faciliter l’interprétation médicale.
Les règles dans EXPERT distingue découvertes et hypothèses :
- les découvertes sont des observations telles que l’âge d’un patient ou la pression
sanguine ;
- les hypothèses sont des conclusions inférées des découvertes ou d’autres
hypothèses.

36
AI/RHEUM : diagnostic en rhumatologie

ELAS
diadnostic en géologie MI
(interprétation de résultats diagnostic de l’infarctus du myocarde
issues d’un forage) EXPERT (attaque cardiaque)

SPE
diagnostic de conditions inflammatoires
à partir des données de test réalisé.

Applications en EXPERT

 OPS5 est un outil de développement d’intérêt général qui utilise une méthode de
représentation basée sur les règles marchant à l’aide d’un chaînage avant. Le système
supporte souvent divers modes de représentation des données et des structures de
contrôle dans un seul programme. OPS5 a un puissant « pattern matcher » et un
interpréteur performant quant à l’établissement des correspondances entre règles et
données. Cependant, il a un environnement support peu sophistiqué. Il manque de
mécanisme d’acquisition et offre un minimum de facilités en ce qui concerne l’édition et
de débogage.

OPS5 est vient après OPS, OPS4 et a été utilisé pour de nombreuses applications de
psychologie cognitive, d’I.A. et de systèmes experts.

XSEL : aide les vendeurs à la sélection des composants


à configurer par XCON

IDT
XCON permet la localisation de composants
pour la configuration de OPS5 défectueux dans les ordinateurs PDP11/03
systèmes VAX-11/780

YES/VMS
permet un contrôle interactif en temps réel des
systèmes d’exploitation des IBM VMS

Applications en OPS5

37
C’est l’ensemble des outils les plus utilisés. Il a été utilisé dans le développement de
plusieurs systèmes experts commerciaux. Sa popularité est due en partie à l’efficacité de
son exécution et en partie à sa disponibilité sur le marché.

 ROSIE est un autre outil d’intérêt général. Il combine la méthode de représentation à


base de règles et la méthode procédurale.
Un programme ROSIE est une imbrication de procédures et de fonctions, chacune
étant définie comme un ensemble de règles. Il a une syntaxe proche du langage
naturel comme l’anglais ce qui rend un code ROSIE facile à lire. Il est doté d’un
puissant mécanisme de routines internes d’unification etc. Son environnement support
inclut des facilités d’édition et de débogage mais pas de système d’explication ni
système d’acquisition.
ROSIE a été utilisé dans le développement d’une variété de systèmes experts dans les
domaines incluant le droit, le management et l’armée.

TATR : aide à l’armée pour développer des plans


D’attaque de l’ennemi

ADEPT
SPILLS pour l’analyse de situation de champ
pour la localisation et ROSIE de bataille
l’identification de pétrole
et de produits chimique

LDS
pour analyser et décider si oui ou non
un produit est défectueux selon des principes
légaux et des stratégies d’avocats en la matière

Applications en ROSIE

Un programme ROSIE prend la forme d’ensembles de règles. Chacun de ces ensembles


étant défini pour jouer le rôle d’une procédure, d’un générateur ou d’un prédicat.
Une procédure est comme une soubroutine en ce sens qu’elle accompli une tâche et
retourne le contrôle à l’endroit du programme appelant.
Un générateur est comme une fonction en ce sens qu’il retourne une valeur ou un
ensemble de valeurs.
Un prédicat est une fonction qui retourne toujours vrai ou faux.
Dans le cas de LDS, le système utilise les faits du cas, les règles basées sur des principes
formels légaux , de procédures informelles et stratégies d’avocats afin de calculer la
sincérité du défendant, l’opportunité du cas ainsi que le montant équitable du jugement.

38
CHAPITRE V – CONSTRUCTION D’UN SYSTEME EXPERT

Il es difficile d’établir des critères généraux qui militent en faveur du développement d’un
système expert pour un problème donné.
La règle d’or est : « considérer les systèmes experts seulement si le développement d’un système
expert est possible, justifié et opportun ».

1/ Caractéristiques nécessaires au développement d’un système expert (possibilité)

La tâche ne fait
pas appel au
raisonnement
général

La tâche requiert
seulement des
techniques cognitives

Les experts peuvent


articuler leurs
méthodes

Il est possible de
Existence de développer un
véritables experts ET
système expert

Les experts sont


d’accord sur les
solutions

La tâche est trop


difficile

La tâche est bien


comprise

39
2/ Caractéristiques justificatifs du développement d’un système expert (justification)

La solution de la
tâche a beaucoup
d’intérêt

Expertise
humaine en voie
de disparition

Rareté de Le développement
l’expertise OU d’un système
humaine expert est justifié

Besoin en experts
dans plusieurs
localités

Besoin d’expertise dans


un environnement
hostile

3/ Caractéristiques militant en faveur du développement d’un système expert ( opportunité)


Les facteurs clés indiquant l’opportunité du développement d’un système expert
sont : la (1) nature, (2) la complexité et (3) l’étendu du problème.

La tâche requiert de
la manipulation
(1) symbolique

La tâche requiert
des solutions
(1) heuristiques

Il est opportun
La tâche n’est d’envisager
(2) pas trop facile ET l’approche d’un
système expert

La tâche a une
(3) valeur pratique

La tâche est de taille


(3) maîtrisable

40
4) Différentes tâches dans le développement d’un Système expert
Le développement d’un système expert peut être vu comme cinq phases
interdépendantes : identification, conceptualisation, formalisation, implémentation et test.

 Au cours de l’identification, le cogniticien et l’expert déterminent les concepts


importants du problème (type et étendu), les différents acteurs dans le développement
(ex : autres experts), les ressources requises (ex : temps et équipements
informatiques) et les buts ou objectifs pour créer le système expert (ex : amélioration
ou distribution d’une rare expertise). Dans toutes ces activités, l’identification du problème
et de son étendu donne le plus de troubles aux développeurs. Très souvent le problème
est trop étendu ou complexe et doit être réduit pour être maîtrisable.

 Au cours de la conceptualisation, le cogniticien et l’expert décident des concepts, des


relations et des mécanismes de contrôle pour la description de la résolution du
problème dans le domaine concerné.
Des sous tâches, stratégies et contraintes relatives à la résolution du problème sont
aussi explorées. A ce stade l'aspect granulaire, qui concerne le niveau de détail auquel
la connaissance devrait être représentée, est attaqué.
Le cogniticien choisira normalement le niveau d’abstraction le plus élevé pour les
concepts clés.
Les développeurs doivent éviter de faire une analyse complète avant de commencer
l’implémentation car ils apprendront beaucoup de la première qui dirigera le processus
de conceptualisation.

 Au cours de la formalisation, les concepts clés et les relations sont exprimés de


façon formelle généralement dans un cadre suggéré par un outil de
développement. Ainsi, le cogniticien devrait avoir quelques idées sur les outils
appropriés au démarrage de cette phase. Par exemple :
- si le problème semble conduire à un système à règles de productions,
ROSIE pourrait être le choix. ;
- dans une approche basée sur les frames, le cogniticien pourrait sélectionner
SRL et travailler avec l’expert pour exprimer la connaissance sur le domaine
comme un large réseau.

 Au cours de l’implémentation, le cogniticien transforme la connaissance formalisée


en un programme informatique qui marche.
41
Ecrire un programme requiert contenu, forme et intégration :
- le contenu provient de la connaissance sur le domaine rendue explicite au
cours de la formalisation (structures de données, règles d’inférences et
stratégies de contrôle nécessaires à la résolution du problème) ;
- la forme est spécifiée par le langage (outil) choisi pour le développement ;
- l’intégration implique la combinaison et la réorganisation de diverses
informations pour permettre la cohérence globale entre structures de
données et règles ou les spécifications pour le contrôle.
L’implémentation devrait suivre car l’une des raisons d’implanter le prototype
initial est de tester l’efficacité des décisions de conception faites dans les phases
précédentes du développement. Il existe donc une forte probabilité que le code
initial soit revu voire écarté au cours du développement.

 Au cours de la phase de test, est faite l’évaluation de la performance et de l’utilité du


programme prototype. L’expert du domaine évalue le prototype et aide le cogniticien à
le réviser. Dès que celui-ci tourne sur quelques exemples, il doit être testé sur
plusieurs problèmes pour évaluer sa performance et son utilité. Cette évaluation
pourrait déceler, avec le schéma de représentation, des problèmes tels que : concepts
et relations manquants, représentation de la connaissance à un mauvais niveau de
détail ou encore un mauvais mécanisme de contrôle. De tels problèmes peuvent
obliger les développeurs de procéder à un recyclage à travers les différentes phases
de développement, en reformant des concepts, en raffinant les règles d’inférences et
en révisant les mécanismes de contrôle.
Comme l’utilisateur final du domaine demande, en plus de la bonne performance du
système expert, un système rapide, fiable, facile à utiliser, facile à comprendre et très
tolérant en cas d’erreurs de manipulation, un système expert nécessite un test intensif
dans le domaine concerné avant d’être prêt pour un usage commercial.

5) Différentes étapes dans le développement d’un Système expert

En terme de sophistication et d’utilité, les systèmes experts évoluent beaucoup comme


les outils de développement. Plusieurs systèmes experts démarrent comme un
prototype de démonstration. Ceci concerne généralement une partie du problème à
résoudre.

42
Un prototype de démonstration basé sur les règles de productions pourrait contenir 50
à 100 règles qui marchent bien sur un ou deux cas de test et prendrait un à trois mois
de développement.
Plusieurs systèmes experts ont évolués au stade de prototype de recherche. Un
programme de taille moyenne capable de bien marcher sur un ou un certain nombre
de cas de test. Un tel système expert à base de règles de productions pourrait contenir
200 à 300 règles, bien marcher sur un grand nombre de cas de test et prendrait une à
deux années de développement.
Certains systèmes experts ont évolués au delà de prototype de recherche pour
atteindre le stade de prototype de domaine. Ils sont modérément fiables, dotés
d’interfaces agréables et s ‘adresse aux besoins de l’utilisateur final. Un tel système
pourrait contenir de 500 à 1000 règles, bien marcher sur plusieurs cas de test et
prendrait deux à trois années de développement.
Très peu de systèmes experts ont atteint le stade de prototype de production. Ce sont
de larges programmes. Un système expert à base de règles de ce type peut contenir
500 à 1500 règles de productions et permet de prendre rapidement une décision sûre.
Son développement peut prendre deux à quatre ans.
Seulement très peu de systèmes experts ont atteint le stade de prototype commercial.
Ce sont des systèmes de prototypes de production. Par exemple XCON contient plus
de 3000 règles et permet d’atteindre des conclusions correctes dans 90% à 95% du
temps et son développement avait pris six ans.

43

Vous aimerez peut-être aussi