Académique Documents
Professionnel Documents
Culture Documents
Louis Dublois
louis.dublois@gmail.com
Université Paris-Dauphine
2020/2021
1 / 64
TD 8 (Correction DM)
2 / 64
E3SAT
3 / 64
E3SAT ∈ NP
4 / 64
E3SAT ∈ NP
Input : Une formule φ de n variables x1 , . . . , xn et m clauses C1 , . . . , Cm
(chacune composée d’exactement 3 litéraux), et une affectation ρ des
variables de φ.
Output : Oui si ρ satisfait φ, sinon Non.
Theorem
E3SAT est dans NP
5 / 64
3SAT ≤T E3SAT
6 / 64
3SAT ≤T E3SAT
Soit φ une instance de 3SAT avec n variables x1 , . . . , xn et m clauses
C1 , . . . , Cm .
Si |Cj | = 3, OK.
φ0 ← φ
Pour toute clause Cj dans φ faire :
Si |Cj | = 2 (Cj = (x1 ∨ x2 )) faire :
Créer Cj1 = (x1 ∨ x2 ∨ y ) et Cj2 = (x1 ∨ x2 ∨ y )
φ0 ← (φ0 \ Cj ) ∪ {Cj1 ∪ Cj2 }
Si |Cj | = 1 (Cj = (x )) faire :
Créer Cj1 = (x ∨ y1 ∨ y2 ), Cj2 = (x ∨ y1 ∨ y2 ), Cj3 = (x ∨ y1 ∨ y2 ) et
Cj4 = (x ∨ y1 ∨ y2 )
φ0 ← (φ0 \ Cj ) ∪ {Cj1 , Cj2 , Cj3 , Cj4 }
Retourner φ0
Algorithme en O(m).
8 / 64
Exactitude 3SAT ≤T E3SAT
9 / 64
Exactitude 3SAT ≤T E3SAT
Démonstration.
Supposons que φ est satisfiable.
10 / 64
Exactitude 3SAT ≤T E3SAT
Démonstration.
Supposons que φ0 est satisfaite.
Si Cj est telle qu’il existe Cj0 où Cj et Cj0 ont été créées par l’algorithme à
partir de Cj∗ . Alors Cj = (x1 ∨ x2 ∨ y ) et Cj0 = (x1 ∨ x2 ∨ y ). La variable y
ne peut pas satisfaire Cj et Cj0 donc x1 ou x2 satisfait Cj et Cj0 . Donc la
clause originale Cj∗ est satisfaite dans φ.
Si Cj est telle qu’il existe Cj2 , Cj3 , Cj4 où Cj , Cj2 , Cj3 , Cj4 ont été créées par
l’algorithme à partir de Cj∗ . Les deux variables ajoutées y1 et y2 ne
peuvent pas satisfaire les quatre clauses Cj , Cj2 , Cj3 , Cj4 , donc la variable x
les satisfait. Donc Cj∗ est satisfaite dans φ.
12 / 64
E3SAT est NP-complet
Du fait que le problème 3SAT est NP-complet, et par les deux directions
de la preuve de la question 3), on a que :
Theorem
E3SAT est NP-complet.
13 / 64
Minimum Set Cover
14 / 64
k-Set Cover
15 / 64
k-Set Cover
Entier k ≤ m.
16 / 64
k-Set Cover ∈ NP
2) Montrer que k-Set Cover est dans NP (on peut supposer ici que n
et m sont des polynômes l’un de l’autre).
17 / 64
k-Set Cover ∈ NP
Input : Une instance ((U, S), k) de k-Set Cover avec |U| = n,
|S| = m, et k ≤ m, et une sous-famille S ∗ de S.
Output : Oui si S ∗ est un set cover de taille au plus k, sinon Non.
Theorem
k-Set Cover est dans NP
18 / 64
k-Dominating Set ≤T k-Set Cover
19 / 64
k-Dominating Set ≤T k-Set Cover
On pose k 0 = k.
20 / 64
Exactitude k-Dominating Set ≤T k-Set Cover
21 / 64
Exactitude k-Dominating Set ≤T k-Set Cover
Démonstration.
Supposons qu’il existe un dominating set D ⊆ V dans G de taille au plus
k.
22 / 64
Exactitude k-Dominating Set ≤T k-Set Cover
Démonstration.
Supposons qu’il existe un set cover S ∗ ⊆ S dans (U, S) de taille au plus
k.
On pose D = {u ∈ V : N[u] ∈ S ∗ }.
23 / 64
k-Set Cover est NP-complet
24 / 64
k-Set Cover est NP-complet
Theorem
k-Set Cover est NP-complet.
25 / 64
|U| = O(|S|)
26 / 64
|U| = O(|S|)
27 / 64
H-SAT
28 / 64
Trois Types de Clauses
29 / 64
Trois Types de Clauses
30 / 64
Aucune Clause Positive
31 / 64
Aucune Clause Positive
32 / 64
C1 = (y ) et C2 = (y )
3) Montrer que dans une instance φ de H-SAT, s’il existe deux clauses
C1 , C2 telles ques C1 est positive avec C1 = (y ) et C2 est négative avec
C2 = (y ), alors φ n’est pas satisfiable.
33 / 64
C1 = (y ) et C2 = (y )
C1 = (y )
C2 = (y )
34 / 64
Réduire une Instance
35 / 64
Réduire une Instance et Satisfiabilité
36 / 64
Réduire une Instance et Satisfiabilité
Démonstration.
Supposons que φ est satisfiable, et soit ρ une bonne affectation.
Notons que φ0 contient seulement les clauses suivantes :
(i) Clause C qui ne contient aucun litéral de y .
(ii) Clause C qui contenait y en litéral négatif.
5) Montrer que pour une instance φ de H-SAT qui contient une clause
positive C = (y ), l’instance φ0 obtenue après avoir réduit φ par y est
dans un des trois cas suivants :
φ0 est satisfiable.
φ0 n’est pas satisfiable.
Pour toute clause C 0 = (y 0 ), il n’existe pas de clause négative
C 00 = (y 0 ).
39 / 64
Réduire une Instance et Trois Cas
40 / 64
Algorithme Polynomial
41 / 64
Algorithme Polynomial
42 / 64
Algorithme Polynomial
Sinon, d’après la question 5), on est dans le troisème cas : toutes les
clauses positives C 0 = (y 0 ) sont telles qu’il n’existe pas C 00 = (y 0 ). Dans
ce cas-là, on choisit une telle clause C 0 = (y 0 ), et on réduit φ par y 0 . On
obtient alors une nouvelle instance φ0 pour laquelle on fait les mêmes
opérations (vérifier si φ0 est satisfiable ou non, et en fonction réduire φ0 ).
44 / 64
H-SAT est dans P
Donc :
Theorem
H-SAT est dans P.
45 / 64
3-Coloration
Un graphe G = (V , E ) avec |V | = N et |E | = M.
46 / 64
3-Coloration est dans NP
47 / 64
3-Coloration est dans NP
Il s’exécute en O(n2 ).
48 / 64
3-Coloration est dans NP
Input : Un graphe G = (V , E ) avec |V | = N et |E | = M, et I1 , I2 , I3 trois
sous-ensembles de V .
Output : Oui si I1 ∪ I2 ∪ I3 est une 3-coloration de G, sinon Non.
Theorem
3-Coloration est dans NP.
50 / 64
NAE-3SAT ≤T 3-Coloration
51 / 64
NAE-3SAT ≤T 3-Coloration
52 / 64
NAE-3SAT ≤T 3-Coloration
On construit une instance G = (V , E ) de 3-Coloration de la manière
suivante :
On a bien |V | = N = 2n + 3m + 1 et |E | = M ≤ n + 6m + 2n.
53 / 64
exemple NAE-3SAT ≤T 3-Coloration
s
x1 x1 x2 x2 x3 x3 x4 x4
u1 v1 u2 v2 u3 v3 u4 v4
x3 x3 x4
x1 x2 x1 x2 x1 x2 x1 x2 x1 x4
54 / 64
exemple NAE-3SAT ≤T 3-Coloration
φ = (x1 ∨ x2 ) ∧ (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x4 ) ∧ (x1 ∨ x4 )
s
x1 x1 x2 x2 x3 x3 x4 x4
u1 v1 u2 v2 u3 v3 u4 v4
x3 x3 x4
x1 x2 x1 x2 x1 x2 x1 x2 x1 x4
55 / 64
Exactitude NAE-3SAT ≤T 3-Coloration
56 / 64
Exactitude NAE-3SAT ≤T 3-Coloration (⇒)
Démonstration.
Supposons que φ est satisfiables, et soit ρ une bonne affectation.
57 / 64
Exactitude NAE-3SAT ≤T 3-Coloration (⇒)
Démonstration.
I1 est un stable.
58 / 64
Exactitude NAE-3SAT ≤T 3-Coloration (⇒)
Démonstration.
De manière similaire, I2 est aussi un stable.
59 / 64
Exactitude NAE-3SAT ≤T 3-Coloration (⇐)
Démonstration.
Supposons que l’on a I1 ∪ I2 ∪ I3 une 3-coloration de G.
60 / 64
Exactitude NAE-3SAT ≤T 3-Coloration (⇐)
Démonstration.
On construit ρ comme suit :
Pour toute variable xi (1 ≤ i ≤ n) :
Si ui ∈ I1 , alors ρ(xi ) = true.
Si vi ∈ I1 , alors ρ(xi ) = false.
Donc les valeurs données aux variables satisfont toutes les clauses.
61 / 64
Exactitude NAE-3SAT ≤T 3-Coloration (⇐)
Démonstration.
De manière similaire, en regardant I2 , on obtient que chaque clause a au
moins un litéral à false.
62 / 64
3-Coloration est NP-complet
63 / 64
3-Coloration est NP-complet
Theorem
3-Coloration est NP-complet.
64 / 64