Graphes et optimisation discr` ete : Th´ eorie de la complexit´ e
P. Laurent Math´ematiques 2
16 janvier 2006
Plan
1 Introduction
Exemples de probl`emes algorithmiques Repr´esentation d’un probl`eme par un autre
2 La notion d’algorithme
Qu’est ce qu’un algorithme ? Codage des donn´ees
3 La complexit´e des algorithmes Diff´erentes notions de complexit´e La complexit´e en temps
Exemples de complexit´e
Echelle de complexit´e : les probl`emes P, EXP
4 Probl`emes NP-Complet Exemples de probl`emes NP
Probl`emes NP : d´efinitions ´equivalentes Probl`emes NP-Complet
Graphes et optimisation discr` ete
1 Introduction
Exemples de probl`emes algorithmiques Repr´esentation d’un probl`eme par un autre
2 La notion d’algorithme
Qu’est ce qu’un algorithme ? Codage des donn´ees
3 La complexit´e des algorithmes Diff´erentes notions de complexit´e La complexit´e en temps
Exemples de complexit´e
Echelle de complexit´e : les probl`emes P, EXP
4 Probl`emes NP-Complet Exemples de probl`emes NP
Probl`emes NP : d´efinitions ´equivalentes Probl`emes NP-Complet
Infos
Pratique
1 Le site est actualis´e.
2 Doc. Graphes et Optimisation.
3 Le programme du contrˆole.
Infos
Pratique
1 Le site est actualis´e.
2 Doc. Graphes et Optimisation.
3 Le programme du contrˆole.
Infos
Pratique
1 Le site est actualis´e.
2 Doc. Graphes et Optimisation.
3 Le programme du contrˆole.
Infos
Pratique
1 Le site est actualis´e.
2 Doc. Graphes et Optimisation.
3 Le programme du contrˆole.
Infos
Pratique
1 Le site est actualis´e.
2 Doc. Graphes et Optimisation.
3 Le programme du contrˆole.
Prolongement Cours d’application :
Math´ematiques et mod´elisation.
J.H. Saiac et P. Frey
Infos
Pratique
1 Le site est actualis´e.
2 Doc. Graphes et Optimisation.
3 Le programme du contrˆole.
Publicit´e
Cours d’approfondissement :
Logique, informatique, math´ematiques.
P. Laurent
Objectifs
Un peu de recul
1 Comprendre la nature des probl`emes de maths discr`etes.
2 pourquoi certains probl`emes sont difficiles.
3 P 6= NP.
4 Finir en beaut´e...
Objectifs
Un peu de recul
1 Comprendre la nature des probl`emes de maths discr`etes.
2 pourquoi certains probl`emes sont difficiles.
3 P 6= NP.
4 Finir en beaut´e...
Objectifs
Un peu de recul
1 Comprendre la nature des probl`emes de maths discr`etes.
2 pourquoi certains probl`emes sont difficiles.
3 P 6= NP.
4 Finir en beaut´e...
Objectifs
Un peu de recul
1 Comprendre la nature des probl`emes de maths discr`etes.
2 pourquoi certains probl`emes sont difficiles.
3 P 6= NP.
4 Finir en beaut´e...
Objectifs
Un peu de recul
1 Comprendre la nature des probl`emes de maths discr`etes.
2 pourquoi certains probl`emes sont difficiles.
3 P 6= NP.
4 Finir en beaut´e...
Le probl` eme
La solution d’un probl`eme de math´ematiques discr`etes appartient `a un ensemble fini.
On peut `a l’aide d’un algorithme fini tester si un ´el´ement de cet ensemble est une solution.
L’´enum´eration de toutes les solutions exige souvent un temps de calcul exponentiel.
De tr`es nombreux probl`emes sont ´equivalents entre eux : un algorithme efficace pour l’un le serait pour tous.
Calculs en “virgule flottante”
Temps de calcul ⇔ nombres d’op´erations ´el´ementaires.
Valeur d’un polynˆome : sch´ema de Horner X
k
akxk = ((...((anx+an−1)x+an−2)x...)x+a1)x+a0
n mult., n−1 add., optimal en nombres d’op.´elem.
Multiplication de deux matrices (n,n) :
L’algorithme naturel (n3 op´erations) n’est pas optimal.
Algorithme de Strassen∼n2.7 Algorithme de Gauss :
n3
3 op´erations ´el´ementaires.
Non optimal.
Calculs en nombres entiers
∗,+, / : Op´erations ´el´ementaires sur les entiers : Sin∼2p, au plusp2 op´erations sur des bits.
PGCD : Test de primalit´e relative : on peut d´eterminer si deux entiers sont premiers entre eux par l’algorithme d’Euclide (PGCD), c’est un algorithme tr`es efficace mˆeme pour des entiers grands.
Construction d’un arbre minimal recouvrant un graphe : On a vu un algorithme tr`es efficace `a la s´eance 1.
PRIM : Test de primalit´e, tester si un entier n est premier.
for p= 1, ...,sqrt(n) , p|n?
Nombreuses applications (cryptographie).
Calculs en nombres entiers : mesure d’efficacit´ e
Test de primalit´e, tester si un entier n est premier.
forp = 1, ...,sqrt(n) , p|n?
50 chiffres,⇒1025 op´erations, ⇒ impossible.
“Nombres de Mersenne” (2p+ 1), pire.
Attention !
L’efficacit´e se mesure par rapport `a l’encombrement m´emoire n´ecessaire pour repr´esenter les donn´ees.
PGCD(n,m) :n,m s’´ecrivent aveck chiffres ⇒ ∼k divisions.
PRIM : Sin s’´ecrit avec k chifres, combien de divisions ?
Algorithme pour les graphes
Connexit´e d’un graphe :
La construction d’un arbre de recouvrement peut servir d’algorithme, voir la s´eance 1.
2-COL : Coloriage d’un graphe avec deux couleurs.
∃ algorithme tr`es efficace.
EUL : Circuit eul´erien : existe-t-il sur un graphe un circuit eul´erien ?
∃ algorithme tr`es efficace.
CLIQUE : Etant donn´e un graphe n noeuds existe-t-il une clique (i.e. un sous graphe complet) `ak noeuds ?
L’´enum´eration de tous les sous-graphes `ak noeuds exigeCnk tests sur ces sous-graphes. Il existe donc une constantec telle que le nombre d’op´erations pour cet algorithme est de l’ordre decnk.
Algorithme pour les graphes
k-COL : k-coloration d’un graphe.
Colorier aveck couleurs les noeuds d’un graphe de fa¸con `a ce que deux noeuds adjacents n’aient jamais la mˆeme couleur. Le probl`eme d’optimisation
correspondant est de trouver un entierk minimal.
Pourk = 2 on a un algorithme tr`es rapide, voir exercices. Cas g´en´eral ?
HAM : Circuit hamiltonien : existe-t-il sur un graphe un cycle passant par tous les sommets d’un graphe ? TSP : Le probl`eme du voyageur de commerce : existe-t-il
un cycle hamiltonien de longueur inf´erieure `a un entier k sur un graphe valu´e ? Le probl`eme
d’optimisation correspondant est de trouver un entier k minimal.
Equations
ILP : la programmation lin´eaire en nombres entiers Amatrice de dim.(p,n)x,b,c ∈Nn
( C ={x ∈Nn tel que Ax ≤c, x ≥0}
x∈maxNn
hc,xi (1)
Logique
SAT : Satisfiabilit´e d’un ensembe de clauses.
n clauses (P1∨ ¬P2∨...∨Pk) est-il satisfiable ?
∃? valeurs “Vrai”, “Faux” aux symbolesPi /toutes les clauses soient vraies.
Tester toutes les valeurs des symboles de proposition,
⇒2p tests.
k-SAT : Satisfiabilit´e d’un ensemble de clauses de longueur au plusk.
Jeux ?
Sudoku
5 3 * * 7 * * * *
6 * * 1 9 5 * * *
* 9 8 * * * * 6 *
8 * * * 6 * * * 3
4 * * 8 * 3 * * 1
7 * * * 2 * * * 6
* 6 * * * * 2 8 *
* * * 4 1 9 * * 5
* * * * 8 * * 7 9
Jeux ?
Solution
5 3 4 6 7 8 9 1 2
6 7 2 1 9 5 3 4 8
1 9 8 3 4 2 5 6 7
8 5 9 7 6 1 4 2 3
4 2 6 8 5 3 7 9 1
7 1 3 9 2 4 8 5 6
9 6 1 5 3 7 2 8 4
2 8 7 4 1 9 6 3 5
3 4 5 2 8 6 1 7 9
Jeux ?
Interpr´etation
Probl`eme de coloriage avec 9 couleurs d’un graphe `a 92 noeuds.
Noeuds : (i,j), i,j = 1, ...,9
Arˆetes : entre (i,j) et (i0,j0) sii =i0 ouj =j0.
Arˆetes : entre (i,j) et (i0,j0) sii/3 =i0/3 ou j/3 =j0/3.
Arˆetes : entre (i,j) et (i0,j0) siCouleur(i,j)6=Couleur(i0,j0).
D´efinition (Sudoku g´en´eralis´e)
Nous appelons Sudoku d’ordre n le probl`eme g´en´eralis´e obtenu en rempla¸cant 9 = 32 par n2 :
probl`eme de coloriage d’un graphe `a n4 noeuds avec n2 couleurs.
Exemples de repr´ esentation
Repr´esentation de SAT dans ILP PropositionPi → xi = 0 ouxi = 1.
Valeur (¬Pi) = 1−xi. ClausePi∨ ¬Pj ∨...∨Pk →
xi + 1−xj +...+xk ≥1
Ensemble den clauses pourp symboles de propositionPi
→ n in´egalit´es lin´eaires `ap variables,xi ≥0 et xi ≤1.
´Equivalence des probl`emes
Satisfiabilit´e des clauses ⇔ ∃ solution `a ILP.
Repr´ esentation de 3-COL dans 3-SAT
Un graphe 3-coloriable.
Repr´ esentation de 3-COL dans 3-SAT
Ensemble des clauses
Soit un graphe (G,A). On introduit les symboles : Pik : le noeudi a la couleurk.
Et les clauses :
Ci :Pi1∨Pi2∨Pi3 pour chaque noeud, et
Ai,j,k :¬Pik ∨ ¬Pjk pour chaque arˆete (i,j)∈Aet chaque couleurk.
3-SATSym
D´efinition
On consid`ere un ensemble de n clauses de la forme L1i ∨L2i ∨Li3, Lji =Pk ou¬Pk
3-SATSym est le probl`eme consistant `a v´erifier si ces clauses ont la propri´et´e Π :
il existe un ensemble de valeurs pour les symboles Pik telles dans toutes les clauses il y a un Lki VRAI et un Lki FAUX.
Repr´ esentation de SAT dans CLIQUE
Un exemple
Prenons comme exemple les 4 clauses suivantes :
¬P1∨P2∨P3∨P4
P1∨ ¬P2∨P3
P1∨ ¬P2∨ ¬P3 P2∨P3∨ ¬P4
Clique dans un graphe ⇔ Ensemble ind´ependant dans le graphe compl´ementaire.
Repr´ esentation de SAT dans CLIQUE
Noeuds du graphe.
Repr´ esentation de SAT dans CLIQUE
Graphe compl´ementaire : Une arˆete entre Pi et Pi.
Repr´ esentation de SAT dans CLIQUE
Graphe compl´ementaire : Une arˆete entre les noeuds d’une clause.
Repr´ esentation de SAT dans CLIQUE
Existence d’une ensemble ind´ependant.
Repr´ esentation de SAT dans 3-SAT
La clauseL1∨L2∨...∨Lp est satisfiable si et seulement si l’ensemble desp−3 propositions
Ensemble ´equivalent
L1∨L2∨Q3 Q3 ⇒(L3∨Q4) Q4 ⇒(L4∨Q5) ...
Qp−1⇒(Lp−1∨Lp) le sont.
Repr´ esentation de SAT dans 3-SAT
La clauseL1∨L2∨...∨Lp est satisfiable si et seulement si l’ensemble desp−3 propositions
Ensemble ´equivalent
C’est `a dire si l’ensemble des clauses L1∨L2∨Q3
¬Q3∨L3∨Q4
¬Q4∨L4∨Q5 ...
¬Qp−1∨Lp−1∨Lp
est satisfiable.
Repr´ esentation de 3-SAT dans 3-SATSym
Principe
On consid`ere un ensemble de n clauses de la forme L1i ∨L2i ∨Li3, Lji =Pk ou¬Pk
L’ensemble des clausesL1i ∨L2i ∨L3i est satisfiable si et seulement si les 4n clauses
L1i ∨L2i ∨ ¬Qi
¬L1i ∨Qi∨R
¬L2i ∨Qi∨R L3i ∨Qi∨R
(2)
ont la propri´et´e Π.
Repr´ esentation de 3-SATSym dans 3-COL
Un exemple
Prenons comme exemple les 3 clauses suivantes :
¬P1∨ ¬P2∨P3
¬P2∨ ¬P3∨ ¬P4
¬P1∨P4∨ ¬P5
Satisfiable avec les valeurs :
P1,P3,P4,P5 :VRAI, P2 :FAUX
Repr´ esentation de 3-SATSym dans 3-COL
Noeuds et arˆetes du graphe.
Repr´ esentation de 3-SATSym dans 3-COL
P1,P3,P4,P5 :VRAI, P2 :FAUX O en vert, jaune : VRAI, bleu : FAUX.
Repr´ esentation de 3-SATSym dans 3-COL
P1,P3,P4,P5 :VRAI, P2 :FAUX O en vert, jaune : VRAI, bleu : FAUX.
Repr´ esentation de 3-SATSym dans 3-COL
Changement d’une couleur double en vert : graphe 3-COL.
Sudoku ?
D´efinition
Carr´e latin Comme Sudoku sans la condition sur les petits carr´es...
Sudoku → SAT
Sudoku est r´epr´esentable dans SAT.
Carr´e Latin
“Carr´e latin” est repr´esentable dans Sudoku : un carr´e latin (n,n) est repr´esentable dans un Sudoku d’ordren (donc `a n2 lignes et colonnes).
Graphes et optimisation discr` ete
1 Introduction
Exemples de probl`emes algorithmiques Repr´esentation d’un probl`eme par un autre
2 La notion d’algorithme
Qu’est ce qu’un algorithme ? Codage des donn´ees
3 La complexit´e des algorithmes Diff´erentes notions de complexit´e La complexit´e en temps
Exemples de complexit´e
Echelle de complexit´e : les probl`emes P, EXP
4 Probl`emes NP-Complet Exemples de probl`emes NP
Probl`emes NP : d´efinitions ´equivalentes Probl`emes NP-Complet
Algorithme d´ eterministe
Donn´ees
Un langage de programmation L.
Une classe d’objets C (chaˆınes de caract`eres =mot, ou entier).
D´efinition (Algorithme)
Un algorithme est une fonction d´efinie par un programme ´ecrit dans le langageL
n∈ C → f(n)
Langages usuels
Assembleur ⇔ C ⇔ Pascal ⇔ CAML⇔ Mathematica...
Equivalence des langages
Une fonction calculable par l’un est calculable par tous les autres.
Il faut :
∗,+, / , les test (IF...), et les boucles “WHILE”, ou les tests (IF...) et les “GO TO”,
ou, la composition des fonctions et la r´ecursivit´e (langages fonctionnels),
ou encore reconnaˆıtre une chaˆıne de caract`eres et la remplacer par une autre (Mathematica).
Langages usuels
Boucles
L’ex´ecution d’un algorithme ne se fait pas toujours en un temps fini : certains algorithmes “bouclent” ind´efiniment. Nous
supposerons que pour toutes les valeurs den l’algorithme s’arrˆete en un nombre fini d’´etapes.
Th´eor`eme
Le probl`eme de l’arrˆet d’un algorithme est ind´ecidable...
Codage des entiers
Chaˆıne de caract`eres : ⇔ entier.
Codage d’un entier : d´ecimal : 9
binaire : 9 ↔ 1001 unaire : 9 ↔ |||||||||
Encombrement : |n|le nombre de “bits” n´ecessaires pour repr´esenter l’objet n.
k-uple : (i1,i2, ...,ik) ↔ n
Codage des donn´ ees bool´ eennes
Codage d’un graphe (G,A)
On peut repr´esenter un graphe `a n noeuds par sa matrice bool´eenne, soitn2 bits au plus.
Codage d’un ensemble de clauses
n clauses (P1∨ ¬P2∨...∨Pk) `a p variables Pi,i = 1, ...,p
→ une matrice (n,p) `a coefficients dans (1,−1,0) (P1∨¬P2∨P5∨¬P7) →(1,−1,0,0,1,0,−1,0,0, ...)
Probl` emes de reconnaissance
LangageL, Donn´eesC.
∃?n ∈ C/f(n) = 1
D´efinition
On dit f(n) accepte le mot n oureconnaˆıtles mots accept´es.
A une fonction qcqn→f(n) →fonction de reconnaissance g(n,m) = 1 ⇔ m=f(n)
Calculerf(n) ⇔ ∀p = 1,2, .... g(m,p) = 1 ? Exemple :
TSP-k :∃ ? un circuit hamiltonien de longueur inf´erieure `a un entierk.
Graphes et optimisation discr` ete
1 Introduction
Exemples de probl`emes algorithmiques Repr´esentation d’un probl`eme par un autre
2 La notion d’algorithme
Qu’est ce qu’un algorithme ? Codage des donn´ees
3 La complexit´e des algorithmes Diff´erentes notions de complexit´e La complexit´e en temps
Exemples de complexit´e
Echelle de complexit´e : les probl`emes P, EXP
4 Probl`emes NP-Complet Exemples de probl`emes NP
Probl`emes NP : d´efinitions ´equivalentes Probl`emes NP-Complet
Qu’est-ce qu’un probl` eme complexe
Complexit´e en nombre d’op´erations alg´ebriques : calculs en virgule flottante.
Complexit´e en temps : “temps de calcul”.
C’est celle que nous allons d´evelopper.
Complexit´e en espace : “encombrement m´emoire”.
≤complexit´e temps.
Complexit´e algorithmique : “longueur du programme”.
→ complexit´e d’un objet :
longueur du plus court programme qui peut le calculer.
→ complexit´e au sens de Cha¨ıtin-Kolmogorov.
→ D´efinition des suites al´eatoires.
La complexit´ e : d´ efinition relative ?
D´epend de l’ordinateur.
Parall´elisme ?
→ Temps de calcul∼“nombres d’op´erations ´el´ementaires”.
D´epend bien sˆur du langage.
D´epend aussi de la taille des donn´ees|n|.
D´ efinition pr´ ecise de la complexit´ e en temps
D´efinition (Complexit´e en temps)
La complexit´e d’un algorithme est le nombre d’op´erations
effectu´ees par la machine de Turing associ´ee `a cet algorithme qui est suppos´ee s’arrˆeter toujours.
Machine de Turing : notion d’ordinateur minimal.
Int´erˆet historique.
Int´erˆet th´eorique.
Une op´eration↔ changer un bit.
Exemples de complexit´ e
+,*,/ : Les op´erations ´el´ementaires sur les entiers (additions, multiplications...). Si les entiers sont repr´esent´es en binaire ce sont des op´erations dont la complexit´e est lin´eaire par rapport `a|n|.
PGCD : Entiers premiers entre eux.
PGCD(m,n) avec m<n.
A chaque ´etape une division → log2n∼ |n|
op´erations alg´ebriques.
|n|3 op´erations ´el´ementaires.
PRIM : Test de primalit´e.
D’apr`es un r´esultat r´ecent (2002) la complexit´e est inf´erieure `aC|n|12.
Exemples de complexit´ e
SAT : Satisfiabilit´e d’un ensemble de clause.
L’algorithme qui teste toutes les valeurs possibles des symboles de propositions (soit 2n) est exponentiel par rapport aux nombres de symboles, et donc par rapport `a la longueur des donn´ees.
CLIQUE : Etant donn´e un graphe n noeuds existe-t-il une clique (i.e. un sous graphe complet) `ak noeuds ?
L’´enum´eration de tous les sous-graphes `ak noeuds exigeCnk tests sur ces sous-graphes. Il existe donc une constantec telle que le nombre d’op´erations pour cet algorithme est de l’ordre decnk.
Probl` eme P
D´efinition
La complexit´e d’un algorithme est polynomial (On dit de classe P) si, il existe une constante C et un entier k tels que le nombre d’op´erations effectu´ees par la machine de Turing associ´ee `a cet algorithme pour une donn´ees n est inf´erieur `a C|n|k.
Exemples PGCD
Connexit´e d’un graphe 2-COL
PRIM
Probl` eme EXP
Definition
La complexit´e d’un algorithme est exponentielle (On dit de classe EXP) si, il existe une constanteC telle que le nombre d’op´erations effectu´ees par la machine de Turing associ´ee `a cet algorithme pour une donn´eesn est inf´erieur `aC2|n|.
Donc P⊂EXP.
Exemples SAT
CLIQUE, k-COL, HAM, TSP par tous les algorithmes connus.
Graphes et optimisation discr` ete
1 Introduction
Exemples de probl`emes algorithmiques Repr´esentation d’un probl`eme par un autre
2 La notion d’algorithme
Qu’est ce qu’un algorithme ? Codage des donn´ees
3 La complexit´e des algorithmes Diff´erentes notions de complexit´e La complexit´e en temps
Exemples de complexit´e
Echelle de complexit´e : les probl`emes P, EXP
4 Probl`emes NP-Complet Exemples de probl`emes NP
Probl`emes NP : d´efinitions ´equivalentes Probl`emes NP-Complet
Probl` eme NP
Definition
f(n) (o`uf(n) = 0 ou 1) est declasse NP (en anglais : non-deterministic polynomial)
∃une constante C, un entierk, et une fonctiong(m) (le “test”)
−g(m)∈P
−n →une donn´eem=φ(n) telle que|m| ≤C|n|k et g(m) = 1 ⇔ f(n) = 1
mest le t´emoin.
Le t´emoin n’est pas “construit”.
Exemple : SAT
Satisfiabilit´e d’un ensemble de clauses.
Donn´ees : m= (n,p) o`u
n est le codage des clauses P1∨ ¬P3∨...∨Pk, p le codage d’un ensemble de valeurs “Vrai”, “Faux”,
m= (n,p) et g(m) calcule la valeur des clauses pour le codagep.
TEST : v´erifier que toutes les clauses sont vraies,
→algorithme lin´eaire.
Exemple : k-COL
Coloriage d’un graphe aveck couleurs Donn´ees : m= (n,p) o`u
n est le codage du graphe,
p le codage d’un coloriage des noeuds,
g(m) est une fonction qui teste si deux noeuds adjacents ont la mˆeme couleur.
TESTg(m) : v´erifier que le coloriage est correct, i.e., balayer toutes les arˆetes, → algorithme lin´eaire.
Exemple : CLIQUE
Existence d’un sous-graphe complet d’ordrek Donn´ees : m= (n,p) o`u
n est le codage du graphe,
p le codage d’un sous-ensemble dek noeuds,
g(m) est une fonction qui teste si dun sous-graphe est complet.
Tester la propri´et´e revient `a balayer toutes les arˆetes du sous-graphe associ´e `a p,
→algorithme lin´eaire.
Robustesse de ces d´ efinitions
Toutes les op´erations alg´ebriques (addition, multiplication...) sont polynomiales.
De mˆeme les tests, les recopies d’´el´ements en m´emoire,
⇒ la classe P ne d´epend pas du type d’ordinateur utilis´e.
Le parall´elisme ne fait que modifier la constante C, l’utilisation de machines de Turing change la valeur dek.
⇒ Les classes P, EXP, NP sont donc ind´ependantes des types d’ordinateur et langages utilis´es.
Probl` emes NP : d´ efinitions ´ equivalentes
f(n) = 1 ⇔ ∃ptel queg(n,p) = 1 p peut aussi repr´esenter un kuple d’entiers ⇒ g a pour donn´ees k entiers suppl´ementaires.
∃ (n1,n2, ...) →)
∃ un “oracle” qui donne les entiers (n1,n2, ...) qui permettent de v´erifier que le r´esultat est 1.
Par exemple, d´efinir des “GO TOni” .
↔ Algorithme “non d´etermiste” .
Repr´ esentation polynˆ omiale d’un probl` eme
D´efinition
P1 (donn´ees n, fonction f(n)) est polynˆomialement repr´esentable dans
P2 (donn´ees m, fonction g(m)) si
n→m, /|m| ≤C|n|k et que g(m) = 1si et seulement si f(n) = 1 On ´ecrit
P1 ≤P P2
− φ(n) n’est pas “construit”.
− P1≤P P2,P2≤P P3 ⇔P1≤P P3.
− Alg. polyn. pour P2, ⇔ alg. polyn. pourP1.
Exemples
d´ej`a vu
- SAT ≤P CLIQUE.
- SAT ≤P 3−COL.
- k−COL≤P SAT. - Carr´e latin≤P Sudoku.
- Sudoku≤P SAT.
- SAT≤P ILP.
Probl` emes NP-complet
Th´eor`eme (Cook)
Tous les probl`emes de classe NP sont polynomialement repr´esentables dans SAT.
Definition (Probl`eme NP-complet)
Un probl`eme de reconnaissance est NP-complet si tout probl`eme de classe NP est polynomialement repr´esentable dans ce probl`eme.
Exemples
Pb. NP Complet
SAT : d’apr`es le th´eor`eme de Cook.
CLIQUE : SAT est ≤P dans CLIQUE.
3-SAT : SAT est ≤P dans 3-SAT.
3-SATsym : 3-SAT est ≤P dans 3-SATSym.
3-COL : 3-SAT est ≤P dans 3-COL.
HAM : Le probl`eme de l’existence d’un circuit hamiltonien (admis).
TSP : Le probl`eme du voyageur de commerce (admis).
ILP : SAT est ≤P dans ILP.
Exemples
Sudoku
Sudoku g´en´eralis´e est NP−complet!
Conclusion
En pratique
1 Les probl`eme NP-Complet effectivement difficiles.
2 Les probl`emes NP-complet ont une complexit´e apparente non polynˆomiale.
3 → on construit des“heuristiques”.
Conclusion
En pratique
1 Les probl`eme NP-Complet effectivement difficiles.
2 Les probl`emes NP-complet ont une complexit´e apparente non polynˆomiale.
3 → on construit des“heuristiques”.
Conclusion
En pratique
1 Les probl`eme NP-Complet effectivement difficiles.
2 Les probl`emes NP-complet ont une complexit´e apparente non polynˆomiale.
3 → on construit des“heuristiques”.
Conclusion
En pratique
1 Les probl`eme NP-Complet effectivement difficiles.
2 Les probl`emes NP-complet ont une complexit´e apparente non polynˆomiale.
3 → on construit des“heuristiques”.
Conclusion
En pratique
1 Les probl`eme NP-Complet effectivement difficiles.
2 Les probl`emes NP-complet ont une complexit´e apparente non polynˆomiale.
3 → on construit des“heuristiques”.
Conjecture
P6=NP
?
Conclusion
En pratique
1 Les probl`eme NP-Complet effectivement difficiles.
2 Les probl`emes NP-complet ont une complexit´e apparente non polynˆomiale.
3 → on construit des“heuristiques”.
Millenium Prize
P6=NP
?
⇔ 1 000 000