Vous êtes sur la page 1sur 12

Principes de fonctionnement des moteurs dinfrences

Le Moteur dInfrences (MI)


BCD Si A et B -> D Si A et non D -> non C BCP A vrai C faux B? D? Moteur dInfrences

Le MI dcide, en fonction de la situation courante (faits + buts de BCP), des rgles (BCD) utiliser et contrle leur enchanement
2

Interprtation dune rgle de production


Le Modus Ponens constitue la brique de base du raisonnement : P implique Q P |-----> Q Plus rarement, linterprtation du Modus Tollens : P implique Q Q |-----> P
3

Raisonnement dirig par les donnes vs par des buts [1/2]


La rgle Si homme(x) alors mortel(x) autorise quatre raisonnements possibles 1] Deux raisonnements dirigs par les donnes (MP) Je sais que Socrate est un homme ; comme tout homme est mortel, jen dduis que Socrate est mortel. (MT) Je sais que lordinateur est immortel ; comme tout homme est mortel, jen dduis que lordinateur nest pas un homme.
4

Raisonnement dirig par les donnes vs par des buts [2/2]


Si homme(x) alors mortel(x) 2] Deux raisonnements dirigs par des buts (obtenus en inversant le sens de lecture de la rgle) (MP) Je cherche une entit mortelle ; comme tout homme est mortel, je peux chercher un humain. Je cherche une entit qui ne soit pas humaine ; comme tout homme est mortel, il me suffit de chercher une entit non mortelle.

(MT)

Dclencheur de rgle
Ri si A et B alors C et D Hypothse : le MI raisonne en modus ponens A quelle condition peut-on utiliser la rgle Ri ? 1] Cas du raisonnement dirig par les donnes, ou chanage avant
Lorsque A et B sont des faits dj dduits {A, B} est le dclencheur chanage avant de Ri

2] Cas du raisonnement dirig par des buts, ou chanage arrire


Lorsque le systme cherche dmontrer soit le but C, soit le but D {C} et {D} sont deux dclencheurs chanage arrire de Ri 6

Rgle candidate
Dfinition : Ri est une rgle candidate ssi son dclencheur sapparie avec les faits ou buts de la mmoire de travail. Note : une rgle candidate nest pas forcment utilise des fins dinfrences

Fonctionnement en cycles du Moteur dInfrences


Un cycle de base en trois tapes

(1)

Slection des rgles candidates Opration de pattern matching


Choix dune rgle Mise en uvre dune stratgie

(2) (3)

Application de la rgle choisie Mise jour de la mmoire de travail 8

Exemple dinterprtation dune Base de rgles


BCD : Base de rgles
1. 2. 3. 4. 5. 6. 7. 8. B D C C D A B X et D et E F et G A et F A D E H X et C A

BCP : Mmoire de travail


B Vrai C Vrai H ?
9

En chanage avant
B, C, D, E, F, A, B, C, D, E, F, A 6 B, C, D, E, F 3 B, C, D, E 1 B, C, D 5 B, C 4 7 B, C, X 8 B, C, X, A 6 B, C, X, A,

10

En chanage arrire
D 4 C

2 H 6 A 3

G Impasse
C F 1 B D E C 4 5 C D 4 C

X 7 B

11

Chanage avant ou arrire ?


Cela dpend :
du domaine du type des rgles de production

Si les rgles sont spcifies et si peu de buts sont envisageables Chanage arrire
lintrt est de focaliser le raisonnement si le SE est interactif, cela vite de poser des questions inutiles lutilisateur

Sinon Chanage avant


mais, risque dexplosion du raisonnement
12

1] Slection des rgles candidates


Algorithme naf Ensemble des conflits <= MATCH (BC, BF) <= MATCH (rgle, BF) <= MATCH (terme, BF) <= MATCH (terme, fait) Opration de base = appariement entre un terme et un fait
13

De la complexit de lappariement
Ordre 0 si fivre et (fivre = vrai) (fivre = faux) (fivre = ?) Ordre O+ si couleur = rouge et (couleur = verte) si temprature > 38 et (temprature = 40) Ordre 1 si (audessus ?x ?y) et (audessus a b) (audessus a c) (audessus b d)
14

