Présentation
La technique des systèmes experts est de plus en plus utilisée
en informatique. Couplée souvent avec d'autres méthodes
plus classiques et éprouvées, elle permet d'imaginer des
systèmes informatiques dans des domaines où les décisions
sont soumises à des critères complexes et évolutifs
qui se laissent difficilement aborder par des algorithmes.
Ce chapitre d'introduction devrait vous permettre de vous familiariser
avec ces instruments. Il introduit un certain langage propre au domaine
de l'intelligence artificielle.
Le dossier "pratique d'un système expert" présente
un système simple qui vous permettra de voir comment gérer
et d'utiliser les connaissances d'un expert dans des cas simples.
Généralités sur les systèmes experts
Eléments de logique des propositions
Les théories qui ont présidé à la conception
des systèmes experts sont multiples: informatique, psychologie,
logique. La logique, en particulier, fourni un langage pratique pour présenter
les systèmes experts (SE). Quelques définitions méritent
donc d'être faites, même si, par la suite, les notions introduites
ne sont pas utilisées de façon stricte.
Voici des propositions:
P1: "les bébés pleurent quand ils ont faim"
P2: "il pleut"
P3: "je prends mon parapluie"
P4: "il neige"
P5: "les roses sont bleues"
P6: "s'il pleut, je prends mon parapluie"
Ces expressions sont considérées indépendamment du
fait de savoir si elles sont vraies ou fausses. La validité d'une
proposition P quelconque est donnée par sa "valeur de vérité"
: val(P). La valeur de vérité est donc une fonction de l'ensemble
des propositions sur l'ensemble à deux éléments:
"vrai" et "faux".
La valeur de vérité d'une proposition peut dépendre
du lieu, de l'époque, etc. Par exemple val(P5) = faux (!). On peut
aussi associer à chaque proposition une valeur numérique
représentant un degré de certitude.
A partir de propositions, il est possible de construire d'autres propositions
à l'aide de diverses opérations. En particulier:
La conjonction (ET, ^). Exemple: P2 ^ P3 : "il pleut et je
prends mon parapluie"
La négation (NON, ¬) . Exemple: ¬P4: "il
ne neige pas"
La disjonction (OU, v ). Exemple: P2 v P4 : "il pleut ou il
neige"
L'implication (SI ... ALORS, >) . Exemple: P2 >
P3(= P6)
Ainsi les propositions se combinent entre elles. C'est en ce sens que
l'on parle d'"algèbre" des propositions.
Si val(P) est connue et si val(Q) est connue également, alors il
n'est pas possible d'associer une valeur de vérité arbitraire
à l'une de leur combinaison. Ce sont des "tables de vérité"
qui indiquent, par exemple, la valeur de val(P ^ Q) connaissant val(P)
et val(Q) (voir le cours de mathématique).
Une autre notion introduite par la logique, plus importante encore, est
celle de règle d'inférence (ou règle de déduction
logique). On retiendra deux règles d'inférence:
Le Modus Ponens: Si val(P) = vrai et val(P>Q) =
vrai on en déduit: val(Q) = vrai.
C'est ce mode de raisonnement qui nous indique que si "il pleut"
et que "chaque fois qu'il pleut, Monsieur Simon prend son parapluie",
alors "Monsieur Simon doit être muni actuellement de son parapluie"
Le Modus Tollens: Si val(P>Q) = vrai et val(Q)
= faux on en déduit: val(P) = faux.
Par la suite on introduira le vocable de FAIT pour les propositions de
base et l'on dira qu'une implication P > Q est une REGLE. P est
appelée la prémisse de la règle et Q la conclusion.
Examen d'un exemple
Voici les instructions (extrait) qui permettent de déterminer
la nature d'une panne de démarreur (tirées de Volkswagen
ServiceRepair Handbook, Clymer Publications, Los Angeles 1974).
"... Premier cas: le démarreur ne fonctionne pas ou fonctionne
au ralenti. Dans ce cas, il est proposé d'allumer les grands phares.
Si ceuxci sont faibles, c'est un problème de batterie.
Si les phares fonctionnent normalement, on propose alors d'essayer de
faire démarrer le moteur avec les phares allumés.
Si la lumière baisse, il y a un courtcircuit dans le démarreur.
Par contre, si la lumière des phares n'est pas modifiée,
on propose de relier alors les deux grandes bobines. Si le moteur part,
il y a un problème de bobine. Sinon la panne est autre.
Deuxième cas: le démarreur fonctionne, mais n'entraîne
pas le moteur. C'est alors un problème de pignon..."
On trouve dans cette exemple des faits, par exemple:
F1: "le démarreur ne fonctionne pas"
F2: "les grands phares sont faibles"
F3: "problème de batterie"
Une règle relie ces trois faits:
R4: (F1 ^ F2) > F3
C'est par le modus ponens que l'on déduit que val(F3) = vrai lorsque
val(F1 ^ F2) = vrai, val(R4) étant vrai ... selon le constructeur.
Certaines parties du texte peuvent présenter des informations d'une
autre nature; ce ne sont pas toujours des faits significatifs du problème
considéré. Par exemple: "il est proposé d'allumer
les grands phares" est une information complémentaire que
l'on traitera à part.
La règle R4 se réécrira:
SI le démarreur ne fonctionne pas ET
grands phares faibles
ALORS problème de batterie
Exercice: Distinguer dans ce texte les autres faits, règles
et informations complémentaires (attention, "si ... alors"
ne donne pas toujours lieu à une règle ...).
Logique d'ordre 0 et logique d'ordre 1
Prenons le syllogisme classique suivant:
P1: "jean est un homme"
P2: "les hommes sont mortels"
De ces deux propositions on en déduit P3: "jean est mortel".
Selon quel mécanisme peuton faire une telle déduction
?
Ces propositions font intervenir des classes (ou ensembles), celle des
hommes et celle des créatures mortelles. De la proposition universelle
P2(X): "Si est X est un homme alors X est mortel", on en déduit
la proposition P3 à l'aide de P1, de P2(jean) et du Modus ponens.
La logique utilisée introduit donc des variables.
Une logique sans variable est dite d'ordre 0. Une logique qui admet des
variables est dite d'ordre 1. Les systèmes experts seront d'ordre
0 ou 1 selon qu'ils peuvent utiliser ou non des variables dans les propositions
qu'ils manipulent.
Définition et catégorisation des systèmes experts
En reprenant la définition de Farreny [FARRENY], légèrement
complétée, on dira qu'un système expert est une machine
déductive relativement générale exploitant une collection
séparée, sujette à évolution, d'unités
de savoirfaire concernant un domaine particulier d'expertise humaine.
Son but est d'apporter des solutions à des problèmes bien
délimités concernant le domaine en question. Un tel programme
assure aussi des fonctions complémentaires de dialogue, d'apprentissage
et d'explication de son comportement.
Il y a différents types de systèmes experts (SE). E. G.
Aillaud en a recensé cinq, qu'il a coté d'un coefficient
de difficulté allant de 1 à 5. Un SE de coefficient de difficulté
1 est relativement facile à réaliser, alors qu'un système
de niveau 5 est encore au stade de la recherche [AILLAUD].
Organisation des systèmes à règles
de production
Un système expert est constitué de trois "composants"
principaux:
1) base de faits: c'est l'ensemble des propositions connues du système
à un moment donné. La base de faits est une mémoire
de travail. Son contenu dépend du problème traité.
2) base de connaissances: il s'agit de la connaissance "experte"
proprement dite. Dans les systèmes (simples) que nous considérons,
cette base est constituée d'un ensemble de règles (P>Q)
qui mettent en relation des faits dans un domaine donné.
3) moteur d'inférence: c'est le programme informatique qui combine
les faits établis et les règles pour établir de nouveaux
faits.
Le moteur d'inférence fonctionne selon le cycle général
suivant:

