Principes de fonctionnement des moteurs d inférences 1 Le Moteur d Inférences (MI) BCD Si A et B -> D Si A et non D -> non C BCP Moteur d Inférences A vrai C faux B? D? Le MI décide, en fonction de la situation courante (faits + buts de BCP), des règles (BCD) à utiliser et contrôle leur enchaînement 2
Interprétation d une règle de production Le Modus Ponens constitue la brique de base du raisonnement : P implique Q P -----> Q Plus rarement, l interprétation du Modus Tollens : P implique Q Q -----> P 3 Raisonnement dirigé par les données vs par des buts [1/2] La règle Si homme(x) alors mortel(x) autorise quatre raisonnements possibles 1] Deux raisonnements «dirigés par les données» (MP) «Je sais que Socrate est un homme ; comme tout homme est mortel, j en déduis que Socrate est mortel.» (MT) «Je sais que l ordinateur est immortel ; comme tout homme est mortel, j en déduis que l ordinateur n est pas un homme.» 4
Raisonnement dirigé par les données vs par des buts [2/2] Si homme(x) alors mortel(x) 2] Deux raisonnements «dirigés par des buts» (obtenus en inversant le sens de lecture de la règle) (MP) «Je cherche une entité mortelle ; comme tout homme est mortel, je peux chercher un humain.» (MT) «Je cherche une entité qui ne soit pas humaine ; comme tout homme est mortel, il me suffit de chercher une entité non mortelle.» 5 Déclencheur de règle Ri si A et B alors C et D Hypothèse : le MI raisonne en modus ponens A quelle condition peut-on utiliser la règle Ri? 1] Cas du raisonnement dirigé par les données, ou «chaînage avant» Lorsque A et B sont des faits déjà déduits {A, B} est le déclencheur chaînage avant de Ri 2] Cas du raisonnement dirigé par des buts, ou «chaînage arrière» Lorsque le système cherche à démontrer soit le but C, soit le but D {C} et {D} sont deux déclencheurs chaînage arrière 6 de Ri
Règle candidate Définition : Ri est une règle candidate ssi son déclencheur s apparie avec les faits ou buts de la mémoire de travail. Note : une règle candidate n est pas forcément utilisée à des fins d inférences 7 Fonctionnement en cycles du Moteur d Inférences Un cycle de base en trois étapes (1) Sélection des règles candidates Opération de «pattern matching» (2) Choix d une règle Mise en œuvre d une stratégie (3) Application de la règle choisie Mise à jour de la mémoire de travail 8
Exemple d interprétation d une Base de règles BCD : Base de règles 1. B et D et E F 2. D et G A 3. C et F A 4. C D 5. D E 6. A H 7. B X 8. X et C A BCP : Mémoire de travail B Vrai C Vrai H? 9 En chaînage avant B, C B, C, D, E, F, A, H B, C, D, E, F, A 6 B, C, D, E, F 3 B, C, D, E 1 B, C, D 5 4 7 B, C, X 8 B, C, X, A 6 B, C, X, A, H 10
En chaînage arrière D 4 C 2 G Impasse H 6 A 3 C B X 8 7 C B F 1 D 4 C E 5 D 4 C 11 Chaînage avant ou arrière? Cela dépend : du domaine du type des règles de production Si les règles sont «spécifiées» et si peu de buts sont envisageables Chaînage arrière l intérêt est de focaliser le raisonnement si le SE est interactif, cela évite de poser des questions inutiles à l utilisateur Sinon Chaînage avant mais, risque d explosion du raisonnement 12
1] Sélection des règles candidates Algorithme «naïf» Ensemble des conflits <= MATCH (BC, BF) <= MATCH (règle, BF) <= MATCH (terme, BF) <= MATCH (terme, fait) Opération de base = appariement entre un terme et un fait 13 De la complexité de l appariement Ordre 0 si fièvre et (fièvre = vrai) (fièvre = faux) (fièvre =?) Ordre O+ si couleur = rouge et (couleur = verte) si température > 38 et (température = 40) Ordre 1 si (audessus?x?y) et (audessus a b) (audessus a c) (audessus b d) 14
Particularités de l appariement dans le cas d un moteur d ordre 1 Reg : si (Résolu?e) et (Equiv?e?e ) alors (résolu?e ) MT : (Résolu e1) (Equiv e1 e3) (Résolu e2) (Equiv e4 e3) (Equiv e2 e5) A) Appariement des prémisses de reg sur MT (Résolu?e) <--> (Résolu e1) (Résolu e2) (Equiv?e?e ) <--> (Equiv e1 e3) (Equiv e4 e3) (Equiv e2 e5) B) Vérification de la cohérence du nom des variables correspondances retenues : (?e : e1) (?e e3) (?e : e2) (?e : e5) 15 Différentes méthodes pour améliorer l efficacité du pattern-matching 1) Utilisation de filtres BC BC restreinte Ensemble des conflits Partitionnement des règles (SPHINX, CENTAUR) Création de liens : termes règles 2) Compiler les règles en réseau (OPS) consiste à pousser jusqu au bout la méthode des filtres 3) Propager les nouveaux faits déduits (TANGO) mémoriser, pour chaque règle, l ensemble des conditions vérifiées Ne «propager», à chaque cycle que des modifications mise à jour de l ensemble des conflits 16
2] Résolution des conflits : choix d une règle Chaînage avant Stratégie fixe La 1 ère La plus «précise» La plus «récente» Stratégie raisonnée Utilisation de méta-règles. Ex: Si 1) le patient est un hôte à risques, et 2) il existe des règles qui mentionnent des Klebsiellas dans leur prémisse, et 3) il existe des règles qui mentionnent des Pseudomonas dans leur prémisse Alors il existe une évidence suggestive (0.4) qu il faut utiliser les premières avant les deuxièmes 17 2] Résolution des conflits : choix d une règle Chaînage arrière Choix du sous-but + choix de la règle (mêmes critères que pour le chaînage avant) Stratégie fixe Profondeur d abord Largeur d abord Stratégie «raisonnée» Développer le nœud le plus prometteur 18
3] Déclenchement de la règle Mise à jour de la mémoire de travail Ajout de faits : le cas le plus général Suppression de faits : dans les moteurs d inférences orientés vers le contrôle 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 Chaînage arrière en «profondeur d abord» Questions à l utilisateur si le fait cherché n est ni connu, ni déductible 20
Proc OK VERIFIER Début OK faux Si But faits alors OK Sinon Pour toutes les règles sélectionnées et tant que OK est faux Choisir une règle Ri OK VERIFIER-ET Finpour Si OK = faux alors OK Finsi Finsi Finproc Procédure VERIFIER (But) vrai (Ri) QUESTION (But) 21 Procédure VERIFIER-ET Proc OK VERIFIER-ET (Reg) Début OK vrai Pour toutes les prémisses de Reg et tant que OK = vrai Choisir une prémisse Bi OK VERIFIER (Bi) Finpour Finproc 22
Quelques environnements de développement de systèmes experts existants Jess (http://herzberg.ca.scandia.gov/jess/) Moteur d ordre 1 basé sur l algorithme RETE Environnement en Java CLIPS (http://www.ghg.net/clips/clips.html) Moteur d ordre 1 utilisant l algorithme RETE Environnement de développement en C/C++ Expert System Shell (http://www.lpa.co.uk/pws_dem7.htm ) Moteur d ordre 1 ; chaînages avant + arrière Shell en PROLOG TMYCIN (http://www.cs.utexas.edu/users/novak/tmycinb.html) Moteur d ordre 0+ développé à partir de EMYCIN Shell en Common Lisp e2glite (http://expertise2go.com/webesie/e2gdoc/ ) 23