La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures
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
COMPLEXITÉ DES PROBLÈMES
IRappels
IParadigmes d’algorithme
IComplexité des problèmes
IAlgorithmique Avancée
La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures
LA COMPLEXITÉ DUN PROBLÈME
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.
La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures
LES CLASSES DE PROBLÈ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.
Propriétés
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
PROPRIÉTÉ/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
UN PREMIER EXEMPLE: LA 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.
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
LA DÉFINITION DE NP VIA LES CERTIFICATS
NP
Lest 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|)}
Aest appelé algorithme de vérification,
cest 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 Avérifie Len temps polynômial.
La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures
LINTUITION?
On peut par exemple voir ccomme une preuve, Acomme 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
COMMENT MONTRER QUUNE PROPRIÉTÉ EST NP?
Pour montrer qu’une propriété est NP, il faut:
Idéfinir la notion de certificat et montrer que la taille d’un
certificat est bornée polynômialement par la taille du
problème
Idéfinir l’algo de Vérification et montrer qu’il est
polynômial (et correct...)
La classe P 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,nentiers
cun entier (cible)
Sortie: oui, si on peut obtenir ccomme somme d’un
sous-ensemble des xii.e. on peut trouver J⊂ {1, ..., n}tel que
c=PiJxi
Certificat: J⊂ {1, ..., n}
On peut le représenter par un tableau de nbooléens: la taille
d’un certificat est donc ninférieure à la taille du problème.
A vérifier: c=PiJxi:
La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures
ATTEINDRE LA CIBLE
A vérifier: c=PiJxi:
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 Les réductions polynomiales Les propriétés NP-dures
SAT: SATISFIABILITÉ DUNE EXPRESSION BOOLÉENNE
Donnée: Φune expression booléenne avec nvariables
booléennes, x1, ..., xn
Sortie: oui, si Φest satisfiable, i.e. il existe une valuation vtelle
que v(Φ) = Vrai
Certificat: v, par exemple un tableau de nbooléens
Algo de vérification: évaluer v(Φ) ce qui se fait bien en temps
polynomial.
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
LA DÉFINITION VIA LE NON-DÉTERMINISME
Définition Alternative de NP
Une propriété est NP si il existe un algorithme non déter-
ministe polynomial qui la décide.
NP=Non-Déterministe Polynomial et non pas Non Polynomial!
La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures
ALGORITHMES NON DÉTERMINISTES
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
ALGORITHMES NON DÉTERMINISTES POLYNOMIAUX
Un algorithme non-déterministe Aest dit polynomial si il existe
un polynôme Qtel que pour toute entrée u,tous les calculs de
Asur uont 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
ALGOS NON DÉTERMINISTES À VALEURS
BOOLÉENNES
Soit Aun algorithme non déterministe à valeurs booléennes et
dont tous les calculs s’arrêtent; il décide la propriété Pr
suivante: "uvérifie Pr Ssi il existe un calcul de Asur uqui
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
ALGOS 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);}
La classe P La classe NP Les propriétés NP-dures Les réductions polynomiales Les propriétés NP-dures
LA DÉFINITION VIA LE NON-DÉTERMINISME VERSUS
LA 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.
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
LA DÉFINITION VIA LE NON-DÉTERMINISME VERSUS
LA 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étermministe- 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
NP par rapport à P?
Bien sûr, Pest inclus dans NP: toute propriété Pest 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.
1 / 13 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !