Académique Documents
Professionnel Documents
Culture Documents
Chap 2
Chap 2
Hicham BEHJA
1
Intelligence Artificielle II
Systèmes à bases de
connaissances
Chapitre II:
Systèmes experts en Logique des
prédicats
2
Plan
Algorithme
3
Définition d’un SE en LP
Représentation:
Un système expert avec variables est un système qui
opère sur des connaissances générales et paramétrées.
Ainsi, les éléments de ce système, à savoir la base de
connaissances et le moteur d'inférence, peuvent être
modélisés à l'aide de la logique des prédicats.
4
Définition d’un SE en LP
Base de connaissances (BDC):
5
Définition d’un SE en LP
Moteur d'inférence
6
Chainage arrière en profondeur d'abord avec
régime par tentative
Moteur d'inférence
7
Structure d’un MI en LP
Principe
Le moteur d'inférence repose sur les éléments suivants:
- L'unification: permet de comparer les conclusions
des règles de la BDC avec les buts qu'on cherche à
satisfaire. Il s'agit de trouver une substitution
permettant de les rendre identiques.
- Un chainage arrière: le choix des règles à appliquer
est guidé par les faits à prouver; les règles
sélectionnées sont donc celles ayant pour conclusion
le but qu'on cherche à satisfaire.
- Une stratégie de contrôle profondeur d'abord:
on applique une règle à la fois; généralement la
première règle rencontrée.
8
Structure d’un SE
Le MI opère selon les étapes suivantes:
On part de la pile de buts à satisfaire
(2) On choisit une règle applicable R. Une règle est dite
applicable si
► Sa conclusion est unifiable avec le premier but de la
pile à satisfaire.
► La règle n'est pas encore appliquée.
(3) On applique la règle choisie: on rajoute ses prémisses à la
pile des buts à prouver
(4) On applique la substitution issue de l'unification du but à
satisfaire avec la conclusion de la règle choisie.
(5) Si la pile est vide on arrête sinon on réitère pour
satisfaire la nouvelle pile de buts.
9
Structure d’un SE en LP
Algorithme
Entrées
• but = {b1, b2, …, bn} contenant la pile de buts
représentant la requête à résoudre.
• La BDC = {c1, c2, ..., cn}, contenant les clauses
représentant le problème à résoudre.
Sorties
• L'algorithme retourne la substitution permettant de
satisfaire la pile de buts ou échec si la pile de buts ne
peut être satisfaite.
10
Structure d’un MI en LP
MI(Pbuts, BDC)
Debut
Si Pbuts ={} alors retourner la substitution
Sinon choisir un but b dans Pbuts
pour chaque clause (règle) R de la BDC faire
s= unifier (tête_b,tête_R)
si (s!= echec ) alors
Pbuts = Pbuts\{b}
Pbuts = Pbuts {prémisses de R}
appliquer la substitution s à Pbuts
MI({s(Pbuts)}, BDC)
Finsi
finpour
retourner(echec)
finsi
Fin
11
Structure d’un SE en LP
Exemple 1
Soit la BDC suivante:
R1: p(X,Y,Z) :- p1(X), p2(Y), p3(Z).
R2: p1(a).
R3: p1(b).
R4: p2(c).
R5: p2(X):- q1(X), q2(X).
R6: q1(d).
R7: q1(e).
R8: q2(f).
R9: q2(d).
R10: p3(d).
Question: résoudre la requête p(X,Y,Z)
12
Structure d’un SE en LP
La résolution de la requête est présenté dans le tableau suivant:
PBUTS CHOIX ET APPLICATION D'UNE RÈGLE Substitutions
p(X,Y,Z) –R1; unification de p(X,Y,Z) et p(X,Y,Z) S0 = {}
–Appliquer R1: Remplacer la conclusion de R1 par ses
prémisses
–Appliquer la substitution S0
p1(X), p2(Y), p3(Z)
Intelligence Artificielle 13
13
Structure d’un SE en LP
La résolution de la requête est présenté dans le tableau suivant:
PBUTS CHOIX ET APPLICATION D'UNE RÈGLE Substitutions
p(X,Y,Z) –R1; unification de p(X,Y,Z) et p(X,Y,Z) S0 = {}
–Appliquer R1: Remplacer la conclusion de R1 par ses
prémisses
–Appliquer la substitution S0
p1(X), p2(Y), p3(Z) – R2: unification de p1(X), p1(a) par S1 S1 ={X = a}
– Appliquer R2: la conclusion p1(a) est prouvée
– Appliquer la substitution S1
p2(Y), p3(Z)
Intelligence Artificielle 14
14
Structure d’un SE en LP
La résolution de la requête est présenté dans le tableau suivant:
PBUTS CHOIX ET APPLICATION D'UNE RÈGLE Substitutions
p(X,Y,Z) –R1; unification de p(X,Y,Z) et p(X,Y,Z) S0 = {}
–Appliquer R1: Remplacer la conclusion de R1 par ses
prémisses
–Appliquer la substitution S0
p1(X), p2(Y), p3(Z) – R2: unification de p1(X), p1(a) par S1 S1 ={X = a}
– Appliquer R2: la conclusion p1(a) est prouvée
– Appliquer la substitution S1
p2(Y), p3(Z) – R4: unification de p2(Y) et p2(c) par S2 S2 = {Y = c}
– Appliquer R4: la conclusion p2(c) est prouvée
– Appliquer la substitution S2
- R5: unifier(p2(Y), p2(X))
p3(Z)
Intelligence Artificielle 15
15
Structure d’un SE en LP
La résolution de la requête est présenté dans le tableau suivant:
PBUTS CHOIX ET APPLICATION D'UNE RÈGLE Substitutions
p(X,Y,Z) –R1; unification de p(X,Y,Z) et p(X,Y,Z) S0 = {}
–Appliquer R1: Remplacer la conclusion de R1 par ses
prémisses
–Appliquer la substitution S0
p1(X), p2(Y), p3(Z) – R2: unification de p1(X), p1(a) par S1 S1 ={X = a}
– Appliquer R2: la conclusion p1(a) est prouvée
– Appliquer la substitution S1
p2(Y), p3(Z) – R4: unification de p2(Y) et p2(c) par S2 S2 = {Y = c}
– Appliquer R4: la conclusion p2(c) est prouvée
– Appliquer la substitution S2
- R5: unifier(p2(Y), p2(X))
p3(Z) – R10: unification de p3(Z), p3(d) S3 = {Z = d}
– Appliquer R10: la conclusion p3(d) est prouvée
– Appliquer la substitution S3
{} – La solution obtenue est : X = a, Y = c, Z =d 16
Intelligence Artificielle
16
Moteur d’inférence (MI)
La résolution de la requête p(X,Y,Z) peut être représentée par le
graphe suivant:
p(X,Y,Z)
X= a Y=c X= d
17
Moteur d’inférence (MI)
Exemple 2
Soit la BDC suivante:
R1 : p(a,b).
R2 : p(a,c).
R3 : p(X,Y):- e(Y,X).
R4 : e(d,a).
R5 : b(d).
R6 : f(X,Y):- p(Z,X), p(Z,Y).
18
Moteur d’inférence (MI)
La résolution de la requête est présenté dans le tableau suivant:
PBUTS CHOIX ET APPLICATION D'UNE RÈGLE Substitutions
f(b,U), b(U) –– R6 ; unification de f(b,U) avec f(X,Y) par S1 S1={X = b, Y= U}
– Appliquer R6 : remplacer la conclusion de R6 par
ses prémisses
– Appliquer la substitution S1
p(Z,b), p(Z,U),b(U) – R1 : unification de p(a,b) avec p(Z,b) par S2 S2 ={Z = a}
– Appliquer R1 : la conclusion p(a,b) de R1 est
prouvée
– Appliquer la substitution S2
p(a,U),b(U) – R1 est déjà appliquée S3 = {U = c}
– R2 : unification de p(a,c) avec p(a,U) par S3
– Appliquer R2 : la conclusion p(a,c) de R2 est
prouvée
– Appliquer la substitution S3
b(c) : aucune règle ne peut être appliquée pour montrer
b(c) ; on fait un retour en arrière
19
Moteur d’inférence (MI)
PBUTS CHOIX ET APPLICATION D'UNE RÈGLE Substitutions
p(a,U),b(U) – R1 est déjà appliquée S4 = {X = a, Y =
– R2 : est déjà appliquée U}
– R3 : unification de p(X,Y) avec p(a,U) par S4
– Appliquer R3 : remplacer la conclusion de R3 par
ses prémisses
– Appliquer la substitution S4
e(U,a),b(U) – R4 : unification de e(d,a) avec e(U,a) par S5 S5 = {U = d }
– Appliquer R4 : la conclusion e(d,a) de R4 est
prouvée
– Appliquer la substitution S5
b(d) – R5 : unification de b(d) avec b(d) S6 S6 ={}
– Appliquer R5 : la conclusion b(d) de R5 est
prouvée
– Appliquer la substitution S6
{} Le MI retourne la substitution S4 et S5 = {U = d }
20
Moteur d’inférence (MI)
La résolution de la requête {F(b,U), B(U)} est représentée par le
graphe suivant:
f(b;U),b(U)
R6
p(Z,b), p(Z,U), b(U)
R1
p(a,U), b(U)
R2 R3
b(c) e(U,a), b(U)
R4
echec b(d)
R5
succès
21
Cas du langage Prolog
Prolog est un système expert avec variables, Il est
caractérisé par les éléments suivants:
22
Cas du langage Prolog
Les clauses sont évaluées selon l'ordre d'écriture;
c'est pour cela qu'il faut respecter l'ordre défini dans le
point précédent.
23
Cas du langage Prolog
Exemple 1:
Prenons un exemple où la base de règles est formée de deux faits
et d’une règle :
R1 : epoux(halima, dris).
R2 : pere(dris, ali).
R3 : mere(M, E) :- pere(P, E), epoux(M, P).
24
Cas du langage Prolog
Exemple:
PBUTS CHOIX ET APPLICATION D'UNE RÈGLE Substitutions
mere(M, ali) –R3; unification de mere(M, ali) et mere(M, E) S0 = {E=ali}
–Appliquer R3: Remplacer la conclusion de R3 par ses
prémisses
–Appliquer la substitution S0
pere(P, ali), epoux(M, P) – R2: unification de pere(P, ali) et pere(dris, ali) par S1 S1 ={P = dris}
– Appliquer R2: la conclusion pere(P, ali) est prouvée
– Appliquer la substitution S1
epoux(M, dris) – R1: unification de epoux(M, dris) et epoux(halima, S2 = {M =
dris) par S2 halima}
– Appliquer R1: la conclusion epoux(halima, dris) est
prouvée
– Appliquer la substitution S2
{} – La solution obtenue est : M = halima
25
Cas du langage Prolog
La résolution de la requête {mere(M, ali)} est représentée par le graphe
suivant: :
mere(M, ali)
R3
pere(P, ali), epoux(M, P)
R2
epoux(M, dris)
R1
M = halima
26
Cas du langage Prolog
Exemple 2:
Le programme prolog qui permet de calculer la factorielle d'un entier
peut s'écrire comme une base de règles de la manière suivante:
R1 : fact(0,1).
R2 : fact(1,1).
R3 : fact(N,F):-N1 is N – 1, fact(N1,F1), F is F1*N1.
Questions :fact(3,F).
27