La méthode de résolution de Robinson

Page 1 sur 70Lecteur de document UniversityLib

La méthode de résolution de Robinson

Logique mathématique, Programmation logique · course

Logique mathématique

Chapitre 4

La méthode de résolution de Robinson

1- Méthode de résolution close 1- Méthode de résolution close

2- Unification 3- Méthode de résolution avec variables 4- Stratégies de résolution

ENSI

Logique Mathématique

1

La méthode de résolution

• La résolution est une méthode purement syntaxique et

automatisable qui fut mise au point en 1965 par Robinson • Elle produit des preuves par réfutation similaire au processus

de démonstration par contradiction (ou l'absurde) : ” pour prouver la validité d’une formule, on démontre l’insatisfiabilité de sa négation (on suppose que la négation est vraie et on essaye d'obtenir une contradiction)”

• Grâce à sa simplicité, à son efficacité et à ses propriétés de complétude, la résolution est le meilleur choix pour faire des preuves automatiques

• C’est sur cette méthode que repose le principe du langage de programmation logique Prolog, inventé à Marseille en 1972 • La simplicité est obtenue en appliquant seulement une ou

deux règles d'inférence sur des formules sous forme clausale

ENSI

Logique Mathématique

2

La méthode de résolution

1- Résolution close (sans variable)

Définition Soient

• C’ et C’’ deux clauses closes (ou d’ordre 0) • p un atome

On appelle clause résolvante des clauses C’ (cid:218) On appelle clause résolvante des clauses C’ (cid:218) la clause C’ (cid:218)

(cid:218) C’’

(cid:218) p et C’’ (cid:218) (cid:218) p et C’’ (cid:218)

 p  p

Exemple La résolvante des clauses  p (cid:218) r (cid:218) la clause  p (cid:218)

t

(cid:218) q (cid:218)

r et  q (cid:218)

t est la

ENSI

Logique Mathématique

3

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

Définition

Soient C’ une clause close (ou d’ordre 0) et l un littéral (atome ou négation d’atome)

On appelle clause facteur de C’ (cid:218)

l

l la clause C’ (cid:218)

l

Exemple • La clause facteur de q (cid:218)

(cid:218) p (cid:218)

(cid:218) q est la clause q (cid:218)

(cid:218) p

• La clause facteur de  p (cid:218)

(cid:218) q (cid:218)

 p est la clause  p (cid:218)

q

ENSI

Logique Mathématique

4

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

Nous allons présenter la méthode de résolution close (sans variable) sous forme de système d’inférence (noté R0 )

Le système d’inférence R0 pour la résolution close est défini par :

(cid:1)(cid:1) ∑R0 = = R 0 U {  , (cid:218) (cid:1)(cid:1) ∑ = = R U {  , (cid:218) (cid:1) FR0 = { clauses d’ordre 0 construites sur ∑

} U { F,V } U { , } U {(cid:2)} } U { F,V } U { , } U {(cid:2)}

R0R0R0R0 }

(cid:1) AR0 = Ø

(aucun axiome)

ENSI

Logique Mathématique

suite

5

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

(cid:1) R R0 (règles d’inférence) - résolution

C’ (cid:218)

(cid:218) p

C’’ (cid:218) (cid:218) C’’

C’ (cid:218)

 p

Res

- factorisation

C (cid:218)

l

l

C (cid:218)

l

Fact

Cas particulier :

p

 p

(cid:2)

Res

Le symbole (cid:2) représente la clause vide (contradiction) qui est la conséquence de la déduction de p et de  p

ENSI

Logique Mathématique

6

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

Proposition

(cid:1) Si

{C1, C2}

autrement dit

Res { C’ (cid:218)

C

alors

{C1, C2} ╞ C

p , C’’ (cid:218)

 p } ╞ C’ (cid:218)

(cid:218) C’’

(cid:1) Si C1

Fact

C

alors

C1 ╞ C

autrement dit

{ C’ (cid:218)

l (cid:218)

l } ╞ C’ (cid:218)

l

ENSI

Logique Mathématique

7

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

Preuve (cid:1) { C’ (cid:218)

p , C’’ (cid:218)

 p } ╞ C’ (cid:218)

(cid:218) C’’

