• Aucun résultat trouvé

Graphes et optimisation discr`ete : Th´eorie de la complexit´e

N/A
N/A
Protected

Academic year: 2021

Partager "Graphes et optimisation discr`ete : Th´eorie de la complexit´e"

Copied!
77
0
0

Texte intégral

(1)

Graphes et optimisation discr` ete : Th´ eorie de la complexit´ e

P. Laurent Math´ematiques 2

16 janvier 2006

(2)

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

(3)

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

(4)

Infos

Pratique

1 Le site est actualis´e.

2 Doc. Graphes et Optimisation.

3 Le programme du contrˆole.

(5)

Infos

Pratique

1 Le site est actualis´e.

2 Doc. Graphes et Optimisation.

3 Le programme du contrˆole.

(6)

Infos

Pratique

1 Le site est actualis´e.

2 Doc. Graphes et Optimisation.

3 Le programme du contrˆole.

(7)

Infos

Pratique

1 Le site est actualis´e.

2 Doc. Graphes et Optimisation.

3 Le programme du contrˆole.

(8)

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

(9)

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

(10)

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...

(11)

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...

(12)

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...

(13)

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...

(14)

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...

(15)

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.

(16)

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.

(17)

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).

(18)

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 ?

(19)

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.

(20)

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.

(21)

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)

(22)

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.

(23)

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

(24)

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

(25)

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.

(26)

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.

(27)

Repr´ esentation de 3-COL dans 3-SAT

Un graphe 3-coloriable.

(28)

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.

(29)

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.

(30)

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.

(31)

Repr´ esentation de SAT dans CLIQUE

Noeuds du graphe.

(32)

Repr´ esentation de SAT dans CLIQUE

Graphe compl´ementaire : Une arˆete entre Pi et Pi.

(33)

Repr´ esentation de SAT dans CLIQUE

Graphe compl´ementaire : Une arˆete entre les noeuds d’une clause.

(34)

Repr´ esentation de SAT dans CLIQUE

Existence d’une ensemble ind´ependant.

(35)

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.

(36)

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.

(37)

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 Π.

(38)

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

(39)

Repr´ esentation de 3-SATSym dans 3-COL

Noeuds et arˆetes du graphe.

(40)

Repr´ esentation de 3-SATSym dans 3-COL

P1,P3,P4,P5 :VRAI, P2 :FAUX O en vert, jaune : VRAI, bleu : FAUX.

(41)

Repr´ esentation de 3-SATSym dans 3-COL

P1,P3,P4,P5 :VRAI, P2 :FAUX O en vert, jaune : VRAI, bleu : FAUX.

(42)

Repr´ esentation de 3-SATSym dans 3-COL

Changement d’une couleur double en vert : graphe 3-COL.

(43)

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).

(44)

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

(45)

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)

(46)

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).

(47)

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...

(48)

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

(49)

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, ...)

(50)

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.

(51)

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

(52)

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.

(53)

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|.

(54)

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.

(55)

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.

(56)

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.

(57)

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

(58)

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.

(59)

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

(60)

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”.

(61)

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.

(62)

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.

(63)

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.

(64)

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.

(65)

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” .

(66)

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

P1P P2

− φ(n) n’est pas “construit”.

− P1P P2,P2P P3 ⇔P1P P3.

− Alg. polyn. pour P2, ⇔ alg. polyn. pourP1.

(67)

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.

(68)

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.

(69)

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.

(70)

Exemples

Sudoku

Sudoku g´en´eralis´e est NP−complet!

(71)

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”.

(72)

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”.

(73)

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”.

(74)

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”.

(75)

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

?

(76)

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

$

(77)

Conclusion du cours de Math´ ematiques 2

Références

Documents relatifs

En effet dans la preuve du th´ eor` eme la fonction T est d´ efinie par un sch´ ema µ-total sur une fonction r´ ecursive primitive, et g est ensuite obtenue en composant T avec

´ Ecrire un algorithme calculant la somme de deux matrices de mˆ eme taille et donner la complexit´ e en fonction du nombre de lignes et de colonnes de ces matrices.. ´ Ecrire

On dira qu’un algorithme calcule l’´ el´ ement majoritaire s’il renvoie l’´ el´ ement majoritaire s’il existe, et null sinon (on suppose que la liste de contient pas l’´

2 Dans un graphe complet avec des coˆ uts sur les arˆetes, trouver un cycle ´el´ementaire contenant tous les sommets dont le coˆ ut total est

Pour faire l’analogie avec l’exemple du jeu de cartes, lorsqu’on est ` a la i-` eme ´ etape du parcours, le i-` eme ´ el´ ement est la carte saisie, les ´ el´ ements pr´

Il faut pour cela trouver o` u l’´ el´ ement doit ˆ etre ins´ er´ e en le comparant aux autres, puis d´ ecaler les ´ el´ ements afin de pouvoir effectuer l’insertion. On

On souhaite ´ ecrire une fonction recherche mot qui, ´ etant donn´ es deux tableaux m et t, d´ etermine la position de la premi` ere occurrence de m dans t, si elle existe, et

On souhaite ´ ecrire une fonction recherche mot qui, ´ etant donn´ es deux tableaux m et t, d´ etermine la position de la premi` ere occurrence de m dans t, si elle existe, et