Vous êtes sur la page 1sur 45

GIND5439

Systmes Intelligents

Chapitre 2: Systmes base de rgles


Contenu du chapitre
Dfinition de connaissances
Reprsentation des connaissances
Les rgles
Chanage avant et arrire
Rsolution de conflits
Avantages et dsavantages

GIND5439 Gabriel Cormier, Universit de Moncton 2


Connaissances
Les connaissances sont une comprhension
thorique ou pratique dun domaine
particulier.
Les connaissances reprsentent la somme
de ce qui est connu.
Ceux qui possdent des connaissances sont
considrs comme des experts.

GIND5439 Gabriel Cormier, Universit de Moncton 3


Connaissances
On a dj vu comment classifier les experts
et leur expertise.
Cependant, on doit tre capable de
reprsenter cette expertise sous forme
textuelle ou graphique.
Une mthode bien connue est lutilisation de
rgles.

GIND5439 Gabriel Cormier, Universit de Moncton 4


Reprsentation des connaissances
Un langage de programmation est une faon
de reprsenter des connaissances.
Connaissances procdurales:
comment
Connaissances sur comment accomplir une tche
Connaissances dclaratives:
quest-ce que cest
La capacit de formuler ou dcrire quelque chose

GIND5439 Gabriel Cormier, Universit de Moncton 5


Reprsentation des connaissances
On utilise des rgles:
Une structure IF THEN qui relie de linformation
ou des faits de la partie IF avec laction dans la
partie THEN.
Ex: IF lumire est verte THEN action est go
Ex: IF lumire est rouge THEN action est stop
IF condition est vraie
THEN faire quelque action .

GIND5439 Gabriel Cormier, Universit de Moncton 6


Reprsentation des connaissances
Une rgle est constitue de deux parties:
1. Antcdent: la partie IF
2. Consquence: la partie THEN
IF antcdent THEN consquence
Une rgle est dclenche lorsque
lantcdent est vrai et que la partie
consquence est excute.

GIND5439 Gabriel Cormier, Universit de Moncton 7


Reprsentation des connaissances
Une rgle peut avoir plusieurs antcdents:
Conjonction AND
Disjonction OR
Ou une combinaison des deux
Une consquence peut avoir plusieurs parties:
IF antcdent THEN consquence 1
consquence 2
consquence 3
Il est prfrable de ne pas mler des conjonctions et
disjonctions dans la mme rgle.

GIND5439 Gabriel Cormier, Universit de Moncton 8


Reprsentation des connaissances
Un antcdent est constitu de:
Un objet (objet linguistique)
Une valeur
Ex: lobjet linguistique lumire peut prendre la valeur
rouge ou verte
Lobjet et sa valeur sont lis par un oprateur
Identifie lobjet et assigne la valeur
Ex: is, are, is not, are not (est, nest pas, etc)
Ex: oprateurs mathmatiques: < , >, =,
Les consquences ont la mme structure que les
antcdents.
GIND5439 Gabriel Cormier, Universit de Moncton 9
Reprsentation des connaissances
Les rgles peuvent reprsenter:
Des relations
Des recommandations
Des directives
Des stratgies
Des heuristiques
Heuristique: Mthode de recherche empirique ayant
recours aux essais et erreurs pour la rsolution de
problmes. [Office de la langue franaise, 2000]

GIND5439 Gabriel Cormier, Universit de Moncton 10


quipe de dveloppement dun SE
quipe de dveloppement
dun systme expert Directeur
de projet

Expert
Ingnieur Programmeur
de domaine

Systme Expert

Utilisateur

GIND5439 Gabriel Cormier, Universit de Moncton 11


quipe de dveloppement dun SE
Expert de domaine
Personne ayant des connaissances et comptences capable de
rsoudre des problmes dans un domaine spcifique.
Lexpert doit tre capable de communiquer ses connaissances,
doit vouloir participer au dveloppement du systme expert, et
doit avoir le temps pour le faire.
Ingnieur de connaissances
Capable de concevoir, construire et tester un systme expert

Lingnieur choisit les tches appropris du systme expert.

Il (ou elle) questionne lexpert pour trouver comment solutionner


le problme.
Lingnieur est responsable de choisir la mthode de solution
(logique floue, rgles, algorithme gntique, etc).

GIND5439 Gabriel Cormier, Universit de Moncton 12


