INFO-F-302, Cours d`Informatique Fondamentale Logique pour l

publicité
INFO-F-302, Cours d’Informatique
Fondamentale
Logique pour l’Informatique
Emmanuel Filiot
Département d’Informatique
Faculté des Sciences
Université Libre de Bruxelles
Année académique 2011-2012
Basé sur le cours Logique Informatique du Pr. J.-F. Raskin
1-
INFO-F-302 - /
Littéraux et Clauses
Rappels
Une formule propositionnelle φ est un littéral si et seulement si φ est
une proposition ou la négation d’une proposition.
Une valuation V satisfait un ensemble de formules A = {φ1 , . . . , φn },
que l’on note V |= A, si et seulement si V |= φ1 ∧ · · · ∧ φn . Si A = ∅,
alors toute valuation V satisfait A.
Donc, p et ¬p sont des littéraux.
Définition
Une formule propositionnelle φ est une clause si φ = ψ1 ∨ ψ2 ∨ · · · ∨ ψn où
n ≥ 1 et chaque ψi , 1 ≤ i ≤ n, est un littéral .
Par exemple, p ∨ ¬q ∨ r est une clause.
2-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Clauses et ensembles de littéraux
Une clause
¬a1 ∨ ¬a2 ∨ · · · ∨ ¬am ∨ b1 ∨ b2 ∨ · · · ∨ bn
où a1 , a2 , . . . , am , b1 , b2 , . . . , bn sont des propositions peut être écrite
comme l’implication :
a1 ∧ a2 ∧ · · · ∧ am → b1 ∨ b2 ∨ · · · ∨ bn
ou encore comme une paire d’ensembles (N, P) où N = {a1 , a2 , . . . , am } et
P = {b1 , b2 , . . . , bn } (N pour négatif et P pour positif). Donc N contient
l’ensemble des propositions qui apparaissent négativement dans la clause,
alors que P contient l’ensemble des propositions qui apparaissent
positivement dans la clause.
3-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Différents types de clauses
Une clause (N, P) est
une clause négative si P = ∅ ;
une clause positive si N = ∅ ;
une clause vide si N = P = ∅ (on la note ⊥) ;
une clause tautologique si N ∩ P 6= ∅.
4-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Interprétation des clauses
Définition
Une valuation V satisfait une clause C = (N, P), ce que l’on note V |= C ,
si et seulement si il existe a ∈ N tel que V (a) = faux ou si il existe b ∈ P
tel que V (b) = vrai.
Et donc,
5-
1
La clause vide n’est satisfaite par aucune fonction d’interprétation.
2
La clause vide est la seule clause non satisfaisable.
3
Une clause tautologique est satisfaite par toutes les fonctions
d’interprétation.
INFO-F-302 - La Logique Propositionnelle / La Résolution
Interprétation des ensembles de clauses
Nous étendons maintenant les notions de satisfaction, satisfaisabilité,
validité et conséquence logique aux ensembles de clauses :
Définition
1 Un ensemble de clauses S est satisfait par la fonction d’interprétation
V si et seulement si on a que V |=C pour toute clause C ∈ S.
6-
2
Un ensemble de clauses S est satisfaisable si et seulement si il existe
une fonction d’interprétation qui satisfait S.
3
Un ensemble de clauses S est valide si et seulement si toute fonction
d’interprétation V satisfait S.
4
Une clause C est une conséquence logique d’un ensemble de clauses
S, ce que l’on note S |= C si et seulement si pour toute valuation V
qui satisfait S, V satisfait C .
INFO-F-302 - La Logique Propositionnelle / La Résolution
Interprétation des ensembles de clauses
Et donc,
L’ensemble vide de clause est valide et donc satisfaisable.
Soit S un ensemble de clauses et C une clause tautologique, S ∪ {C }
est satisfaisable (respectivement valide) si et seulement si S est
satisfaisable (respectivement valide).
Ce dernier corollaire nous indique que, lorsque l’on veut vérifier la
satisfaisabilité ou la validité d’un ensemble de clauses, on peut
toujours supprimer les clauses tautologiques.
7-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Equivalence entre ensembles de clauses et
formules
Proposition
Toute formule φ est équivalente à un ensemble fini de clauses.
Preuve : utiliser la mise sous FNC.
Exercice : calculer un ensemble de clauses équivalent à ¬(p ↔ (q → r )).
8-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Règle de coupure
Exemples de coupure
|= (¬φ ∨ ψ) ∧ φ → ψ (Modus Ponens).
|= (¬φ ∨ ψ) ∧ (φ ∨ ψ 0 ) → ψ ∨ ψ 0 .
Définition
Etant données deux clauses C1 = (N1 , P1 ) et C2 = (N2 , P2 ) et une
proposition p telles que p ∈ P1 et p ∈ N2 , c’est-à-dire p apparaît
positivement dans C1 et négativement dans C2 , on obtient la clause
C3 = (N3 , P3 ) (le résolvant) par coupure avec p où :
N3 = N1 ∪ (N2 \ {p}) ;
P3 = (P1 \ {p}) ∪ P2 .
On note par C1 , C2 `cp C3 le fait que C3 est déductible de C1 , C2 par coupure
sur la proposition p.
Par exemple, ({e}, {b, p}), ({p}, {a, b}) `cp ({e}, {a, b}), autrement noté,
¬e ∨ b ∨ p, ¬p ∨ a ∨ b `cp ¬e ∨ a ∨ b.
9-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Validité de la règle de coupure
Théorème
Si C3 = (N3 , P3 ) est une clause obtenue par la règle de coupure à partir
des clauses C1 = (N1 , P1 ) et C2 = (N2 , P2 ) alors C3 est une conséquence
logique de C1 et C2 .
Preuve. Pour montrer que la règle de coupure est adéquate, nous devons
montrer que si C1 , C2 `cp C3 alors C1 , C2 |= C3 . Par définition de |=, cela
revient à montrer que pour toute fonction d’interprétation V telle que
V |=C1 et V |=C2 , on a V |=C3 . On considère deux cas :
1 Si V (p) = vrai, alors comme V |=C et p apparaît négativement dans
2
C2 , on a que V |=(N2 \ {p}, P2 ), et donc
V |=(N1 ∪ N2 \ {p}, P1 \ {p} ∪ P2 ), i.e. V |=C3 .
2 Si V (p) = faux, alors comme V |=C et p apparaît positivement dans
1
C1 , on a que V |=(N1 , P1 \ {p}), et donc
V |=(N1 ∪ N2 \ {p}, P1 \ {p} ∪ P2 ), i.e. V |=C3 .
10-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Preuve par coupure
Définition
Soit S un ensemble de clauses et C une clause. Une preuve de C par
coupure à partir de S est une suite finie de clauses C1 , C2 , . . . , Cn où
Cn = C et pour tout i, 1 ≤ i ≤ n, on a que :
soit Ci ∈ S ;
ou il existe k, l , 1 ≤ k < l < i et une proposition p tels que
Ck , Cl `cp Ci .
On note par S`c C le fait que C est déductible de S par coupure.
Par exemple : de S = {(¬q ∨ p), (¬r ∨ q), (r ∨ s)}`c s ∨ p avec la preuve
par coupure suivante :
1
2
3
4
5
11-
¬q ∨ p
¬r ∨ q
r ∨s
p ∨ ¬r
s ∨p
prémisse
prémisse
prémisse
q, 1, 2
r , 3, 4
INFO-F-302 - La Logique Propositionnelle / La Résolution
Adéquation des preuves par coupure
Théorème
Pour tout ensemble de clauses S et pour toute clause C , si S`c C alors
S |= C .
Preuve. La preuve est laissée en exercice. Indices : utiliser la validité de la
règle de coupure et raisonner par induction sur la longueur de la preuve.
12-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Réfutation
Définition
Une réfutation d’un ensemble S de clauses par coupure est une dérivation
de la clause vide à partir de S.
Théorème
Si il existe un réfutation de S par coupure alors l’ensemble de clauses S est
non satisfaisable.
Par exemple, {p, ¬p ∨ q, ¬q ∨ r , ¬r } est non satisfaisable :
13-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Réfutation
Définition
Une réfutation d’un ensemble S de clauses par coupure est une dérivation
de la clause vide à partir de S.
Théorème
Si il existe un réfutation de S par coupure alors l’ensemble de clauses S est
non satisfaisable.
Par exemple, {p, ¬p ∨ q, ¬q ∨ r , ¬r } est non satisfaisable :
1
2
3
4
5
6
7
13-
p
¬p ∨ q
¬q ∨ r
¬r
q
r
⊥
prémisse
prémisse
prémisse
prémisse
p, 1, 2
q, 2, 5
r , 4, 6
INFO-F-302 - La Logique Propositionnelle / La Résolution
Preuve par réfutation et preuve de conséquence
logique
Question
Comment peut-on se servir de la notion de réfutation pour vérifier qu’une
formule φ est une conséquence logique d’un ensemble fini de formules
ψ1 , ψ2 , . . . , ψn ?
14-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Preuve par réfutation et preuve de conséquence
logique
Question
Comment peut-on se servir de la notion de réfutation pour vérifier qu’une
formule φ est une conséquence logique d’un ensemble fini de formules
ψ1 , ψ2 , . . . , ψn ?
Il suffit de procéder de la façon suivante :
1
transformer la conjonction
ψ1 ∧ ψ2 ∧ · · · ∧ ψn
en un ensemble fini S de clauses (cette transformation est toujours
possible) ;
2
3
14-
de la même façon, transformer ¬φ en un ensemble S 0 de clauses ;
construire l’ensemble de toutes les clauses D déductibles par coupure
de S ∪ S 0 .
INFO-F-302 - La Logique Propositionnelle / La Résolution
Preuve par réfutation et preuve de conséquence
logique
Si la clause vide appartient à l’ensemble D alors l’ensemble D n’est pas
satisfaisable et donc l’ensemble S ∪ S 0 ne l’est pas non plus, ce qui revient
à dire que la formule ψ1 ∧ ψ2 ∧ · · · ∧ ψn ∧ ¬φ n’est pas satisfaisable et donc
φ est une conséquence logique de l’ensemble {ψ1 , ψ2 , . . . , ψn }.
15-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Complétude de la méthode par réfutation
Lemme
Si un ensemble S de clauses est non satisfaisable et ne contient pas la
clause vide, alors il existe une proposition p et deux clauses C1 , C2 ∈ S
telles que p ∈ P2 et p ∈ N1 .
Preuve. Nous établissons ce lemme en raisonnant par l’absurde. Faisons
l’hypothèse que S est non satisfaisable, ne contient pas la clause vide et ne
contient pas une proposition p avec la propriété requise. Par conséquent, p
apparaît soit toujours négativement ou toujours positivement.
Montrons maintenant que l’on peut établir la satisfaisabilité de S, ce qui
constitue une contradiction. Pour satisfaire S, il suffit de prendre la fonction
d’interprétation V tel que V (p) = vrai si p apparaît toujours positivement
dans S et V (p) = faux si p apparaît toujours négativement dans S.
Une fois que V est définie pour chaque proposition comme expliqué
ci-dessus et vu que S ne contient pas la clause vide, il est facile d’établir
que V |=S, ce qui est une contradiction avec l’hypothèse de départ qui dit
que S est non satisfaisable.
16-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Complétude de la méthode par réfutation
Lemme
Si un ensemble S de clauses est non satisfaisable et ne contient pas la
clause vide, alors il existe une proposition p et deux clauses C1 , C2 ∈ S
telles que p ∈ P2 et p ∈ N1 .
Conséquence
On peut appliquer la règle de coupure !
16-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Complétude de la méthode par réfutation
Notations
Les propositions d’une clause C = (N, P) sont l’ensemble des propositions
qui apparaissent dans l’ensemble N ∪ P ; cet ensemble est noté
S Prop(C ).
Les propositions d’un ensemble S de clauses est l’ensemble C ∈S Prop(C ) ;
cet ensemble est noté Prop(S).
Etant donné un ensemble S de clauses et une proposition p, on note Sp le
sous-ensemble de clauses de S qui contiennent la proposition p,
c’est-à-dire, Sp = {C ∈ S | p ∈ Prop(C )}.
17-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Complétude de la méthode par réfutation
Pas de résolution
Soit S un ensemble de clauses qui ne contient pas de clauses tautologiques
et une proposition p telle qu’il existe C1 , C2 et p ∈ N1 et p ∈ P2 , donc p
apparaît négativement dans C1 et positivement dans C2 . On définit le
résolvant de S par p comme l’ensemble des clauses
{C3 | ∃C1 , C2 ∈ Sp , p ∈ N1 , p ∈ P2 et C1 , C2 `cp C3 }
c’est-à-dire l’ensemble des clauses que l’on peut obtenir à partir de deux
clauses de S par coupure sur p ; nous notons par Res(S, p) cet ensemble de
clauses et par RRes(S, p) le sous-ensemble de clauses non tautologiques de
Res(S, p).
18-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Complétude de la méthode par réfutation
Pas de résolution
Etant donné un ensemble S de clauses et une proposition p, l’ensemble de
clauses S 0 = (S \ {Sp }) ∪ RRes(S, p) est l’ensemble obtenu par un pas de
résolution sur p à partir de S.
19-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Complétude de la méthode par réfutation
Pas de résolution
Proposition
Si S 0 est un ensemble de clauses obtenu à partir de S (qui ne contient pas
de clauses tautologiques) par un pas de résolution sur p alors :
1
S 0 ne contient pas de clauses tautologiques ;
2
S 0 est satisfaisable si et seulement si S est satisfaisable ;
3
Prop(S 0 ) = Prop(S) \ {p}.
(preuve laissée comme exercice)
20-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Complétude de la méthode par réfutation
Théorème
Si un ensemble S de clauses est non satisfaisable, alors on peut déduire la
clause vide à partir de S avec un nombre fini de pas de résolution.
Preuve. On fait la preuve par induction sur le nombre n de propositions. Si
n = 0, alors S = {⊥} ne contient que la clause vide.
Supposons que n > 0.
1 Soit T ⊆ S l’ensemble de clauses non-tautologiques de S. Puisque S
est non satisfaisable et que tout clause tautologique est satisfaisable,
T est non satisfaisable.
2 d’après le lemme préc’edent, il existe une proposition p qui apparaît
négativement dans une clause de T et positivement dans une autre.
On peut donc appliquer un pas de résolution, et construire ainsi un
ensemble T 0 de clauses qui ne contiennent pas p, et tel que T 0 est
insatisfaisable. Par HI, on peut dd́uire la clause vide de T 0 avec un
nombre fini de pas de résolution, et donc on peut déduire de T , et
donc de S, la clause vide avec un nombre fini de pas de résolution.
21-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Complétude de la méthode par réfutation
Théorème
Si un ensemble S de clauses est non satisfaisable, alors on peut déduire la
clause vide à partir de S avec un nombre fini de pas de résolution.
Remarques
on a vu que la réciproque est vraie.
pour décider si une formule est satisfaisable avec la méthode de
résolution, il faut calculer tous les résolvants et tester que la clause
vide n’en fait pas partie.
21-
INFO-F-302 - La Logique Propositionnelle / La Résolution
Téléchargement