Vous êtes sur la page 1sur 70

1

COMPLEXITÉ DES
PROBLÈMES
2

Introduction

• Problèmes décidables : la solution algorithmique existe

• Est-ce que cette solution est efficace ?


• Est-ce qu’elle utilise une quantité de ressources
« raisonnables »
temps et espace
3

Complexité des problèmes en temps

Principaux Facteurs

1. Machine (matériel et logiciel) à une constante près


2. Données :
• Taille : paramètre principal n
• Type : à une constante près
• Valeurs :
Pas d’influence
• Organisation :
Meilleur, moyenne et pire des cas
4

Complexité des problèmes en temps

La complexité en temps est calculée en

fonction de la taille des données n quand n est

grand (n  ∞ ) à un facteur près au pire des

cas
5

Exemple: Temps estimé en secondes

Taille des O(Log n) O(n) O(n2) O(2n)


données

10 3.10-6 10-5 10-4 10-3


100 7.10-6 10-4 10-2 1014 siècles
1000 10-5 10-3 1 sec astronomique
10000 13.10-6 10-2 1,7 min ..
100000 17.10-6 10-1 2,8 heures ..
6

Complexité d’une machine de Turing Déterministe

Définition 1

Soit M une machine de Turing Déterministe. La complexité


en temps de la machine M est la fonction TM (n) défini par :

TM (n) = max{ m, x  Ʃ* /|x|=n et M s’exécute sur x en m


étapes}
7

Complexité d’une machine de Turing


Non Déterministe

Définition 2

Le temps de calcul d’une machine de Turing non déterministe pour un


mot w noté TCM(w) est donné par :

 la longueur de la plus courte exécution acceptant le mot si w  L(M)


1 sinon
8

Complexité d’une machine de Turing


Non Déterministe

Définition 3

Soit M une machine de Turing non Déterministe. La


complexité en temps de la machine M est la fonction TM (n)
défini par :

TM (n) = max{ m, x  Ʃ* /|x|=n et m = TCM(x)}


9

Complexité des problèmes en temps

Définition Notation Asymptotique O

Une fonction g(n) est dite en O(f(n)) : g = O(f)


s’il existe une constante c, n0/pour tout n>n0
0≤g(n)≤c(f(n))

Proposition
Si la fonction f est calculée par une machine de
Turing non déterministe M avec la complexité T M(n) alors Ǝ
une machine de Turing non déterministe calculant f avec la
complexité O(C TM(n)) où C est une constante.
10

Complexité polynomiale en temps d’une


Machine de Turing

Définition 5

Une machine de Turing M est dite polynomiale en temps


s’il Ǝ un polynôme p(n) tel que TM(n)≤p(n) pour tout n≥0
11

Complexité polynomiale en temps


d’une Machine de Turing
Définition 6: Classe P

La classe P est la classe des langages décidés par


une machine de Turing Déterministe Polynomiale

Définition 7: Classe NP

La classe NP est la classe des langages acceptés


par une machine de Turing Non Déterministe
Polynomiale
12

Complexité polynomiale en temps


d’une Machine de Turing
Théorème

Soit L  NP, Ǝ MTD M et un polynôme


p(n)/M décide de L avec la complexité
TM(n)=O(2p(n))
13

