You are on page 1of 53

Systèmes à base de règles

Lhouari Nourine

Master 2 -SIAD

Systèmes à base de règles Master 2 -SIAD 1 / 33


Exemple de SBR

Les SBR (modernes) d’aujourd’hui :


The NHS Direct adviser (santé)
The Automobile Diagnosis adviser
Ikea online assistant an RBS with chatbox interface
American Express Authorizer’s assistant
développé en1988, toujours utilisé.
Traite les demandes de crédit, décide pour authoriser ou interdir une
opération.
très large : autour de 35,000 règles, incluant 3,000 règles commerciales.

Systèmes à base de règles Master 2 -SIAD 2 / 33


Systèmes à base de règles

B Chaque unité de connaissance est appelée règle :

IF Prémisses THEN Conclusions

Connaissances déclaratives et révisables


Une règle n’est pas désignée par un nom, mais par ses conditions de
déclenchement (prémisses) et ses effets (conclusions)
L’ensemble des règles forme la base de connaissances, ou base de
règles

Systèmes à base de règles Master 2 -SIAD 3 / 33


Architecture d’un système à base de règles

La base de faits (base de données) : contient, pour une situation


donnée, les faits avérés.
La base de connaissances : contient les règles d’expert sur le
domaine considéré.
Le moteur d’inférence : est un programme qui exploite la base de
règles pour déduire de nouveaux faits. Il détient le contrôle du
raisonnement
Explication : donner les informations à l’utilisateur sur les étapes du
raisonnement (les origines de la décision)
Interface utilisateur : sert à communiquer avec l’utilisateur et le
système.

Systèmes à base de règles Master 2 -SIAD 4 / 33


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

Systèmes à base de règles Master 2 -SIAD 5 / 33


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 d’inférence applique des règles pour
atteindre une conclusion

Systèmes à base de règles Master 2 -SIAD 6 / 33


C’est quoi une inférence

1 Modus Ponens : {A, A ! B} ` B


Déductions sans variables : {(Homme Raoul), (Homme Raoul) !
(Personne Raoul)} ` (Personne Raoul)
Déductions avec variables :
{(Homme Raoul), (Homme ?x) ! (Personne ?x)} ` (Personne Raoul)

Systèmes à base de règles Master 2 -SIAD 7 / 33


C’est quoi une inférence

1 Modus Tollens : {¬B, A ! B} ` ¬A


Déductions sans variables : {¬(Personne minou), (Homme minou) !
(Personne minou)} ` ¬(Homme minou)
Déductions avec variables : {¬(Personne minou), (Homme ?x) !
(Personne ?x)} ` ¬(Homme Minou)

Systèmes à base de règles Master 2 -SIAD 8 / 33


Techniques d’inférence

B On peut faire un chaînage avant vers le but ou commencer au but et


essayer de le prouver : chaînage arrière

Systèmes à base de règles Master 2 -SIAD 9 / 33


Chaînage

La différence entre le chaînage avant et le chaînage arrière:


Supposons qu’on veut prendre l’avion de Clermont à Fès. Il n’y a pas
de vol direct.
On peut soit commencer en cherchant tous les vols qui partent de
Clermont et noter leur destination. Continuer ce processus jusqu’à ce
qu’on trouve un vol qui atterrisse à Fès. C’est le chaînage avant.
On peut commencer par Fès 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 Clermont.
C’est le chaînage arrière (on commence du but).

Systèmes à base de règles Master 2 -SIAD 10 / 33


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.

Systèmes à base de règles Master 2 -SIAD 11 / 33


Chaînage avant : Exemple

Systèmes à base de règles Master 2 -SIAD 12 / 33


Chaînage avant : Exemple

Systèmes à base de règles Master 2 -SIAD 13 / 33


Chaînage avant

On récolte de l’information, puis inférence


Plusieurs règles peuvent être exécutées qui n’ont rien à faire avec le
but.
N’est pas nécessairement efficace
L’utilisateur n’est jamais demandé pour de l’information additionnelle.

