la classe NP

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: la classe 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
C OMPLEXITÉ DE P ROBLÈMES
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 PROPRIÉTÉS
C OMPUTATIONAL COMPLEXITY
La complexité d’un problème
La complexité d’un problème est la complexité minimale
dans le pire des cas d’un algorithme qui le résout.
Pour simplifier, on va se limiter aux problèmes de décision ou
propriétés.
Propriétés
Une propriété est une fonction à valeurs booléennes.
C’est souvent la complexité en temps qu’on considère mais on
peut s’intéresser à d’autres mesures comme par exemple la
complexité en espace.
Cette définition -un peu floue- ne précise pas quel modèle
d’algorithme on choisit: l’analyse “fine” de la complexité (par
exemple, être linéaire, être quadratique) sera différente selon le
modèle d’où l’intérêt des classes de complexité indépendantes
du modèle.
Un problème de décision peut donc être vu comme un
ensemble I d’instances du problème avec pour chaque instance
une réponse “oui” ou “non”.
Exemple: "être premier" est une fonction qui à tout entier
naturel associe oui -si il est premier-, non sinon.
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
A BSTRAIT /C ONCRET
Par exemple à la propriété abstraite "être premier" définie sur
les entiers, on associera la propriété "être la représentation
binaire d’un entier premier" définie sur {0, 1}∗ .
Cela suppose donc qu’on a choisi une représentation des
instances du problème.
La classe NP
Les propriétés NP-dures
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
P ROPRIÉTÉ / LANGAGE
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-.
La classe P
La classe P
Les réductions polynomiales
Les propriétés NP-dures
L A CLASSE P
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.
On peut donc ensuite associer à la propriété le langage des
(représentations des) données vérifiant cette propriété.
Par exemple, à la propriété "être premier", on associera
l’ensemble des représentations des entiers premiers dans une
certaine base non unaire.
Donc, vérifier si un entier est premier se ramène à tester si sa
représentation (=un mot) est dans le langage.
Décider une propriété se ramène donc à tester l’appartenance
d’un mot à un langage.
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L A CLASSE NP
1. Elle contient beaucoup de propriétés associées à des
problèmes courants: problèmes de tournées, d’emploi du
temps, placement de tâches, affectation de fréquences,
rotation d’équipages, découpage...
2. La classe NP contient P.
Cette définition est (quasiment-) indépendante du modèle
d’algorithme choisi: un algorithme polynomial en C sera
polynomial si il est traduit en termes de machine de Turing et
les modèles classiques de calcul (excepté les ordinateurs
quantiques) sont polynomialement équivalents.
Un problème de décision est dit praticable si il est dans P,
impraticable sinon.
3. Pour beaucoup de propriétés NP, on n’a pas trouvé
d’algorithme polynomial, mais pour aucune d’entre elles,
on n’a prouvé qu’elle ne pouvait pas être décidée en temps
polynomial.
4. On suppose que P 6= NP mais personne jusque maintenant
n’a su prouver -ni infirmer- cette conjecture émise en 1971
et déclarée un des problèmes du millénaire par l’Institut
Clay qui propose 1 million de dollars pour sa résolution.
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
polynomial à 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 polynomialement
par rapport à la taille de l’entrée.
On dit que A vérifie L en temps polynomial.
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?
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
E TRE 3- COLORIABLE :
Les réductions polynomiales
Les propriétés NP-dures
LES CERTIFICATS
Pour montrer qu’une propriété est NP, il faut:
I
définir la notion de certificat et montrer que la taille d’un
certificat est bornée polynomialement par la taille du
problème
I
définir l’algo de Vérification et montrer qu’il est
polynomial et correct.
Un certificat pour G est juste un coloriage des noeuds.
On peut par exemple le représenter par un tableau de couleurs
indexé par les sommets.
On a donc :
taille du certificat <= taille du graphe
Rsemarque: on suppose que la taille d’un graphe est au moins
le nombre de sommets plus le nombre d’arcs.
La taille d’un certificat est linéaire, donc polynomialement
bornée, par rapport à celle de la donnée.
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
E TRE 3- COLORIABLE : L’ ALGO DE VÉRIFICATION
La classe P
La classe NP
Les propriétés NP-dures
L E CIRCUIT H AMILTONIEN :
Les réductions polynomiales
Les propriétés NP-dures
LES CERTIFICATS
Un certificat est valide Ssi aucun arc ne relie deux noeuds de
même couleur: le vérifier est bien polynomial:
boolean A(col, G){
Pour chaque arc (s,d) de G
si col(s)=col(d) retourner Faux;
retourner Vrai;
}
La complexité de l’algorithme est de l’ordre de card(A) donc
bien polynomiale.
’Etre 3-coloriable’ est donc bien une propriété NP.
La classe P
La classe NP
Les propriétés NP-dures
L E CIRCUIT H AMILTONIEN :
Les réductions polynomiales
Les propriétés NP-dures
LA VÉRIFICATION
//cert: tableau de n sommets
A(cert,G){
boolean dejapasse=new passe[nbsommets];
//pour vérifier on ne passe pas 2 fois par le meme
pour i de 1 à n
si dejapassé[cert[i]] retourner Faux;
//on passe deux fois par ce sommet
si (cert[i],cert[i+1]) n’est pas un arc de G
retourner Faux;
dejapasse[cert(i)]=true;
fin pour;
si (dejapassé[cert[n]]
ou (cert[n],cert[1]) n’est pas un arc)
alors retourner Faux;
sinon retourner Vrai;
Donnée: G = (S, A) un graphe, n un entier, n <= card(S)
Certificat: une suite de n sommets, soit par exemple un tableau
de n sommets.
Donc la taille d’un certificat est au plus n ou plus exactement
n ∗ log(card(S)), si on prend en compte la taille du codage d’un
sommet.
Vérification: if faut vérifier que c’est bien un circuit : tous les
sommets sont différents, un sommet et son suivant sont bien
reliés par un arc.
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L E CIRCUIT H AMILTONIEN
La complexité de l’algorithme est de l’ordre de n donc bien
polynomiale.
Donc, la propriété de l’existence d’un circuit hamiltonien 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
E XEMPLE 3: ATTEINDRE LA CIBLE
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
E XEMPLE 3: ATTEINDRE LA CIBLE
A vérifier: c =
Donnée: x1 , ..., xn , n entiers
c un entier (cible)
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} le choix des entiers qu’on "garde"
On peut le représenter par un tableau de n booléens: la taille
d’un certificat est inférieure à la taille du problème.
P
A vérifier: c = i∈J xi :
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);
}
Algo en O(n)
La propriété est bien NP!
La classe P
La classe NP
Les propriétés NP-dures
E XEMPLE 4: SAT:
B OOLÉENNE
Les réductions polynomiales
Les propriétés NP-dures
SATISFIABILITÉ D ’ UNE EXPRESSION
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(Φ)
Sat est bien une propriété 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
NP=Non-Déterministe Polynomial
Définition alternative de NP
Une propriété Pr est NP si il existe un algorithme non
déterministe polynomial qui décide Pr.
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
NP=N ON -D ÉTERMINISTE P OLYNOMIAL ET NON PAS
N ON P OLYNOMIAL !
A LGORITHMES NON DÉTERMINISTES
La classe P
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
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.
Les propriétés NP-dures
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.)
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
A LGOS NON DÉTERMINISTES À VALEURS
BOOLÉENNES : EXEMPLE
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);}
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
A LGORITHMES NON DÉTERMINISTES POLYNOMIAUX
Complexité d’un algorithme non-déterministe: 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|).
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
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.
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
Les deux définitions sont équivalentes: un certificat correspond
à une suite de choix dans l’exécution de l’algorithme non
déterministe.
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
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éter ministe- de vérification.
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
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 est inclus dans EXPTIME (et même dans PSPACE): pensez à
l’algorithme qui énumère et teste tous les certificats possibles.
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.
C’est ce qu’on appelle parfois l’algorithme du Bristish museum
qui consiste à essayer toites les possibilités.
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 -en général- 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!
On verra qu’il existe des propriétés NP telles que si on trouvait
un algorithme polynomial pour l’une d’entre elles, il y aurait
un algorithme polynomial pour n’importe quelle propriété NP.
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
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 ...
L A HIÉRARCHIE
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:
?
P
??
Z
on
e
ha
bi t
ée
?
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?
NP
PSPACE
EXPTIME
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
NP ET CO -NP
Une propriété Q telle que non Q soit NP est dite co-NP.
Bien sûr, co-NP contient P.
On conjecture aussi que NP 6= co − NP mais, là encore ce n’est
qu’une conjecture!
Bien sûr, si NP = P, on aurait NP=co-NP.
Mais on pourrait avoir NP = co − NP sans que NP soit égal à P!
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
L E BILAN DE LA DÉFINITION DES NP
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...
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
M ONTRER 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
P
NP
EXPTIME
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
L A HIÉRARCHIE
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
L A PROBLÉMATIQUE
3-Color?
Cible ?
P
Sat ?
Hamilton ?
NP
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
Les réductions polynomiales
Les propriétés NP-dures
L A PROBLÉMATIQUE
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 notion de réduction permet de traduire qu’un problème
n’est pas "plus dur" qu’un autre.
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.
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:
Montrer qu’une propriété est NP−dure justifie en quelque sorte
de ne pas avoir trouvé d’algorithme polynomial.
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.
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 "
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 ...
Soient les deux problèmes de décision suivants:
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?
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
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
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
G est k-coloriable Ssi on peut faire p équipes:
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:
⇐ 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.
Soit boolean Sol2(Pb2 inst) qui retourne en temps
polynomial Vrai Ssi inst est une instance positive de Pb2,
⇒ 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.
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
B ILAN
alors:
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 ...
Si on a un algorithme polynomial pour le p−coloriage de
graphe, on en a aussi un pour le problème d’équipes.
Par contraposée:
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.
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
La classe P
La classe NP
Les réductions polynomiales
Les propriétés NP-dures
R ÉDUCTION POLYNOMIALE = TRANSFORMATION
D ’ UN PROBLÈME DANS UN AUTRE .
Réduction polynomiale
Soient L et L0 deux langages de Σ∗ , correspondant à deux
propriétés.
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.
L0
Une réduction polynomiale de L dans
est une appli∗
cation red calculable polynomiale de Σ dans Σ∗ telle que
:
u ∈ L Ssi red(u) ∈ L0 .
Notation: L ≤P
Les propriétés NP-dures
L0 .
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
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.
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
C LIQUE
4
5
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
C LIQUE
La classe P
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
I NDÉPENDANT
5
4
5
4
1
1
3
La classe P
3
2
La classe NP
E XEMPLE :
Les propriétés NP-dures
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
SUITE ...
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}.
Montrer que c’est bien une réduction polynomiale de Clique
dans Independant consiste en:
I
Montrer que c’est correct i.e., pour tout (G, k), Clique(G, k)
Ssi Independant(G0 , k).
I
Montrer que la transformation est polynomiale.
La classe P
2
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
C LIQUE
4
5
1
3
2
Est transformé en:
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 LIQUE
2
1
La classe P
SUITE ...
I
La transformation est polynomiale: l’algorithme qui
calcule red(G) est bien polynomial (en O(card(S)2 ).
2
La classe NP
Les propriétés NP-dures
Les réductions polynomiales
Les propriétés NP-dures
E N RÉSUMÉ
Pour prouver qu’une propriété P1 se réduit polynomialement
en une autre P2, il faut:
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
Les propriétés NP-dures
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.
5
3
Les réductions polynomiales
I
Est transformé en:
4
Les propriétés NP-dures
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}.
1
3
La classe NP
E XEMPLE :
5
4
La classe P
prouver qu’elle est polynomiale.
La classe P
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 ?
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.
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
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
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”.
Une propriété R est dite NP-dure Si toute propriété NP se
réduit polynomialement en R.
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!
Définition
Une propriété est dite NP−complète Si elle est NP et NP−dure.
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.
3 − CNF − SAT est le problème de la satisfiabilité d’une formule
sous forme conjonctive où chaque clause contient 3 littéraux.
(x1 ∨ x2 ∨ x3 ) ∧ (x2 ∨ ¬x3 ∨ x4 ) ∧ (x1 ∨ x2 ∨ ¬x4 ) ∧ (¬x1 ∨ ¬x2 ∨ ¬x3 )
Téléchargement