Exercice : MT
L={
• Écrire la MT de L,
• Calculer le nombre de déplacement pour estimer TM(n).
14

Problèmes de décisions
• Un problème est dit de décision si pour tout input, l’unique

output possible est de type booléen.


• La plupart des problèmes d’optimisation peuvent être convertis à

des problèmes de décision.


• Il suffit d’ajouter une borne k sur la valeur à optimiser et changer

la question :
• Existe-t-il une solution dont la valeur est au plus k (en cas de minimisation);

• Existe-t-il une solution dont la valeur est au moins k (en cas de

maximisation).
15

Problèmes de décisions :Exemples


Circuit Hamiltonien
Étant donné un graphe G, existe-t-il un chemin de longueur au plus k ?

Voyageur de commerce TSP


Étant donné un ensemble de villes et une fonction distance entre les villes, et
soit un nombre k.
Existe-t-il un tour de toutes les villes dont la longueur au plus k ?

v1 d(v1,v2)
v2
v5

v4 v3
16

Transformation Polynomiale

Définition 8

Soient L1 Ʃ1* et L2 Ʃ2*


Une transformation polynomiale de L1 vers
L2 noté L1 α L2 est une fonction f définie par
f: Ʃ1*  Ʃ2* tel que:
1. f est calculable en un temps polynomial
2. f(x)  L2 ssi x  L1
17

Propriétés des Transformations Polynomiales

Lemme 1

Si L1 α L2 alors
1. Si L2  P alors L1  P
2. Si L1  P alors L2  P

Lemme 2 Transitivité de la transformation polynomiale


Si L1 α L2 et L2 α L3 alors L1 α L3
18

Transformation polynomiale

Algorithme
Problème L1 Problème L2
Input X Input F(X)
Transformation F

1. Transformation en temps polynomial,


2. Si la fonction F peut être calculer en temps polynomial, on dit
que L1 est polynomialement réductible a L2, et on note L1 α L2
F(x)

L1 Transformation Polynomiale
x = Projection = Réduction
L2
19

Equivalence polynomiale
Définition 9

Deux langages L1 et L2 sont équivalents polynômialement notée ≡ P


L1 ≡P L2 ssi L1 α L2 et L2 α L1

Définition 10
Une classe d’équivalence polynomiale C1 est inférieure à une classe
d’équivalence C2 noté C1 C2 Si :
 L1  C1 et  L2  C2 on a L1 α L2
S’il existe une transformation polynomiale de tout langage de C 1 vers tout
langage C2 , on note C1 p C2
20

Propriétés des Transformations Polynomiales

Lemme 3

La classe P est une classe d’équivalence


polynomiale.

Lemme 4

Pout tout L1  P et  L2  NP on a L1 α L2
P c  c classe d’équivalence de NP.
21

Propriétés des Transformations Polynomiales

Définition

L est NP-Dûr si  L’  NPC alors L’ α L.

Exemple

Problème d’équivalence d’automates à état finie non


déterministe est NP-Dûr.
22

Problème NP-Complet

Définition 11

L est dit NP-complet (NPC) si


1. L  NP
2.  L’  NP on a L’ α L
23

Problème NP-Complet

Définition 12

L est dit NP-complet (NPC) si


1. L  NP
2.  L’  NPC alors L’ α L
24

Premier Problème NP-Complet

Théorème de COOK

SAT  NPC
25

Théorème de COOK
Démonstration
1) SAT  NP
2)  L'  NP alors L' α SAT
Pour montrer que SAT  NP
a- Soit une interprétation I de Algorithme ND
façon non déterministe;
b- Vérifier que =V
Données de SAT
; le nombre littéraux

p=max(n, m, k) 
Polynomial : SAT  NP
26

Les classes P et NP

NP
Tri
2-SAT NP-Dur
2-COLP NP-Complet NP-Difficile
SAT TSP
PCC
CH PLC
k-SAT
Résolution
polynomiale

Vérifiabilité polynomiale
27

SAT

• Un problème fondamental en théorie de la complexité,

• Satisfiabilité booléenne des formules de la logique

propositionnelle,
• C’est le premier problème NP-découvert (Théorème de Cook,
1971),

• Solveur SAT (exemple: logictools.org)


28

SAT : Description d’un problème

• Valeurs booléennes Vrai et Faux :


• Variables booléennes : par exemple: a, b, c, d;
• Formule: F = F (a, b, c, d)

• Variables =?  eval (F)=


• Si affectation possible, F est SATisfiable,
• Si non, inSATisfiable.
29

SAT : Description d’un problème


Nature de la formule

• F est sous forme normale conjonctive (CNF)


• F est conjonction :
• Chaque est une clause:
• est une disjonction de littéraux : ;
• Chaque opérant de la disjonction est un littéral : de la forme variable propositionnelle
ou sa négation et ;
• CNF non restrictif;
• Affectation rend F satisfiable ( chaque clause s’évalue à T):
30

SAT : description d’un problème


Nature de la formule

• F est une formule cohérente,


• Interprétation: assignation d’une valeur de vérité à chaque
variable I: {a=faux, b=Vrai, c=vrai, d=Vrai},
• Modèle d’une formule F : interprétation pour laquelle F a la
valeur Vrai,
• Formule F cohérente : F admet au moins un modèle.
31

Exemple : Problème SAT


Instance de SAT

I
….
J Vrai
Vérificateur Faux

Certificat de I

S= {a=Vrai, b=Vrai, c=Faux},


