You are on page 1of 4

Anne 2003-2004

DEUG MD 2
me
anne
Structures en Java (projet)

IA : Ralisation d'un mini systme expert
Mahdi Zargayouna

Introduction
Considrons le travail de diagnostic dun mdecin : afin de dcouvrir la maladie dun patient, ce premier se base sur
les symptmes relevs. Il dispose dune connaissance des symptmes et des maladies associes sous la forme : Si
(symptme
i
et symptme
j
) alors (maladie
k
). Un systme expert reproduit ce mode de raisonnement : la dduction de
nouvelles connaissances. Un systme expert est un logiciel qui reproduit le comportement d'un expert humain
accomplissant une tche intellectuelle dans un domaine prcis.

Dfinitions

Une proposition est une expression quelconque qui peut tre value vrai ou faux (ex : le patient a un
coulement nasal ).
Un fait est une proposition value vrai.
Une rgle dinfrence se prsente sous la forme (prmisse) (conclusion) ; o prmisse = ensemble de
propositions et conclusion = une proposition.
Une base de connaissances est compose d'un ensemble de faits et de rgles d'infrence.
Un moteur dinfrence est un programme qui permet, partir dune base de rgles et dune base de faits, de
dduire de nouveaux faits.
Un systme expert est compos dune base de connaissances, dun moteur dinfrence et dune
interface utilisateur.
Les principes de base d'un systme expert
Une rgle d'infrence est de la forme: Si prmisse alors conclusion. La partie gauche exprime les conditions
d'applicabilit de la rgle. Elle peut contenir une conjonction de propositions. La partie droite reprsente la
conclusion, qui est une assertion (proposition) ajouter la base de faits.
Le cycle de base d'un moteur d'infrence comprend deux phases:
la phase de filtrage dtermine l'ensemble des rgles applicables : une rgle est applicable si toutes
les propositions de sa prmisse sont dans la base de faits.
la phase d'excution consiste appliquer la premire rgle applicable; cette action consiste ajouter
un fait la base.
Trois modes de raisonnement peuvent tre utiliss:
le chanage avant ;
le chanage arrire ;
Le chanage mixte.
Dans le cadre de ce projet, seul le chanage avant est exig.
Le chanage avant
Dans le mode de chanage avant, le moteur d'infrence part des faits pour arriver au but, c'est--dire qu'il ne
slectionne que les rgles dont les conditions de la partie gauche sont vrifies ( base de faits), puis applique
la premire de ces rgles, ce qui ajoute la conclusion la base. Ce processus est ritr jusqu' ce qu'il n'y ait plus de
rgles applicables ou que le but soit atteint.
Voici lalgorithme du chanage avant :

ALGORI THME DU CHAI NAGE AVANT

ENTREE : BF ( base de f ai t s) , BR ( base de r gl es) , F ( pr oposi t i on vr i f i er )

DEBUT
TANT QUE F n' est pas dans BF ET QU'i l exi st e dans BR une r gl e appl i cabl e FAIRE

Pr endr e l a pr emi r e r gl e appl i cabl e R
BR = BR - R ( dsact i vat i on de R)
BF = BF uni on concl usi on( R) ( dcl enchement de l a r gl e R, sa
concl usi on est r aj out e l a base de f ai t s)

FIN TANT QUE

SI F appar t i ent BF ALORS
F est t abl i ( succs)
SINON
F n' est pas t abl i ( chec)
FIN

Voici un exemple dexcution :

Base de rgles :

R1 : A et B C
R2 : C et D F
R3 : F et B E
R4 : F et A G
R5 : G et F B

Base de faits (BF) initiale : {A, C, D}
Fait dmontrer : E

Itration I
E BF.
Rgles dclanchables : {R2} // seule la totalit de la prmisse de R2 appartient BF

Dclenchement de R2 : ajout du fait F
Base de rgles I Base de Fait I
R1 : A et B C
R2 : C et D F // rgle inactive
R3 : F et B E
R4 : F et A G
R5 : G et F B

{A, C, D, F}



Itration II
E BF .
Rgles dclenchables : {R4}
Dclenchement de R4 : ajout du fait F

Base de rgles I Base de Fait I
R1 : A et B C
R2 : C et D F // rgle inactive
R3 : F et B E
R4 : F et A G // rgle inactive
{A, C, D, F, G}

R5 : G et F B

Itration III
E BF.
Rgles dclenchables : {R5}

Dclenchement de R5 : ajout du fait B
Base de rgles I Base de Fait I
R1 : A et B C
R2 : C et D F // rgle inactive
R3 : F et B E
R4 : F et A G // rgle inactive
R5 : G et F B // rgle inactive

{A, C, D, F, G, B}


Itration IV
E BF.
Rgles dclenchables : {R1, R3}

Dclenchement de R1 (la premire) : ajout du fait C //existe dj
Base de rgles I Base de Fait I
R1 : A et B C // rgle inactive
R2 : C et D F // rgle inactive
R3 : F et B E
R4 : F et A G // rgle inactive
R5 : G et F B // rgle inactive

{A, C, D, F, G, B}


Itration V
E BF.
Rgles dclenchables : {R3}

Dclenchement de R3 : ajout du fait E
Base de rgles I Base de Fait I
R1 : A et B C // rgle inactive
R2 : C et D F // rgle inactive
R3 : F et B E // rgle inactive
R4 : F et A G // rgle inactive
R5 : G et F B // rgle inactive

{A, C, D, F, G, B, E}


Itration VI
E BF.
E tabli (prouv) : Succs

Trace = {R2, R4, R5, R1, R3}
Travail demand
Le travail demand est de raliser un mini systme expert qui pourra fonctionner en chanage avant sur un domaine
d'expertise choisi. Nous demandons que le systme expert possde les caractristiques suivantes:
Qu'il soit utilisable pour diffrentes bases de connaissance. En effet, les systmes experts sont des
systmes dans lesquels la base de connaissance est indpendante du moteur d'infrence qui utilise
le contenu de cette base. La base de rgles devra tre lue partir d'un fichier.
Que l'ordre dans lequel les rgles sont introduites dans le fichier nait pas d'influence sur les
rsultats.
Il faut programmer une interface graphique qui permet de slectionner le fichier base de rgles, dentrer la base de
faits, de visualiser le rsultat : soit chec (fait improuvable), soit succs et dans ce cas, il faut afficher la base de faits
finale + la trace (la squence de rgles appliques, voir exemple plus haut).
Un rapport dcrivant le fonctionnement de lapplication (diagramme de classes, variables dinstances, mthodes etc.)
doit tre rendu.

Lcriture dune rgle doit suivre la syntaxe suivante :
Si ((proposition
1
) et (proposition
2
) et et (proposition
n
)) alors (proposition
k
)

Vous penserez traiter les exceptions et gnrer des messages derreurs ( fichier inexistant, structure des rgles
incorrecte etc.)

Seul le chanage avant est exig, un bonus est rserv ceux qui implmenteront le chanage arrire.

Bon travail.