Système Expert
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 1
Objectifs
● Définir expert, connaissance
● Représenter les connaissances
● Maitriser les acteurs de développement d’un système expert
● Maitriser la structure d’un système expert
● Connaitre les composants d’un système expert
● Maitriser les techniques d’inférence
● Maitriser les caractéristiques des systèmes à base de règles
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 2
Pourquoi les systèmes experts?
• Un système expert est un système informatique qui utilise les
connaissances d’un expert pour obtenir une performance de
décision élevée dans un domaine spécifique.
• Un des premiers systèmes experts développé est MYCIN, à
l’université Stanford, pour aider les médecins à diagnostiquer les
infections sanguines et proposer des antibiotiques avec dosage
approprié au poids du patient. Des tests ont démontré que ce
système est aussi précis que des experts humains.
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 3
Pourquoi les systèmes experts?
• Il y a plusieurs raisons pour lesquelles une entreprise a
besoin d’un système expert (SE):
1. Des experts dans une entreprise peuvent partir.
2. Un SE permet
a. de conserver des connaissances.
b. de documenter des connaissances.
c. de former et d’éduquer des nouveaux employés.
d. un transfert rapide et peu coûteux des connaissances.
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 4
Expert
• Qu’est-ce qu’un expert?
1) Un expert est une personne qui a des connaissances
spéciales, un jugement, une expérience et une méthode et
une capacité d’appliquer ces talents pour donner des conseils
et résoudre des problèmes.
2) C’est la responsabilité de l’expert de donner les
connaissances nécessaires pour que le système expert fasse
sa tâche.
3) Un expert sait quelle information est importante et comprend
les relations entre les différents faits.
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 5
Expert
• Il n’existe pas de définition standard d’un expert.
Cependant, la performance de décision et le niveau de
connaissances sont des critères typiques.
• Concepts généraux:
1. Un expert doit être capable de résoudre un problème et avoir
un niveau de performance significativement plus élevé que la
moyenne.
2. Un expert est relatif: un expert dans une entreprise n’est pas
nécessairement un expert dans une autre entreprise.
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 6
Expert
• Un expert est typiquement capable de:
1. Reconnaître et formuler le problème
2. Résoudre le problème rapidement et correctement
3. Expliquer la solution
4. Apprendre avec l’expérience
5. Restructurer des connaissances
6. Briser les règles si nécessaire
7. Déterminer la pertinence
8. Être conscient de ses limites
10/17/16
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 7
Expertise
Comment définir l’expertise?
1) C’est la connaissance spécifique à une tâche que connaît
l’expert.
2) Le niveau d’expertise détermine la performance d’une
décision.
3) L’expertise est souvent obtenue par la formation, la lecture et
l’expérience.
10/17/16
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 8
Connaissances
● Les connaissances sont une compréhension théorique ou
pratique d’un domaine particulier
● Les connaissances représentent la somme de ce qui est
connu.
● Ceux qui possèdent des connaissances sont considérés
comme des experts.
● Codification facile avec les règles si …. alors
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 9
Représentation des connaissances
● Un langage de programmation est une façon de représenter
des connaissances.
● Connaissances procédurales:
– « comment »
– Connaissances sur comment accomplir une tâche
● Connaissances déclaratives:
– « qu’est-ce que c’est »
– La capacité de formuler ou décrire quelque chose
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 10
Représentation des connaissances
● On utilise des règles:
– Une structure IF … THEN (si … alors) qui relie de
l’information ou des faits de la partie IF avec l’action dans la
partie THEN.
• Exemple: IF « lumière est verte » THEN « action
est go »
• Exemple: IF « lumière est rouge » THEN « action
est stop »
IF « condition est vraie » THEN « faire quelque action ».
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 11
Représentation des connaissances
● Une règle est constituée de deux parties:
– 1. Antécédent: la partie IF
– 2. Conséquence: la partie THEN
●
IF « antécédent » THEN « conséquence »
– Une règle est déclenchée lorsque l’antécédent est vrai et que la
partie conséquence est exécutée.
● Une règle peut avoir plusieurs antécédents:
– Conjonction AND, disjonction OR, ou une combinaison des deux
● Une conséquence peut avoir plusieurs parties:
IF « antécédent » THEN « conséquence 1 »
« conséquence 2 »
« conséquence 3 » …
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 12
Représentation des connaissances
● Un antécédent est constitué de:
– Un objet (objet linguistique)
– Une valeur
– Ex: l’objet linguistique « lumière » peut prendre la valeur
« rouge » ou « verte »
● L’objet et sa valeur sont liés par un opérateur
– Identifie l’objet et assigne la valeur
– Ex: is, are, is not, are not (est, n’est pas, etc...)
– Ex: opérateurs mathématiques: < , >, =, …
● Les conséquences ont la même structure que les antécédents.
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 13
Acteurs de développement d’un SE
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 14
Acteurs de développement d’un SE
● Expert de domaine
– Personne ayant des connaissances et compétences capable
de résoudre des problèmes dans un domaine spécifique.
– L’expert doit être capable de communiquer ses
connaissances, doit vouloir participer au développement du
système expert, et doit avoir le temps pour le faire.
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 15
Acteurs de développement d’un SE
● Ingénieur de connaissances
– Capable de concevoir, construire et tester un système expert
– L’ingénieur choisit les tâches appropriés du système expert.
– Il (ou elle) questionne l’expert pour trouver comment solutionner le
problème.
– L’ingénieur est responsable de choisir la méthode de solution
(logique floue, règles, etc...).
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 16
Acteurs de développement d’un SE
● Programmeur
– Développe des structures de représentation des
connaissances et données.
– Doit avoir des connaissances dans des langages de
programmation symboliques, et dans des langages
conventionnels.
● Directeur de projet
– La personne en charge du projet.
● Utilisateur (« end-user »)
– Le système expert doit satisfaire aux exigences de tous les
utilisateurs.
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 17
Architecture d’un syst me base de r gles
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 18
è
à
è
Composantes d’un SBR
● Base de connaissances et les faits
– les connaissances utiles au problème : le savoir d’un domaine
applicable plusieurs probl mes
– Les faits: les donn es particuli res qui caract risent chaque
probl me posé
● La base de r gles
– les donn es stock es d’un SBR
– la repr sentation du savoir d’un domaine d’application
– le fonctionnement du SBR est centr sur cette base
– la richesse de son contenu en d termine la performance
● La m moire de travail
- zone de m moire qui sert de tampon au MI
- trace des d ductions, des buts interm diaires
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 19
è
é
é
é
é
é
à
è
é
é
è
è
é
é
é
é
Composantes d’un SBR
● Moteur d’inférence (MI)
– Programme sp cifique aux SBR
– Coeur de tout SBR il:
1. Prend connaissance des requ tes de l’usager entrepos es dans la base de
faits.
2. Répond aux questions de l’usager : il s lectionne et applique les r gles
appropri es contenues dans la base de connaissances.
3. G n re une trace de ses actions qu’il conserve dans la base de faits.
– MI a deux modes de raisonnement
1. cha nage avant: en partant de faits consid r s vrais par hypoth se,
il en d duit les conclusions possibles
2. cha nage arri re: en partant d’une conclusion d montrer, il
d couvre les conditions qui doivent tre r alis es pour que la
conclusion soit v rifi e.
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 20
é
é
î
î
é
é
é
è
é
é
é
ê
é
ê
é
é
é
é
à
é
é
è
è
Composantes d’un SBR
● Moteur d’explication
– Explique le raisonnement et justifie la solution proposée
– Fournit des réponses aux questions suivantes
1. Pourquoi? Le module donne les raisons qui ont conduit le SBR à poser telle
question à l’usager (justification).
3. Comment? Il énumère les arguments (les règles) invoqués pour déduire
telle conclusion (justification).
5. Quoi si? Il fournit les déductions possibles si telle réponse était fournie par
l’usager (anticipation).
7. Quoi? Il produit une liste des résultats du raisonnement depuis que le
dialogue est amorcé avec l’usager (sommaire).
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 21
Composantes d’un SBR
● Interface utilisateur
– assure la communication avec le SBR
– module subordonn au moteur d’inf rence
– module pose des questions l’usager
– interfaces graphiques ou interfaces reconnaissant des requ tes en
langue naturelle
● Interface expert
- diteur de r gles pour initialiser ou modifier le contenu de la base,
- diteur de dialogue avec l’usager
- analyseur ou un compilateur de base pour traduire les connaissances des
experts
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 22
é
é
è
é
à
é
ê
Déroulement d’une session de travail dans un SBR
● Les principales fonctionnalités du SBR
1. Sélection d’une base de règles. – Il s’agit d’indiquer au système quelle
base doit être chargée en mémoire.
2. Sélection du mécanisme d’inférence. – La plupart des MI supportent des
variantes des deux modes d’inférence de base : le chaînage avant et le
chaînage arrière.
3. Initialisation de la base de faits. – L’usager pose le problème au SBR.
4. Enclenchement du moteur d’inférence.
5. Dialogue SBR-usager. – Le moteur d’inférence poursuit son mécanisme de
raisonnement.
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 23
Terminologie
● Une règle est activée lorsque l’antécédent est VRAI.
● Une règle est déclenchée lorsque la conséquence se
produit.
● Si une règle n’est pas déclenchée:
– L’antécédent est faux
– La règle n’a pas été choisie
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 24
Techniques d’inférence
● Moteur d’inférence
– Compare les règles dans la base de connaissances avec les
faits dans la base de données.
– Lorsqu’une condition égale un fait, la règle est déclenchée et
l’action est exécutée.
– Une action peut modifier la base de données en ajoutant de
nouveaux faits.
● Chaîne d’inférence
– Indique comment le système expert applique des règles pour
atteindre une conclusion.
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 25
Règles de chaînage
IF A and B
THEN F
IF C and D and E
THEN K
IF F and K
THEN G
IF J and G
THEN But
On peut faire un chaînage avant vers le but ou commencer au
but et essayer de le prouver : chaînage arrière.
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 26
Chaînage
● La différence entre le chaînage avant et le chaînage arrière:
– Supposons qu’on veut prendre l’avion de Douala à Ngaoundéré. Il
n’y a pas de vol direct.
– On peut soit commencer en cherchant tous les vols qui partent de
Douala et noter leur destination. Continuer ce processus jusqu’à ce
qu’on trouve un vol qui atterrisse à Ngaoundéré. C’est le chaînage
avant.
– On peut commencer de Ngaoundéré et chercher tous les vols qui y
arrivent. On trouve la ville de départ de tous ces vols. On continue
le processus jusqu’à ce qu’on trouve une ville dont le point de
départ est Douala. C’est le chaînage arrière (on commence du but).
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 27
Chaînage avant
● Raisonnement dirigé par les données
– On commence par des données connues et on procède de
l’avant avec ces données
● Seul la règle la plus élevée est déclenchée
● Les règles déclenchées ajoutent des nouvelles données dans la
base de données
● Une règle peut seulement être activée une fois
● Le cycle s’arrête lorsqu’il n’y a plus de règles à déclencher.
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 28
Chaînage avant: exemple
● Règle 1: IF Y AND D THEN Z
● Règle 2: IF X AND B AND E THEN Y
● Règle 3: IF A THEN X
● Règle 4: IF C THEN L
● Règle 5: IF L AND M THEN N
● La base de données comprend initialement les faits A, B, C, D et E
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 29
Chaînage avant: exemple
10/17/16
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 30
Chaînage arrière
● Raisonnement dirigé par le but
● Le système a un but, et le moteur d’inférence essaie de
trouver des preuves pour le prouver.
● On cherche dans la base de connaissances pour trouver les
règles qui mènent au but.
– Des règles qui ont le but dans leur partie « action »
● Si la condition d’une telle règle est dans la base de
données, la règle est déclenchée et le but est prouvé.
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 31
Chaînage arrière: exemple
10/17/16
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 32
Chaînage arrière
● Remarquez que 3 règles (R1, R2, R3) ont été déclenchée dans le
chaînage arrière, versus 4 règles (R1, R2, R3, R4) dans le
chaînage avant pour le même exemple.
● Des systèmes experts réels ont des centaines de règles; il faut
éviter le plus possible de déclencher des règles de surplus afin
d’accélérer le système.
10/17/16
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 33
chaînage avant vs chaînage arrière
● Un raisonnement basé sur les données (chaînage avant) est
approprié lorsqu’il existe plusieurs buts acceptables, peu de
faits et un seul état initial.
– Les faits requis sont disponibles
– Il est difficile de formuler un but à vérifier
● L’inférence à base de but (chaînage arrière) est approprié
lorsque:
– Les données sont acquises pendant le processus
– Il y a plusieurs règles à appliquer
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 34
Règles de résolution de conflits
● Utilise la première règle dont la condition est satisfaite
– L’ordre des règles est importante.
● On peut assigner des priorités aux règles et utiliser celle avec la
plus haute priorité.
– Mais il faut décider de la priorité.
● Utiliser les règles les plus spécifiques
– Celle avec le plus de détails ou contraintes
● Utiliser la règle qui utilise la donnée la plus récente
● Choisir une règle aléatoirement
● Construire plusieurs base de données et déclencher les règles en
parallèle
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 35
Chaînage mixte
● Comme son nom l’indique, le chaînage mixte combine les
algorithmes de chaînage avant et de chaînage arrière.
Algorithme 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
(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
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 36
Exemple: Système Expert Ville
• R1 : Si belle ville et très bon restaurants
alors ville méritant le voyage.
• R2 : Si ville historique
alors ville méritant le voyage.
• R3 : Si autochtones accueillants et traditions folkloriques
alors ville méritant le voyage.
• R4 : Si monuments et végétation abondante
alors belle ville.
• R5 : Si tradition culinaire
alors bons restaurants.
• R6 : Si restaurants avec poissons braisés
alors très bons restaurants.
• R7 : Si restaurants avec soya
alors très bons restaurants.
• R8 : Si parcs et ville ancienne
alors ville historique.
• R9 : Si forêt et bord de mer
alors autochtones accueillants.
• R10 : Si paysages verdoyants et routes praticables
alors végétation abondante.
Base de faits = {paysages verdoyants, routes praticables,
monuments, restaurants avec soya, ville ancienne}
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 37
Exemple: Système Expert Ville
● Completer la base de faits ou de connaissances
- R7 : Si restaurants avec soya
alors très bons restaurants.
- R10 : Si paysages verdoyants et route praticables
alors végétation abondante.
Base de faits = {paysages verdoyants, route praticables,
monuments, restaurants avec soya, ville ancienne,
très bon restaurants, végétation abondante}
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 38
Exemple: Système Expert Ville
● A partir de la base de règles "ville" ainsi que de la base de faits associée,
on cherche à vérifier si la ville est une ville qui mérite le voyage.
● Construire la solution sous forme d'un graphe.
restaurants avec soya
paysages verdoyants routes praticables
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 39
Avantages des systèmes à base de règles
● Représentation naturelle des connaissances
● Structure uniforme
● Séparation des connaissances du traitement
● Peut opérer avec des connaissances incomplètes ou
incertaines, mais il faut définir
– un facteur de certitude,
– une représentation l’incertitude par des chiffres (cf 0.1, ou cf 0.9),
– un niveau de confiance.
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 40
Limites d’un SBR
● Relations parfois opaques entre les règles, surtout quand il
y en a beaucoup.
– Difficile de comprendre l’interaction entre les différentes règles.
● Stratégie de recherche inefficace.
– Le système passe au travers de toutes les règles; pour des systèmes
complexes, ceci peut être très lent.
● Incapacité d’apprendre.
– Un expert humain sait quand « briser les règles »; un système
expert ne peut pas le faire. L’ingénieur doit entrer des nouvelles
règles ou en modifier; le système ne peut pas le faire de lui-même.
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 41
Exemple: THERMOSTAT
● On considère ici un système pour régler automatiquement la
température dans un édifice de bureaux.
● Le système a 3 entrées {mois, jour, heure} et 4 variables {saison,
aujourd’hui, opération, thermostat} dont une est la sortie
{thermostat}.
● Les entrées peuvent prendre les valeurs suivantes:
– Mois: {janvier, février, mars, avril, mai, juin,
juillet, août, septembre, octobre, novembre,
décembre}
– Jour: {lundi, mardi, mercredi, jeudi, vendredi,
samedi, dimanche}
– Heure: {entre 9h et 17h, avant 9h, après 17h}
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 42
Exemple: THERMOSTAT
● Le but est de déterminer la saison, le jour et l’heure afin de
régler la température.
● Les variables prennent les valeurs suivantes:
– Saison: {petite saison sèche, petite saison de pluie,
grande saison sèche, grande saison de pluie}
– Aujourd’hui: {jour de travail, weekend}
– Opération:{pendant les heures de travail, pas pendant
les heures de travail}
● Il faut 17 règles pour déterminer le réglage du thermostat
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 43
Exemple: THERMOSTAT avec 17 règles
if (jour == "Lundi" | jour == "Mardi" | jour == "Mercredi" | jour == "Jeudi" | jour == "Vendredi") { aujourdhui
= "jour_de_travail"}
if (jour == "Samedi" | jour == "Dimanche") { aujourdhui = "weekend" }
if (aujourdhui == "jour_de_travail" & heure == "entre9et5") {operation = "heure_de_travail"}
if (aujourdhui == "jour_de_travail" & heure == "avant9") {operation = “pas_heure_de_travail"}
if (aujourdhui == "jour_de_travail" & heure == "après5") {operation = "pas_heure_de_travail"}
if (aujourdhui == "weekend") {operation = "pas_heure_de_travail"}
if (mois == "Janvier" | mois == "Février" | mois == "Mars") {saison = “grande_saison_sèche”}
if (mois == "Avril" | mois == "Mai" | mois == "Juin") {saison = "petite_saison_sèche"}
if (mois == "Juillet" | mois == "Août" | mois == "Septembre") {saison = “grande_saison_de_pluie"}
if (mois == "Octobre" | mois == "Novembre" | mois == "Décembre") {saison = "petite_saison_de_pluie"}
if (saison == "petite_saison_sèche" & operation == "heure_de_travail") {thermostat = "20 degrés"}
if (saison == "petite_saison_sèche" & operation == "pas_heure_de_travail") {thermostat = "15 degrés"}
if (saison == "grande_saison_de_pluie" & operation == "heure_de_travail") {thermostat = "24 degrés"}
if (saison == "grande_saison_de_pluie" & operation == "pas_heure_de_travail") {thermostat = "27 degrés"}
if (saison == "petite_saison_de_pluie" & operation == "heure_de_travail") {thermostat = "20 degrés"}
if (saison == "petite_saison_de_pluie" & operation == "pas_heure_de_travail") {thermostat = "16 degrés"}
if (saison == "grande_saison_sèche" & operation == "heure_de_travail") {thermostat = "18 degrés"}
if (saison == "grande_saison_sèche" & operation == "pas_heure_de_travail") {thermostat = "14 degrés"}
SJP4 GIT-RT-SE, S1, 2024/2025 Prof. Dr.-Ing. Paul Dayang 44