INFO-F-302, Cours d’Informatique Fondamentale
Mod´elisation de Probl`emes en SAT
Les classes P et NP
192 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.
D´efinition
Un probl`eme de d´ecision est un langage P.
Remarque : chaque langage Prepr´esente 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
Mod´elisation de Probl`emes en SAT
Les classes P et NP
193 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
Mod´elisation de Probl`emes en SAT
Les classes P et NP
194 Notion de codage
Ila d´efinition pr´ec´edente pour les probl`emes de d´ecision est abstraite.
Icomment par exemple repr´esenter 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 coee 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 arˆetes de G
INFO-F-302, Cours d’Informatique Fondamentale
Mod´elisation de Probl`emes en SAT
Les classes P et NP
195 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 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
Mod´elisation de Probl`emes en SAT
Les classes P et NP
195 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 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
Mod´elisation de Probl`emes en SAT
Les classes P et NP
196 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
Mod´elisation de Probl`emes en SAT
Les classes P et NP
196 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
Mod´elisation de Probl`emes en SAT
Les classes P et NP
196 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
Mod´elisation de Probl`emes en SAT
Les classes P et NP
197 Algorithme de d´ecision
D´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
Mod´elisation de Probl`emes en SAT
Les classes P et NP
198 La classe P
D´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
Mod´elisation de Probl`emes en SAT
Les classes P et NP
198 La classe P
D´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
Mod´elisation de Probl`emes en SAT
Les classes P et NP
198 La classe P
D´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
Mod´elisation de Probl`emes en SAT
Les classes P et NP
199 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 :
D´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
Mod´elisation de Probl`emes en SAT
Les classes P et NP
200 La classe NP
D´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.
INFO-F-302, Cours d’Informatique Fondamentale
Mod´elisation de Probl`emes en SAT
Les classes P et NP
201 Exemples de probl`emes dans NP
Iecider qu’un ensemble de clauses est satisfaisable (certificat =
valuation)
Ivoyageur de commerce : ´etant dones nvilles, les distances entre
les villes, et un entier d, on voudrait savoir s’il existe un cycle de
longueur dqui passe par chaque ville une et une seule fois
(certificat = un cycle)
Icoloriage de graphes : peut-on colorier un graphe avec moins de k
couleurs sans que deux sommets aient la mˆeme couleur ? (certificat
= coloriage)
I2-partition : peut-on partitionner un ensemble de nentiers en deux
tas ´egaux ? (certificat = partition)
Ibin packing : peut-on ranger nobjets de volume vidans kboˆıtes de
volumes C? (certificat = rangement)
Itous les probl`emes de la classe P(PNP)...certicatvide.
INFO-F-302, Cours d’Informatique Fondamentale
Mod´elisation de Probl`emes en SAT
Les classes P et NP
202 NPExpTime
Itout probl`eme de NPpeut ˆetre d´ecid´e par un algorithme de
complexit´e exponentielle en temps. Pourquoi ?
I´etant done un mot uen entr´ee, il sut d’´enum´erer tous les
certificats de longueur au plus a.|u|k(pour la constant ade la
notation O()) et d’appeler l’algorithme de v´erification. Exemple ?
Ipour SAT : ´enum´erer toutes les interpr´etations possibles et les tester
Ipour le coloriage : ´enum´erer tous les coloriages possibles et les tester
INFO-F-302, Cours d’Informatique Fondamentale
Mod´elisation de Probl`emes en SAT
Les classes P et NP
202 NPExpTime
Itout probl`eme de NPpeut ˆetre d´ecid´e par un algorithme de
complexit´e exponentielle en temps. Pourquoi ?
I´etant done un mot uen entr´ee, il sut d’´enum´erer tous les
certificats de longueur au plus a.|u|k(pour la constant ade la
notation O()) et d’appeler l’algorithme de v´erification. Exemple ?
Ipour SAT : ´enum´erer toutes les interpr´etations possibles et les tester
Ipour le coloriage : ´enum´erer tous les coloriages possibles et les tester
INFO-F-302, Cours d’Informatique Fondamentale
Mod´elisation de Probl`emes en SAT
Les classes P et NP
202 NPExpTime
Itout probl`eme de NPpeut ˆetre d´ecid´e par un algorithme de
complexit´e exponentielle en temps. Pourquoi ?
I´etant done un mot uen entr´ee, il sut d’´enum´erer tous les
certificats de longueur au plus a.|u|k(pour la constant ade la
notation O()) et d’appeler l’algorithme de v´erification. Exemple ?
Ipour SAT : ´enum´erer toutes les interpr´etations possibles et les tester
Ipour le coloriage : ´enum´erer tous les coloriages possibles et les tester
INFO-F-302, Cours d’Informatique Fondamentale
Mod´elisation de Probl`emes en SAT
Les classes P et NP
203 Conjecture
La grande conjecture de l’informatique fondamentale est :
P6=NP
Autrement dit, on ne sait pas encore d´emontrer que
Ierifier une solution candidate en tps polynomial,
est plus puissant que
Itrouver la solution en temps polynomial.
INFO-F-302, Cours d’Informatique Fondamentale
Mod´elisation de Probl`emes en SAT
Les classes P et NP
204 Probl`emes NP-complets
Parmi les probl`emes de la classe NP, certains sont dits “durs” : ce sont
ceux qui contiennent toute la dicult´e de n’importe quel probl`eme de la
classe NP. On les appelle les probl`emes NP-complets.
IUn probl`eme de d´ecision Pest NP-complet si il est dans NPet
tout autre probl`eme P0de NPse r´eduit `a Pen temps polynomial,
i.e. qu’il existe un algorithme qui transforme toute instance I0de P0
en une instance Ide P, en temps polynomial, telle que Iaune
solution ssi I0a une solution.
IPour montrer qu’un probl`eme est NP-complet, en g´en´eral on part
d’un probl`eme NP-complet connu, qu’on r´eduit dans notre
probl`eme en temps polynomial.
IAu d´ebut, il fallait bien un premier probl`eme NP-complet !
ITh´eor`eme de Cook (1971) :SATestNP-complet.
1 / 12 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 !