quipe de dveloppement dun SE
Programmeur
Dveloppe des structures de reprsentation des
connaissances et donnes.
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 systme expert doit satisfaire aux exigences
de tous les utilisateurs.
GIND5439 Gabriel Cormier, Universit de Moncton 13
Structure dun systme expert
Mmoire long-terme Mmoire court-terme

Rgle de
Fait
production

Raisonnement

Conclusion Premier modle,


(Newell & Simon, 1972)

GIND5439 Gabriel Cormier, Universit de Moncton 14


Composantes dun systme expert base
de rgles
Base de connaissances Base de donnes

Rgles Faits

Moteur dinfrence

Amnagement
dexplication

Interface utilisateur

Utilisateur

GIND5439 Gabriel Cormier, Universit de Moncton 15


Composantes dun systme expert base
de rgles
Base de connaissances
Contient les connaissances utiles au problme
On appelle aussi la base des rgles
Base de donnes (database)
Contient les faits ou donnes vrifier contre les
conditions
Reprsente ltat actuel du monde
Moteur dinfrence
Interprte les rgles
Fait le raisonnement pour atteindre une solution
Lien entre les connaissances et les donnes

GIND5439 Gabriel Cormier, Universit de Moncton 16


Composantes dun systme expert base
de rgles
Amnagement dexplication
Explique le raisonnement et justifie la solution
propose
Interface utilisateur

GIND5439 Gabriel Cormier, Universit de Moncton 17


Composantes additionnelles
Interface Externe
Donnes externes, fichiers, programmes dans
des langages conventionnels
Interface du dveloppeur
diteur de la base de connaissances, outils de
dbogage, interface entre/sortie.

GIND5439 Gabriel Cormier, Universit de Moncton 18


Systme expert
Base de connaissances Base de donnes
Base de
donnes Programmes
Rgles externe externes
Faits

Moteur dinfrence

Amnagement Interface
dexplication dveloppeur

Interface utilisateur
Ingnieur

Utilisateur Expert

GIND5439 Gabriel Cormier, Universit de Moncton 19


Caractristiques dun systme expert
Construit pour performer un niveau dexpert
humain dans un domaine prcis, spcialis.
Performance de haute qualit
Solutions rapides
Utilisation de heuristiques pour guider le raisonnement
Capable dexplications
Le systme est capable de rviser son raisonnement et
expliquer des dcisions
Utilise un raisonnement symbolique
Peut fonctionner avec des donnes incompltes
Peut faire des erreurs!
Connaissances spares du processus

GIND5439 Gabriel Cormier, Universit de Moncton 20


Comparaisons
Expert Humain Systme Expert Programme conventionnel
Utilise des connaissances sous Traite des connaissances exprimes Traite des donnes et utilise des
forme de heuristique pour comme rgles, et raisonnement algorithmes pour rsoudre des
rsoudre des problmes dans symbolique pour rsoudre des problme numriques gnraux
un domaine prcis problmes dans un domaine prcis
Connaissances compiles Connaissances et traitement Aucune sparation des
dans le cerveau compltement spars connaissances et structures de
contrle
Capable dexpliquer un Peut suivre les rgles dclenches Aucune explication
raisonnement et fournir des et expliquer les conclusions
dtails
Utilise un raisonnement Permet un raisonnement inexacte, Fonctionne seulement avec des
inexacte, peut fonctionner avec peut fonctionner avec des donnes donnes compltes
des donnes incompltes incompltes
Peut faire des erreurs quand Peut faire des erreurs quand Aucune solution lorsque les
linformation est incomplte linformation est incomplte donnes sont incompltes

Qualit augmente avec la Qualit augmente en ajoutant des Qualit augmente en modifiant le
pratique. Lent, inefficace et rgles ou en ajustant. Changement code. Changements difficiles.
dispendieux sont faciles.

GIND5439 Gabriel Cormier, Universit de Moncton 21


Terminologie
Une rgle est active lorsque lantcdent
est VRAI.
Une rgle est dclenche lorsque la
consquence se produit.
Si une rgle nest pas dclenche:
Lantcdent est faux
La rgle na pas t choisie

GIND5439 Gabriel Cormier, Universit de Moncton 22


Techniques dinfrence
Moteur dinfrence
Compare les rgles dans la base de
connaissances avec les faits dans la base de
donnes.
Lorsquune condition gale un fait, la rgle est
dclenche et laction est excute.
Une action peut modifier la base de donnes en
ajoutant de nouveaux faits.
Chane dinfrence
Indique comment le systme expert applique des
rgles pour atteindre une conclusion.

GIND5439 Gabriel Cormier, Universit de Moncton 23


