Introduction `a la th´eorie de la complexit´e Probl`emes de d´ecision

INFO-F-302, Cours d’Informatique Fondamentale
Introduction `a la th´eorie de la complexit´e
Introduction `a la th´eorie de la
complexit´e
INFO-F-302, Cours d’Informatique Fondamentale
Introduction `a la th´eorie de la complexit´e
Les classes P et NP
197 Probl`emes de d´ecision
IInformellement, un probl`eme de d´ecision est un probl`eme dont la
eponse est oui ou non.
Ion peut d´efinir un probl`eme de d´ecision comme un langage de mots
sur un alphabet fini
Ion note l’ensemble des mots sur l’alphabet (et le mot vide)
Ipar exemple, pour ={0,1},00100 2,11 2.
Iun langage sur est un sous-ensemble L.
efinition
Un probl`eme de d´ecision est un langage P.
Remarque : chaque langage Prepesente bien un probl`eme dont la
eponse est oui ou non, en l’identifiant `a sa fonction caract´eristique P:
P:!{0,1}
u7! 1si u2P
0si u62 P
Etant donn´e un mot d’entr´ee u2, on doit d´ecider si u2Pou non.
INFO-F-302, Cours d’Informatique Fondamentale
Introduction `a la th´eorie de la complexit´e
Les classes P et NP
198 Probl`emes de d´ecision : exemples
Iavec ={1},
PRIME1={1,11,111,11111,1111111,...}
l’ensemble des nombres premiers en unaire.
Iavec ={1},
PAIR = {,11,1111,...}
l’ensemble des nombre pairs.
Iavec ={0,1},
PRIME = {1,10,11,101,111,...}
l’ensemble des nombre premiers en binaire.
INFO-F-302, Cours d’Informatique Fondamentale
Introduction `a la th´eorie de la complexit´e
Les classes P et NP
199 Notion de codage
Ila d´efinition pr´ec´edente pour les probl`emes de d´ecision est abstraite.
Icomment par exemple repesenter le probl`eme suivant comme un
langage ?
IENTR´
EE : un graphe Gnon dirig´e et un entier k2N
ISORTIE : 1 ssi on peut colorier Gavec au plus kcouleurs
Ion voudrait repr´esenter l’ensemble {(G1,k1),(G2,k2),...}de toutes
les paires de graphes Gicoloriables avec au plus kicouleurs.
Iil faut alors “coder” chaque paire comme un mot.
Ipar exemple, avec l’alphabet ={0,1,#,$}, on pourrait coder un
graphe Gen identifiant chacun de ses sommets par un entier, et
chaque arˆete (i,j)pourrait ˆetre cod´ee par le mot i#j,o`ui,jsont les
codages binaires des sommets iet j.Lapaire(G,k)pourrait se
coder par le mot :
i1#j1$i2#j2...in#jn$ko`u (i1,j1),...(in,jn) sont les aetes de G
INFO-F-302, Cours d’Informatique Fondamentale
Introduction `a la th´eorie de la complexit´e
Les classes P et NP
200 Notion de codage
Ila d´efinition de probl`eme comme un langage de mots est abstraite,
et utile en th´eorie de la calculabilit´e et complexit´e.
Ibien souvent, on peut “oublier” le codage et travailler directement
avec des repr´esentations plus “concr`etes”, par exemple une matrice
d’adjacence pour un graphe, ou une liste de voisins.
Imais attention, le codage peut influencer la complexit´e, et il faudra
parfois revenir `a cette notion.
Ipar exemple, quelle est la complexit´e (en temps) de l’algorithme
suivant :
IENTREE : n2N
IPOUR ide 2`a dpneFAIRE
ISI i|nALORS RETOURNER 0
IRETOURNER 1
Icela d´epend du codage de n
INFO-F-302, Cours d’Informatique Fondamentale
Introduction `a la th´eorie de la complexit´e
Les classes P et NP
201 Probl`eme d’optimisation
Iun probl`eme d’optimisation est un probl`eme o`u l’on veut maximiser
ou minimiser une certaine quantit´e
Ipar exemple, trouver le plus court chemin dans un graphe, d’un
sommet s`a u n s o m m e t t.
Ion peut associer un probl`eme de d´ecision `a un probl`eme
d’optimisation, en donnant une borne
Ipar exemple, est-ce qu’il existe un chemin de longueur au plus kde s
`a t?
Isi on sait r´esoudre le probl`eme de d´ecision associ´e `a un probl`eme
d’optimisation, on peut parfois r´esoudre le probl`eme d’optimisation
Ipar exemple, pour trouver le plus court chemin de s`a tdans un
graphe `a nsommets, on peut faire une recherche dichotomique.
INFO-F-302, Cours d’Informatique Fondamentale
Introduction `a la th´eorie de la complexit´e
Les classes P et NP
202 Algorithme de d´ecision
efinition
Un probl`eme Pest d´ecid´e par un algorithme Asi pour tout mot
u2,
IAtermine et retourne 1si u2P,
IAtermine et retourne 0si u62 P.
Un probl`eme est d´ecidable s’il existe un algorithme qui le d´ecide.
Par exemple, selon le codage des entiers adopt´e, l’algorithme vu
pr´ec´edemment d´ecide PRIME1ou PRIME.
INFO-F-302, Cours d’Informatique Fondamentale
Introduction `a la th´eorie de la complexit´e
Les classes P et NP
203 La classe P
efinition
La classe Pest la classe des probl`emes pouvant ˆetre d´ecid´es en temps
polynomial. Plus pr´ecis´ement, un probl`eme Pest dans Psi il existe
un algorithme Aet une constante ktel que pour tout mot ude longueur
n,
IAretourne 1en temps O(nk)si u2P
IAretourne 0en temps O(nk)si u62 P
Exemples de probl`emes dans P:
Iecider si un tableau est tri´e
Iecider si un entier cod´e en unaire est premier (facile)
Iecider si un entier cod´e en binaire est premier (dicile, probl`eme
rest´e ouvert pendant longtemps)
Les notions d’algorithme et leur complexit´e peuvent ˆetre d´efinies
formellement par le mod`ele des machines de Turing (plus tard dans le
cours)
INFO-F-302, Cours d’Informatique Fondamentale
Introduction `a la th´eorie de la complexit´e
Les classes P et NP
204 Algorithme de v´erification
Iinformellement, un algorithme de v´erification est un algorithme qui,
´etant donn´ee une solution “candidate” `a un probl`eme de d´ecision,
ecide si oui ou non cette solution est valide.
Ipar exemple, pour le coloriage de graphe avec au plus kcouleurs,
une solution candidate serait un coloriage c, et un algorithme de
erification devrait v´erifier que (1) chaque sommet est colori´e par c,
(2) deux sommets voisins ne sont pas colori´es de la mˆeme couleur
par c.
Cela peut se d´efinir formellement :
efinition
Un algorithme de v´erification pour un probl`eme Pest un
algorithme Aprenant deux mots en argument, tel que
P={u2|9v2,A(u,v)=1}
Lorsque A(u,v)=1,vest appel´e un certificat pour u.
INFO-F-302, Cours d’Informatique Fondamentale
Introduction `a la th´eorie de la complexit´e
Les classes P et NP
205 La classe NP
efinition
La classe NPest la classe des probl`emes pouvant ˆetre v´erifi´es en temps
polynomial.
Autrement dit, un probl`eme Pest dans NP si il existe un algorithme de
erification Ade complexit´e polynomial en temps, et deux constantes k,
tels que
Ipour tout entr´ee u2Ptelle que u2P,ilexisteuncerticatvde
longueur polynomial dans u(|v|=O(|u|k))telqueA(u,v)=1
Ipour tout entr´ee u62 P, il n’existe aucun certificat vde longueur
polynomial dans utel que A(u,v)=1.
1 / 18 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 !