Pour toute interprétation I telle que p ]I = [C’’ (cid:218) [C’ (cid:218)

 p ]I = V

- si [p]I = V alors

- si [p]I = F alors

[ p ]I = F donc forcément (cid:218) C’’]I = V et donc [C’ (cid:218)

forcément [C’ ]I = V et donc [C’ (cid:218)

(cid:218) C’’]I = V

[C’’ ]I = V

(cid:1) { C’ (cid:218)

l (cid:218)

l } ╞ C’ (cid:218)

l

trivial

ENSI

Logique Mathématique

8

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

Soit ℰ un ensemble de clauses closes

Proposition Correction Si

il existe une déduction dans R0 de (cid:2) à partir de ℰ

alors l’ensemble ℰ est insatisfiable

Proposition Complétude Proposition Complétude La méthode de résolution close est réfutationnellement complète

c-à-d

Si

l’ensemble ℰ est

insatisfiable il existe une déduction dans R0 de (cid:2) à partir de ℰ

alors

Corollaire

ℰ est insatisfiable

ssi

ℰ

(cid:2)

R0

ENSI

Logique Mathématique

9

La méthode de résolution

Application

Pour montrer qu’un ensemble ℰ de formules closes est insatisfiable faire :

1. Mettre chacune des formules de l’ensemble ℰ sous forme

ℰ

ℰ clausale. Ω := ℰ C C

1. Tant que ( (cid:2) ∉∉∉∉ Ω )

faire

- choisir « Ci et Cj

∈∈∈∈ Ω telles que {Ci , Cj }

C »

Res

ou « Ci

∈ Ω telle que Ci

C »

Fact

- Ω := Ω U {C}

ENSI

Logique Mathématique

10

La méthode de résolution

Exemple

{ p (cid:218)

(cid:218) q ,  p (cid:218)

(cid:218) q , p (cid:218)

 q ,  p (cid:218)

 q }

Res

q (cid:218)

q  q (cid:218)

 q

Fact Fact

q  q

(cid:2)

Graphe (arbre) de déduction (dérivation)

ENSI

Logique Mathématique

11

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

Exemple (suite) { p (cid:218)

(cid:218) q ,  p (cid:218)

(cid:218) q , p (cid:218)

 q ,  p (cid:218)

 q }

Autre présentation

p (cid:218)

(cid:218) q  p (cid:218)

(cid:218) q p (cid:218)

 q  p (cid:218)

 q

q (cid:218)

(cid:218) q  q (cid:218)



q  q

(cid:2)

 q 

Res

Fact

Res

ENSI

Logique Mathématique

12

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

Ceci donne la déduction suivante : (cid:218) q , p (cid:218)

(cid:218) q ,  p (cid:218)

 q ,  p (cid:218)

p (cid:218)

 q hypothèses

(cid:218) q hypothèse (cid:218) q « (cid:218) q application de Res à B1 et B2

B1 : p (cid:218) B2 :  p (cid:218) B3 : q (cid:218) B4 : q application de Fact à B3 B : q application de Fact à B B5 : p (cid:218) B6 :  p (cid:218)  q (cid:218) B7 :  q application de Fact à B7 B8 : B9 : (cid:2)

 q «  q application de Res à B5 et B6

 q hypothèse

application de Res à B4 et B8 stop

ENSI

Logique Mathématique

13

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

Remarques • La règle de factorisation (Fact) est nécessaire. Mais on peut

ne pas l’utiliser explicitement en simplifiant systématiquement les littéraux redondants dans les clauses

• Lors de la résolution

– on n’est pas obligé d’utiliser toutes les clauses – on peut utiliser une même clause plusieurs fois – on peut utiliser une même clause plusieurs fois

• La règle de résolution (Res) est aussi appelée règle de

coupure (cut). Et la règle de factorisation (Fact) est aussi appelée règle de diminution

• La règle de résolution généralise la règle du modus ponens

p ⇒⇒⇒⇒ B

p  p (cid:218) B B

(cid:218) B

M.P

p

Res

ENSI

Logique Mathématique

14

(cid:218) (cid:218) La méthode de résolution

Exemple H1 : «si je travaille bien alors je vais réussir» (cid:3) t ⇒⇒⇒⇒ r

H2 : «si je suis malade , je ne peux pas bien travailler»

H3 : «je suis malade mais je travaille bien» (cid:3) m (cid:217) C : «je vais réussir» (cid:3) r

(cid:3) m ⇒⇒⇒⇒  t t

(cid:4) montrons que {H1, H2, H3} ╞ C

{H1, H2, H3} ╞ C ssi

{H1, H2, H3,  C } est insatisfiable

montrons que { t ⇒⇒⇒⇒ r , m ⇒⇒⇒⇒  t , m (cid:217)

t ,  r } est insatisfiable

ENSI

Logique Mathématique

suite

15

(cid:217) (cid:217) (cid:217) (cid:217) (cid:217) (cid:217) La méthode de résolution

1. Forme clausale de { t ⇒⇒⇒⇒ r , m ⇒⇒⇒⇒  t , m (cid:217)

t ,  r }

{  t (cid:218)

r ,  m (cid:218)

 t , m , t ,  r }

2. Résolution

{  t (cid:218) {  t (cid:218)

r ,  m (cid:218) r ,  m (cid:218)

 t , m , t ,  r }  t , m , t ,  r }

r

(cid:2)

 t

(cid:2)

ENSI

Logique Mathématique

16

(cid:217) (cid:217) (cid:217) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

2- Unification

L’unification permet de rendre si possible des expressions

identiques (égales syntaxiquement) en instanciant leurs

variables

Elle est nécessaire pour pouvoir appliquer la méthode de

résolution à des clauses avec variables résolution à des clauses avec variables

ENSI

Logique Mathématique

17

La méthode de résolution

Définition Substitution Une substitution (notée s

) est un ensemble fini de la forme

{ x1111 ← t1, … , xn ← tn }

• chaque xiiii est une variable

• chaque ti est un terme différent de xiiii • chaque t est un terme différent de x

(cid:1) Une substitution vide (n = 0) est notée e

(cid:1) Une substitution est dite close si chaque terme ti est clos

ENSI

Logique Mathématique

18

s s s e e e La méthode de résolution

Définition

Soient • s

Publicité

= { x1 ← t1, …, xn ← tn } une substitution

• E une expression (terme, formule, ensemble de formules)

est l’expression obtenue en substituant chacun des est l’expression obtenue en substituant chacun des

Es Es termes ti aux occurrences de chaque variable xi c-à-d Es = E[x1 ← t1, …, xn ← tn ] Es

est appelé une instance de l’expression E

ENSI

Logique Mathématique

19

La méthode de résolution

Exemple s = { x ← a , y ← f(b), z ← c } E : P(y, x)

Es = P(y,x)[x ← a , y ← f(b), z ← c ] = P(f(b),a)

ENSI

Logique Mathématique

20

La méthode de résolution

Définition

Soient • s = { x1 ← t1, …, xn ← tn } et • q = { y1 ← s1, …, ym ← sm }

La composition des deux substitutions s et q est la substitution calculée à partir de l’ensemble ∆ comme suit : est la substitution calculée à partir de l’ensemble ∆ comme suit :

notée s

.q

i) ∆ := { x1 ← t1 ii) ∆ := ∆ U ( q

iii)

