Complexit´
e de Probl`
emes: les classes P et NP
AAC
Sophie Tison
Universit´
e Lille 1
Master1 Informatique
BILAN DE LA PREMI `
ERE PARTIE
IProgrammation Dynamique
IAlgorithmes gloutons
IDiviser pour r´
egner
AUJOURDHUI
ID´
ebut de la deuxi`
eme partie: Complexit´
e de probl`
emes
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.
COMPLEXIT´
E DE PROBL `
EMES:LES QUESTIONS
QUELLE ABORDE
IQuelle est la complexit´
e minimale d’un algorithme
r´
esolvant un probl`
eme donn´
e?
IExiste-t-il un algorithme polynomial pour r´
esoudre un
probl`
eme donn´
e?
IComment peut-on dire qu’un algorithme est optimal (en
complexit´
e)?
IComment peut-on montrer qu’il n’existe pas d’algorithme
polynomial pour un probl`
eme?
IQu’est-ce qu’un probl`
eme ”dur”?
IComment prouver qu’un probl`
eme est au moins aussi
“dur” qu’un autre?
LA COMPLEXIT ´
E DUN PROBL`
EME
Definition
La complexit´
e d’un probl`
eme est la complexit´
e minimale dans
le pire des cas d’un algorithme qui le r´
esout.
C’est souvent la complexit´
e en temps qu’on consid`
ere mais on
peut s’int´
eresser `
a d’autres mesures comme par exemple la
complexit´
e en espace.
Cette d´
efinition -un peu floue- ne pr´
ecise pas quel mod`
ele
d’algorithme on choisit: l’analyse de la complexit´
e si elle est
fine (par exemple, ˆ
etre lin´
eaire, ˆ
etre quadratique) sera diff´
erente
si on programme en C ou “en Machine de Turing” d’o`
u l’int´
erˆ
et
de classes de complexit´
e ind´
ependantes du mod`
ele.
LA COMPLEXIT ´
E DUN PROBL`
EME LA COMPLEXIT ´
E DUN PROBL`
EME
Par exemple si on dit que la complexit´
e d’un probl`
eme est
quadratique cela veut dire:
Iqu’il existe un algorithme quadratique qui le r´
esout
IET que tout algorithme qui le r´
esout sera au moins
quadratique
LA COMPLEXIT ´
E DUN PROBL`
EME
Calculer la complexit´
e d’un probl`
eme est ardu en g´
en´
eral. On
se contente souvent d’encadrer:
Ipour trouver une borne sup´
erieure, il suffit de trouver UN
algorithme.
Ipour trouver une ”bonne” borne inf´
erieure, les choses sont
souvent plus difficiles; pour montrer par exemple qu’un
probl`
eme est de complexit´
e au moins exponentielle, il faut
montrer que TOUT algorithme le r´
esolvant est
exponentiel.
Quand les deux bornes co¨
ıncident, c’est l’id´
eal mais c’est assez
rare!
LEXEMPLE DE LA MULTIPLICATION
IOn conjecture que la multiplication de deux entiers de
longueur npeut se faire en O(n log n)
ILe meilleur algorithme connu est en O(n log n log log n).
ILa meilleure borne inf´
erieure trouv´
ee est O(n).
TROIS M ´
ETHODES POUR TROUVER UNE BORNE
INF ´
ERIEURE
1. Les m´
ethodes dites d’oracle ou d’adversaire
2. Les arbres de d´ecision
3. Les R´eductions
LES M ´
ETHODES DITES DORACLE OU DADVERSAIRE:
Le principe: On suppose qu’il existe un algorithme utilisant
moins d’un certain nombre d’op´
erations d’un certain type; on
construit alors une donn´
ee qui met en d´
efaut l’algorithme.
Exercice
Montrer ainsi que rechercher le maximum dans une liste de n
´el´ements n´ecessite n 1comparaisons.
LES ARBRES DE D ´
ECISION
Ils sont utilis´
es pour les algorithmes de type recherche ou tri
”par comparaisons”: on suppose que seules des comparaisons
entre les ´
el´
ements sont utilis´
ees pour obtenir de l’information
sur l’ordre ou l’´
egalit´
e des ´
el´
ements.
Un arbre de d´
ecision ”repr´
esente” toutes les comparaisons
ex´
ecut´
ees par l’algorithme sur les donn´
ees d’une certaine taille:
IUn noeud correspond `
a une comparaison,
Ises fils aux diff´
erentes r´
eponses possibles de la
comparaison (donc si le test est `
a valeur bool´
eenne, les
noeuds sont binaires);
IUne ex´
ecution possible correspond donc `
a une branche
IDeux donn´
ees correspondant `
a la mˆ
eme branche
correspondront `
a la mˆ
eme suite d’instructions.
LES ARBRES DE D ´
ECISION:LA PES ´
EE
Soit 9 pi`
eces de monnaies, dont une est fausse et plus l´
eg`
ere
que les autres. On poss`
ede une balance `
a plateaux. On cherche
`
a trouver la fausse pi`
ece en minimisant le nombre de pes´
ees.
Quelle m´
ethode optimale?
LES ARBRES DE D ´
ECISION:LA PES ´
EE,SUITE
Soit 12 pi`
eces de monnaies, dont une est fausse et soit plus
l´
eg`
ere, soit plus lourde que les autres. On poss`
ede une balance
`
a plateaux. On cherche `
a trouver la fausse pi`
ece en minimisant
le nombre de pes´
ees.
Quelle m´
ethode optimale?
LES ARBRES DE D ´
ECISION
Exercice
Montrer que tout recherche d’une valeur par ”comparaison” parmi n
´el´ements tri´es effectue au moins de l’ordre de log n comparaisons dans
le pire des cas.
LES ARBRES DE D ´
ECISION
Exercice
Montrer que tout tri par comparaisons de n ´el´ements effectue au
moins de l’ordre de n log n comparaisons dans le pire des cas.
LES R ´
EDUCTIONS
Le principe est simple.
Supposons par exemple qu’on sache que le probl`
eme DURDUR
est de complexit´
e exponentielle, donc que tout algorithme le
r´
esolvant est au moins exponentiel.
Si on arrive `
a r´
eduire d’une fac¸on ”peu coˆ
uteuse” le probl`
eme
DURDUR dans le probl`
eme MONPB,MONPB sera lui aussi de
complexit´
e au moins exponentielle.
LES R ´
EDUCTIONS
Exercice
Montrer que si il existait un algorithme en O(nlog n)pour calculer
le carr´e d’un entier de n chiffres, il existerait un algorithme en
O(nlog n)pour calculer le produit de deux entiers de n chiffres,
LES CLASSES DE PROBL `
EMES
L’id´
ee est de classifier les probl`
emes selon l’ordre de grandeur
de leur complexit´
e.
Tout d’abord pour simplifier, on va se limiter aux probl`
emes de
d´
ecision ou propri´
et´
es.
Definition
Une propri´
et´
e est une fonction `
a valeurs bool´
eennes.
Un probl`
eme de d´
ecision peut donc ˆ
etre vu comme un
ensemble Id’instances du probl`
eme avec pour chaque instance
une r´
eponse “oui” ou “non”.
Exemple: ”ˆ
etre premier” est une fonction qui `
a tout entier
naturel associe oui -si il est premier-, non sinon.
1 / 9 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 !