Chanage de rgles
J
IF A and B THEN F
IF C and D A
and E THEN K But
IF F and K THEN G B F
IF J and G THEN But
C G

D
K
E

On peut faire un chanage avant vers le but ou commencer au but et essayer


de le prouver : chanage arrire.

GIND5439 Gabriel Cormier, Universit de Moncton 24


Chanage
La diffrence entre le chanage avant et le chanage
arrire:
Supposons quon veut prendre lavion de Moncton
Athnes. Il ny a pas de vol direct.
On peut soit commencer en cherchant tous les vols qui
partent de Moncton et noter leur destination. Continuer ce
processus jusqu ce quon trouve un vol qui atterrisse
Athnes. Cest le chanage avant.
On peut commencer dAthnes et chercher tous les vols
qui y arrivent. On trouve la ville de dpart de tous ces vols.
On continue le processus jusqu ce quon trouve une ville
dont le point de dpart est Moncton. Cest le chanage
arrire (on commence du but).

GIND5439 Gabriel Cormier, Universit de Moncton 25


Chanage avant
Raisonnement dirig par les donnes
On commence par des donnes connues et on
procde de lavant avec ces donnes
Seul la rgle la plus leve est dclenche
Les rgles dclenches ajoutent des
nouvelles donnes dans la base de donnes
Une rgle peut seulement tre active une
fois
Le cycle sarrte lorsquil ny a plus de rgles
dclencher.
GIND5439 Gabriel Cormier, Universit de Moncton 26
Chanage avant
Comment fonctionne-t-il?
En cycles
Les faits dans la mmoire sont mises jour avec
de linformation du cycle prcdent.
Les rgles sont examines et toutes les rgles
dont lantcdent est vrai sont dclenches
Une collection de rgles dclenches est appel
lensemble de conflits.
Le conflit doit tre rsolu puisque seulement une
rgle peut tre dclenche.

GIND5439 Gabriel Cormier, Universit de Moncton 27


Chanage avant: exemple
Rgle 1: IF Y AND D THEN Z
Rgle 2: IF X AND B AND E THEN Y
Rgle 3: IF A THEN X
Rgle 4: IF C THEN L
Rgle 5: IF L AND M THEN N
La base de donnes comprend initialement
les faits A, B, C, D et E

GIND5439 Gabriel Cormier, Universit de Moncton 28


Chanage avant: exemple
A X
Cycle 1: on passe les rgles jusqu ce quon en trouve
une dont lantcdent est vrai. R3 et R4 sont donc
B Y
actives. X et L sont maintenant dans la base de
Z
donnes.
E D
Cycle 2: On repasse les rgles qui nont pas t
dclenches au cycle prcdent. R2 est donc
R1: Y & D Z
dclenche, puisque X est dans la base de
R2: X & B & E Y
donnes. Y est maintenant dans la base de
R3: A X
donnes.
R4: C L
R5: L & M N Cycle 3: On repasse les rgles qui nont pas t
actives. R1 est dclenche, et alors le but, Z, est
Donnes: A, B, C, D, E
activ.

GIND5439 Gabriel Cormier, Universit de Moncton 29


Chanage avant
On rcolte de linformation, puis infrence
Plusieurs rgles peuvent tre excutes qui
nont rien faire avec le but.
Nest pas ncessairement efficace
Lutilisateur nest jamais demand pour de
linformation additionnelle.

GIND5439 Gabriel Cormier, Universit de Moncton 30


Chanage arrire
Raisonnement dirig par le but
Le systme a un but, et le moteur dinfrence essaie
de trouver des preuves pour le prouver.
On cherche dans la base de connaissances pour
trouver les rgles qui mnent au but.
Des rgles qui ont le but dans leur partie action
Si la condition dune telle rgle est dans la base de
donnes, la rgle est dclenche et le but est
prouv.

GIND5439 Gabriel Cormier, Universit de Moncton 31


Chanage arrire
Comment fonctionne-t-il?
En cycles
Avec une pile ( stack )
On cherche des sous-buts pour prouver des
conditions
On continue la pile jusqu ce quon trouve
aucune rgle qui peut prouver un sous-but.
Plus efficace lorsquon veut infrer un certain fait
Lutilisateur peut tre demand de donner des
informations additionnelles
GIND5439 Gabriel Cormier, Universit de Moncton 32
Chanage arrire: exemple
Cycle 1: on cherche une rgle o Z est dans laction.
A X On le trouve (R1); le fait D est dans la base de
donnes, mais il faut trouver Y.
B Y
Z Cycle 2: on cherche une rgle o Y est dans laction.
E D On le trouve (R2); les faits E et B sont dans la
base de donnes, mais pas X.

