P, NP : Rappels - Grenoble INP
Transcript of P, NP : Rappels - Grenoble INP
P, NP : Rappels
• Problèmes dans P : il existe un algorithme polynomial (faciles àrésoudre)
• Problèmes dans NP : il existe un certificat polynomial (faciles à vérifier)
• Si Q se réduit polynomialement à P , alors P est au moins aussi durque Q
• Problème NP-difficile : problème vers lequel tout problème dans NP seréduit polynomialement
• Problème NP-complet : problème NP-difficile qui est dans NP
1
Diagramme des classes de complexité
NP-complet NP-difficileP NP
2
La classe co-NP
DéfinitionLe problème A est dans co-NP s’il existe un algorithme vérifieur pour A
vérifiant les conditions suivantes :
• l’algorithme vérifieur fonctionne en temps polynomial en la taille del’entrée
• si la veritable réponse au problème est non, alors il existe un indice detaille polynomiale sur lequel l’algorithme vérifieur répond “non” (uncertificat polynomial)
• si la veritable réponse est oui, alors il n’existe aucun indice sur lequell’algorithme vérifieur répond “non” (pas de certificat).
3
Exemples de problèmes dans co-NP
Le problème 2-COL
Instance Un graphe G
Question G est-il biparti ?
Lemme2-COL est dans NP ∩ co-NP
Démonstration
• Certificat polynomial pour une réponse positive : une 2-coloration de G.
• Certificat polynomial pour une réponse négative : un cycle impair dansG.
4
Relation entre P, NP et co-NP
co-NPPNP
5
Quelques questions ouvertes
ConjectureP 6= NP
ConjectureNP 6= co-NP
6
Formules de la logique propositionnelle
• Les formules de la logique propositionnelle sont construites à partir devariables propositionnelles et des opérateurs booléens :∧ conjonction (et)∨ disjonction (ou)¬ négation (non)
• Une formule est satisfaisable s’il existe une assignation des variablespropositionnelles qui rend la formule logiquement vraie.
Exemple
• La formule (x ∧ y) ∨ ¬x est satisfaisable car si x prend la valeur faux, laformule est évaluée à vrai
• La formule x ∧ ¬x n’est pas satisfaisable car aucune valeur de p ne peutrendre la formule vraie
7
La forme normale conjonctive (CNF)
Définition
• Un littéral ` est :• une variable propositionnelle vj (littéral positif) ou• la négation d’une variable propositionnelle ¬vj (littéral négatif).
• Une clause est une disjonction de littéraux de la forme `1 ∨ `2 ∨ . . . ∨ `n.
• Une expression logique est en CNF ssi elle est une conjonction d’une ouplusieurs disjonction(s) d’un ou plusieurs littéraux.
Exemple
• f = (x1 ∨ x2) ∧ (¬x1 ∨ x3) ∧ (¬x2 ∨ ¬x1)
8
Le problème de satifaisabilité (SAT)
Le problème SAT
Instance Une formule boolénne en forme normale conjonctive (CNF)
Question Existe-t-il une assignation des variables qui rende la formulevraie ?
Exemple
• Soit f = (x1 ∨ x2) ∧ (¬x1 ∨ x3) ∧ (¬x2 ∨ ¬x1)• L’assignation x1 = faux, x2 = vrai, x3 = vrai rende la formule f vraie
9
Théorème de Cook
ThéorèmeLe problème SAT est NP-complet.
• Facile à voir que SAT est dans NP.
• Moins facile à prouver que SAT est NP-difficile ; nous admettrons cerésultat sans preuve.
• Le problème SAT est le problème NP-complet de référence.
• Nous allons utiliser le théorème de Cook pour montrer que d’autresproblèmes sont NP-difficiles.
• Si SAT se réduit polynomialement à P , alors P est NP-difficile.
10
Le problème 3-SAT
Instance : Une formule booléenne en forme normale conjonctive (CNF) oùles clauses contiennent au plus 3 littéraux
Question : Existe-t-il une assignation des variables qui rende la formulevraie ?
Exemple
• f = (x1 ∨ x2 ∨ ¬x3) ∧ (¬x1 ∨ x3) ∧ (¬x1 ∨ ¬x2 ∨ x3)
11
3-SAT est dans NP
Lemme3-SAT est dans NP.
Démonstration
• L’algorithme vérifieur prend en entrée l’instance (formule booléenne f )et comme indice, une assignation des variables.
• Il vérifie si l’assignation rende chaque clause de la formule vraie.
• Si toutes les vérifications réussissent, il renvoie OUI, sinon il renvoieNE PERMET PAS DE CONCLURE.
• On vérifie qu’il existe un certificat si et seulement si f a uneassignation de variables qui rende la formule vraie.
• L’algorithme vérifieur fonctionne bien en temps polynomial en n, lenombre de variables de f .
12
3-SAT est NP-difficile
LemmeSAT se réduit à 3-SAT
Démonstration
• Étant donné une instance du problème SAT (une formule), il fauttrouver une instance de 3-SAT équivalente.
• On remplace chaque clause C = x∨ y ∨ z ∨ t∨ u∨ . . . par une conjonctionde clauses à 3 littéraux connectées par de nouvelles variables :
• R(C) = (x ∨ y ∨ a) ∧ (a ∨ z ∨ b) ∧ (b ∨ t ∨ c) ∧ (c ∨ u ∨ d) ∧ . . .
• La formule f = C1 ∧ C2 ∧ . . . est satisfaisable ssi la formuleR(F ) = R(C1) ∧R(C2) ∧ . . . l’est.
• On construit R(F ) en temps polynomial.
13
Le problème CLIQUE
Problème CLIQUE
Instance : Un graphe G et un entier k
Question : Existe-t-il une clique de taille au moins k dans G?
ExempleExiste-t-il une clique de taille 10 dans le graphe suivant ?
14
CLIQUE est dans NP
LemmeCLIQUE est dans NP.
Démonstration
• L’algorithme vérifieur prend en entrée l’instance (G, k) et comme indice,un ensemble de sommets W .
• Il vérifie si W contient au moins k sommets et si ∀u, v ∈W , uv ∈ E.
• Si toutes les vérifications réussissent, il renvoie OUI, sinon il renvoieNE PERMET PAS DE CONCLURE.
• On vérifie qu’il existe un certificat ssi G a une clique de taille ≥ k.
• L’algorithme vérifieur fonctionne bien en temps polynomial en n, lenombre de sommets de G.
15
CLIQUE est NP-difficile
Lemme3-SAT se réduit à CLIQUE (3-SAT ≤p CLIQUE).
Démonstration
• Soit f une instance de 3-SAT : une formule f avec n clausesC1, C2, . . . , Cn à au plus 3 littéraux.
• On construit un graphe G avec au plus 3n sommets, un pour chaqueoccurence de variable dans une clause.
• L’ensemble des sommets de G consiste de n parties V1, V2, . . . , Vn,correspondants aux clauses C1, C2, . . . , Cn.
• Les sommets de Vi sont étiquetés par les littéraux de la clause Ci.
• Le graphe G contient toutes les arêtes entre différentes parties, saufentre des paires de la forme {x,¬x}. 16
Exemple
f = (x1 ∨ x1 ∨ x1) ∧ (¬x1 ∨ ¬x1 ∨ x2) ∧ (x2 ∨ x2 ∨ x2) ∧ (¬x2 ∨ ¬x2 ∨ x1)
x1
x1
x1
¬x1 ¬x1 x2
x2
x2
x2
x1¬x2¬x2
17
Exemple
f = (x1 ∨ x1 ∨ x1) ∧ (¬x1 ∨ ¬x1 ∨ x2) ∧ (x2 ∨ x2 ∨ x2) ∧ (¬x2 ∨ ¬x2 ∨ x1)
x1
x1
x1
¬x1 ¬x1 x2
x2
x2
x2
x1¬x2¬x2
17
LemmeLa formule f est satisfaisable ssi G contient une clique de taille au moinsn
Démonstration
• Soit A une assignation de f .
• Dans chaque clause Ci, au moins un littéral est évalué à vrai.
• Pour chaque i, soit vi le sommet de Vi étiqueté par le premier littéralévalué VRAI dans A.
• Les sommets vi forment une clique de taille n dans G :• Supposons par l’absurde que vivj /∈ E(G)
• Par la définition de G, {vi, vj} = {x,¬x}, où x est une variable de f .• Or, A ne peut pas satisfaire à la fois x et ¬x ; contradiction.
18
Démonstration
• Soit W l’ensemble des sommets d’une clique de taille n dans G.
• Nous allons construire une assignation A qui satisfait f
• W contient exactement un sommet de chaque Vi.
• Pour chaque variable x de f , mettre x = VRAI ssi il existe un sommetétiqueté x dans W .
• Pour chaque i, un sommet de Vi est dans W .
• Donc, A satisfait au moins un littéral de chaque clause.
• On conclut que A satisfait f .
19
CLIQUE est NP-complet
• Nous avons montré que f est satisfaisable ssi G a un stable de taille n.
• La construction de (G,n) se fait en temps polynomial à partir de f .
• Donc, 3-SAT ≤p CLIQUE
• Comme 3-SAT est NP-difficile, CLIQUE est NP-difficile aussi.
• De plus, nous avons montré que CLIQUE est dans NP.
• Nous avons ainsi démontré le théorème suivant :
ThéorèmeLe problème CLIQUE est NP-complet.
20
Le problème STABLE
Problème STABLE
Instance : Un graphe G et un entier k
Question : Existe-t-il un stable de taille au moins k dans G?
LemmeSTABLE est dans NP
DémonstrationMême preuve que pour CLIQUE, sauf qu’il faut vérifier que ∀u, v ∈W ,uv /∈ E.
21
STABLE est NP-difficile
LemmeCLIQUE se réduit à STABLE.
1
2
3 4
5
G
1
2
3 4
5
G
22
STABLE est NP-difficile
LemmeCLIQUE se réduit à STABLE.
1
2
3 4
5
G
1
2
3 4
5
G
22
Réduction de CLIQUE à STABLE
Démonstration
• Soit (G, k) une instance de CLIQUE.
• Considérons l’instance (G, k) de STABLE.
• Il est clair que G a un stable de taille au moins k ssi G a une clique detaille au moins k.
• La construction de (G, k) se fait en temps polynomial à partir de (G, k).
ThéorèmeLe problème STABLE est NP-complet.
23
Le problème VERTEX-COVER
Problème VERTEX-COVER
Instance : Un graphe G et un entier k
Question : Existe-t-il une ensemble d’au plus k sommets couvrant toutesles arêtes (au moins une des 2 extrémités est couverte) ?
1
2
3 4
5
G
24
Le problème VERTEX-COVER
Problème VERTEX-COVER
Instance : Un graphe G et un entier k
Question : Existe-t-il une ensemble d’au plus k sommets couvrant toutesles arêtes (au moins une des 2 extrémités est couverte) ?
1
2
3 4
5
G
24
VERTEX-COVER est dans NP
LemmeVERTEX-COVER est dans NP.
Démonstration
• L’algorithme vérifieur prend en entrée l’instance (G, k) et comme indice,un ensemble de sommets W .
• Il vérifie si W contient au plus k sommets et si ∀e ∈ E(G), W ∩ e 6= ∅.• Si toutes les vérifications réussissent, il renvoie OUI, sinon il renvoie
NE PERMET PAS DE CONCLURE.
• On vérifie qu’il existe un certificat ssi G a un recouvrement de taille ≤ k.
• L’algorithme vérifieur fonctionne bien en temps polynomial en n, lenombre de sommets de G.
25
VERTEX-COVER est NP-difficile
LemmeSTABLE se réduit à VERTEX-COVER
Démonstration
• Soit (G, k) une instance de STABLE.
• Considérons l’instance (G,n− k) de VERTEX-COVER, ou n est lenombre de sommets de G.
• S est un stable de G ssi V (G) \ S couvre toute les arêtes de G.
• G a un recouvrement d’au plus n− k sommets ssi G a un stable detaille au moins k.
• La construction de (G,n− k) se fait en temps polynomial à partir de(G, k).
26
VERTEX-COVER est NP-complet
• Nous avons montré que VERTEX-COVER est à la fois dans NP estNP-difficile.
• Donc, on a le théorème suivant :
ThéorèmeLe problème VERTEX-COVER est NP-complet.
27