Vous êtes sur la page 1sur 27

Intelligence Artificielle II

Hicham BEHJA

1
Intelligence Artificielle II
Systèmes à bases de
connaissances

Chapitre II:
Systèmes experts en Logique des
prédicats

2
Plan

 Systèmes experts en Logique des prédicats


 Représentation

 Chainage arrière en profondeur d'abord


régime par tentative
 Principe

 Algorithme

 Cas du langage Prolog

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.

On obtient ainsi la représentation suivante:

1) Base de connaissances (BDC)


2) Moteur d'inférence (MI)

4
Définition d’un SE en LP
 Base de connaissances (BDC):

La BDC peut être réduite à un ensemble de règles.


Un fait, qui représente une connaissance toujours vraie,
peut être considérée comme une règle sans conditions
(sans prémisses).
Une règle de la BDC est représentée par une clause de
Horn, c'est à dire par une disjonction de littéraux avec
au plus un littéral positif, où chaque littéral est
représenté par un prédicat.

5
Définition d’un SE en LP
 Moteur d'inférence

 Le MI est décrit par le processus de déduction et de


preuve de la logique des prédicats. Il est basé sur:

► Les règles d’inférences du système formel de la


logique des prédicats, à savoir le Modus Ponens, le
Principe de Résolution...
► L'unification qui permet de rendre applicables les
règles d'inférence (la Substitution).
► Les algorithmes de recherche: Profondeur d’abord,
Largeur d’abord et Heuristiques.

6
Chainage arrière en profondeur d'abord avec
régime par tentative

 Moteur d'inférence

Un moteur d'inférence avec variables permet de prouver


la validité d'un fait ou de résoudre une requête exprimée
sous forme d'une conjonction de buts.

Dans le cas d'une résolution, le MI cherche à satisfaire les


buts de la requête. Il s'agit de chercher la valeur des
variables de la requête permettant de la rendre vraie.

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)

p1(X) p2(Y) p3(Z)

X= a Y=c X= d

p1(a) p2(c) p3(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).

Question: résoudre la requête {f(b,U), b(U)}

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:

 La base de connaissances représente un ensemble de


relations; chaque relation est définie par un ensemble
de clauses (règles) organisées de la manière suivante:
(1) Les faits: règles sans conditions; (2) Les règles
particulières; (3) les règles générales.

 Le moteur d'inférence est de type chainage arrière en


profondeur d'abord avec régime par tentative. Il résout
les requêtes par une recherche dans la BDC en utilisant
les critères 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.

 Le MI arrête la recherche dans les cas suivants:


▪ Lorsqu'on trouve une clause qui fournit une
solution; l'utilisateur peut demander
les autres solutions.
▪ Aucune clause ne satisfait la requête, dans ce cas
le MI retourne un échec.

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

Questions :mere(M, ali).


C.à.d Quelle est la mère de ali ?

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

Vous aimerez peut-être aussi