R1: Y & D Z Cycle 3: on cherche une rgle o X est dans laction.


R2: X & B & E Y On le trouve (R3); le fait A est dans la base de
R3: A X donnes.
R4: C L Cycle 4: On cherche A dans la base de donnes, et
R5: L & M N donc R3 est active: X est dans la base.
Donnes: A, B, C, D, E Cycle 5: On cherche dclencher R2; X, B et E sont
dans la base de donnes, alors Y est activ.
Cycle 6: On cherche dclencher R1; Y et D sont
dans la base; alors Z est prouv.

GIND5439 Gabriel Cormier, Universit de Moncton 33


Chanage arrire
Remarquez que 3 rgles ont t dclenche
dans le chanage arrire, versus 4 rgles
dans le chanage avant pour le mme
exemple.
Des systmes experts rels ont des
centaines de rgles; il faut viter le plus
possible de dclencher des rgles de surplus
afin dacclrer le systme.

GIND5439 Gabriel Cormier, Universit de Moncton 34


Chanage arrire vs chanage avant
Un raisonnement bas sur les donnes est
appropri lorsquil existe plusieurs buts
acceptables, peu de faits et un seul tat
initial.
Les faits requis sont disponibles
Il est difficile de formuler un but vrifier
Linfrence base de but est appropri
lorsque:
Les donnes sont acquises pendant le processus
Il y a plusieurs rgles appliquer.

GIND5439 Gabriel Cormier, Universit de Moncton 35


Rgles de rsolution de conflits
Utilise la premire rgle dont la condition est satisfaite
Lordre des rgles est importante.

On peut assigner des priorits aux rgles et utiliser celle avec la


plus haute priorit.
Mais il faut dcider de la priorit.

Utiliser les rgles les plus spcifiques


Celle avec le plus de dtails ou contraintes

Utiliser la rgle qui utilise la donne la plus rcente


Choisir une rgle alatoirement
Construire plusieurs base de donnes et dclencher les rgles
en parallle
Chercher pour la rgle la plus approprie.

GIND5439 Gabriel Cormier, Universit de Moncton 36


Mtaconnaissance
Des connaissances propos des connaissances
Connaissances propos de lutilisation et contrle
du domaine des connaissances
Reprsent par des mta-rgles
Une mta-rgle dtermine une stratgie pour
lutilisation de rgles spcifiques une tche.
Lingnieur donne ces rgles:
Ex: rgles fournies par un expert ont plus de priorit que
celle fournies par des non-experts.
Ex: rgles qui indiquent la mningite ont plus de priorit
que celle qui indiquent un rhume.

GIND5439 Gabriel Cormier, Universit de Moncton 37


Avantages des systmes base de rgles

Reprsentation naturelle des connaissances


Structure uniforme
Sparation des connaissances du traitement
Peut oprer avec des connaissances
incompltes ou incertaines
Facteur de certitude
Reprsente lincertitude par des chiffres (cf 0.1,
ou cf 0.9)
tablissement dun niveau de confiance.

GIND5439 Gabriel Cormier, Universit de Moncton 38


Problmes
Relations parfois opaques entre les rgles, surtout
quand il y en a beaucoup.
Difficile de comprendre linteraction entre les diffrentes
rgles.
Stratgie de recherche inefficace.
Le systme passe au travers de toutes les rgles; pour des
systmes complexes, ceci peut tre trs lent.
Incapacit dapprendre.
Un expert humain sait quand briser les rgles ; un
systme expert ne peut pas le faire. Lingnieur doit entrer
des nouvelles rgles ou en modifier; le systme ne peut
pas le faire de lui-mme.

GIND5439 Gabriel Cormier, Universit de Moncton 39


Exemple: THERMOSTAT
On considre ici un systme pour rgler
automatiquement la temprature dans un difice de
bureaux.
Le systme a 3 entres {mois, jour, heure} et 4
variables {saison, aujourdhui, opration, thermostat}
dont une est la sortie {thermostat}.
Les entres peuvent prendre les valeurs suivantes:
Mois: {janvier, fvrier, mars, avril, mai, juin, juillet, aot,
septembre, octobre, novembre, dcembre}
Jour: {lundi, mardi, mercredi, jeudi, vendredi, samedi,
dimanche}
Heure: {entre 9h et 17h, avant 9h, aprs 17h}

