Académique Documents
Professionnel Documents
Culture Documents
Nous allons commencer par présenter les concepts de base qui structurent la
résolution en donnant quelques exemples en logique propositionnelle dans un
premier temps. Nous présentons ensuite les extensions qui ont été faites sur
cette méthode (Mise sous forme prénexe, mise sous forme de Skolem, unification
de termes…) pour la rendre utilisable même en logique des prédicats.
- Utiliser la table de vérité pour vérifier que C est vraie chaque fois H1˄ H2˄ ˄Hn est
vraie.
- Utiliser le système SP0 pour démontrer que C peut être déduit à partir des
hypothèses: H1, H2,…Hn
Dans ce chapitre, nous verrons qu'il est aussi possible de faire ce genre de démonstration en
prouvant que (H1˄ H2˄ ˄ Hn ˄ ˥C) est insatifiable .
(H1˄ H2˄ ˄ Hn ˄ ˥C) est dite : insatifiable s'il est possible de déduire la clause vide (notée:□)
à partir d'elle. Autrement dit: (H1˄ H2˄ ˄ Hn ˄ ˥C) Ͱ □
Le principe de déduction (ou règle d'inférence) utilisé dans la résolution se présente comme
suit:
Si: A= f ˅p , B= g ˅˥p, tels que: f, g sont deux clauses, et p une proposition Alors:
𝐟 ˅𝐩 𝐠 ˅˥𝐩
Principe de résolution.
𝐟˅𝒈
1
Logique de l'IA Master01: GI, GL
Qui se lit comme suit: si (f ˅p) et (g ˅˥p) sont vraies , alors (f ˅g) l' est aussi.
Exemple 01:
On pose:
C= (A→ B)
Dans la résolution sans variables, la préparation des formules concerne la mise sous forme
normale conjonctive (FNC) des hypothèses du départ et de la négation de la conclusion.
= B ˅˥A
Résolution:
Dans l'étape de résolution, on commence par écrire chaque clause, qui se dégage des
formules qui ont été préparées, sur une ligne:
Exemple02:
2
Logique de l'IA Master01: GI, GL
On pose:
H1= A
H2= A→ (B→ C)
D= B →C
H1= A
H2= A→ (B→ C)
= A→ (˥B˅ C)
= A˅ (˥B˅ C)
= A˅ ˥B˅ C
˥D=˥( B →C)
=˥(˥B˅C)
= B˄˥C
La résolution:
C1: A (H1)
3
Logique de l'IA Master01: GI, GL
principe de résolution, il faut appliquer une série de transformations aux formules de départ
(hypothèses et conclusion). Ces transformations se résument dans les points suivants:
Dans les paragraphes suis vont suivre, nous allons décrire en détail les opérations qui 'il faut
effectuer au niveau de chaque étape.
A= Q1 x1 Q2 x2 Q3 x3 ……Qn xn B
Tels que:
Qi ∈{ ∀ , ∃ }
Exemple 01:
A= ( ∀x P(x,x)→ ∀x ∀yQ(x,y))
La forme Prénexe correspondante est:
A= ∃x ∀y ∀z(˥P(x,x)˅Q(z,y))
Méthode à suivre:
Pour mettre une formule sous forme Prénexe, il faut suivre les étapes suivantes:
1.Renommer les variables qui sont quantifiées plusieurs fois dans la même formule. C'est le
cas de la variable x qui apparait dans la formule de l'exemple précédent. En remplaçant la
deuxième occurrence de x par z on obtient la formule suivante:
A= ( ∀x P(x,x)→ ∀z ∀yQ(z,y))
(A→B)≡ (˥A˅B)
4
Logique de l'IA Master01: GI, GL
˥(A ˄ B) ≡ ˥A ˅ ˥B
˥(A ˅ B) ≡ ˥A ˄ ˥B
˥˥A ≡ A
(B ˄ ∀x A(x)) ≡ ∀x (B ˄ A(x))
(B ˄ ∃x A(x)) ≡ ∃x (B ˄ A(x))
5
Logique de l'IA Master01: GI, GL
Remarque:
Chaque formule en logique des prédicats possède une forme Prénexe qui lui est équivalente.
Exemple 02:
Pour mettre une formule, A, sous forme de Skolem, il faut suivre les étapes suivantes:
Exemples:
Remarques:
6
Logique de l'IA Master01: GI, GL
on déjà été effectuées lors de la mise des formules sous forme Prénexe, il ne reste qu'une
dernière étape pour obtenir la FNC qui correspond à chaque formule, à savoir, l'application
des équivalences suivantes:
A ˅ (B ˄ C) ≡ (A ˅ B) ˄ (A ˅C)
(A ˄ B) ˅ C ≡ (A ˅ C )˄ ( B ˅ C )
t = g(x , y , f (x , y)}
δ(t) = g(a , f(x , a), f( a, f (x, a)) , δ(t) désigne le terme obtenu en appliquant la substitution δ
sur t.
3.2.2. Unificateur:
Unie substitution, δ, est un unificateur d'un ensemble de formules atomiques S / S={A1,
A2,…,An} si:
7
Logique de l'IA Master01: GI, GL
Exemple:
S={A1, A2}
A1 = P(x, g(a)}
A2 = P(f(y), z)
δ = {x ←f(y), z ←g(a)}
δ( A1)= P(f(y),g(a))
δ (A2)= P(f(y),g(a))
Déterminer le symbole le plus à gauche de δ( A), noté t1, qui soit différent du
symbole du même rang de δ( B), que l'on note t2.
Si (aucun des deux termes {t1, t2} n'est une variable, ou un des deux symboles est
contenu dans l'autre, comme y et g(x , f(y)) par exemple, alors:
Arrêt.
Sinon
x= t1 , t= t2
Sinon
x= t2, t=t1.
Fin si
δ= δ ∪{ x ←t}
Fin si
8
Logique de l'IA Master01: GI, GL
Fin.
Exemple 01:
S={A, B}
A= P(x , f(g(x)) , a}
B= P(b , y , z)
Solution:
δ(A) δ(B) δ
P(x , f(g(x)) , a} P(b , y , z) Ø
P(b , f(g(x)) , a} P(b , y , z) {x ←b}
P(b , f(g(x)) , a} P(b , f(g(x)) , z) {x ←b, y← f(g(x)) }
P(b , f(g(x)) , a} P(b , f(g(x)) , a} {x ←b, y← f(g(x)), z ←a }
δ= {x ←b, y← f(g(x)), z ←a } est un unificateur de S.
Exemple 02:
S= {A, B}
A=P(x, f(x), a)
B=P(u, w,w)
Solution:
δ(A) δ(B) δ
P(x, f(x), a) P(u, w,w) Ø
P(u, f(u), a) P(u, w,w) {x ←u}
9
Logique de l'IA Master01: GI, GL
Règle de résolution:
𝒇˅𝒍𝟏 𝒈˅ ˥𝒍𝟐
Règle de résolution
𝜹(𝒇)˅𝜹(𝒈)
Tels que:
Exemple01:
La clause C3 a été obtenue en appliquant la règle de résolution sur les clauses: C1, C2 , tout
en utilisant δ comme unificateur des formules atomiques: {P(x , a), P(a , a)}
Exemple 02:
Règle de diminution:
𝒂˅𝒃˅𝒇
Règle de diminution
𝜹(𝒂)˅𝜹(𝒇)
Tels que:
f: une clause.
Exemple:
10
Logique de l'IA Master01: GI, GL
Remarque:
La règle de diminution est utilisée pour simplifier la syntaxe des clauses qui se composent
de plusieurs occurrences d'un même atome avec à chaque fois des arguments différents,
comme c'est le cas de la clause C1 de l'exemple précédent.
On pose:
H1= ∀x (Homme(x)→Mortel(x))
H2: Homme(Socrate)
C: Mortel(Socrate)
Nous commençons par mettre sous forme Prénexe, sous forme de Skolem, ensuite sous FNC
des formules du départ, à savoir, les hypothèses ainsi que la négation de la conclusion.
H1= ∀x (Homme(x)→Mortel(x))
= ∀x (˥Homme(x) ˅ Mortel(x))
H2: Homme(Socrate)
˥C= ˥Mortel(Socrate)
2. La Résolution:
11