P, NP : Rappels - Grenoble INP

30
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 dur que Q Problème NP-difficile : problème vers lequel tout problème dans NP se réduit polynomialement Problème NP-complet : problème NP-difficile qui est dans NP 1

Transcript of P, NP : Rappels - Grenoble INP

Page 1: 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

Page 2: P, NP : Rappels - Grenoble INP

Diagramme des classes de complexité

NP-complet NP-difficileP NP

2

Page 3: P, NP : Rappels - Grenoble INP

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

Page 4: P, NP : Rappels - Grenoble INP

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

Page 5: P, NP : Rappels - Grenoble INP

Relation entre P, NP et co-NP

co-NPPNP

5

Page 6: P, NP : Rappels - Grenoble INP

Quelques questions ouvertes

ConjectureP 6= NP

ConjectureNP 6= co-NP

6

Page 7: P, NP : Rappels - Grenoble INP

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

Page 8: P, NP : Rappels - Grenoble INP

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

Page 9: P, NP : Rappels - Grenoble INP

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

Page 10: P, NP : Rappels - Grenoble INP

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

Page 11: P, NP : Rappels - Grenoble INP

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

Page 12: P, NP : Rappels - Grenoble INP

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

Page 13: P, NP : Rappels - Grenoble INP

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

Page 14: P, NP : Rappels - Grenoble INP

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

Page 15: P, NP : Rappels - Grenoble INP

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

Page 16: P, NP : Rappels - Grenoble INP

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

Page 17: P, NP : Rappels - Grenoble INP

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

Page 18: P, NP : Rappels - Grenoble INP

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

Page 19: P, NP : Rappels - Grenoble INP

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

Page 20: P, NP : Rappels - Grenoble INP

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

Page 21: P, NP : Rappels - Grenoble INP

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

Page 22: P, NP : Rappels - Grenoble INP

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

Page 23: P, NP : Rappels - Grenoble INP

STABLE est NP-difficile

LemmeCLIQUE se réduit à STABLE.

1

2

3 4

5

G

1

2

3 4

5

G

22

Page 24: P, NP : Rappels - Grenoble INP

STABLE est NP-difficile

LemmeCLIQUE se réduit à STABLE.

1

2

3 4

5

G

1

2

3 4

5

G

22

Page 25: P, NP : Rappels - Grenoble INP

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

Page 26: P, NP : Rappels - Grenoble INP

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

Page 27: P, NP : Rappels - Grenoble INP

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

Page 28: P, NP : Rappels - Grenoble INP

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

Page 29: P, NP : Rappels - Grenoble INP

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

Page 30: P, NP : Rappels - Grenoble INP

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