GIND5439 Gabriel Cormier, Universit de Moncton 40


Exemple: THERMOSTAT
Le but est de dterminer la saison, le jour et
lheure afin de rgler la temprature.
Les variables prennent les valeurs suivantes:
Saison: {t, automne, hiver, printemps}
Aujourdhui: {jour de travail, weekend}
Opration:{pendant les heures de travail, pas
pendant les heures de travail}
Il faut 17 rgles pour dterminer le rglage du
thermostat. (p.41 43 du manuel)

GIND5439 Gabriel Cormier, Universit de Moncton 41


Exemple: THERMOSTAT

Implantation HTML du systme expert THERMOSTAT

GIND5439 Gabriel Cormier, Universit de Moncton 42


Exemple: THERMOSTAT
videmment, limplantation HTML du
systme expert THERMOSTAT est assez
simple. Pour un systme rel, linterface
utilisateur serait bien plus lgant.
Limplantation ici ne ncessite quune
connaissance de base du HTML et du
Javascript.

GIND5439 Gabriel Cormier, Universit de Moncton 43


Exemple: THERMOSTAT
<body>
<h2>Questions:</h2>

<form name="frmES" action="">


Quel est le mois?: <select Quel est le jour?: <select name="selJour">
name="selMois"> <option value="Lundi">Lundi
<option value="Janvier">Janvier <option value="Mardi">Mardi
<option value="Fvrier">Fvrier <option value="Mercredi">Mercredi
<option value="Mars">Mars <option value="Jeudi">Jeudi
<option value="Avril">Avril <option value="Vendredi">Vendredi
<option value="Mai">Mai <option value="Samedi">Samedi
<option value="Juin">Juin <option value="Dimanche">Dimanche
<option value="Juillet">Juillet </select>
<option value="Aot">Aot <br>
<option value="Septembre">Septembre Quel est l'heure?: <select name="selHeure">
<option value="Octobre">Octobre <option value="entre9et5">Entre 9h et 17h
<option value="Novembre">Novembre <option value="avant9">Avant 9h
<option value="Dcembre">Dcembre <option value="aprs5">Aprs 5h
</select> </select>
<br> <br>
<input type="button" value="Calculer" onClick="SE();">
</form>
<h2>Rponse</h2>
<form name="frmReponse">
Le thermostat:<input type="text" name="edtReponse">
Code HTML pour linterface </form>
</body>

GIND5439 Gabriel Cormier, Universit de Moncton 44


Exemple: THERMOSTAT
<script language="JavaScript" type="text/javascript">

function SE(){ Code javascript du systme expert


var aujourdhui, operation, saison, thermostat;
Form = document.frmES;
mois = Form.selMois.options[Form.selMois.selectedIndex].value;
jour = Form.selJour.options[Form.selJour.selectedIndex].value;
heure = Form.selHeure.options[Form.selHeure.selectedIndex].value;

//***** Rgles ********

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 == "aprs5") {operation = "pas_heure_de_travail"}
if (aujourdhui == "weekend") {operation = "pas_heure_de_travail"}
if (mois == "Janvier" | mois == "Fvrier" | mois == "Mars") {saison = "hiver"}
if (mois == "Avril" | mois == "Mai" | mois == "Juin") {saison = "printemps"}
if (mois == "Juillet" | mois == "Aot" | mois == "Septembre") {saison = "ete"}
if (mois == "Octobre" | mois == "Novembre" | mois == "Dcembre") {saison = "automne"}
if (saison == "printemps" & operation == "heure_de_travail") {thermostat = "20 degrs"}
if (saison == "printemps" & operation == "pas_heure_de_travail") {thermostat = "15 degrs"}
if (saison == "ete" & operation == "heure_de_travail") {thermostat = "24 degrs"}
if (saison == "ete" & operation == "pas_heure_de_travail") {thermostat = "27 degrs"}
if (saison == "automne" & operation == "heure_de_travail") {thermostat = "20 degrs"}
if (saison == "automne" & operation == "pas_heure_de_travail") {thermostat = "16 degrs"}
if (saison == "hiver" & operation == "heure_de_travail") {thermostat = "18 degrs"}
if (saison == "hiver" & operation == "pas_heure_de_travail") {thermostat = "14 degrs"}

document.frmReponse.edtReponse.value = thermostat;
}
</script>

GIND5439 Gabriel Cormier, Universit de Moncton 45

Vous aimerez peut-être aussi