q = ∆ .q

q , … , xn ← tn

q } \ {xi ← ti

: xi = ti

}

\

{ yi ← si :

yi ← * ∈∈∈∈ ∆ } )

ENSI

Logique Mathématique

21

s s s q q q q q s s s s q q La méthode de résolution

Exemple

= { x ← f(y) , y ← z } q = { x ← a , y ← b , z ← y }

i) ∆ := { x ← f(y)q

, y ← zq

} := { x ← f(b) , y ← y }

:= { x ← f(b) }

ii) ∆ := { x ← f(b) } U { x ← a , y ← b , z ← y }

:= { x ← f(b) , y ← b , z ← y }

.q = { x ← f(b) , y ← b , z ← y }

ENSI

Logique Mathématique

22

s s La méthode de résolution

Remarque

La composition des substitutions possède les propriétés

suivantes :

.q ).l • elle est associative (s • elle n’est pas commutative s • elle n’est pas commutative s

.(q .l )

= s .q ≠ q .s .q ≠ q .s

• elle possède un élément neutre (à droite et à gauche)

qui est la substitution vide e

.e = e .s

= s

ENSI

Logique Mathématique

23

s La méthode de résolution

Définition (cid:1) Une substitution s

est dite un unificateur de l’ensemble

d’expressions { E1, … , En } ssi

E1

= … = En

" = " égalité syntaxique " = " égalité syntaxique

(cid:1) L’ensemble d’expressions { E1, … , En } est dit unifiable

ssi

il existe un unificateur de { E1, … , En }

ENSI

Logique Mathématique

24

s s La méthode de résolution

Exemple

Soit l’ensemble de termes suivants :

E = { f(x,g(y)) , f(x,g(h(b))) , f(a,z) }

La substitution s = { x ← a , y ← h(b), z ← g(h(b)) } est un

unificateur de E

f(x,g(y)) s

= f(x,g(h(b))) s

= f(a,z) s

= f(a,g(h(b)))

ENSI

Logique Mathématique

25

La méthode de résolution

Remarque

Un unificateur n’est pas unique

Par exemple pour les deux termes suivants

A : f(x,b) et B : f(g(y),z)

• s

• s • s

• s

1 = {x ← g(y) , z ← b} est un unificateur de A et B

2 = {x ← g(a) , y ← a , z ← b} est aussi un unificateur

de A et B

3 = {x ← g(f(a)) , y ← f(a) , z ← b} est encore un

• …

ENSI

unificateur de A et B

Logique Mathématique

suite

26

La méthode de résolution

Remarque (suite) Nous remarquons que pour tout unificateur s substitution l telle que 1111....l A s

i = B s

i = A s

i = B s

i

il existe une

i

1111.l

i

• s • s

• s

1 = {x ← g(y) , z ← b} = {x ← g(y) , z ← b}.e = s 2222 = {x ← g(a) , y ← a , z ← b}

1.l

1

= {x ← g(y) , z ← b}.{y ← a} = s 3333 = {x ← g(f(a)) , y ← f(a) , z ← b} = {x ← g(y) , z ← b}.{y ← f(a)} = s

1111.l

2

1111.l

3

• …

ENSI

Logique Mathématique

27

s s s s s s s s s s s s La méthode de résolution

Nous voulons avoir un unificateur « minimal »

« minimal » dans le sens où il ne soit pas lui même une instance d’autres unificateurs. Un tel unificateur est appelé un « plus général unificateur » (p.g.u)

Définition

Un unificateur s

de l’ensemble d’expressions { E1, … , En }

est dit un plus général unificateur

ssi

pour tout unificateur q substitution l

de { E1 , … , En } , il existe une = s telle que q

.l

ENSI

Logique Mathématique

28

s s s s s s s s s s La méthode de résolution

Algorithme d’unification Nous allons présenter un algorithme d’unification de deux expressions

Nous utiliserons les notations suivantes :

rangE(t) : la position de la sous expression t dans E racine(t) : le symbole racine de t racine(t) : le symbole racine de t

Exemple :

A : P(f(x), h(a)) B : P(f(y), z)

rangA(f(x)) = rangB(f(y)) et racine(f(x)) = racine(f(y)) = f rangA(h(a)) = rangB(z) et racine(h(a)) ≠ racine(z)

ENSI

Logique Mathématique

29

La méthode de résolution

Unification (A ,B : expressions) début := e

tant que (A s ≠ B s déterminer t1 et t2 les sous expressions les plus à gauche de As et Bs

telles que

) faire

( rangA(t1) = rangB(t2) ) et ( racine(t1) ≠ racine(t2) )

si si

(t1 et t2 ne sont pas des variables) (t et t ne sont pas des variables)

ou (t1

∈∈∈∈ Var(t1)) ∈∈∈∈ Var(t2) ou t2 ∈∈∈∈ ∈∈∈∈

alors arrêt retourner («échec : A et B non unifiables») sinon si t1 = x (une variable) alors s si t2 = x (une variable) alors s

.{ x ← t2} .{ x ← t1}

:= s := s

fin tant que retourner (s fin

ENSI

)

Logique Mathématique

30

s La méthode de résolution

Exemple 1 A : P(x, f(x), a) B : P(y, z, u)

A s P

f

x

P

f

y

x

y

a

a

B s P

y

z

u

P

z

u

y

e .{x ← y} = {x ← y}

ENSI

Logique Mathématique

31

e e e e s e e e La méthode de résolution B s

A s

y

y

P

f

y

P

f

y

a

a

y

y

P

f

y

P

f

y

u

a

{x ← y}.{z ← f(y)} = {x ← y, z ← f(y)}

{x ← y, z ← f(y)} .{u ← a} = {x ← y , z ← f(y) , u ← a}

ENSI

Logique Mathématique

32

s La méthode de résolution

Exemple 2 A : P(x, f(g(x)), a) B : P(b, y, y)

B s

P

y y

y y

a

b b

A s

x

P

f f

g

x

ENSI

Logique Mathématique

33

e e e e s La méthode de résolution B s P

A s P

b

b

f

g

b b

P

f

g

b

a

b

y

y

e .{x ← b} = {x ← b}

a

b

P

f

g

b

f

g

b

{x ← b}.{y ← f(g(b))} = {x ← b, y ← f(g(b))}

ENSI

Logique Mathématique

34

s e e e La méthode de résolution

b

A s

P

f

g

b

a

b

B s

P

f

g

b

f

g

b

échec échec (clash)

ENSI

Logique Mathématique

35

s La méthode de résolution

Exemple 3 A : P(x, f(x)) B : P(f(y), y)

A s

P

x x

B s

P

y y

f f

x

f f

y

ENSI

Logique Mathématique

Publicité

36

e e e e s La méthode de résolution B s P

A s P

f

y

f

y

P

f

f

y y

f

f

y

y

y

P

f

y

f

y

e .{x ← f(y)} = {x ← f(y)}

échec (occurcheck)

ENSI

Logique Mathématique

37

s e e e La méthode de résolution

Proposition

L’algorithme d’unification présenté termine et est correct

Autrement dit

Soient A et B deux expressions

L’algorithme d’unification présenté termine

- avec « échec » si A et B ne sont pas unifiables - en donnant un p.g.u de A et B si A et B sont unifiables

ENSI

Logique Mathématique

38

La méthode de résolution

Pour calculer le p.g.u d’un ensemble d’expressions {E1, … , En}, il faut appliquer (n-1) fois l’algorithme précédent en calculant à chaque itération i une substitution s

i comme suit :

1. appliquer s

1…s

i-1 à Ei et Ei+1

2. calculer s 2. calculer s

i p.g.u de Ei i p.g.u de Ei 1 …s

i-1) s