Particularits de lappariement dans le cas dun moteur dordre 1 Reg : si (Rsolu ?e) et (Equiv ?e ?e) alors (rsolu ?e)
MT : (Rsolu e1) (Equiv e1 e3) (Rsolu e2) (Equiv e4 e3) (Equiv e2 e5) A) Appariement des prmisses de reg sur MT (Rsolu ?e) <--> (Rsolu e1) (Rsolu e2) (Equiv ?e ?e) <--> (Equiv e1 e3) (Equiv e4 e3) (Equiv e2 e5) B) Vrification de la cohrence du nom des variables correspondances retenues : (?e : e1) (?e e3) (?e : e2) (?e : e5) 15

Diffrentes mthodes pour amliorer lefficacit du pattern-matching 1) Utilisation de filtres


BC des conflits

BC restreinte

Ensemble

Partitionnement des rgles (SPHINX, CENTAUR) Cration de liens : termes rgles

2) Compiler les rgles en rseau (OPS) consiste pousser jusquau bout la mthode des filtres 3) Propager les nouveaux faits dduits (TANGO)
mmoriser, pour chaque rgle, lensemble des conditions vrifies Ne propager , chaque cycle que des modifications mise jour de lensemble des conflits
16

2] Rsolution des conflits : choix dune rgle


Chanage avant
Stratgie fixe
La 1re La plus prcise La plus rcente

Stratgie raisonne
Utilisation de mta-rgles. Ex:
Si 1) le patient est un hte risques, et 2) il existe des rgles qui mentionnent des Klebsiellas dans leur prmisse, et 3) il existe des rgles qui mentionnent des Pseudomonas dans leur prmisse Alors il existe une vidence suggestive (0.4) quil faut utiliser les premires avant les deuximes

17

2] Rsolution des conflits : choix dune rgle


Chanage arrire
Choix du sous-but + choix de la rgle (mmes critres que pour le chanage avant) Stratgie fixe
Profondeur dabord Largeur dabord

Stratgie raisonne
Dvelopper le nud le plus prometteur
18

3] Dclenchement de la rgle
Mise jour de la mmoire de travail
Ajout de faits : le cas le plus gnral Suppression de faits : dans les moteurs dinfrences orients vers le contrle de robots Si sur (A, B) et libre (B) et mainvide (robot) Alors ajouter contient-main (robot, B) ; libre (A) ; mainpleine (robot) supprimer sur (A, B) ; libre (B) ; mainvide (robot)
19

Algorithme de moteur 0
Chanage arrire en profondeur dabord Questions lutilisateur si le fait cherch nest ni connu, ni dductible

20

Procdure VERIFIER
Proc OK VERIFIER (But) Dbut OK faux Si But faits alors OK vrai Sinon Pour toutes les rgles slectionnes et tant que OK est faux Choisir une rgle Ri OK VERIFIER-ET (Ri) Finpour Si OK = faux alors OK QUESTION (But) Finsi Finsi Finproc
21

Procdure VERIFIER-ET
Proc OK VERIFIER-ET (Reg) Dbut OK vrai Pour toutes les prmisses de Reg et tant que OK = vrai Choisir une prmisse Bi OK VERIFIER (Bi) Finpour Finproc
22

Quelques environnements de dveloppement de systmes experts existants


Jess (http://herzberg.ca.scandia.gov/jess/)
Moteur dordre 1 bas sur lalgorithme RETE Environnement en Java

CLIPS (http://www.ghg.net/clips/CLIPS.html)
Moteur dordre 1 utilisant lalgorithme RETE Environnement de dveloppement en C/C++

Expert System Shell (http://www.lpa.co.uk/pws_dem7.htm )


Moteur dordre 1 ; chanages avant + arrire Shell en PROLOG

TMYCIN (http://www.cs.utexas.edu/users/novak/tmycinb.html)
Moteur dordre 0+ dvelopp partir de EMYCIN Shell en Common Lisp

e2gLite (http://expertise2go.com/webesie/e2gdoc/ )

23

Vous aimerez peut-être aussi