{a=Faux, b=Faux, c=Vrai},


32

Exemples
SAT

3-SAT Clique

IS Stable 3 coloriage CS (VS)


(Independent Set) K-coloriage

HC (graphe orienté)
2-SAT
2-Coloriage
HC

TS
33

3-SAT : Description d’un problème


Nature de la formule
• Soit F est conjonction : une formule en 3-CNF, avec k clauses, contenant

chacune 3 littéraux distincts.


• Pour chaque clause on crée 3 sommets, un pour chaque littéral dans la clause.

Données :

avec

Problème :
Existe-t-il une interprétation I / ?
34

Circuit Hamiltonien : Description d’un problème


Données :
Soit un graphe G = (S, A) et |S|=n sommets
Problème :
Existe-t-il un parcours fermé qui passe par tous les sommets une
seule fois?

Trouver une permutationA

5
1
4
G=(S,A)
3 2
35

Voyageur de commerce (TS) : Description d’un


problème
Données :
Soit un graphe G = (V, E) complet et pondéré avec V l’ensemble de
villes,
: la distance entre ville i et ville j et un entier
Problème :
Existe-t-il un parcours fermé qui passe par toutes les villes une seule
fois dont la longueur

Trouver une permutation


36

Exemple de Transformation :
Montrer que
Trouver l’algorithme de transformation et estimer son temps :
f(x) TSP ssi xHC

Algorithme
CH TSP ou n=|V|
Input G=(S,A) Input F(X)=G'=(V, E)
Transformation F
5 5 1
1
1 2 1
4 4 2 1
1 1
1 2
3 2 3 1 2
Définition de F :
V=S

b= |V|=n
37

Cliques Maximale : Description d’un problème


Données :
Graphe G = (S, A) et un entier
Problème :
G contient-il une clique de taille k?
Existe-t-il un sous-graphe complet dont le nombre de sommet

on a A
38

Couverture par Sommet (Vertex Code) : Description


d’un problème
Données :
Graphe G = (S, A) et un entier
Problème :
Existe-t-il une couverture par sommets de G de taille k?

A
39

Coloration de Graphe : Description d’un problème


Données :
Un graphe G = (S, A) et un entier
Problème :
Existe-t-il une coloration des sommets de G de taille k (avec k
couleurs)?
Existe-t-il une coloration minimale de telle sorte que deux sommets
adjacents seront coloriés avec deux couleurs différentes?
40

Exemples : Coloration de Graphe


Instance de Coloration de Graphe

Instance
Positive

k=3 k=3 Vrai


Vérificateur Faux
Certificat de I
Certificat Positif S= {V,B,O,V,O},

S‘={V,B,V,V,O},
Faux Vrai

3-coloriage 3-coloriage
Graphe G
41

Exemple : Transformation Polynomiale

Coloration de Graphe SAT


• Données : un graphe G non • Données : les formules
orienté et un entier k. Algorithme propositionnelles au format
• Problème : Coloration d’un Transformation CNF.
graphe avec au moins k • Problème : Trouver les
couleurs. formules CNF Cohérentes.

b c
Transformation 𝑭={𝑎,𝑏,𝑐 ,¬𝑎,¬𝑏,¬𝑐/∧,∨}
42

Le plus long Cycle (PLC) : Description d’un problème

Données :
Soit un graphe G = (S, A) et un entier

Problème :
Déterminer si G possède un cycle de longueur
43

Exercice :

Exercice :
Montrer que

Algorithme
CH PLC
Input G=(S,A) Input F(X)=G'=(S',A')
Transformation F
44

Somme de sous-ensemble : Description d’un problème

Données :

Problème :
Existe-t-il / ?
Exemple :
S= {1, 3 , 5, 45, 65, 98, 45658, 45458, 1235, 785, 659}
t=1590,
45

Exercice 1
Prouver que
46

Exercice 2
Prouver que
47

Correction Exercice 2 :

𝑪𝒍𝒊𝒒𝒖𝒆 𝑪𝒐𝒖𝒗𝒆𝒓𝒕𝒖𝒓𝒆 𝒅𝒆 𝑺𝒐𝒎𝒎𝒆𝒕


Données : Données :
Graphe = (, ), =n Graphe = (, ) et un entier
et un entier Problème :
Problème : Existe-t-il une couverture par
G contient-il une clique de taille ? sommets de G de taille ?
Existe-t-il un sous-graphe complet
dont le nombre de sommet
48