(Ei

1…s 1…s i = (Ei+1

i-1 et Ei+1 i-1 et Ei+1 i-1) s 1…s

1…s 1…s

i-1 i-1

i

L’unificateur de {E1, … , En} est s

1…s

n-2.s

n-1

ENSI

Logique Mathématique

suite

39

s s s s s s s s s s s s s s s La méthode de résolution

E1

, E2

, E3 …... Ei , Ei+1

...... En-1 , En

E2

1 , E3

1 …... Ei

1 , Ei+1

1 ...... En-1

1 , En

1

E3

2 … Ei

1

2 , Ei-1

1

2 , En

1

2

1

1

... En-1

2 …... 2…s …... E s i …... En

i-1

1

Ei

1

2…s

E s Ei+1

1

i-1 , Ei+1 2…s s …s

i-1

...… En 2…s s …s

1

2…s

1

i-1

i-1

i

……… 2…s

i-1

En-1

1

i…s

n-2

, En

1

2…s

i-1

i…s

n-

2

En

1

2…s

i-1

i…s

n-2

n-1

L’unificateur de {E1, … , En} est s

1

2…s

i-1

i…s

n-2

n-1

ENSI

Logique Mathématique

suite

40

s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s La méthode de résolution

Exemple

{ P(x,y) , P(f(z),x) , P(u,f(x)) }

1. P(x,y)s

1 = P(f(z),x)s

1 = P(f(z), f(z))

1 = { x ← f(z) , y ← f(z) }

2. P(f(z), f(z))s

2 = (P(u,f(x))s

1) s = P(u, f(f(z)) s

2

2

( occurcheck)

échec l’ensemble n’est pas unifiable

ENSI

Logique Mathématique

41

s s s s La méthode de résolution

3- Résolution avec variables

Le système d’inférence (noté R1 ) pour la méthode de résolution devient :

(cid:1) ∑R1 = R U F U X U {  , (cid:218) (cid:1) ∑R1 = R U F U X U {  , (cid:218)

} U { F, V } U { , } U {(cid:2)} } U { F, V } U { , } U {(cid:2)}

(cid:1) FR1 = { clauses du 1er ordre construites sur ∑

R1R1R1R1 }

(cid:1) AR1 = Ø

(aucun axiome)

ENSI

Logique Mathématique

suite

42

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

(cid:1) R R1 (règles d’inférence) - résolution

C’ (cid:218)

A’ et A’’ des atomes et s

- factorisation

C’’ (cid:218)

 A’’

(cid:218) A’ C’s p.g.u de A’ et A’’ (A’s

(cid:218) C’’ s

Res

l’

l’’

C (cid:218) C s C s p.g.u de l’ et l’’ (l’s

Fact

l’s l’s

= A’’s )

= l’’s

)

l’ et l’’ des littéraux et s (cid:4) Il faut que deux clauses différentes

n’ont pas de variables communes ► renommage

Cas particulier :

A’

(cid:2)

 A’’

Res

si A’s

= A’’s

ENSI

Logique Mathématique

43

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) s s s (cid:218) (cid:218) (cid:218) s s s (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) s s s (cid:218) (cid:218) (cid:218) (cid:218) s s s s s s (cid:218) (cid:218) (cid:218) (cid:218) s s s La méthode de résolution

Remarque Il ne faut pas que les clauses ont des variables communes

(cid:4) Il faut utiliser le renommage

Par exemple {P(x) , Q(x)} veut dire " Par exemple {P(x) , Q(x)} veut dire "

" x P(x) (cid:217) " x P(x) (cid:217)

" x Q(x) " x Q(x)

or "

" x P(x) (cid:217)

" x Q(x) ≡ "

" x P(x) (cid:217)

" y Q(y)

ce qui veut dire {P(x) , Q(y)}

donc {P(x) , Q(x)} ≡ {P(x) , Q(y)}

ENSI

Logique Mathématique

44

" " (cid:217) (cid:217) (cid:217) " " " " " (cid:217) (cid:217) (cid:217) " " " " " (cid:217) (cid:217) (cid:217) " " " " " (cid:217) (cid:217) (cid:217) " " " La méthode de résolution

Exemple (cid:1)

P(x) (cid:218)

(cid:218) Q(x)  P(a) (cid:218)

(cid:218) R(x)

renommage

P(x) (cid:218)

(cid:218) Q(x)  P(a) (cid:218)

(cid:218) R(y)

Q(a) (cid:218)

(cid:218) R(y)

Res

avec s = { x ← a } avec s = { x ← a }

(cid:1)

P(x) (cid:218)

(cid:218) P(f(y)) (cid:218)

 Q(x)

P(f(y)) (cid:218)

 Q(f(y))

Fact

avec s = { x ← f(y)}

ENSI

Logique Mathématique

45

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

Proposition

(cid:1) Si

{ C1 , C2 }

Res

C

alors

{ C1 , C2 } ╞ C

autrement dit

{ C’ (cid:218)

l’ , C’’ (cid:218)

 l’’ } ╞ C’s avec s

(cid:218) C’’s

p.g.u de l’ et l’’

(cid:1) Si C1

Fact

C

alors

C1 ╞ C

autrement dit

{ C’ (cid:218)

l’ (cid:218)

l’’ } ╞ C’s avec s

l’s

p.g.u de l’ et l’’

ENSI

Logique Mathématique

46

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

Preuve

(cid:218) C’’s

l’ , C’’ (cid:218)

 l’’ }╞ C’s (cid:1) { C’ (cid:218) Soit I une interprétation telle que [C’ (cid:218) , [C’ s alors pour tout s en particulier si l’s = l’’s [ l’’s [ l’’s - si [l’s - si [l’s [C’’s

l’ s , alors ]I = F ] = F ]I = V

]I = V alors ] = V alors donc forcément

]I = [C’’ s

avec s

p.g.u de l’ et

l’’

l’ ]I = [C’’ (cid:218)  l’’ s

]I = V

 l’’ ]I = V

- si [l’s

]I = F alors forcément

[C’s

]I = V et donc [C’s

et donc [C’s

(cid:218) C’’s

]I = V

(cid:218) C’’s

]I = V

(cid:1) { C’ (cid:218)

l’ (cid:218)

l’’ } ╞ C’s

l’s

avec s

p.g.u de l’ et l’’

même principe

ENSI

Logique Mathématique

47

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

Théorème Robinson

La méthode de résolution avec variables est correcte et est réfutationnellement complète

c-a-d Soit ℰ un ensemble de clauses c-a-d Soit ℰ un ensemble de clauses

ℰ est insatisfiable ssi

ℰ (cid:2) R1

ENSI

Logique Mathématique

48

La méthode de résolution

Application

Publicité

Pour montrer qu’un ensemble ℰ de formules de 1er ordre est insatisfiable faire :

1. Mettre chacune des formules de l’ensemble ℰ sous forme

ℰ clausale. Ω := ℰ C

2. Renommer les variables des différentes clauses de Ω 2. Renommer les variables des différentes clauses de Ω 3. Tant que ( (cid:2) ∉ Ω )

faire ∈ Ω telles que {Ci , Cj }

C »

Res

- choisir « Ci et Cj

ou « Ci

∈ Ω telle que Ci

C »

Fact

- Ω := Ω U {C}

ENSI

Logique Mathématique

49

La méthode de résolution

Exemple

{ P(x) (cid:218)

(cid:218) P(f(x)) , P(a) ,  P(f(x)) }

Renommage {  P(x) (cid:218)

(cid:218) P(f(x)) , P(a) ,  P(f(y)) }

{x ← a}

P(f(a))

{y ← a}

(cid:2)

Graphe (arbre) de déduction (dérivation)

ENSI

Logique Mathématique

50

(cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

Exemple (suite) { P(x) (cid:218)

(cid:218) P(f(x)) , P(a) ,  P(f(y)) }

Autre présentation

 P(x) (cid:218)

(cid:218) P(f(x)) P(a)

{x ← a}

P(f(a))  P(f(y))

(cid:2)

{y ← a}

ENSI

Logique Mathématique

51

(cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

Exemple

H1 : «Tout animal à plumes est un oiseau »

(cid:3) "

" x P(x) ⇒⇒⇒⇒ O(x)

H2 : «Aucun mammifère n’est un oiseau » (cid:3) "

" x M(x) ⇒⇒⇒⇒  O(x)

C : «Donc, aucun mammifère n’a de plumes »

(cid:3) " (cid:3) "

" x M(x) ⇒⇒⇒⇒  P(x) " x M(x) ⇒⇒⇒⇒  P(x)

(cid:4) montrons que {H1, H2} ╞ C

montrons que { H1 , H2 ,  C } est insatisfiable

" x P(x) ⇒⇒⇒⇒ O(x) , " {"

" x M(x) ⇒⇒⇒⇒  O(x) , $

$ x M(x) (cid:217)

(cid:217) P(x)}

ENSI

Logique Mathématique

suite

52

" " " " " " " " " " " " $ $ (cid:217) (cid:217) La méthode de résolution

1. Forme clausale

{  P(x) (cid:218)

(cid:218) O(x) ,  M(x) (cid:218)

 O(x) , M(a) , P(a) }

2. Renommage {  P(x) (cid:218)

(cid:218) O(x) ,  M(y) (cid:218)

 O(y) , M(a) , P(a) }

3. Résolution

{  P(x) (cid:218)



(cid:218) O(x) ,  M(y) (cid:218)



 O(y) , M(a) , P(a) } 

{y ← a}

 O(a)

{x ← a}

 P(a)

ENSI

Logique Mathématique

53

(cid:2)

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

4- Stratégie de résolution

La méthode résolution de Robinson présentée est non déterministe à cause du choix des clauses sur lesquelles il faut appliquer les règles Res et Fact

Le fait d’ajouter une stratégie pour appliquer les règles risque de rendre la méthode non complète et le fait d’appliquer les règles rendre la méthode non complète et le fait d’appliquer les règles d’une façon non déterministe risque aussi de ne pas trouver facilement le (cid:2) s’il existe

Nous voulons donc avoir une stratégie qui garde la méthode de résolution complète et qui nous permet de trouver facilement le (cid:2) s’il existe

ENSI

Logique Mathématique

54

La méthode de résolution

Soit ℰ un ensemble de clauses qu’ont veut montrer insatisfiable

On appellera les clauses de ℰ

les clauses initiales ou clauses input

Définition

Une stratégie de résolution est dite complète si lorsque l’ensemble ℰ est insatisfiable, alors on est sûre de trouver le (cid:2)

ENSI

Logique Mathématique

55

La méthode de résolution

Différentes stratégies possibles (cid:1) Une stratégie est dite linéaire si à chaque fois qu’on applique la règle Res (ou Fact) , une des deux clauses parentes est la

dernière clause résolvante (ou facteur) obtenue

(cid:4) la stratégie linéaire est une stratégie complète

(cid:1) Une stratégie est dite linéaire input si elle est linéaire et à

chaque fois qu’on applique la règle Res , une des deux clauses

parentes appartient à l’ensemble des clauses initiales

(clauses input)

(cid:4) la stratégie linéaire input n’est pas une stratégie complète suite

ENSI

Logique Mathématique

56

Res

La méthode de résolution

C’ C’’ C’ , C’’ ∈ ℰ

D1

B1

......

Dk

Bk

...... ......

• stratégie linéaire Bk

∈∈∈∈ ℰℰℰℰ U {D1 , ... , Dk-1}

• stratégie linéaire input Bk

∈∈∈∈ ℰℰℰℰ

ENSI

Logique Mathématique

57

La méthode de résolution

Exemple

{ p (cid:218)

q ,  p (cid:218)

(cid:218) q , p (cid:218)

 q ,  p (cid:218)

 q }

q (cid:218)

q  q (cid:218)

 q

q  q q  q

(cid:2)

(cid:4) stratégie non linéaire

ENSI

Logique Mathématique

58

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

Exemple

{ p (cid:218)

q ,  p (cid:218)

(cid:218) q , p (cid:218)

 q ,  p (cid:218)

 q }

q (cid:218)

q

q

(cid:4) mais non input

(cid:4) stratégie linéaire

 p

 q

(cid:2)

(cid:4) il est facile de vérifier

qu’une stratégie linéaire input ne va pas donner le (cid:2) (boucle)

ENSI

Logique Mathématique

59

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

Exemple

{  p , p (cid:218)

q ,  q (cid:218)

r ,  r }

q

r

(cid:2)

(cid:4) stratégie linéaire input

ENSI

Logique Mathématique

60

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

On appelle littéral positif (qu’on notera l+ ) un atome (sans le symbole  ) et un littéral négatif (qu’on notera l- ) une négation d’atome

(cid:1) Une stratégie est dite négative (resp. positive) si à chaque , une des deux clauses fois qu’on applique la règle Res , une des deux clauses fois qu’on applique la règle

parentes est une clause négative (resp. positive) c-à-d ne

contenant que des littéraux négatifs (resp. positifs)

(cid:4) les stratégies négatives sont des stratégies complètes.

De même les stratégies positives

ENSI

Logique Mathématique

61

La méthode de résolution

(cid:1) Une stratégie est dite ordonnée si les littéraux de chaque

clause sont ordonnés et la résolution (coupure) n’est permise que sur certains littéraux

Exemple : les littéraux de chaque clause sont ordonnés en mettant les littéraux positifs en tête. La coupure n’est permise mettant les littéraux positifs en tête. La coupure n’est permise que sur le littéral situé en tête de chaque clause parente

(cid:4) une stratégie à la fois linéaire et ordonnée est une

stratégie complète

ENSI

Logique Mathématique

62

La méthode de résolution

La stratégie SLD

SLD Resolution ( Selected Lineary Defined )

La SLD Resolution est une stratégie :

• linéaire input

• négative • négative

• ordonnée sur les littéraux comme suit :

- les littéraux de chaque clauses sont ordonnés en

plaçant les littéraux positifs en tête

- la coupure n’est autorisée que sur le premier littéral de

chaque clause

ENSI

Logique Mathématique

suite

63

La méthode de résolution

C

Res

B0

D1

B1

......

Dk

Bk ......

∈ ℰ

C, B0 , ... , Bk C négative D1 , ... , Dk négatives

(cid:4) chaque clause résolvante Di est forcément une clause l- 1

négative de la forme  A (cid:218)

(A un atome)

... (cid:218)

l- n

(cid:4) à chaque itération i , on choisit une clause Bi l’m telle que il existe s

forme A’ (cid:218) A et A’ et on applique la règle Res (on dit on coupe sur les premiers littéraux de tête)

∈∈∈∈ ℰ de la p.g.u de

... (cid:218)

l’1

ENSI

Logique Mathématique

64

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

Remarques (cid:1) La stratégie SLD est en général non complète car elle est

input. Elle devient complète si les clauses initiales sont des clauses de Horn . C’est le principe du langage Prolog

(cid:1) Une clause de Horn est une clause contenant au plus un

littéral positif

(cid:1) On doit au moins avoir une clause initiale complètement (cid:1) On doit au moins avoir une clause initiale complètement

négative pour pouvoir initialiser la SLD Resolution

(cid:1) En adoptant la stratégie SLD, la règle de factorisation (Fact)

n’est plus nécessaire

(cid:1) Une stratégie SLD peut nous aider à savoir si un ensemble de

clauses est éventuellement satisfiable (mais pas systématiquement)

ENSI

Logique Mathématique

65

La méthode de résolution

Mise en œuvre de la SLD Resolution • l’ensemble des clauses initiales est ordonné comme suit : n , C1+

1 , ... , C1+

ℰ = { C-

1 , ... , C-

1 , ... , l+

m , l+

p }

C-

i : clauses négatives j : clauses de Horn avec un seul littéral positif

C1+

le littéral positif est placé en tête le littéral positif est placé en tête

l+

k : clauses unitaires positives (un seul littéral positif) • au départ : application de la règle Res sur une clause négative

( C-

i ) avec clause contenant un littéral positif ( C1+

j ou l+

k )

• à chaque itération : application de la règle Res sur la dernière

résolvante obtenue avec une clause contenant un littéral positif ( C1+

j ou l+

k )

ENSI

Logique Mathématique

66

La méthode de résolution

Exemple SLD resolution

{  p (cid:218)

 q , q (cid:218)

 r , p (cid:218)

 s , r

, s }

 q (cid:218)

 s

 r (cid:218)  r (cid:218)

 s  s

 s

(cid:2)

ENSI

Logique Mathématique

67

(cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) (cid:218) La méthode de résolution

Exemple

{  p (cid:218)

 q , q (cid:218)

 r , p (cid:218)

 s , r , s }

 p (cid:218)

 r

 p 

(cid:4) n’est pas une stratégie SLD

car ord