Validit´e

publicité
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
Le Problème SAT
Le Problème SAT
171
Rappels
Satisfaisabilité
Soit P un ensemble de propositions. Une formule
propositionnelle sur P est satisfaisable si
Le Problème SAT
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
Le Problème SAT
171
Rappels
de la logique
Le Problème SAT
171
Rappels
Satisfaisabilité
Satisfaisabilité
Soit P un ensemble de propositions. Une formule de la logique
propositionnelle sur P est satisfaisable si il existe une interprétation
V : P ! {1, 0} telle que V |= .
Soit P un ensemble de propositions. Une formule de la logique
propositionnelle sur P est satisfaisable si il existe une interprétation
V : P ! {1, 0} telle que V |= .
Par exemple : p, ¬p, p _ (¬p ! q) mais pas p ^ ¬p, ni ¬(p ! p).
Validité
Une formule
sur P est valide si
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
La Logique Propositionnelle
Le Problème SAT
171
Le Problème SAT
Rappels
171
Rappels
Satisfaisabilité
Satisfaisabilité
Soit P un ensemble de propositions. Une formule de la logique
propositionnelle sur P est satisfaisable si il existe une interprétation
V : P ! {1, 0} telle que V |= .
Soit P un ensemble de propositions. Une formule de la logique
propositionnelle sur P est satisfaisable si il existe une interprétation
V : P ! {1, 0} telle que V |= .
Par exemple : p, ¬p, p _ (¬p ! q) mais pas p ^ ¬p, ni ¬(p ! p).
Par exemple : p, ¬p, p _ (¬p ! q) mais pas p ^ ¬p, ni ¬(p ! p).
Validité
Une formule
sur P est valide siV |=
Validité
pour toute interprétation V .
Une formule
sur P est valide siV |=
pour toute interprétation V .
Par exemple : p _ ¬p, p ! p, p ! q ! p sont valides, mais pas p, ni
¬p.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
Le Problème SAT
172
Problème SAT
Définition
ENTREE Un ensemble de clauses S.
SORTIE Est-ce que S est satisfaisable ?
Dans le cas où S est satisfaisable, on aimerait que l’algorithme nous
retourne une valuation V qui satisfait S.
Le Problème SAT
173
Pour commencer : le cas particulier 2-SAT
Définition
2-SAT ENTREE Un ensemble de clauses S contenant chacune
exactement deux littéraux.
SORTIE Est-ce que S est satisfaisable ?
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
Le Problème SAT
173
Pour commencer : le cas particulier 2-SAT
Le Problème SAT
174
Idée de l’algorithme
Dans la suite, les variables `1 , `2 , . . . représente des littéraux. Pour tout
littéral `, on note ` le littéral x si ` = ¬x, et ¬x sinon.
Définition
2-SAT ENTREE Un ensemble de clauses S contenant chacune
exactement deux littéraux.
SORTIE Est-ce que S est satisfaisable ?
I
I
Théorème
2-SAT peut être résolu en temps polynomial (2 SAT 2 P). Plus
précisément, en temps ✓(m) si S contient m clauses.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
I
Graphe d’Implication
Pour S = {x0 _ x2 , x0 _ ¬x3 , x1 _ ¬x3 , x1 _ ¬x4 , x2 _ ¬x4 , x0 _ ¬x5 ,
x1 _ ¬x5 , x2 _ ¬x5 , x3 _ x6 , x4 _ x6 , x5 _ x6 }
on peut alors construire le graphe d’implications : chaque sommet
est une variable ou sa négation, et pour toute clause `1 _ `2 on
ajoute les deux arêtes (dirigées) (`1 , `2 ) et (`2 , `1 ).
voyons un exemple ...
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
Le Problème SAT
175
chaque clause `1 _ `2 est équivalente aux implications suivantes :
`1 ! `2 et `2 ! `1 .
Le Problème SAT
176
Graphe d’Implication
Autre exemple pour
S 0 = {x1 _ x2 , ¬x2 _ x3 , ¬x3 _ x1 , ¬x1 _ x4 , ¬x4 _ ¬x1 , x2 _ x4 }
Que remarquez-vous ? est-ce satisfaisable ?
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
Le Problème SAT
176
Graphe d’Implication
Le Problème SAT
177
Autre exemple pour
S 0 = {x1 _ x2 , ¬x2 _ x3 , ¬x3 _ x1 , ¬x1 _ x4 , ¬x4 _ ¬x1 , x2 _ x4 }
Graphe d’Implication
Donc si on peut aller d’une variable à sa négation, et revenir de sa
négation à elle-même, alors S n’est pas satisfaisable. En fait c’est une
condition nécessaire et suffisante :
Lemme
S est insatisfaisable ssi il existe une variable x telle que dans le graphe
d’implication de S il existe un chemin de x à ¬x et de ¬x à x.
Basé sur ce résultat, on peut définir un algorithme pour tester la
satisfaisabilité de S, et construire une valuation si S est satisfaisable.
Que remarquez-vous ? est-ce satisfaisable ? Il existe un chemin de x1 à
¬x1 et de ¬x1 à x1 , donc S |= x1 $ ¬x1 , donc S |= ?, donc S est
insatisfaisable.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
Le Problème SAT
178
Algorithme pour 2-SAT
Le Problème SAT
179
Algorithme pour 2-SAT
Rappels
I
Une composante fortement connexe (CFC) est en ensemble maximal
de sommets tel qu’il existe un chemin entre toute paire de sommets.
I
Les CFC d’un graphe sont calculables en temps linéaire par un
parcours en profondeur.
I
Soient C1 , C2 deux CFC di↵érentes, on définit la relation C1 C2 s’il
existe une arête d’un sommet de C1 vers un sommet de C2 . La
relation est acyclique. Pourquoi ?
Remarques
I
si C = {`1 , . . . , `n } est une CFC, alors C = {`1 , . . . , `n } est aussi
une CFC, pourquoi ?
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
Le Problème SAT
179
Algorithme pour 2-SAT
Le Problème SAT
179
Remarques
Remarques
I
si C = {`1 , . . . , `n } est une CFC, alors C = {`1 , . . . , `n } est aussi
une CFC, pourquoi ?
I
si C = {`1 , . . . , `n } est une CFC, alors C = {`1 , . . . , `n } est aussi
une CFC, pourquoi ?
I
si C est maximale (i.e. il n’existe pas C 0 telle que C C 0 ), alors C
est minimale (i.e. il n’existe pas C 00 telle que C 00 C ), pourquoi ?
I
si C est maximale (i.e. il n’existe pas C 0 telle que C C 0 ), alors C
est minimale (i.e. il n’existe pas C 00 telle que C 00 C ), pourquoi ?
I
Pour satisfaire S, il est nécessaire que pour chaque CFC C , tous les
littéraux de C aient la même valeur.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
Le Problème SAT
180
Algorithme pour 2-SAT
Algorithme pour 2-SAT
Le Problème SAT
181
Algorithme pour 2-SAT – Exemple
Pour S = {x1 _ x2 , x2 _ ¬x3 , ¬x2 _ ¬x4 , x2 _ x4 , x4 _ x1 }
1. construire les composantes fortement connexes (CFC) du graphe
d’implication
2. tester qu’il n’existe pas de variables complémentaires au sein d’une
même CFC, sinon retourner non satisfaisable
3. choisir une CFC C maximale
4. a↵ecter 1 à tous les littéraux de C (et donc 0 à tous les littéraux de
C)
5. retirer C et C (et toutes leurs arêtes adjacentes) et recommencer
jusqu’à ce qu’il n’y ait plus de CFC.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
Le Problème SAT
182
Algorithme pour 2-SAT – Exemple
Le Problème SAT
183
Pour S = {x1 _ x2 , x2 _ ¬x3 , ¬x2 _ ¬x4 , x2 _ x4 , x4 _ x1 }
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
Pour S = {x1 _ x2 , x2 _ ¬x3 , ¬x2 _ ¬x4 , x2 _ x4 , x4 _ x1 }
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
Le Problème SAT
184
Algorithme pour 2-SAT – Exemple
Pour S = {x1 _ x2 , x2 _ ¬x3 , ¬x2 _ ¬x4 , x2 _ x4 , x4 _ x1 }
Algorithme pour 2-SAT – Exemple
Le Problème SAT
185
Algorithme pour 2-SAT – Exemple
Pour S = {x1 _ x2 , x2 _ ¬x3 , ¬x2 _ ¬x4 , x2 _ x4 , x4 _ x1 }
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
Le Problème SAT
186
Algorithme pour 2-SAT – Exemple
Le Problème SAT
187
Algorithme pour 2-SAT – Correction de l’Algorithme
Pour S = {x1 _ x2 , x2 _ ¬x3 , ¬x2 _ ¬x4 , x2 _ x4 , x4 _ x1 }
D’après ce qu’on a vu précédemment, si l’algorithme retourne non
satisfaisable alors S est non satisfaisable.
Supposons que l’algo retourne une valuation V et supposons que V 6|= S.
Donc il existe une clause `1 ! `2 telle que V (`1 ) = 1 et V (`2 ) = 0. Les
deux littéraux ne peuvent appartenir à la même CFC car d’après
l’algorithme tous les littéraux d’une CFC reçoivent la même valeur. Soit
C1 la CFC de `1 et C2 celle de `2 . On a nécessairement C1 C2 . D’après
l’algorithme, la seule manière que V (`1 ) = 1 est que C1 a été choisie
comme CFC C dans l’algorithme à une étape i, et donc que C1 était
maximale à cette étape. Donc C2 a été choisie comme CFC C à une
étape j < i (car les littéraux de C2 sont tous à 0), ce qui est impossible
car C2 C1 , donc C2 ne pouvait être maximale à l’étape j. On obtient
donc une contradiction et donc V |= S.
Remarque : Cela prouve la réciproque du lemme.
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
INFO-F-302, Cours d’Informatique Fondamentale Logique pour l’Informatique
La Logique Propositionnelle
Le Problème SAT
188
Une Application : emploi du temps
On se donne
Le Problème SAT
189
Une Application : emploi du temps
Modélisation en 2-SAT
I
un ensemble d’heures H
I
n enseignants
I
pour chaque enseignant, deux heures di↵érentes hi,1 et hi,2 où il est
disponible
I
m classes
1. si il existe i 6= i 0 tels que ci,1 = ci 0 ,1 , hi,1 = hi 0 ,1 , alors i et i 0 ne
peuvent enseigner en même temps à la même classe : ¬xi _ ¬xi 0
I
pour chaque enseignant i, deux classes di↵érentes ci,1 et ci,2 (à qui il
doit enseigner une heure chacune
I
3. si il existe i 6= i 0 tels que ci,1 = ci 0 ,2 , hi,1 = hi 0 ,1 , on ajoute ¬xi _ xi 0
on cherche un emploi du temps qui respecte toutes les contraintes
Pour tout enseignant i, on utilise la variable xi qui sera vraie si
l’enseignant i passe l’heure hi,1 avec la classe ci,1 (et l’autre avec ci,2 ), et
fausse dans le cas inverse
2. si il existe i 6= i 0 tels que ci,1 = ci 0 ,1 , hi,1 = hi 0 ,2 , on ajoute ¬xi _ xi 0
4. si il existe i 6= i 0 tels que ci,1 = ci 0 ,2 , hi,1 = hi 0 ,2 , on ajoute ¬xi _ ¬xi 0
Téléchargement