Le choix de la règle se fait en plusieurs étapes:
Etape 1: La sélection des règles restreint le nombre de
règles à examiner. Cette sélection dépend
de la stratégie de recherche adoptée par le moteur.
Etape 2: Le filtrage qui détermine les règles réellement
applicables.
Etape 3: Le choix d'une règle parmi les règles applicables
(résolution du conflit).
D'autres descriptions de l'organisation d'un SE et du fonctionnement du
moteur d'inférence sont faites. Ainsi l'on regroupe parfois sous
base de connaissances, base de règles et base de faits (faits généraux).
Les faits spécifiques du problème traités constituent
alors la base de travail.
Diverses conditions peuvent être utilisées pour arrêter
le moteur:
Types de fonctionnement du moteur
On a déjà vu qu'un système expert pouvait être
d'ordre 0 ou d'ordre 1 (d'autres ordres 0+, 0++, 1+ ont été
introduits pour rendre compte de dispositifs particuliers). De nombreuses
autres caractéristiques différencient les systèmes
existants. Une de cellesci est la façon d'utiliser les règles:
de la prémisse vers la conclusion (chaînage avant) ou de
la conclusion vers la prémisse (chaînage arrière).
A titre d'exemple considérons la base de connaissance constituée
de trois règles:
REGLE r1
SI animal vole ET
animal pond des oeufs
ALORS animal est un oiseau
REGLE r2
SI animal a des plumes
ALORS animal est un oiseau
REGLE r3
SI animal est un oiseau ET
animal a un long cou ET
animal a de longues pattes
ALORS animal est une autruche
Par ailleurs on suppose que la base de faits est constituée de:
F1 : animal a des plumes
F2 : animal a un long cou
F3 : animal a de longues pattes
En chaînage avant, le moteur sélectionnera et déclenchera
les règles dont les prémisses sont satisfaites:

En chaînage arrière, le système part sur un
but à démontrer: par exemple F5: "animal est une autruche".
Il sélectionnera alors, de proche en proche les règles qui
permettent de prouver ce fait.
On notera par "ok" toutes les recherches qui aboutissent et
par échec les autres.

On peut décrire le fonctionnement d'un moteur en chaînage
avant ou en chaînage arrière en considérant une seule
règle, par exemple:
SI le démarreur ne fonctionne pas ET
grands phares faibles
ALORS problème de batterie
Si la conclusion est ajoutée à la base de fait dès
que la prémisse est satisfaite, c'est du chaînage avant.
Si la conclusion n'est ajoutée à la base de fait
que lorsqu'une requête est faite à son sujet, il s'agit alors
de chaînage arrière.
Ecart entre les théories logiques et les systèmes
experts
Il y a un certain écart entre les théories logiques et leur
application dans les systèmes experts. Certaines "accommodations"
sont nécessaires. Les plus importantes concernent l'aspect temporel,
la réalisation de la valeur de vérité et, finalement,
le problème de la nature différente de la prémisse
et de la conclusion.
Aspect temporel: dans un système informatique, les différentes
opérations s'enchaînent dans le temps alors que les principales
théories logiques ne tiennent pas compte du phénomène
temporel. La distinction des différents types de chaînage
relève de cette nécessité d'ordonner dans le temps
les actions à exécuter.
Valeur de vérité: très souvent les valeurs
de vérité ne sont pas associées véritablement
aux faits manipulés par le système. On considère
comme vrais les faits qui se trouvent dans la base de faits. Sinon, les
faits sont faux. Cette technique est connue sous l'expression: hypothèse
du monde clos. Parfois on précise que certains faits sont inconnus
(UNKNOWN).
Les faits de la prémisse (les conditions) sont simplement
testés: sontils ou non présents dans la base de faits.
Par contre, les faits de la conclusion provoquent l'ajout d'un nouvel
élément dans cette base. Ainsi une règle dans un
système expert n'est pas aussi symétrique que l'implication
logique.
SI condition 1 ET
condition 2 ET
...
condition n
ALORS action 1
action 2
...
D'autres types de conditions et d'actions seront introduites.
Structuration des faits
Afin de décrire plus facilement des familles de propositions on
considérera des faits de la forme:
nom = valeur
Par analogie avec les systèmes informatiques traditionnels, on
parlera également de variable.
Avec une telle syntaxe la règle R4 cidessus devient:
SI état_démarreur = ne_fonctionne_pas ET
g_phares = faibles
ALORS probleme = batterie
L'avantage de cette technique est de pouvoir tester toute une famille
d'hypothèses à la fois: problème = batterie, problème
= court_circuit, problème = bobine, etc. en demandant au système
de chercher la valeur de 'problème'.
Les variables, du point de vue sémantique, pourront représenter
des objets, des attributs ou d'autres choses encore, par exemple:
* une variable peut indiquer qu'un procédé a été
utilisé:
calcul_intérêt_ok = 
* une variable peut indiquer le procédé à utiliser
calcul_intérêt = 
* une variable peut indiquer un résultat
intérêt = 6345.65
Certaines variables seront simples, lorsqu'elles ne pourront prendre qu'une
seule valeur. Elles seront multiples si elles peuvent accepter simultanément
plusieurs valeurs.
On distingue différents types de faits:
les faitsbut: ceux qui doivent être prouvés
par le système,
les faitsquestion: ceux qui sont introduits par l'utilisateur,
les faitssystème: qui sont internes au fonctionnement
du système.
Résumé: Un système expert (SE) est une
machine déductive, générale, exploitant une collection
d'unités de savoir-faire séparées, sujettes à
évolution, pour résoudre un problème. Un système
expert assure également les fonctions complémentaires de
dialogue, apprentissage, explication de son comportement. Les composants
de base des SE sont:
1) Base de faits: Ensemble des propositions connues du système.
C'est une mémoire de travail dont le contenu dépend du problème
traité.
2) Base de connaissance: Ensemble de règles ( P-> Q ) qui mettent
en relation des faits dans un domaine donné.
3) Moteur d'inférence: Programme qui combine les faits établis
et les règles pour établir de nouveaux faits.