Correction Exercice 2 :
Montrer que f est calculable en un temps polynomial :
Algorithme:
49

Correction Exercice 2 :
” ”
Soit f(x)  Montrer que x
50

Correction Exercice 2 :
””
Soit x  Montrer que f(x)
51

Exercice 3
Prouver que
52

Exercice 3 :
Prouver que :

Indication :
1. Toute variable propositionnelle on lui associe 2 sommets (variable et sa
négation) Exemple :
2. Toute clause est représentée par un triangle étiqueté par 3 littéraux de clauses;
3. Une arête est couverte par 1 sommet et un triangle est couvert par 2 sommets.

3-SAT CS
Transformation
Données : F(x) Données :

Problème :
Existe-t-il une couverture par
Problème : sommets de G de taille k?
Existe-t-il une interprétation I /
? A
53

Exercice 3 :

n variables et 𝑝1 ¬𝑝 1 𝑝 2 ¬𝑝 2 𝑝3 ¬𝑝 3 𝑝4 ¬𝑝 4
m clauses 
la taille de 1 1 2
graphe est 𝑙1 𝑙2 𝑙
2
1 𝑙2 𝑙13 𝑙3
2
2n+3m
𝑙13 2
𝑙3 𝑙3
3
La taille de CS  k=2m+n (nombre de sommets couverts)
On prend comme couverture : tout les sommets , 2 littéraux de chaque triangle non
recouvert.
𝐹 𝑉 𝐹 𝐹
𝑝1 ¬𝑝 1 𝑝 ¬𝑝 2 𝑝 3 ¬𝑝 3 𝑝 4 ¬𝑝 4
2

 L’algorithme de transformation est polynomialeO(n2)


car on a la taille de graphe est 2n+3m d’où pour parcourir les sommets on a O(n 2).
54

Exercice 3 :
Prouver que :
55

Exercice 3 :
Prouver que :
Montrer que f est calculable en un temps polynomial :
Algorithme:
56

Exercice 3 :
• x  Montrer que f(x)
57

Exercice 4

Prouver que , sachant que


58

Exercice 4 : Correction
Prouver que
, sachant que
1) 3SAT est un cas particulier de SAT (avec k=3) donc
2) SAT 3 SAT
Données : Données :

Problème : Problème :
Existe-t-il une interprétation I / Existe-t-il une interprétation I' / '
? ?

;;
;
59

Exercice 4 : Correction
1

; 2

On a l-3 nouvelles variables  on a l-2 clauses


exactement 3 littéraux.
1 2
Prouvons que est satisfiable ssi est satisfiable.

Prouver que f est polynomiale et


60

Exercice 4 : Correction
Algorithme de f:
61

Exercice 5

Prouver que , à partir de 3


62

Exercice 6

Prouver que , C
63

Complexité en espace

Définition 1

Soit M une machine de Turing offline Déterministe.


La complexité en espace de la machine M est la fonction EM
(n) défini par :

EM (n) = max{ m, |x|=n, m est le nombre de cases visitées


lors de l’exécution de M sur x}
64

Complexité en espace

Définition 2

Soit M une machine de Turing offline Déterministe.


L’espace de calcule de la machine M sur un mot w est la fonction
EM (w) défini par :

EM (w) = {le nombre de cases visitées pour la plus courte


exécution de M sur w acceptant w}
65

Complexité en espace

Définition 3

Soit M une machine de Turing offline non Déterministe.


EM (n) = max{ECN (x) ; |x|=n}.

Définition 4

Une machine de Turing M est dite polynomiale en espace


si :
66

Complexité en espace

Définition 5

La classe P-space est la classe des langages décidés par


une MT Déterministe et polynomiale en espace.

Définition 6

La classe NP-space est la classe des langages acceptés par


une MT non Déterministe et polynomiale en espace.
67

Complexité en espace

Théorème

P-space = NP-Space
et est la classe des langages décidés par une MT
Déterministe et polynomiale en espace.
68

Complexité en espace

Exercice : Prouver
L
69

Complexité en espace
Soit M' MTD qui reconnait L / L(M') =L.
EM' (n)  L
Donc et

Soit L

et on a
Donc =
 NP
70

Exercice 7

Étant donné 3-SAT est NPC


montrer que

Vous aimerez peut-être aussi