Systèmes à base de règles Master 2 -SIAD 14 / 33


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é.

Systèmes à base de règles Master 2 -SIAD 15 / 33


Chaînage Arrière

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 qu’on trouve aucune règle qui peut
prouver un sous-but.
L’utilisateur peut être demandé de donner des informations
additionnelles

Systèmes à base de règles Master 2 -SIAD 16 / 33


Chaînage Arrière : exemple

Systèmes à base de règles Master 2 -SIAD 17 / 33


Chaînage Arrière

Remarquez que 3 règles ont été déclenchée dans le chaînage arrière,


versus 4 règles dans le chaînage avant pour le même exemple.
Des systèmes 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.

Systèmes à base de règles Master 2 -SIAD 18 / 33


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
Chercher pour la règle la plus appropriée.

Systèmes à base de règles Master 2 -SIAD 19 / 33


Métaconnaissances

Des connaissances à propos des connaissances


Connaissances à propos de l’utilisation et contrôle du domaine des
connaissances
Représenté par des méta-règles
Une méta-règle détermine une stratégie pour l’utilisation de règles
spécifiques à une tâche. L’ingénieur donne ces règles:
Ex: règles fournies par un expert ont plus de priorité que celle fournies
par des non-experts.
Ex: règles qui indiquent la méningite ont plus de priorité que celle qui
indiquent un rhume.

Systèmes à base de règles Master 2 -SIAD 20 / 33


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
Facteur de certitude
Représente l’incertitude par des chiffres (cf 0.1, ou cf 0.9)
Établissement d’un niveau de confiance.

Systèmes à base de règles Master 2 -SIAD 21 / 33


Problèmes

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.

Systèmes à base de règles Master 2 -SIAD 22 / 33


Exemple :

Systèmes à base de règles Master 2 -SIAD 23 / 33


CLIPS

CLIPS=C-Language Integrated Production System:


Initialement développé par l’Artificial Intelligence (NASA) dans les
années 80
Intègre 4 paradigmes : inférentiel + fonctionnel + impératif + objet
Moteur d’inférences d’ordre 1 fonctionnant en chaînage avant
Implémentation en langage C de l’algorithme RETE (efficacité)
Un mode d’exécution en ligne de commande + fichiers batch
Des environnements graphiques (Windows, MacOS, Unix)
Code libre et open-source (code C ANSI lisible et documenté)
Porté vers d’autres langages (C++, Java, PHP, Python, etc.)
Logiciel stable et efficace, qui n’évolue plus depuis la 6.3

) CLIPS peut être utilisé comme une librairie C/C++


) Jess (Java Expert System Shell) est une classe Java
) PyCLIPS est une interface Python pour CLIPS

Systèmes à base de règles Master 2 -SIAD 24 / 33


CLIPS ou Prolog?

Différences entre Prolog et CLIPS :


Prolog est fondé sur une méthode de résolution en logique des
prédicats (méthode de Robinson) qui revient à construire un arbre
ET/OU à partir d’un but à atteindre afin de rechercher des prédicats
qui permettraient d’atteindre ce but ) chaînage arrière

CLIPS est un langage fondé sur un principe d’inférence qui consiste à


enchaîner des déductions à partir des données à l’aide de règles de
production et à rechercher le ou les faits qui constitueraient une
solution à un problème ou à une décision à prendre ) chaînage avant

Une résolution Prolog s’apparente à une preuve mathématique


Une résolution CLIPS s’apparente à un raisonnement humain

Chacun des deux langages a ses avantages et ses inconvénients

Systèmes à base de règles Master 2 -SIAD 25 / 33


Exemple

Une base de connaissance :


