Système Expert
Contenu d’un système expert :
- Une base de règles (connaissances de l’expert).
- Une base de faits (connaissances du système sur un cas précis).
- Un moteur d’inférence pour appliquer les règles.
- Une interface utilisateur.
Interface utilisateur | Moteur | Bases de règles |
Bases de faits |
Base de règles :
Toujours sous la forme : SI (ensemble de conditions) ALORS nouvelle connaissance
Ensemble de conditions = les prémisses.
Nouvelle connaissance = conclusion.
Plusieurs premisses sont possibles avec le terme l’opérateur ET
Exemples :
- IF (Rectangle AND Losange THEN Carré
- IF (Parallélogramme AND Cotes Egaux=4(Combien la figure a-t-elle de côtés égaux ?)) THEN Losange
- IF (« patient a mal ») AND (« patient a + de 40 ans ») THEN …
- IF (symptôme = douleur) AND (âge ≥ 40) THEN …
- IF (?x a mal) ET (?x a l’âge ?n) AND (?n ≥ 40) THEN …
Il est aussi possible d’ajouté d’autres opérateurs tel que : NOT OR XOR…
Bases de faits :
Les prémisses d’une règle peuvent être de deux types :
- Fournies par l’utilisateur = entrées.
- Application de règles = faits inférés.
Ces prémisses sont enregistrées dans une base de faits.
La base de règles et la base de faits constituent la base de connaissance du système.
Moteur d’inférence :
- Il permet de sélectionner et d’appliquer les règles.
- Ajoute ou sélectionne des faits.
- Doit savoir quand un but est atteint ou si il ne le sera jamais.
- Fonctionne de 3 façons, 3 types d’inférences :
- Chainage avant
- Chainage arrière
- Chainage Mixte
Chainage avant : (dirigé par les données)
- On part des données disponibles en base de faits.
- On va prendre chaque fait et on va examiner toutes les règles où ce fait apparaît en prémisse.
- On va voir pour chacune de ces règles si elle est déclenchée. Si elle l’est, on l’applique et on rajoute la conclusion à la base de faits.
Le moteur explore toutes les possibilités, jusqu’à trouver le fait recherché ou jusqu’à ne plus pouvoir appliquer de nouvelle règles.
Algorithme du chainage avant :
- BF = base de faits
- BR = base de règles
- F = proposition à vérifier
DEBUT TANT QUE F n'est pas dans BF ET qu'il existe dans BR une règle applicable FAIRE Prendre la première règle applicable R BR = BR - R (désactivation de R) BF = BF union conclusion(R) (déclenchement de la règle R, sa conclusion est rajoutée à la base de faits) FIN TANT QUE SI F appartient à BF ALORS F est établi (succès) SINON F n'est pas établi (échec) FIN
Chainage arrière : (dirigé par le but)
- On part des faits qu’on souhaite obtenir
- On cherche une règle qui permette d’obtenir ce fait
- On ajoute toutes les prémisses de cette règle dans les nouveaux buts à atteindre
- On recommence jusqu’à ce que les nouveaux buts soient présents dans la base de faits.
- Si un fait est absent ou prouvé comme faux, alors on sait que la règle ne peut pas s’appliquer.
Ce type d’inférence utilise un mécanisme de backtracking pour passer à une nouvelle règle.
Si plus aucune règle ne peut mener au but, alors celui-ci est considéré comme faux.
Algorithme du chainage arrière :
- BF = base de faits
- BR = base de règles
- F = proposition à vérifier
- ER = esemble de règles
Fonction ChainageArriere(BR, BR, F) DEBUT SI (F est dans BF) RETOUR SINON Construire ER de R, telle que conclusion(F) FAIRE valide = VRAI R = premier element de ER ER = ER - R POUR TOUT Fr dans premisse(R) valide = valide ChainageArriere(BF, BR, Fr) FIN POUR TANT QUE valide ou ER != NULL Si valide BF = BF + F ChainageArriere(BF, BR, F) FIN