Complexit´
e de Probl `
emes: la classe NP (suite), les
r´
eductions polynˆ
omiales, les propri´
et´
es NP-dures
AAC
Sophie Tison-USTL-Master1 Informatique
() Complexit´
e de Probl`
emes 1 / 62
Deuxi`
eme partie du cours
Complexit ´
e de probl`
emes
Que faire face `
a un probl`
eme dur?
D´
ecidabilit´
e
() Complexit´
e de Probl`
emes 2 / 62
Complexit´
e de Probl `
emes
L´
etude de la complexit ´
e des probl`
emes -computational complexity-
s’attache `
a d´
eterminer la complexit ´
e intrins `
eque d’un probl`
eme et `
a
classifier les probl`
emes selon celle-ci, donc `
a r´
epondre `
a des
questions comme:
Quelle est la complexit ´
e minimale d’un algorithme r ´
esolvant tel
probl`
eme?
Existe-t-il un algorithme polyn ˆ
omial pour r´
esoudre un probl`
eme
donn´
e?
Comment peut-on dire qu’un algorithme est optimal (en
complexit ´
e)?
Comment peut-on montrer qu’il n’existe pas d’algorithme
polynˆ
omial pour un probl`
eme?
Qu’est-ce qu’un probl`
eme ”dur”?
Comment prouver qu’un probl`
eme est au moins aussi “dur” qu’un
autre?
() Complexit´
e de Probl`
emes 3 / 62
Menu du jour
. NP: rappels et propri´
et´
es.
. R´
eductions Polynˆ
omiales ou Comment transformer un
probl`
eme en un autre.
. La notion de propri ´
et´
eNPdure ou Qu’est-ce qu’une
propri ´
et´
e qui contient toute la difficult´
e de la classe NP?
() Complexit´
e de Probl`
emes 4 / 62
La d´
efinition de NP via les certificats
Rappel:
Une propri ´
et´
e peut ˆ
etre associ´
ee au langage Ldes repr´
esentations de
ses instances positives.
On d´
efinit donc la notion de NP sur les langages.
() Complexit´
e de Probl`
emes 5 / 62
La d´
efinition de NP via les certificats
Definition
Lest dit NP si il existe un polyn ˆ
ome Q, et un algorithme polyn ˆ
omial `
a
deux entr´
ees et `
a valeurs bool ´
eennes tels que:
L={u/c,A(c,u) = Vrai,|c| ≤ Q(|u|)}
Aest appel´
ealgorithme de v ´
erification,
cest appel´
ecertificat (ou preuve, ou t ´
emoin..).
|c|repr´
esente la taille de c.
|c| ≤ Q(|u|): la taille des certificats est born ´
ee polynˆ
omialement par
rapport `
a la talle de l’entr´
ee.
On dit que Av´
erifie Len temps polyn ˆ
omial.
() Complexit´
e de Probl`
emes 6 / 62
L’intuition?
On peut par exemple voir ccomme une preuve ou un ”candidat
-solution” , Acomme un algorithme qui v ´
erifie la preuve ou que la
solution est correcte; vous pouvez ˆ
etre capable de v´
erifier facilement
la preuve courte qu’un gentil g´
enie, (un prof, par exemple:-)) vous
donne mais cela n’implique pas forc ´
ement qu’elle soit facile `
a trouver...
Une propri ´
et´
eNP sera donc une propri´
et´
e pour laquelle les instances
positives ont une preuve ”courte” et ”facile” `
a v´
erifier.
() Complexit´
e de Probl`
emes 7 / 62
Comment montrer qu’une propri ´
et´
e est NP?
Pour montrer qu’une propri´
et´
e est NP, il faut:
d´
efinir la notion de certificat et montrer que la taille d’un certificat
est born´
ee polynˆ
omialement par la taille du probl`
eme
d´
efinir l’algo de V´
erification et montrer qu’il est polyn ˆ
omial (et
correct...)
() Complexit´
e de Probl`
emes 8 / 62
Etre 3-coloriable: les certificats
Un certificat pour Gest juste un coloriage des noeuds.
On peut par exemple le repr´
esenter par un tableau de couleurs index´
e
par les sommets.
On a donc :
taille du certificat <=taille du graphe
(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 alors bien lin ´
eaire, donc polynˆ
omialement
born´
ee, par rapport `
a celle de la donn´
ee.
() Complexit´
e de Probl`
emes 9 / 62
Etre 3-coloriable: l’algo de v´
erification
Un certificat est valide Ssi aucun arc ne relie deux noeuds de mˆ
eme
couleur: le v´
erifier est bien polyn ˆ
omial:
boolean A(col, G){
Pour chaque arc (s,d) de G
si col(s)=col(d) retourner Faux;
retourner Vrai;
}
La complexit ´
e de l’algorithme est de l’ordre de card(A)donc bien
polynˆ
omiale.
’Etre 3-coloriable’ est donc bien une propri ´
et´
eNP.
() Complexit´
e de Probl`
emes 10 / 62
Exemple 4: SAT: satisfiabilit ´
e d’une expression
Bool´
eenne
Donn´
ee: Φune expression bool ´
eenne avec nvariables bool´
eennes,
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 ´
eens
Algo de v´
erification: ´
evaluer v(Φ)
Sat est bien une propri ´
et´
eNP.
() Complexit´
e de Probl`
emes 11 / 62
La d´
efinition via le non-d´
eterminisme
NP=Non-D ´
eterministe Polynˆ
omial
D´
efinition Alternative
une propri ´
et´
ePr est NP si il existe un algorithme non d´
eterministe
polynˆ
omial qui d´
ecide Pr.
Remarque: NP=Non-D´
eterministe Polynˆ
omial et non pas Non
Polynˆ
omial!
() Complexit´
e de Probl`
emes 12 / 62
Algos non d´
eterministes polynˆ
omiaux
Un algorithme non-d ´
eterministe peut ˆ
etre vu comme un algorithme
avec des instructions de type ”choix(i,1..n)”: on choisit al ´
eatoirement
un entier dans l’intervalle [1..n].
Remarque 1: On peut se restreindre `
an=2.
Remarque 2: On peut prendre comme mod`
ele de calcul
non-d´
eterministe, les Machines de Turing non d ´
eterministes: on
´
etudiera ce mod`
ele dans les derniers cours.
() Complexit´
e de Probl`
emes 13 / 62
Complexit´
e d’un algorithme non d ´
eterministe
polynˆ
omial
Un algorithme non-d ´
eterministe Aest dit polynˆ
omial si il existe un
polynˆ
ome Qtel que pour toute entr´
ee u,tous les calculs de Asur u
ont une longueur d’ex ´
ecution born´
ee par Q(|u|).
() Complexit´
e de Probl`
emes 14 / 62
Algos non d´
eterministes `
a valeurs bool´
eennes
Soit Aun algorithme non d ´
eterministe `
a valeurs bool ´
eennes et dont
tous les calculs s’arrˆ
etent; il d´
ecide la propri ´
et´
ePr suivante: ”uv´
erifie
Pr Ssi il existe un calcul de Asur uqui retourne Vrai.” (penser `
a un
automate non d´
eterministe: un mot est accept´
e si et seulement si il
existe au moins un chemin acceptant.)
() Complexit´
e de Probl`
emes 15 / 62
Algos non d´
eterministes `
a valeurs bool´
eennes : un
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);}
() Complexit´
e de Probl`
emes 16 / 62
La d´
efinition via le non-d´
eterminisme versus La
d´
efinition via les certificats
Les deux d´
efinitions sont ´
equivalentes!
() Complexit´
e de Probl`
emes 17 / 62
Des certificats au non-d´
eterminisme
Un certificat correspond `
a une suite de choix dans l’ex ´
ecution de
l’algorithme non d ´
eterministe.
A partir d’un algorithme non-d´
eterministe polynˆ
omial pour v´
erifier P,
on construira donc la notion de certificat qui correspond `
a une suite de
choix.
L’algorithme de v ´
erification consiste `
a v´
erifier que l’ex´
ecution de
l’algorithme non d ´
eterministe correspondant `
a la suite de choix
donn´
ee par le certificat retourne Vrai.
() Complexit´
e de Probl`
emes 18 / 62
Du non-d´
eterminisme aux certificats
A partir d’une notion de certificat et d’algorithme de v ´
erification, on
construit un algorithme non-d´
eterministe qui consiste `
a d’abord
g´
en´
erer al´
eatoirement un certificat -la partie non d´
eterministe- et
ensuite `
a le v´
erifier en utilisant l’algorithme -d´
eterministe- de
v´
erification.
() Complexit´
e de Probl`
emes 19 / 62
NP et les autres
NP par rapport `
aP?
Bien sˆ
ur, Pest inclus dans NP: toute propri ´
et´
ePest une propri ´
et´
e
NP; l’algorithme de v´
erification est l’algorithme de d´
ecision et il n’a pas
besoin de certificat: on peut prendre pour certificat le mot vide.
() Complexit´
e de Probl`
emes 20 / 62
1 / 16 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 !