R1 : SI distance<2km ALORS aller-à-pied
R2 : SI (NON distance<2km) ET distance<300 ALORS
prendre-le-train
R3 : SI (NON distance<300 ALORS prendre-l’avion
R4 : SI acheter-un-billet-avion ET avoir-le-téléphone ALORS
téléphoner-à-agence
R5 : SI acheter-un-billet-avion ET (NON avoir-le-téléphone) ALORS
aller-à-agence
R6 : SI prendre-avion ALORS acheter-un-billet-avion
R7 : SI durée>2jours ET être-fonctionnaire ALORS NON
prendre-avion

Systèmes à base de règles Master 2 -SIAD 26 / 33


Exemple de moteur d’inférence

Algorithm 1: Moteur d’inférence version 1


begin
for toute règle R do
if les prémisses de R appartiennent à BF then
Ajouter les conclusions à BF

Exemple
F1= NON distance<300
F2 = avoir-le-telephone
R3 et F1 ! F 3: prendre-avion
R6 et F3 ! F 4: acheter-un-billet-avion

Systèmes à base de règles Master 2 -SIAD 27 / 33


Exemple
B Il ya des règles qui ne se déclenche pas.
Algorithm 2: Moteur d’inférence version 2
begin
Changement=vrai
while Changement do
Changement=faux
for toute règle R do
if les prémisses de R appartiennent à BF then
Ajouter les conclusions à BF
Changement=vrai

Exemple
F1= NON distance<300
F2 = avoir-le-telephone
R3 et F1 ! F 3: prendre-avion
R6 et F3 ! F 4: acheter-un-billet-avion
R3 et F1 ! F 3: prendre-avion
R4 et F4 et F2 ! F 5: téléphoner-a-agence
Systèmes à base de règles Master 2 -SIAD 28 / 33
Exemple
B Les règles se déclenchent plusieurs fois. Il faut marquer les règles
déclenchées pour ne plus les considérer dans la boucle pour.
Algorithm 3: Moteur d’inférence version 3
begin
Changement=vrai
while Changement do
Changement=faux
for toute règle R do
if R n’est pas marquée then
if les prémisses de R appartiennent à BF then
Ajouter les conclusions à BF
Changement=vrai
Marquer R

Systèmes à base de règles Master 2 -SIAD 29 / 33


Exemple

Exemple
F1= NON distance<300
F2 = avoir-le-telephone
R3 et F1 ! F 3: prendre-avion
R6 et F3 ! F 4: acheter-un-billet-avion
R4 et F4 et F2 ! F 5: téléphoner-à-agence

Systèmes à base de règles Master 2 -SIAD 30 / 33


Exemple

B Comment gérer les contradictions?


Exemple
F1= NON distance<300
F2 = avoir-le-telephone
F3: durée>2jours
F4 = Ítre-fonctionnaire
R3 et F1 ! F 5: prendre-avion
R7 et F3 et F4 ! F 6: NON prendre-avion

Systèmes à base de règles Master 2 -SIAD 31 / 33


Exemple

Algorithm 4: Moteur d’inférence version 3


begin
Changement=vrai
while Changement do
Changement=faux
for toute règle R do
if R n’est pas marquée then
if les prémisses de R appartiennent à BF then
for chaque conclusion C de R do
if ¬C 2 BF then
Message erreur
else
Ajouter les conclusions à BF

Changement=vrai
Marquer R

Systèmes à base de règles Master 2 -SIAD 32 / 33


Exemple

B Un SBR doit être capable de :


Dialoguer avec l’expert et l’utilisateur
Fournir des explications sur son raisonnement
Apprendre de nouvelles connaissances gràce à ce dialogue.
Faciliter la modification de la base de connaissances.

Exemple
R3 ! R30 : SI NON distance<300km ET NON durée>2jours ALORS prendre-avion
R8 : SI NON distance<300km ET NON être-fonctionnaire ALORS prendre-avion
R9 : SI NON distance<300km ET durée>2jours ET être-fonctionnaire ALORS
prendre-train

Systèmes à base de règles Master 2 -SIAD 33 / 33

You might also like