Complexité de Problèmes: les classes P et NP - ACT

publicité
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
C OMPLEXITÉ DES PROBLÈMES
Complexité de Problèmes: les classes P et NP
ACT
Sophie Tison
Université Lille
Master1 Informatique
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L A COMPLEXITÉ D ’ UN PROBLÈME
La classe P
I
Rappels
I
Paradigmes d’algorithme
I
Complexité des problèmes
I
Algorithmique Avancée
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L ES CLASSES DE P ROBLÈMES
L’idée est de classifier les problèmes selon l’ordre de grandeur
de leur complexité.
Tout d’abord pour simplifier, on va se limiter aux problèmes de
décision ou propriétés.
La complexité d’un problème
Propriétés
La complexité d’un problème est la complexité minimale
dans le pire des cas d’un algorithme qui le résout.
Une propriété est une fonction à valeurs booléennes.
A une propriété abstraite définie sur un ensemble quelconque,
on peut associer une propriété concrète définie sur des mots
-les représentation des instances-.
On peut donc ensuite associer à la propriété le langage des
(représentations des) données vérifiant cette propriété.
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
U N PREMIER EXEMPLE : L A CLASSE P
P ROPRIÉTÉ / LANGAGE
La classe P
La classe P (ou PTIME) est la classe des problèmes de décision pour lesquels il existe un algorithme de résolution
polynomial en temps.
Décider une propriété se ramène donc à tester l’appartenance
d’un mot à un langage.
Un problème de décision est dit praticable si il est dans P,
impraticable sinon.
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L A DÉFINITION DE NP VIA LES CERTIFICATS
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L’ INTUITION ?
NP
L est dit NP si il existe un polynôme Q, et un algorithme
polynômial à deux entrées et à valeurs booléennes tels
que:
L = {u/∃c, A(c, u) = Vrai, |c| ≤ Q(|u|)}
A est appelé algorithme de vérification,
c est appelé certificat (ou preuve, ou témoin..).
|c| représente la taille de c.
|c| ≤ Q(|u|): la taille des certificats est bornée polynômialement
par rapport à la talle de l’entrée.
On dit que A vérifie L en temps polynômial.
On peut par exemple voir c comme une preuve, A comme un
algorithme qui vérifie la preuve; vous pouvez être capable de
vérifier facilement la preuve courte qu’un gentil génie, (un
prof, par exemple:-)) vous donne mais cela n’implique pas
forcément qu’elle soit facile à trouver...
Une propriété NP sera donc une propriété pour laquelle les
instances positives ont une preuve "courte" et "facile" à vérifier.
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
C OMMENT MONTRER QU ’ UNE PROPRIÉTÉ EST NP?
I
définir la notion de certificat et montrer que la taille d’un
certificat est bornée polynômialement par la taille du
problème
I
définir l’algo de Vérification et montrer qu’il est
polynômial (et correct...)
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
ATTEINDRE LA CIBLE
A vérifier: c =
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
ATTEINDRE LA CIBLE
Donnée: x1 , ..., xn , n entiers
c un entier (cible)
Pour montrer qu’une propriété est NP, il faut:
La classe P
La classe P
Les propriétés NP-dures
Sortie: oui, si on peut obtenir c comme somme d’un
sous-ensemble
des xi i.e. on peut trouver J ⊂ {1, ..., n} tel que
P
c = i∈J xi
Certificat: J ⊂ {1, ..., n}
On peut le représenter par un tableau de n booléens: la taille
d’un certificat est donc n inférieure à la taille du problème.
P
A vérifier: c = i∈J xi :
La classe P
SAT:
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
SATISFIABILITÉ D ’ UNE EXPRESSION
B OOLÉENNE
P
i∈J xi :
boolean A(cert, x_1,...,x_n,s){
int s==0;
Pour i de 1 à n
si cert(i) alors s=s+x_i
fin pour;
retourner (s==c);
}
Donnée: Φ une expression booléenne avec n variables
booléennes, x1 , ..., xn
Sortie: oui, si Φ est satisfiable, i.e. il existe une valuation v telle
que v(Φ) = Vrai
Certificat: v , par exemple un tableau de n booléens
Algo de vérification: évaluer v(Φ) ce qui se fait bien en temps
polynomial.
Sat est bien une propriété NP.
Algo en O(n)
La propriété est bien NP!
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L A DÉFINITION VIA LE NON - DÉTERMINISME
Une propriété est NP si il existe un algorithme non déterministe polynomial qui la décide.
NP=Non-Déterministe Polynomial et non pas Non Polynomial!
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
A LGORITHMES NON DÉTERMINISTES
Définition Alternative de NP
La classe P
La classe P
Les propriétés NP-dures
A LGORITHMES NON DÉTERMINISTES POLYNOMIAUX
Un algorithme non-déterministe peut être vu comme un
algorithme avec des instructions de type "choix(i,1..n)": on
choisit aléatoirement un entier dans l’intervalle [1..n]. (On peut
se restreindre à n = 2.)
On peut aussi prendre comme modèle de calcul
non-déterministe, les Machines de Turing non déterministes.
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
A LGOS NON DÉTERMINISTES À VALEURS
BOOLÉENNES
Un algorithme non-déterministe A est dit polynomial si il existe
un polynôme Q tel que pour toute entrée u, tous les calculs de
A sur u ont une longueur d’exécution bornée par Q(|u|).
Soit A un algorithme non déterministe à valeurs booléennes et
dont tous les calculs s’arrêtent; il décide la propriété Pr
suivante: "u vérifie Pr Ssi il existe un calcul de A sur u qui
retourne Vrai." (penser à un automate non déterministe: un mot
est accepté si et seulement si il existe au moins un chemin
acceptant.)
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
A LGOS NON DÉTERMINISTES À VALEURS
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L A DÉFINITION VIA LE NON - DÉTERMINISME VERSUS
L A DÉFINITION VIA LES CERTIFICATS
BOOLÉENNES
E XEMPLE
Les deux définitions sont équivalentes.
Un certificat correspond à une suite de choix dans l’exécution
de l’algorithme non déterministe.
Cherchercible(x_1,....x_n, c){
s=0;
Pour i in 1..n
Choisir(onleprend?,1..2);
Si (onleprend?==1) s=s+x_i;
finPour;
retourner (s==c);}
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
A partir d’un algorithme non-déterministe polynomial pour
vérifier P, on construira donc la notion de certificat qui
correspond à une suite de choix. L’algorithme de vérification
consiste à vérifier que l’exécution de l’algorithme non
déterministe correspondant à la suite de choix donnée par le
certificat retourne Vrai.
Les propriétés NP-dures
L A DÉFINITION VIA LE NON - DÉTERMINISME VERSUS
L A DÉFINITION VIA LES CERTIFICATS
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
NP ET LES AUTRES
NP par rapport à P?
A partir d’une notion de certificat et d’algorithme de
vérification, on construit un algorithme non-déterministe qui
consiste à d’abord générer aléatoirement un certificat -la partie
non déterministe- et ensuite à le vérifier en utilisant
l’algorithme -détermministe- de vérification.
Bien sûr, P est inclus dans NP: toute propriété P est une
propriété NP; l’algorithme de vérification est l’algorithme de
décision et n’a pas besoin de certificat: on peut prendre pour
certificat le mot vide.
On peut aussi montrer que NP est inclus dans EXPTIME (et
même dans PSPACE): pensez à l’algorithme qui énumère et
teste tous les certificats possibles.
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L A CONJECTURE NP 6= P?
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L A CONJECTURE NP 6= P?
On conjecture que P 6= NP, mais personne n’a su le prouver!
Aucune propriété NP n’a été prouvée à ce jour ne pas être P.
D’un autre côté, pour beaucoup de propriétés NP, aucun
algorithme polynomial n’a été trouvé (ou tout du moins prouvé
exister) malgré les efforts de milliers d epersonnes!
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
NP ET LA NÉGATION ...
La classe NP est close par union, concaténation, étoile,
intersection (voir TD).
Par contre, on ne sait pas si NP est close par complémentaire:
Disposer de la notion de certificat et d’algorithme de
vérification pour une propriété Q, n’implique à priori pas que
non Q soit NP;
Exemple: comment vérifier qu’il n’existe pas de 3−coloriage?
La conjecture a été émise par S. Cook en 1971 et le "Clay
Mathematics Institute" offre 1 million de dollars à celui qui
trouve la réponse à la question!
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
E N RÉSUMÉ
Une propriété NP est une propriété pour la quelle trouver une
"solution" (une preuve ..) est peut-être difficile, mais vérifier
une solution (une preuve...) est facile.
P: easy to find
NP: easy to check
Montrer qu’une propriété est NP n’est en général qu’une
étape...
On cherche en général ensuite à montrer qu’elle est aussi
NP-dure.
Attention: Montrer qu’une propriété est NP n’est pas montrer
qu’elle n’est pas P!!!
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L A HIÉRARCHIE
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L A HIÉRARCHIE
3-Color?
Cible ?
P
P
Sat ?
Hamilton ?
NP
NP
EXPTIME
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L A PROBLÉMATIQUE
Je cherche un algorithme pour vérifier une propriété; j’ai
montré qu’elle est NP mais je ne trouve pas d’algorithme P.
La propriété est-elle "dure" ou suis-je "nul(-le)"?
Si j’arrive à prouver qu’il n’ y a pas d’algorithme polynomial, je
prouve P 6= NP: ça risque d’être difficile...
Je peux essayer de montrer qu’elle est NP−dure.
La classe P
La classe NP
Les propriétés NP-dures
L A PROBLÉMATIQUE
Une propriété NP−dure contient d’une certaine façon toute la
difficulté de la classe NP.
Si on trouve un algorithme polynomial pour une telle
propriété, on en aurait un pour toute propriété NP.
Montrer qu’une propriété est NP−dure justifie en quelque sorte
de ne pas avoir trouvé d’algorithme polynomial.
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
U N OUTIL : L ES RÉDUCTIONS POLYNOMIALES
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
U N EXEMPLE " INFORMEL "
Soient les deux problèmes de décision suivants:
La notion de réduction permet de traduire qu’un problème
n’est pas "plus dur" qu’un autre.
Si un problème A se réduit en un problème B, le problème A est
(au moins) aussi facile que B - si la réduction est "facile"-. On
peut a priori utiliser la réduction de deux façons:
I
pour montrer qu’un problème est dur: si A est réputé dur,
B l’est aussi;
I
pour montrer qu’un problème est facile: si B est facile, A
l’est aussi.
C’est en fait surtout le premier raisonnement que l’on va
utiliser.
Problème 1
Donnée: N, un nombre de participants, une liste de paires de
participants: les paires d’ennemis, p, un entier.
Q? Peut-on répartir les participants en au plus p équipes de
telle sorte qu’aucune équipe ne contienne une paire d’ennemis.
Problème 2
Donnée: Un graphe G, un entier k: un nombre de couleurs.
Q? G est -il k-coloriable?
Les deux problèmes sont NP, pour aucun des deux, on ne
connaît d’algorithme polynomial.
Comment transformer un problème en un autre?
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L A TRANSFORMATION ...
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L A TRANSFORMATION EST CORRECTE
G est k-coloriable Ssi on peut faire p équipes:
Supposons qu’on dispose d’un algorithme pour le pb de
coloriage de graphes.
Comment s’en servir pour le pb des équipes?
On transforme une instance du Pb1 en une instance du Pb2:
I
Les sommets du graphe sont les personnes.
I
Il y a un arc entre deux sommets si les personnes sont
ennemies.
I
k=p
⇐ Supposons qu’on puisse répartir les participants en au plus
p équipes: on donne à chaque sommet la couleur de l’équipe de
la personne correspondant au sommet. Deux sommets de
même couleur correspondent à deux personnes de la même
équipe: donc il n’y a pas d’arc entre eux. Le coloriage est bien
correct.
⇒ Supposons qu’on puisse faire un k = p-coloriage correct de
G. Affectons chaque personne à l’équipe couleur du sommet
correspondant. Deux personnes ennemies sont reliées par un
arc donc ne sont pas dans la même équipe.
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L A TRANSFORMATION EST POLYNOMIALE
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
B ILAN
De plus, la construction de G se fait polynomialement.
Donc si on a un algorithme polynomial pour le p−coloriage de
graphe, on en a aussi un pour le problème d’équipes:
Si on a un algorithme polynomial pour le p−coloriage de
graphe, on en a aussi un pour le problème d’équipes.
Soit boolean Sol2(Pb2 inst) qui retourne en temps
polynomial Vrai Ssi inst est une instance positive de Pb2,
Par contraposée:
alors:
Si il n’y a pas d’algorithme polynomial pour le problème
d’équipes, il n’y en a pas non plus pour le p−coloriage.
boolean Sol1(Pb1 inst)
{return Sol2(red_1_to_2(inst))}
retourne en temps polynomial Vrai Ssi inst est une instance
positive de Pb1.
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
O N PEUT AUSSI FAIRE UNE RÉDUCTION DANS
L’ AUTRE SENS ...
I
Les personnes sont les sommets de G.
I
Deux personnes sont "ennemies" si elles sont reliées par un
arc de G.
Alors on peut répartir en( au plus) p équipes Ssi le graphe de
départ était p-coloriable.
Là encore, la réduction est polynomiale.
Donc si il y a un algo polynomial pour le problème d’équipes, il
y en a un pour le p−coloriage de graphes.
Si il n’y en a pas pour le problème de p−coloriage, il n’y en a
pas non plus pour le problème d’équipes.
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
D ÉFINITION FORMELLE
Définition
Soient L et L0 deux langages de Σ∗ , correspondant à deux propriétés.
Une réduction polynomiale de L dans L0 est une application red
calculable polynomiale de Σ∗ dans Σ∗ telle que :
u ∈ L Ssi red(u) ∈ L0 .
Notation: L ≤P L0 .
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
R ÉDUCTION POLYNOMIALE = TRANSFORMATION
D ’ UN PROBLÈME DANS UN AUTRE .
Par exemple, une réduction d’un problème pb1 d’équipes en un
problème pb2 de coloriage de graphes sera une transformation:
I
qui associe à toute instance i du pb1 d’équipes, une
instance red(i) du pb2 de coloriage de graphes
I
telle que red(i) a une solution Ssi l’instance i avait une
solution.
I
cette transformation est polynomiale, i.e. calculable par un
algorithme polynomial.
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
E NCORE UN EXEMPLE
Soient les deux propriétés suivantes:
Clique: Entrée: G=(S,A) -un graphe non orienté k
- un entier Sortie: Oui, Ssi G contient une clique
de cardinal k.
Indépendant Entrée: G=(S,A) -un graphe non orienté
k - un entier Sortie: Oui, Ssi G contient un ensemble
indépendant de cardinal k.
Remarque: on en déduit donc que la taille de red(i) est bornée
polynomialement par rapport à celle de i.
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
C LIQUE
4
Les propriétés NP-dures
La classe P
La classe NP
Les propriétés NP-dures
C LIQUE
5
4
5
1
3
Les réductions polynomiales
2
1
3
2
Les propriétés NP-dures
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
I NDÉPENDANT
La classe NP
E XEMPLE :
Les propriétés NP-dures
Les réductions polynomiales
C LIQUE
I
Montrer que la transformation est polynomiale.
Les propriétés NP-dures
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
C LIQUE
5
1
5
1
3
SUITE ...
Montrer que c’est correct i.e., pour tout (G, k), Clique(G, k)
Ssi Independant(G0 , k).
4
4
2
Est transformé en:
Les propriétés NP-dures
I
2
La classe NP
Les réductions polynomiales
Montrer que c’est bien une réduction polynomiale de Clique
dans Independant consiste en:
1
3
Les propriétés NP-dures
On peut choisir comme réduction de Clique dans
Independant l’application red qui à (G = (S, A), k) associe
(G0 = (S, A0 ), k) avec A0 = {(x, y)/(x, y) ∈
/ A et (x, y) ∈
/ A}.
5
4
La classe P
La classe P
3
2
Est transformé en:
4
5
1
3
2
Les propriétés NP-dures
La classe P
La classe NP
E XEMPLE :
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
SUITE ...
I
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
E N RÉSUMÉ
red transforme l’instance de Clique (G = (S, A), k), en
l’instance d’Independent
(G0 = (S, A0 ), k) avec A0 = {(x, y)/(x, y) ∈
/ A et (x, y) ∈
/ A}.
I
La classe P
Pour prouver qu’une propriété P1 se réduit polynomialement
en une autre P2, il faut:
Correct? i.e., pour tout (G, k), Clique(G, k) Ssi
Independent(G0 , k)? Oui:
Si (G = (S, A), k) a une clique C de cardinal k, C est un
ensemble indépendant de cardinal k de G0 .
réciproquement: si (G0 = (S, A0 ), k) a un ensemble
indépendant C de cardinal k, C est une clique de cardinal k
de G.
I
proposer une réduction, i.e. un algo red qui à une instance
I de P1, associe une instance red(I) de P2.
I
prouver qu’elle est correcte, i.e. qu’une instance I de P1 est
positive Si et Seulement Si red(I) est une instance positive
de P2.
I
prouver qu’elle est polynomiale.
La transformation est polynomiale: l’algorithme qui
calcule red(G) est bien polynomial (en O(card(S)2 ).
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
P OURQUOI PROUVER QU ’ UN PROBLÈME SE RÉDUIT EN
UN AUTRE ?
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
R ÉDUCTIONS EN CHAÎNE
Proposition: Si L0 est dans P et si L ≤P L0 , alors L est dans P.
u ∈ L Ssi red(u) ∈ L0 : donc, pour décider de l’appartenance à L,
il suffit d’appliquer la transformation, et de décider de
l’appartenance du transformé à L0 :
Si AppL0 est un algo polynomial pour tester l’appartenance à L0 ,
boolean AppL(u) {return AppL’(red(u));} est un
algo polynomial pour tester l’appartenance à L0 .
Si L0 est P, L est P.
si L n’est pas P, L0 n’est pas P.
Propriété: La relation ≤P est transitive: si L ≤P L0 et L0 ≤P L00 ,
alors L ≤P L”.
Si red1 est une réduction polynomiale de L dans L0 , et red2 est
une réduction polynomiale de L0 vers L” , alors red2 ◦ red1 est
une réduction polynomiale de L vers L”.
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L ES PROPRIÉTÉS NP- DURES , NP- COMPLÈTES
Propriété NP-dure
Une propriété R est dite NP-dure Si toute propriété NP se
réduit polynomialement en R.
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L A DÉCOUVERTE DE C OOK
Cook fut le premier à découvrir... l’existence de propriétés
NP-dures:
Théorème de Cook:
3 − CNF − SAT est NP−complète.
Donc, d’après ce qui précède, si une propriété NP − dure R était
P, on aurait NP = P: R contient donc d’une certaine façon toute
la difficulté de NP!
3 − CNF − SAT est le problème de la satisfiabilité d’une formule
sous forme conjonctive où chaque clause contient 3 littéraux.
Définition
(x1 ∨ x2 ∨ x3 ) ∧ (x2 ∨ ¬x3 ∨ x4 ) ∧ (x1 ∨ x2 ∨ ¬x4 ) ∧ (¬x1 ∨ ¬x2 ∨ ¬x3 )
Une propriété est dite NP−complète Si elle est NP et NP−dure.
Téléchargement