SlideShare une entreprise Scribd logo
1
Théorie de la Complexité
H. Hasni
Ecole Nationale des Sciences de l’Informatique
Université de Manouba
2010 Campus Universitaire – Manouba
E-mail : hamadi.hasni@ensi.rnu.tn
2
Plan
 Qu’est-ce que la complexité ?
 Modèles Abstraits de Calcul
 Machines de Turing
 Problèmes de Décision
 Classes de Complexité
 Réductions de Problèmes
 NP-Complétude
 Exemples de Problèmes NP-Complets
 Exemples de Réduction
 P = NP ?
 Que faire devant un Problème NP?
 Classe de Complexité co-NP
3
Introduction
 La théorie de la complexité s’intéresse à l’étude formelle de la
difficulté des problèmes en informatique.
 Gödel (1932) : premier théorème d’incomplétude (toute
théorie contient des énoncés non démontrables)
 Turing, Church (1936) : réponse négative au problème de la
décision (cf. machine de Turing et le problème de l’arrêt)
 Edmonds (1965) : Distinction entre les problèmes P et NP
Cook (1971)- Levin (1973) : NP – Complétude ( Problème SAT)
 Karp (1972) : Liste de 21 nouveaux problèmes NP-Complet.
 Aujourd’hui la conjecture P = NP ? fait partie des 7 problèmes du millénaire.
4
Qu’est – ce que la complexité ?(1)
 Question centrale de l’Informatique
théorique :
 Limites des Ordinateurs
 Limites fondamentales indépendantes de la
technologie
 Peut-on identifier les problèmes de
calcul qui sont hors de portée ?
5
Qu’est – ce que la complexité ?(2)
Taille n
Algorithme
Entrées Résultat
Temps Espace
Ressources
Opérations
élémentaires
6
Qu’est – ce que la complexité ?(3)
 Complexité:
 En pratique, un algorithme consomme une
quantité raisonnable de ressources de calcul :
 Nombre d’opérations,
 Temps de calcul
 Quantités de mémoire
 Complexité : quantité minimale de ressources
nécessaire à sa résolution.
7
Qu’est – ce que la complexité ?(4)
 Les notions de temps de traitement, d’espace sont
dépendant de la machine physique utilisée.
 Besoin d’une mesure absolue indépendante de
toute implémentation.
 Facteurs de temps de calcul :
 Taille de l’entrée
 Ordinateur utilisé
 Langage de programmation utilisé
8
Modèles Abstraits de Calcul(1)
 Théorie robuste indépendante de la machine
 Nécessité de s’entendre sur des modèles de calcul
(Modèles abstraits de Calcul ,1931)
 Machine de Turing
 Machine de Post
 Fonctions récursives de Kleene
 -calcul de Church
 Machine RAM
Tous ces modèles sont équivalents
Remarque : Toutes les architectures de machines réelles sont équivalentes à
la machine de Turing ( elles sont plus « puissantes » mais pas plus
« expressives » )
9
 Formalisation de la notion de fonction calculable et d’algorithme.
Approches équivalentes (machines de Turing, fonctions
récursives, lambda calcul) et actuelles...
Alan Turing Alonzo Church Stephen C.Kleene
 Mise en évidence des limites : il existe des fonctions non
calculables (et des problèmes indécidables) !
Modèles Abstraits de Calcul(2)
10
Modèles Abstraits de Calcul(3)
 Théorie de la Complexité :
 Classification des problèmes suivant le temps et
l’espace nécessaire à la résolution de l’instance la
plus « dure » du problème sur un modèle
théorique : machine de Turing.
11
Machines de Turing
 Machines de Turing
 Définition : Une machine de TURING déterministe (MTD) est
donnée
par M = (Q, ,  , , q0 ,F) , où :
 Q est un ensemble fini d’état,
  est un alphabet
    ( alphabet d’entrée),
 F  Q est l’ensemble des états accepteurs
  : D  Q x   Q x  x {L,R}, fonction de transition
 q0 : état initial
- Un symbole spécial B appelé caractère blanc
- L et R représentent les 2 directions de déplacement de la tête de lecture
- Une configuration est un élément de Q x * x IN (* : ensemble des
mots)
12
Machines de Turing (2)
13
Machine de Turing (3)
Une machine de Turing peut
 S’arrêter :
 Un état accepteur
 Une configuration où  n’est pas définie
 On ne peut pas déplacer la tête de lecture
comme indiqué
 Ne jamais s’arrêter
14
Machine de Turing (4)
 Machine de Turing Non Déterministe (MTND) :
 Variante purement théorique jusqu’à l’arrivée des
ordinateurs quantiques
 Tout choix est fait au hasard :
 Mais elles trouvent toujours le bon chemin!!!
 On peut aussi considérer qu’elles se dupliquent
à chaque décision, chacune partant sur une des
« branches » d’exécution
15
Machine de Turing (5)
 Machine de Turing Non Déterministe
(MTND) :
16
Machine de Turing (6)
 Machine de Turing Non Déterministe (MTND) :
 Définition : Une machine de TURING non déterministe
(MTND) est donnée par M = (Q, ,  , , q0 ,F) , où :
 Q est un ensemble fini d’état,
  est un alphabet
    ( alphabet d’entrée),
 F  Q est l’ensemble des états accepteurs
  : D  Q x   P (Q x  x {L,R}), fonction de transition
 q0 : état initial
17
Décidabilité – Calculabilité (1)
 Un langage est accepté par une machine de Turing s’il
existe une machine de Turing qui accepte dans un temps
fini tous les mots du langage.
 Un langage est décidé par une machine de Turing s’il
existe une machine de Turing qui accepte le langage et qui
s’arrête toujours.
18
Décidabilité – Calculabilité (2)
 Un langage est dit récursif s’il est décidé
par une machine de Turing.
 Un problème est décidable s’il existe une
machine de Turing s’arrêtant toujours
autrement il est dit indécidable
19
Décidabilité – Calculabilité (4)
 On appelle équation diophantienne une équation du genre
P(x, y, z, ...) = 0, où P est un polynôme à coefficients
entiers. Résoudre une telle équation, c'est chercher les
solutions sous forme d'entiers.
L’équation x2 + y2 – 1 = 0 est une équation diophantienne
qui admet pour solutions: x = 1, y = 0 et x = 0, y = 1
 L'équation x2 – 991 y2 – 1 = 0 est également
diophantienne mais a des solutions beaucoup plus difficiles
à trouver la plus petite est :
 x = 379 516 400 906 811 930 638 014 896 080 et
 y = 12 055 735 790 331 359 447 442 538 767
20
Décidabilité – Calculabilité (5)
 Problème de l’arrêt (proposé par A. Turing 1936) :
 Soit un programme informatique et une entrée à ce
programme, déterminez si ce programme va terminer sur
cette entrée ou continuer à s’exécuter indéfiniment
 Théorème : Le problème de l’arrêt est indécidable
 Preuve ( par contradiction) :
 Soit un algorithme A qui résout le problème de
l’arrêt. Dans ce cas, pour tout programme P et une
entrée E, nous avons:
A(P,E) = 1 si P termine sur E
0 si P ne termine pas sur E
21
Décidabilité – Calculabilité (6)
 Preuve (suite)
 Tout programme P peut être utilisé comme entrée à lui même
 Utilisons l’algorithme A sur (P,P) pour construire un programme
Q ayant la propriété suivante :
 Q(P) termine lorsque A(P,P) = 0 ( lorsque P ne termine pas sur P)
 Q(P) ne termine pas lorsque A(P,P) = 1 (lorsque P termine sur P)
 Si nous utilisons Q comme entrée sur lui-même nous obtenons:
 Q(Q) termine lorsque A(Q,Q) = 0 (lorsque Q ne termine pas)
 Q(Q) ne termine pas lorsque A(Q,Q) = 1 (lorsque Q termine
sur Q
 Un tel programme Q ne peut exister. Il en va donc de même
pour l’algorithme A. CQFD
22
Décidabilité – Calculabilité (7)
 Le problème avec 196
Etant donné un entier positif, renversez les chiffres et ajoutez
les au nombre. Recommencez tant que vous n’avez pas trouvé un palindrome.
Par exemple pour 5280 on trouve :
 5280 + 825 = 6105
 6105 + 5016 = 11121
 11121 + 12111 = 23232
 En général pour n’importe quel nombre cet algorithme s’arrête
rapidement.
 Personne ne sait si cet algorithme se termine pour 196. Cependant
on sait qu’il y a au moins 9 millions d’itérations.
23
Décidabilité – Calculabilité (8)
 La fonction 3x+1 : La fonction de Collatz est définie ainsi :
Si x = 1 on s’arrête.
Si x est impair, alors x = 3x + 1, si x est
pair alors x = x/2.
Par exemple pour 7 on trouve :
 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
 Personne ne sait si pour un nombre x le programme
s’arrête ou pas.
 http ://www.cs.princeton.edu/introcs/77computability/.
24
Décidabilité – Calculabilité (10)
Thèse de Church – Turing :
Un langage est calculable si ce langage
est récursif i.e. décidé par une machine de
Turing
25
Complexité Algorithmique
 Complexité temporelle pire cas d’une machine de Turing :
nombre maximal de déplacements de la tête de
lecture/écriture pour résoudre une instance de taille
maximale n
 La taille de l’instance est la longueur de la séquence
binaire codant cette instance comme une entrée de la
machine de Turing
 Complexité spatiale pire cas : longueur de bande
nécessaire à la machine pour résoudre une instance de
taille n
26
Problèmes de Décision (1)
 Un problème désigne la description générale d’une
question.Par exemple : Trouver un facteur non trivial d’un
entier
 Résoudre un problème : essayer de décrire un algorithme
(par exemple à formaliser par une machine de Turing)
 Un problème de décision (d’existence ou de
reconnaissance) consiste à chercher dans un ensemble fini
s’il existe un élément vérifiant une certaine propriété.
 Un problème de décision peut être formulé par un énoncé
et une réponse Oui – Non
27
Problèmes de Décision (2)
 La forme générale d’un problème de décision :
 Une description de l’instance du problème
 L’expression d’une question Oui/non portant sur cette
instance
 Exemples :
 Voyageur de Commerce ( TSP) :
 Données : un graphe complet d’ordre n valué par des entiers
positifs et un entier k
 Question : Existe –t- il dans le graphe un cycle hamiltonien de
longueur  k ?
28
Problèmes de Décision (3)
 Exemples :
 Clique :
 Données : un graphe et un entier positif k
 Question : G contient –t-il un sous-graphe complet à k
sommets ?
 Recouvrement ( Set Cover ):
 Données : Un ensemble X et une famille f de sous-ensembles
de X
 Question : Existe –t-il une sous – famille f’ de f telle que tout
élément de X appartient exactement à un élément de f ?
29
Problèmes de Décision (4)
 Notations : soit D l’ensemble des instances possibles
d’un problème de décision 
 Y : sous-ensemble des instances pour lesquelles la
réponse est Oui (Yes)
 N : sous-ensemble des instances pour lesquelles la
réponse est Non (No)
30
Problèmes de Décision (5)
 Lien entre Problème de Décision et Langages:
 Fonction de codage C : traduction d’une instance en un
mot sur un alphabet.
 Une machine de Turing M résout le problème décision
 , sous le codage C, si M s’arrête sur toute entrée x et
si l’ensemble des mots acceptés par M est égal à
l’ensemble L[, c]de mots qui résultent du codage
d’instance de Y .
31
Problème de Décision (7)
 Codage des entiers positifs :
 Codage binaire efficace : i est codé par la
séquence
 
1
,
0
0
2
. 


 k
i
avec
n
k
k
k
i
i
La longueur l1(i) des codes de i est de l’ordre de Log2(i)
 Codage binaire inefficace : i est codé par une
séquence de 1 de longueur i
La longueur l2(i) des codes de i est de l’ordre de 2 l
1
(i)
32
Problème de Décision (8)
 Codage d’un graphe
 Liste des sommets/liste des arêtes : x[1] x[2] x[3] x[4](x[1] x[2])(x[1] x[3])(x[2] x[3])(x[3] x[4])
|G(X,E)| = O( n + m)
Liste des voisins : (x[2] x[3])(x[1] x[3])(x[1] x[2] x[4])(x[3])
|G(X,E)| = O(m)
Matrice d’adjacence : 0110/1010/1101/0010 , |G(X,E)| = O(n2)
Notation: |G(X,E)| la taille de codage de G , |X|= n et |E|= m
Encodage Chaîne
33
Classes de Complexité (1)
 Complexité en temps d’une machine de Turing
s’arrêtant toujours :
TM(n) = Max {m /  x * , |x| = n et
l’exécution de M sur x comporte m étapes }
 La classe P est la la classe des langages décidés
par une machine de Turing polynomiale i.e
 un polynôme p(n) tel que :
TM  p(n) pour tout n  0
34
Classes de Complexité (2)
 Le temps de calcul d’une machine de Turing ND
sur un mot w est donné par :
 La longueur de la plus courte exécution acceptant le
mot si celui-ci est accepté.
 La valeur 1 si le mot w n’est pas accepté
 Complexité en temps d’une machine de Turing
non déterministe
TMND(n) = Max {m /  x * , |x| = n et le temps de
calcul de M sur x est m}
35
Classes de Complexité (3)
36
Classe de Complexité (3)
 La classe NP ( Non déterministe Polynomiale) est
la classe des langages acceptés par une machine de
Turing non déterministe polynomiale
 Solution rapide si l’énumération des cas ne coûte
rien
 Exemple : Circuit hamiltonien (HC)
37
Classe de Complexité (4)
Exemple : Circuit Hamiltonien
 Un circuit hamiltonien est un
chemin de G passant une et une
seule fois par chacun des sommets
et revenant à son point de départ
 Un graphe biparti d’ordre impair n’a
pas de circuit hamiltonien.
38
Classe de Complexité (5)
 Théorème :
Soit L  NP. Il existe une machine de
Turing déterministe M et un polynôme p(n)
tel que M décide L et est de complexité en
temps bornée par 2p(n)
( Simuler toutes les exécutions de MND)
39
Classe de Complexité (6)
 Preuve :
 Soit une MTND de complexité polynomiale q(n) qui accepte L. Simuler
toutes les exécutions de MTND de longueur inférieure à q(n). Pour un mot
w, la machine doit:
 1. Déterminer la longueur n de w et calcule q(n) . polynôme
 2. Simuler chaque exécution de MTND de longueur q(n) (temps
nécessaire q’(n)).Si r est le nombre maximum de choix possibles de
MTND à chaque étape de son exécution, il y a au plus r q(n) exécutions
de longueur q’(n)
 3. Si une des exécution simulées accepte, M accepte. Sinon M s’arrête
et rejette le mot w
 Complexité bornée par rq(n) x q’(n) et donc par 2 log2(r)(q(n)+q’(n)) qui de la
forme de 2p(n)
40
Classe de Complexité (6)
 Pour Prouver qu’un problème est dans NP :
 Proposer un codage de la solution ( certificat)
 Proposer un algorithme vérifiant la solution au vu des
données et du certificat
 Montrer que cet algorithme a une complexité
polynomiale.
41
Classe de Complexité (8)
 Exemples
 Voyageur de commerce
 Certificat : indication d’un circuit de longueur
inférieur à k
 Clique :
 Certificat : indication de k sommets du graphe
d’entrée constituant une clique
 Recouvrement : indication d’un sous-famille
vérifiant la propriété demandée
42
Classe de Complexité (9)
 Un grand nombre des problèmes de NP est que, on
ne sait pas dire, s’ils sont ou non polynomiaux.
 On ne sait pas produire une solution polynomiale,
 On ne sait pas non plus démontrer que le problème est
non polynomial
 Que faire ?
 Comparer la difficulté du problème NP considéré à
celle d’autre problèmes NP.
 Réduction d’un problème à un autre
43
Classe de Complexité (9)
 Equivalence entre Problèmes
44
Réduction de Problèmes (1)
 Transformations (Réductions) polynomiales
 Définition : Soient un langage L1 et un langage L2. Une
transformations polynomiale de L1 vers L2 (notée L1 p L2)
est une fonction f qui satisfait les conditions suivantes:
 Elle est calculable en temps polynomial,
 f(x)  L2 si et seulement si x  L1
 Conséquence : Si L2  P alors L1 est au plus aussi
difficile que L2
45
Réduction de Problèmes (2)
Soit G (X,E ) un graphe d’ordre n
 G est un graphe complet si :
 x1 et x2X : {x1,x2} E
 S  X est un stable de G si :
 x1 et x2S : {x1,x2} E
 T  X est un transversal (couverture)
de G si:
 e = {x1,x2} E : x1T ou x2 T
46
Réduction de Problèmes (4)
 Stable ( Independant Set):
 Données :
 Un graphe G(X,E) non orienté
 Un entier k
 Résultat : Décider s’ un stable S  X , S k
 Clique
 Données :
 Un graphe G(X,E) non orienté
 Un entier k
 Résultat : Décider s’ une clique C  X , S  k
47
Exemples de Réductions (7)
 CLQ <p IS.
 Pour le démontrer formellement, on veut définir
une fonction f permet de transformer en temps
polynomial chaque instance G, k du problème
Clique en une instance f(G, k) = G’, k’ du
problème Ensemble Indépendant de telle sorte que
G, k  CLQ  G’, k’  IS.
48
Exemples de Réductions (7)
Instance de CLQ:
Graphe G = (V,E)
Entier k
Instance de IS:
Gc = (V,Ec), graphe
complément de G.
Entier k (inchangé)
Transformation f
 CLQ p IS.
49
Exemples de Réductions (8)
À montrer:
1. f est calculable en
temps polynomial.
2. G,k  CLQ  G c,k
 IS.
Un ensemble de sommets forme
une clique dans G ssi il forme
un ensemble indépendant dans
G c.
évident
50
Réduction de Problèmes (2)
 Propriétés de  p :
 Si L1  p L2 alors
 Si L2 P alors L1 P
 Si L1 P alors L2  P
 Si L1  NP alors L2  NP
 Si L1  p L2 et L2  p L3
 L1  p L3
51
Réduction de Problèmes (3)
 Problèmes polynomialement équivalents
 Définition:
Deux langages L1 et L2 sont polynomialement équivalents (L1 p L2)
si et seulement si L1  p L2 et L2  p L1
 Classes d’équivalence polynomiale : soit tous les
membres sont dans P, soit aucun.
 Possibilité de construire une classe d’équivalence de
proche en proche.
52
Réduction de Problèmes (4)
 Structure de NP:
 Définition : Une classe d’équivalence polynomiale C1 est
inférieure à une classe d’équivalence C2 ( notation C1 C2 ) si 
L1  C1 et L2  C2 : L1  p L2
 P  NP ( P est la plus petite classe dans NP)
  L1 P et  L  NP on a L1  p L2
 Plus grande classe de NP : NP-Complets (noyau dur)
53
NP-Complétude (1)
 Langage NP-Complet :
 Définition : Un langage L est NP-Complet si
 L  NP
  L’  NP alors L’  p L ( Problème NP-Dur)
 Théorème : Soit L un langage NP-Complet,
L  P si et seulement si P = NP
 Un problème NP-Complet n’a de solution
polynomiale que si et seulement si P = NP
54
NP-Complétude (2)
 Problème de Satisfiabilité (SAT):
 Données :
 Un ensemble de variables booléennes {x1,x2,…xn}
 Un ensemble de clauses Ci = {y i,1  …… y i,r} où yi,j est
égal à l’un des xi soit à l’un des xi
 F = C1  C2  . . . .  Cm
 Résultat : Décider si F est satisfaisable (vraie)par une
affectation de valeurs de vérité V/F aux variables
55
NP-Complétude (4)
Théorème de Cook - Levin
 Théorème :
SAT est NP-Complet
En d'autres termes, tout problème de décision décidable par une machine de
Turing non déterministe polynomiale peut être réduit en temps polynomial au
problème SAT.
 Idée de la preuve :
On construit en temps polynomial un ensemble de clauses satisfaisables si
et seulement si il existe une branche de l'exécution de la MTND qui
s'arrête sur « oui ».
Notions similaires : Edmonds(1966) mais aussi Gödel (1956 - Lettre à Von Neumann).
56
SAT & Co
 Problème k – SAT :
 Données :
 Un ensemble de variables booléennes {x1,x2,…xk}
 Un ensemble de clauses Ci = {y i,1  …… y i,k} où yi,j
est égal à l’un des xi soit à l’un des xi ( Ci = k )
 F = C1  C2  . . . .  Cm
 Résultat : Décider si F est satisfaisable par une
affectation de valeurs de vérité V/F aux variables
57
Problèmes de Graphes NP-Complets (2)
Soit G (X,E ) un graphe d’ordre n :
 est le graphe complémentaire de G :
{x1,x2} E  {x1,x2}  F
 S est une clique de G  S est sous-graphe complet de G
 S est une clique G (X,E )  S est stable de
 
F
X
G ,
 
F
X
G ,
58
Problèmes de Graphes NP-Complets (3)
Une coloration des sommets de G (X,E) est
une application :
C : X IN telle que C(v) ≠ C(w)  {v,w} E
 Une k - coloration est une coloration
utilisant k couleurs
 Le nombre chromatique (G) est défini par
(G) = Min { k / G est k –colorable}
G =3
59
Problèmes de Graphes NP-Complets (5)
 Couverture de Sommets ( Vertex Cover):
 Données :
 Un graphe G(X,E) non orienté
 Un entier k
 Résultat : Décider s’ transversal T  X , S  k
 Coupure maximale ( Max Cut)
 Données :
 Un graphe G(X,E) non orienté
 Un entier k
 Résultat : Décider s’ une partition X = X1 X2 telle que :
|{{x1,x2} E / x1 X1 et x2 X2 } |  k
60
Problèmes de Graphes NP-Complets (6)
 Circuit Hamiltonien ( HC):
 Données :
 Un graphe G(X,E) non orienté
 Résultat : Existe-il un circuit hamiltonien dans G
 Circuit le plus long
 Données :
 Un graphe G(X,E) non orienté
 Un entier k
 Résultat : Existe –il un cycle hamiltonien et dont
la longueur est  k ?
61
Problèmes de Graphes NP-Complets (7)
 Voyageur de Commerce
(TSP)
 Données : un couple ( n,M)
où M est une matrice d’ordre n
de réels et un réel B
 Réponse :
Existe-t-il une permutation  de
[1,n] telle que:
Allemagne ( 15 112 cités)
62
Problèmes de Graphes NP-Complets (8)
 k – Coloration ( k- Color)
 Données :
 Un graphe G(X,E) non orienté
 Un entier k
 Résultat : Existe t-il une k-coloration de G ?
63
Somme de Sous-ensemble & Variantes (1)
 Somme de sous-ensemble ( Subset Sum)
 Données : E  IN , fini et un but t  IN
 Réponse : Existe-t-il E’  E tel que :
?
'



E
x
t
x
64
Somme de Sous-ensemble & Variantes(2)
 Sac à Dos ( KnapSack)
 Données :
 Un ensemble de poids ai , i = 1,n
 Un ensemble de valeurs vi , i =1,n
 Un poids limite A et entier V
 Réponse : Existe-t-il une suite ci  {0,1}telle
que :
?
1
1
V
v
c
et
A
a
c
n
i
i
i
n
i
i
i 
 
 

65
Somme de Sous-ensemble & Variantes (3)
 Partition
 Données :
 Un ensemble A fini d’entiers
 Réponse : Existe-t-il A’  A tel que :
?
'
'

 



A
A
x
A
x
x
x
66
Somme de Sous-ensemble & Variantes (4)
 Rangement Optimal ( Bin Packing)
 Données :
 N objets de poids si
 Une capacité B et un entier k
 Réponse : Est-il possible de ranger les N objets
dans k boîtes de capacité B ?
67
Programmation Entière
 Programmation entière 0-1
 Données:
 Une matrice entière A (m,n)
 Un vecteur entier b d’ordre m
 Réponse : Existe-t-il un vecteur x d’ordre dont les éléments sont
pris dans {0,1} tel que : A x  b ?
68
Exemples de Réductions (1)
3-Sat  p Stable
 3-Sat  p 3-Color
HC  p Circuit le + long
VC  p Subset-Sum
Subset-Sum  p KnapSack
Subset-Sum  p Partition
3-Sat  p Prog. Entière
Partition  p Bin Packing
69
Exemples de Réduction (2)
 3-SAT est NP
 Soit I une instance de 3 –SAT , taille (I) = O( n+p)
 Certificat : valeur de chaque xi , i = 1, n
 Vérification en O(p)
 3 – SAT est NP-Dur : réduction à partir de SAT
 Soit I1 une instance de SAT
 n variables xi , i = 1, n
 p clauses Cj , j=1,p de longueur f(j)
 Taille(I1) = O( n +  f(j) )
70
Exemples de Réduction (3)
 Soit Ci une clause de SAT :
 1 variable x : soient ai et bi deux nouvelles variables
 x  ai  bi ; x  ai  bi ; x  ai  bi ; x   ai  bi
 2 variables x et y : soit ci une nouvelle variable :
 x  y  ci ; x  y   ci
 3 variables : aucun changement
 k  3 variables : soit Ci = {x1  ……  xk} et soient yi,1 ,……
y i,,k- 3 ( k-3) nouvelles variables
 x1  x2  yi,1 ;
 x3   yi,1  yi,2 . . . . . . .
 xk -2   yi,k - 4  yi,k – 3 et xk -1   yi,k - 3  x,k
71
Exemples de Réduction (4)
 Taille (I2) linéaire en taille(I1) ,
 () Si I1 a une solution i.e. une instanciation des
variables xj telle que  j Cj soit vraie.
 Une solution pour I2 est :
 xj inchangée
 ai vrai
 bi faux
 ci vrai
 Soit z1 ,…… zk des littéraux et zi le 1er littéral vrai alors on
pose z1 ,. . ., zi-2 à vrai et zi-1 ,…… zk-3 à faux.
 () si I2 a une solution :
 Instanciation de I2 vraie restreinte aux xj i=1,n donne une
instanciation qui satisfait I1
72
Exemples de Réduction(5)
 Données: graphe G = (X,E) et un k  |X|.
 Clique (CLQ): Existe-t-il C  X avec |C|  k et (u,v)  E
pour tous u,v  C?
 Ensemble indépendant (IS): Existe-t-il C  X avec |C|  k
et (u,v)  E pour tous u,v  C?
 Couverture par sommets (VC): Existe-t-il C  X avec |C| 
k et tel que pour tout (u,v)  E, on a u  C ou v  C?
73
Exemples de Réductions (6)
Théorème: CLQ p IS p VC.
 Idée: montrer que ces trois problèmes ne sont que
des reformulations les uns des autres.
 L’existence d’une grande clique est équivalente à
l’existence d’un grand ensemble indépendant dans
le complément du graphe.
 L’existence d’un grand ensemble indépendant est
équivalente à l’existence d’une petite couverture
par sommets.
74
Exemples de Réduction (9)
Instance de IS:
Graphe G = (V,E)
Entier k
Instance de VC:
G = (V,E) (inchangé)
Entier |V| - k
Transformation f
 IS p VC.
75
Exemple de Réduction (10)
À montrer:
1. f est calculable en temps polynomial.
2. G,k  IS  G, |V| - k  VC.
a)  G,k   IS   G, |V| - k   VC:
Si V’ est un IS de taille k, alors toutes les arêtes de E
ont au moins une extrémité dans V – V’. Donc V – V’
est une VC de taille |V| - k.
b)  G,k   IS   G, |V| - k   VC:
Si V’ est une VC de taille |V| - k, alors V – V’ est
un IS de taille k.
évident
76
Exemples de Réduction (11)
3-SAT p IS
Instance de 3-SAT 
Variables X = x1, …, xn
m clauses Cj = l1j  l2j  l3j
Instance de IS : Graphe G = (V,E)
Occurrence d’un littéral  sommet
dans G.
Arête entre deux sommets lij, li’j’ si
les littéraux sont dans une même
clause ou si sont contradictoires
Entier m (nombre de clauses)
77
Exemples de Réduction (12)
3
2
1 x
x
x 

4
3
2 x
x
x 

4
2
1 x
x
x 

2
x
1
x
2
x 3
x
4
x
4
x
1
x
2
x
3
x
La transformation se fait en temps O(m2). (borne supérieure de |E|).
Reste le plus dur : montrer que   3-SAT  G, m  IS.
78
Exemple de Réduction (13)
Étape 1:   3-SAT  G, m  IS
x1 = 0, x2 = 1, x3 = 0, x4 = 1
3
2
1 x
x
x 

4
3
2 x
x
x 

4
2
1 x
x
x 

2
x
1
x
2
x 3
x
4
x
4
x
1
x
2
x
3
x
 Chaque clause contient un littéral dont la valeur est 1 (Vrai).
Les sommets correspondants forment un IS de taille m car les
littéraux correspondants sont de clause différentes et non-
contradictoires
79
Exemples de Réduction (14)
Étape 2: G, m  IS    3-SAT
x1 = 1, x2 = 1, x3 = 0, x4 = 1
3
2
1 x
x
x 

4
3
2 x
x
x 

4
2
1 x
x
x 

2
x
1
x
2
x 3
x
4
x
4
x
1
x
2
x
3
x
80
P = NP ? (1)
 La question « P = NP ? » signifie à peu près :
« Ce que nous pouvons trouver rapidement lorsque
nous avons de la chance, peut-il être trouvé aussi
vite par un calcul intelligent ? ».
 Une autre formulation est : « Tout ce que l'on peut
vérifier facilement, peut-il être découvert
aisément...
81
P = NP ? (2)
 Les problèmes vérifiables en temps
polynomial sont-ils aussi décidables en
temps polynomial ?
 Autrement dit, existe- t- il des
problèmes dont les solutions sont
faciles à vérifier mais sont dures à
trouver ?
 Montrer P = NP : Montrer que tous les
problèmes de NP sont dans P.
82
Liste de Garey & Johnson
Théorie des graphes (65 problèmes)
3-COL, domination, cycle Hamiltonien, etc.
Conception de réseau (51)
TSP, Max-cut, plus long chemin, etc.
Ensembles et partitions (21)
Formation d’équipes, partition
Logique (19), Planification (22), archivage (36), programmation
mathématique (13), algèbre (18), jeux et puzzles (15), automates et
langages (21), optimisation de code (20), autres (19)
Problèmes qu’on n’arrive à placer ni dans P ni NP-complets . Plus
que 3!
83
Que faire face à un problème NP?(1)
 Si on a à résoudre un problème NP, on a les
deux options suivantes :
 Soit le problème est facile et on cherche à
exhiber une résolution polynomiale,
 Soit que le problème est difficile et on cherche
à démontrer qu’il est NP-Complet (par
réduction).
84
Que faire face à un problème NP?(2)
 Si on a à résoudre un problème NP-Complet, on peut :
 Chercher à donner une résolution polynomiale
 Vérifier que l’on est pas, intéressé par une instance
polynomiale
 Appliquer des schémas de résolution algorithmique
efficaces
 Diviser pour régner
 Programmation Dynamique
 Mettre en œuvre des algorithmes approchés, avec
garantie de performance.
 Utiliser des approches à base de machines parallèles
85
Classe de Complexité Co-NP (1)
 Les problèmes de P ont des solutions faciles à
trouver (algorithmes polynomiaux)
 Les problèmes de NP ont des solutions faciles à
vérifier
 Puisqu’on est autoriser à « regarder » la réponse,
 Comment un problème peut ne pas appartenir à NP ?
86
Classe de Complexité Co-NP(2)
 Exemple :
 Données : un couple ( n,M) où M est une matrice d’ordre n de réels
et un réel B
 Réponse :
Est –il vrai qu’il n’existe pas une permutation  de [1,n] telle que :
Ce problème appartient – il à NP ?
87
Classe de Complexité Co-NP (3)
 Complémentaire d’un problème de décision 
noté C :
 D
C
= D
 Y
C
= N
 N
C
= Y
 P = co-P
 Définition : La classe Co –NP est l’ensemble des
compléments des langages appartenant à NP i.e.
Co-NP = { L / LC  NP }
88
Classe de Complexité Co-NP (4)
 Données : G(X,E) un
graphe
 Résultat : G est –il
hamiltonien ?
 Ce problème appartient
à Co-NP
 Appartient – il à NP ?
89
Classe de Complexité Co-NP (5)
 Théorème : Soit L NP- complet, si LC est NP
alors co-NP = NP
 Conjecture : NP  co-NP
 Théorème : Si NP  co-NP alors P  NP
90
Relations entre les classes de Complexité

Contenu connexe

Tendances

Chapitre 1 rappel
Chapitre 1   rappelChapitre 1   rappel
Chapitre 1 rappel
Sana Aroussi
 
Chapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéChapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéSana Aroussi
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en Python
ABDESSELAM ARROU
 
Chapitre i introduction et motivations
Chapitre i introduction et motivationsChapitre i introduction et motivations
Chapitre i introduction et motivationsSana Aroussi
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
Sana Aroussi
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétude
Sana Aroussi
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en python
Mariem ZAOUALI
 
algo et complexité .pptx
algo et complexité  .pptxalgo et complexité  .pptx
algo et complexité .pptx
tarekjedidi
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
Yassine Anddam
 
Chapitre v algorithmes gloutons
Chapitre v algorithmes gloutonsChapitre v algorithmes gloutons
Chapitre v algorithmes gloutonsSana Aroussi
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
MbarkiIsraa
 
Chapitre 2 plus court chemin
Chapitre 2 plus court cheminChapitre 2 plus court chemin
Chapitre 2 plus court chemin
Sana Aroussi
 
resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdf
salah fenni
 
Cours Algorithme: Matrice
Cours Algorithme: MatriceCours Algorithme: Matrice
Cours Algorithme: Matrice
InforMatica34
 
cours de complexité algorithmique
cours de complexité algorithmiquecours de complexité algorithmique
cours de complexité algorithmique
Atef MASMOUDI
 
Apprentissage supervisé.pdf
Apprentissage supervisé.pdfApprentissage supervisé.pdf
Apprentissage supervisé.pdf
hanamettali
 
Ordonnancement exercices
Ordonnancement exercicesOrdonnancement exercices
Ordonnancement exercicesSelman Dridi
 
Chapitre 3 structures séquentielles
Chapitre 3 structures séquentiellesChapitre 3 structures séquentielles
Chapitre 3 structures séquentielles
Sana Aroussi
 
Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de recherche
Sana Aroussi
 
Le grafcet cours & exercices corrigés
Le grafcet cours & exercices corrigésLe grafcet cours & exercices corrigés
Le grafcet cours & exercices corrigéstoumed
 

Tendances (20)

Chapitre 1 rappel
Chapitre 1   rappelChapitre 1   rappel
Chapitre 1 rappel
 
Chapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéChapitre ii complexité et optimalité
Chapitre ii complexité et optimalité
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en Python
 
Chapitre i introduction et motivations
Chapitre i introduction et motivationsChapitre i introduction et motivations
Chapitre i introduction et motivations
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétude
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en python
 
algo et complexité .pptx
algo et complexité  .pptxalgo et complexité  .pptx
algo et complexité .pptx
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
 
Chapitre v algorithmes gloutons
Chapitre v algorithmes gloutonsChapitre v algorithmes gloutons
Chapitre v algorithmes gloutons
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
 
Chapitre 2 plus court chemin
Chapitre 2 plus court cheminChapitre 2 plus court chemin
Chapitre 2 plus court chemin
 
resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdf
 
Cours Algorithme: Matrice
Cours Algorithme: MatriceCours Algorithme: Matrice
Cours Algorithme: Matrice
 
cours de complexité algorithmique
cours de complexité algorithmiquecours de complexité algorithmique
cours de complexité algorithmique
 
Apprentissage supervisé.pdf
Apprentissage supervisé.pdfApprentissage supervisé.pdf
Apprentissage supervisé.pdf
 
Ordonnancement exercices
Ordonnancement exercicesOrdonnancement exercices
Ordonnancement exercices
 
Chapitre 3 structures séquentielles
Chapitre 3 structures séquentiellesChapitre 3 structures séquentielles
Chapitre 3 structures séquentielles
 
Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de recherche
 
Le grafcet cours & exercices corrigés
Le grafcet cours & exercices corrigésLe grafcet cours & exercices corrigés
Le grafcet cours & exercices corrigés
 

Similaire à Complexité_ENSI_2011.ppt

Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite Saddem Chikh
 
Cours programmation en matlab2 (1)
Cours programmation en matlab2 (1)Cours programmation en matlab2 (1)
Cours programmation en matlab2 (1)
Guesmi Amal
 
cours algorithme
cours algorithmecours algorithme
cours algorithme
mohamednacim
 
csp_sir_C1_4.pptx
csp_sir_C1_4.pptxcsp_sir_C1_4.pptx
csp_sir_C1_4.pptx
Alkalimatayiba
 
NP-complet.ppt
NP-complet.pptNP-complet.ppt
NP-complet.ppt
MbarkiIsraa
 
ProgrammationLinéaire.pptxProgrammationLinéaire.pptxProgrammationLinéaire....
ProgrammationLinéaire.pptxProgrammationLinéaire.pptxProgrammationLinéaire....ProgrammationLinéaire.pptxProgrammationLinéaire.pptxProgrammationLinéaire....
ProgrammationLinéaire.pptxProgrammationLinéaire.pptxProgrammationLinéaire....
chaymae36
 
Slide-Complexite by loic.pdf
Slide-Complexite by loic.pdfSlide-Complexite by loic.pdf
Slide-Complexite by loic.pdf
OkonoMehitangWilfrie
 
chap 3 complexité (3).pdf
chap 3 complexité (3).pdfchap 3 complexité (3).pdf
chap 3 complexité (3).pdf
donixwm
 
Cours rep etat
Cours rep etatCours rep etat
Cours rep etatLin Pepin
 
Résolution numérique de l'équation de Black Scholes en python
Résolution numérique de l'équation de Black Scholes en pythonRésolution numérique de l'équation de Black Scholes en python
Résolution numérique de l'équation de Black Scholes en python
Ali SIDIBE
 
4 si ds1 (algo)
4 si   ds1 (algo)4 si   ds1 (algo)
4 si ds1 (algo)
Abdelmajid ElGhwaila
 
La recherche opérationnelle et l'optimisation combinatoire
La recherche opérationnelle et l'optimisation combinatoireLa recherche opérationnelle et l'optimisation combinatoire
La recherche opérationnelle et l'optimisation combinatoire
sarah Benmerzouk
 
langage C++
langage C++langage C++
langage C++
mohamednacim
 
optimisation cours.pdf
optimisation cours.pdfoptimisation cours.pdf
optimisation cours.pdf
Mouloudi1
 
T. Masrour - cours dynamique des systèmes - vibrations - chapitre1-1ddl chapi...
T. Masrour - cours dynamique des systèmes - vibrations - chapitre1-1ddl chapi...T. Masrour - cours dynamique des systèmes - vibrations - chapitre1-1ddl chapi...
T. Masrour - cours dynamique des systèmes - vibrations - chapitre1-1ddl chapi...
tawfik-masrour
 
Cours_3_0910.pdf
Cours_3_0910.pdfCours_3_0910.pdf
Cours_3_0910.pdf
LAHCIENEELHOUCINE
 

Similaire à Complexité_ENSI_2011.ppt (20)

Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite
 
Cours programmation en matlab2 (1)
Cours programmation en matlab2 (1)Cours programmation en matlab2 (1)
Cours programmation en matlab2 (1)
 
cours algorithme
cours algorithmecours algorithme
cours algorithme
 
csp_sir_C1_4.pptx
csp_sir_C1_4.pptxcsp_sir_C1_4.pptx
csp_sir_C1_4.pptx
 
NP-complet.ppt
NP-complet.pptNP-complet.ppt
NP-complet.ppt
 
ProgrammationLinéaire.pptxProgrammationLinéaire.pptxProgrammationLinéaire....
ProgrammationLinéaire.pptxProgrammationLinéaire.pptxProgrammationLinéaire....ProgrammationLinéaire.pptxProgrammationLinéaire.pptxProgrammationLinéaire....
ProgrammationLinéaire.pptxProgrammationLinéaire.pptxProgrammationLinéaire....
 
Oc1 2013
Oc1 2013Oc1 2013
Oc1 2013
 
Slide-Complexite by loic.pdf
Slide-Complexite by loic.pdfSlide-Complexite by loic.pdf
Slide-Complexite by loic.pdf
 
chap 3 complexité (3).pdf
chap 3 complexité (3).pdfchap 3 complexité (3).pdf
chap 3 complexité (3).pdf
 
Cours rep etat
Cours rep etatCours rep etat
Cours rep etat
 
Résolution numérique de l'équation de Black Scholes en python
Résolution numérique de l'équation de Black Scholes en pythonRésolution numérique de l'équation de Black Scholes en python
Résolution numérique de l'équation de Black Scholes en python
 
4 si ds1 (algo)
4 si   ds1 (algo)4 si   ds1 (algo)
4 si ds1 (algo)
 
La recherche opérationnelle et l'optimisation combinatoire
La recherche opérationnelle et l'optimisation combinatoireLa recherche opérationnelle et l'optimisation combinatoire
La recherche opérationnelle et l'optimisation combinatoire
 
langage C++
langage C++langage C++
langage C++
 
optimisation cours.pdf
optimisation cours.pdfoptimisation cours.pdf
optimisation cours.pdf
 
Récursivité
RécursivitéRécursivité
Récursivité
 
TV_Soutenance_2012
TV_Soutenance_2012TV_Soutenance_2012
TV_Soutenance_2012
 
T. Masrour - cours dynamique des systèmes - vibrations - chapitre1-1ddl chapi...
T. Masrour - cours dynamique des systèmes - vibrations - chapitre1-1ddl chapi...T. Masrour - cours dynamique des systèmes - vibrations - chapitre1-1ddl chapi...
T. Masrour - cours dynamique des systèmes - vibrations - chapitre1-1ddl chapi...
 
Cours_3_0910.pdf
Cours_3_0910.pdfCours_3_0910.pdf
Cours_3_0910.pdf
 

Plus de MbarkiIsraa

Format.pptx
Format.pptxFormat.pptx
Format.pptx
MbarkiIsraa
 
correctionTD2JAVA.pdf
correctionTD2JAVA.pdfcorrectionTD2JAVA.pdf
correctionTD2JAVA.pdf
MbarkiIsraa
 
correctionTD-1-vhdl2947.pptx
correctionTD-1-vhdl2947.pptxcorrectionTD-1-vhdl2947.pptx
correctionTD-1-vhdl2947.pptx
MbarkiIsraa
 
PCD YasBas.pptx
PCD YasBas.pptxPCD YasBas.pptx
PCD YasBas.pptx
MbarkiIsraa
 
PLNE.pptx
PLNE.pptxPLNE.pptx
PLNE.pptx
MbarkiIsraa
 
Chapitre3_Partie1.pdf
Chapitre3_Partie1.pdfChapitre3_Partie1.pdf
Chapitre3_Partie1.pdf
MbarkiIsraa
 
Chapitre2_Partie1.pdf
Chapitre2_Partie1.pdfChapitre2_Partie1.pdf
Chapitre2_Partie1.pdf
MbarkiIsraa
 
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
MbarkiIsraa
 
support_cours.pdf
support_cours.pdfsupport_cours.pdf
support_cours.pdf
MbarkiIsraa
 
c h02EspaceProbTr.pdf
c h02EspaceProbTr.pdfc h02EspaceProbTr.pdf
c h02EspaceProbTr.pdf
MbarkiIsraa
 
Ordonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdfOrdonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdf
MbarkiIsraa
 
prog_reg.pptx
prog_reg.pptxprog_reg.pptx
prog_reg.pptx
MbarkiIsraa
 
correctionTD-2-vhdl2949.pptx
correctionTD-2-vhdl2949.pptxcorrectionTD-2-vhdl2949.pptx
correctionTD-2-vhdl2949.pptx
MbarkiIsraa
 
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdfDiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
MbarkiIsraa
 
Correction-TD1.pdf
Correction-TD1.pdfCorrection-TD1.pdf
Correction-TD1.pdf
MbarkiIsraa
 
UML.Objet.4pp.pdf
UML.Objet.4pp.pdfUML.Objet.4pp.pdf
UML.Objet.4pp.pdf
MbarkiIsraa
 

Plus de MbarkiIsraa (16)

Format.pptx
Format.pptxFormat.pptx
Format.pptx
 
correctionTD2JAVA.pdf
correctionTD2JAVA.pdfcorrectionTD2JAVA.pdf
correctionTD2JAVA.pdf
 
correctionTD-1-vhdl2947.pptx
correctionTD-1-vhdl2947.pptxcorrectionTD-1-vhdl2947.pptx
correctionTD-1-vhdl2947.pptx
 
PCD YasBas.pptx
PCD YasBas.pptxPCD YasBas.pptx
PCD YasBas.pptx
 
PLNE.pptx
PLNE.pptxPLNE.pptx
PLNE.pptx
 
Chapitre3_Partie1.pdf
Chapitre3_Partie1.pdfChapitre3_Partie1.pdf
Chapitre3_Partie1.pdf
 
Chapitre2_Partie1.pdf
Chapitre2_Partie1.pdfChapitre2_Partie1.pdf
Chapitre2_Partie1.pdf
 
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
 
support_cours.pdf
support_cours.pdfsupport_cours.pdf
support_cours.pdf
 
c h02EspaceProbTr.pdf
c h02EspaceProbTr.pdfc h02EspaceProbTr.pdf
c h02EspaceProbTr.pdf
 
Ordonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdfOrdonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdf
 
prog_reg.pptx
prog_reg.pptxprog_reg.pptx
prog_reg.pptx
 
correctionTD-2-vhdl2949.pptx
correctionTD-2-vhdl2949.pptxcorrectionTD-2-vhdl2949.pptx
correctionTD-2-vhdl2949.pptx
 
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdfDiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
 
Correction-TD1.pdf
Correction-TD1.pdfCorrection-TD1.pdf
Correction-TD1.pdf
 
UML.Objet.4pp.pdf
UML.Objet.4pp.pdfUML.Objet.4pp.pdf
UML.Objet.4pp.pdf
 

Complexité_ENSI_2011.ppt

  • 1. 1 Théorie de la Complexité H. Hasni Ecole Nationale des Sciences de l’Informatique Université de Manouba 2010 Campus Universitaire – Manouba E-mail : hamadi.hasni@ensi.rnu.tn
  • 2. 2 Plan  Qu’est-ce que la complexité ?  Modèles Abstraits de Calcul  Machines de Turing  Problèmes de Décision  Classes de Complexité  Réductions de Problèmes  NP-Complétude  Exemples de Problèmes NP-Complets  Exemples de Réduction  P = NP ?  Que faire devant un Problème NP?  Classe de Complexité co-NP
  • 3. 3 Introduction  La théorie de la complexité s’intéresse à l’étude formelle de la difficulté des problèmes en informatique.  Gödel (1932) : premier théorème d’incomplétude (toute théorie contient des énoncés non démontrables)  Turing, Church (1936) : réponse négative au problème de la décision (cf. machine de Turing et le problème de l’arrêt)  Edmonds (1965) : Distinction entre les problèmes P et NP Cook (1971)- Levin (1973) : NP – Complétude ( Problème SAT)  Karp (1972) : Liste de 21 nouveaux problèmes NP-Complet.  Aujourd’hui la conjecture P = NP ? fait partie des 7 problèmes du millénaire.
  • 4. 4 Qu’est – ce que la complexité ?(1)  Question centrale de l’Informatique théorique :  Limites des Ordinateurs  Limites fondamentales indépendantes de la technologie  Peut-on identifier les problèmes de calcul qui sont hors de portée ?
  • 5. 5 Qu’est – ce que la complexité ?(2) Taille n Algorithme Entrées Résultat Temps Espace Ressources Opérations élémentaires
  • 6. 6 Qu’est – ce que la complexité ?(3)  Complexité:  En pratique, un algorithme consomme une quantité raisonnable de ressources de calcul :  Nombre d’opérations,  Temps de calcul  Quantités de mémoire  Complexité : quantité minimale de ressources nécessaire à sa résolution.
  • 7. 7 Qu’est – ce que la complexité ?(4)  Les notions de temps de traitement, d’espace sont dépendant de la machine physique utilisée.  Besoin d’une mesure absolue indépendante de toute implémentation.  Facteurs de temps de calcul :  Taille de l’entrée  Ordinateur utilisé  Langage de programmation utilisé
  • 8. 8 Modèles Abstraits de Calcul(1)  Théorie robuste indépendante de la machine  Nécessité de s’entendre sur des modèles de calcul (Modèles abstraits de Calcul ,1931)  Machine de Turing  Machine de Post  Fonctions récursives de Kleene  -calcul de Church  Machine RAM Tous ces modèles sont équivalents Remarque : Toutes les architectures de machines réelles sont équivalentes à la machine de Turing ( elles sont plus « puissantes » mais pas plus « expressives » )
  • 9. 9  Formalisation de la notion de fonction calculable et d’algorithme. Approches équivalentes (machines de Turing, fonctions récursives, lambda calcul) et actuelles... Alan Turing Alonzo Church Stephen C.Kleene  Mise en évidence des limites : il existe des fonctions non calculables (et des problèmes indécidables) ! Modèles Abstraits de Calcul(2)
  • 10. 10 Modèles Abstraits de Calcul(3)  Théorie de la Complexité :  Classification des problèmes suivant le temps et l’espace nécessaire à la résolution de l’instance la plus « dure » du problème sur un modèle théorique : machine de Turing.
  • 11. 11 Machines de Turing  Machines de Turing  Définition : Une machine de TURING déterministe (MTD) est donnée par M = (Q, ,  , , q0 ,F) , où :  Q est un ensemble fini d’état,   est un alphabet     ( alphabet d’entrée),  F  Q est l’ensemble des états accepteurs   : D  Q x   Q x  x {L,R}, fonction de transition  q0 : état initial - Un symbole spécial B appelé caractère blanc - L et R représentent les 2 directions de déplacement de la tête de lecture - Une configuration est un élément de Q x * x IN (* : ensemble des mots)
  • 13. 13 Machine de Turing (3) Une machine de Turing peut  S’arrêter :  Un état accepteur  Une configuration où  n’est pas définie  On ne peut pas déplacer la tête de lecture comme indiqué  Ne jamais s’arrêter
  • 14. 14 Machine de Turing (4)  Machine de Turing Non Déterministe (MTND) :  Variante purement théorique jusqu’à l’arrivée des ordinateurs quantiques  Tout choix est fait au hasard :  Mais elles trouvent toujours le bon chemin!!!  On peut aussi considérer qu’elles se dupliquent à chaque décision, chacune partant sur une des « branches » d’exécution
  • 15. 15 Machine de Turing (5)  Machine de Turing Non Déterministe (MTND) :
  • 16. 16 Machine de Turing (6)  Machine de Turing Non Déterministe (MTND) :  Définition : Une machine de TURING non déterministe (MTND) est donnée par M = (Q, ,  , , q0 ,F) , où :  Q est un ensemble fini d’état,   est un alphabet     ( alphabet d’entrée),  F  Q est l’ensemble des états accepteurs   : D  Q x   P (Q x  x {L,R}), fonction de transition  q0 : état initial
  • 17. 17 Décidabilité – Calculabilité (1)  Un langage est accepté par une machine de Turing s’il existe une machine de Turing qui accepte dans un temps fini tous les mots du langage.  Un langage est décidé par une machine de Turing s’il existe une machine de Turing qui accepte le langage et qui s’arrête toujours.
  • 18. 18 Décidabilité – Calculabilité (2)  Un langage est dit récursif s’il est décidé par une machine de Turing.  Un problème est décidable s’il existe une machine de Turing s’arrêtant toujours autrement il est dit indécidable
  • 19. 19 Décidabilité – Calculabilité (4)  On appelle équation diophantienne une équation du genre P(x, y, z, ...) = 0, où P est un polynôme à coefficients entiers. Résoudre une telle équation, c'est chercher les solutions sous forme d'entiers. L’équation x2 + y2 – 1 = 0 est une équation diophantienne qui admet pour solutions: x = 1, y = 0 et x = 0, y = 1  L'équation x2 – 991 y2 – 1 = 0 est également diophantienne mais a des solutions beaucoup plus difficiles à trouver la plus petite est :  x = 379 516 400 906 811 930 638 014 896 080 et  y = 12 055 735 790 331 359 447 442 538 767
  • 20. 20 Décidabilité – Calculabilité (5)  Problème de l’arrêt (proposé par A. Turing 1936) :  Soit un programme informatique et une entrée à ce programme, déterminez si ce programme va terminer sur cette entrée ou continuer à s’exécuter indéfiniment  Théorème : Le problème de l’arrêt est indécidable  Preuve ( par contradiction) :  Soit un algorithme A qui résout le problème de l’arrêt. Dans ce cas, pour tout programme P et une entrée E, nous avons: A(P,E) = 1 si P termine sur E 0 si P ne termine pas sur E
  • 21. 21 Décidabilité – Calculabilité (6)  Preuve (suite)  Tout programme P peut être utilisé comme entrée à lui même  Utilisons l’algorithme A sur (P,P) pour construire un programme Q ayant la propriété suivante :  Q(P) termine lorsque A(P,P) = 0 ( lorsque P ne termine pas sur P)  Q(P) ne termine pas lorsque A(P,P) = 1 (lorsque P termine sur P)  Si nous utilisons Q comme entrée sur lui-même nous obtenons:  Q(Q) termine lorsque A(Q,Q) = 0 (lorsque Q ne termine pas)  Q(Q) ne termine pas lorsque A(Q,Q) = 1 (lorsque Q termine sur Q  Un tel programme Q ne peut exister. Il en va donc de même pour l’algorithme A. CQFD
  • 22. 22 Décidabilité – Calculabilité (7)  Le problème avec 196 Etant donné un entier positif, renversez les chiffres et ajoutez les au nombre. Recommencez tant que vous n’avez pas trouvé un palindrome. Par exemple pour 5280 on trouve :  5280 + 825 = 6105  6105 + 5016 = 11121  11121 + 12111 = 23232  En général pour n’importe quel nombre cet algorithme s’arrête rapidement.  Personne ne sait si cet algorithme se termine pour 196. Cependant on sait qu’il y a au moins 9 millions d’itérations.
  • 23. 23 Décidabilité – Calculabilité (8)  La fonction 3x+1 : La fonction de Collatz est définie ainsi : Si x = 1 on s’arrête. Si x est impair, alors x = 3x + 1, si x est pair alors x = x/2. Par exemple pour 7 on trouve :  7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1  Personne ne sait si pour un nombre x le programme s’arrête ou pas.  http ://www.cs.princeton.edu/introcs/77computability/.
  • 24. 24 Décidabilité – Calculabilité (10) Thèse de Church – Turing : Un langage est calculable si ce langage est récursif i.e. décidé par une machine de Turing
  • 25. 25 Complexité Algorithmique  Complexité temporelle pire cas d’une machine de Turing : nombre maximal de déplacements de la tête de lecture/écriture pour résoudre une instance de taille maximale n  La taille de l’instance est la longueur de la séquence binaire codant cette instance comme une entrée de la machine de Turing  Complexité spatiale pire cas : longueur de bande nécessaire à la machine pour résoudre une instance de taille n
  • 26. 26 Problèmes de Décision (1)  Un problème désigne la description générale d’une question.Par exemple : Trouver un facteur non trivial d’un entier  Résoudre un problème : essayer de décrire un algorithme (par exemple à formaliser par une machine de Turing)  Un problème de décision (d’existence ou de reconnaissance) consiste à chercher dans un ensemble fini s’il existe un élément vérifiant une certaine propriété.  Un problème de décision peut être formulé par un énoncé et une réponse Oui – Non
  • 27. 27 Problèmes de Décision (2)  La forme générale d’un problème de décision :  Une description de l’instance du problème  L’expression d’une question Oui/non portant sur cette instance  Exemples :  Voyageur de Commerce ( TSP) :  Données : un graphe complet d’ordre n valué par des entiers positifs et un entier k  Question : Existe –t- il dans le graphe un cycle hamiltonien de longueur  k ?
  • 28. 28 Problèmes de Décision (3)  Exemples :  Clique :  Données : un graphe et un entier positif k  Question : G contient –t-il un sous-graphe complet à k sommets ?  Recouvrement ( Set Cover ):  Données : Un ensemble X et une famille f de sous-ensembles de X  Question : Existe –t-il une sous – famille f’ de f telle que tout élément de X appartient exactement à un élément de f ?
  • 29. 29 Problèmes de Décision (4)  Notations : soit D l’ensemble des instances possibles d’un problème de décision   Y : sous-ensemble des instances pour lesquelles la réponse est Oui (Yes)  N : sous-ensemble des instances pour lesquelles la réponse est Non (No)
  • 30. 30 Problèmes de Décision (5)  Lien entre Problème de Décision et Langages:  Fonction de codage C : traduction d’une instance en un mot sur un alphabet.  Une machine de Turing M résout le problème décision  , sous le codage C, si M s’arrête sur toute entrée x et si l’ensemble des mots acceptés par M est égal à l’ensemble L[, c]de mots qui résultent du codage d’instance de Y .
  • 31. 31 Problème de Décision (7)  Codage des entiers positifs :  Codage binaire efficace : i est codé par la séquence   1 , 0 0 2 .     k i avec n k k k i i La longueur l1(i) des codes de i est de l’ordre de Log2(i)  Codage binaire inefficace : i est codé par une séquence de 1 de longueur i La longueur l2(i) des codes de i est de l’ordre de 2 l 1 (i)
  • 32. 32 Problème de Décision (8)  Codage d’un graphe  Liste des sommets/liste des arêtes : x[1] x[2] x[3] x[4](x[1] x[2])(x[1] x[3])(x[2] x[3])(x[3] x[4]) |G(X,E)| = O( n + m) Liste des voisins : (x[2] x[3])(x[1] x[3])(x[1] x[2] x[4])(x[3]) |G(X,E)| = O(m) Matrice d’adjacence : 0110/1010/1101/0010 , |G(X,E)| = O(n2) Notation: |G(X,E)| la taille de codage de G , |X|= n et |E|= m Encodage Chaîne
  • 33. 33 Classes de Complexité (1)  Complexité en temps d’une machine de Turing s’arrêtant toujours : TM(n) = Max {m /  x * , |x| = n et l’exécution de M sur x comporte m étapes }  La classe P est la la classe des langages décidés par une machine de Turing polynomiale i.e  un polynôme p(n) tel que : TM  p(n) pour tout n  0
  • 34. 34 Classes de Complexité (2)  Le temps de calcul d’une machine de Turing ND sur un mot w est donné par :  La longueur de la plus courte exécution acceptant le mot si celui-ci est accepté.  La valeur 1 si le mot w n’est pas accepté  Complexité en temps d’une machine de Turing non déterministe TMND(n) = Max {m /  x * , |x| = n et le temps de calcul de M sur x est m}
  • 36. 36 Classe de Complexité (3)  La classe NP ( Non déterministe Polynomiale) est la classe des langages acceptés par une machine de Turing non déterministe polynomiale  Solution rapide si l’énumération des cas ne coûte rien  Exemple : Circuit hamiltonien (HC)
  • 37. 37 Classe de Complexité (4) Exemple : Circuit Hamiltonien  Un circuit hamiltonien est un chemin de G passant une et une seule fois par chacun des sommets et revenant à son point de départ  Un graphe biparti d’ordre impair n’a pas de circuit hamiltonien.
  • 38. 38 Classe de Complexité (5)  Théorème : Soit L  NP. Il existe une machine de Turing déterministe M et un polynôme p(n) tel que M décide L et est de complexité en temps bornée par 2p(n) ( Simuler toutes les exécutions de MND)
  • 39. 39 Classe de Complexité (6)  Preuve :  Soit une MTND de complexité polynomiale q(n) qui accepte L. Simuler toutes les exécutions de MTND de longueur inférieure à q(n). Pour un mot w, la machine doit:  1. Déterminer la longueur n de w et calcule q(n) . polynôme  2. Simuler chaque exécution de MTND de longueur q(n) (temps nécessaire q’(n)).Si r est le nombre maximum de choix possibles de MTND à chaque étape de son exécution, il y a au plus r q(n) exécutions de longueur q’(n)  3. Si une des exécution simulées accepte, M accepte. Sinon M s’arrête et rejette le mot w  Complexité bornée par rq(n) x q’(n) et donc par 2 log2(r)(q(n)+q’(n)) qui de la forme de 2p(n)
  • 40. 40 Classe de Complexité (6)  Pour Prouver qu’un problème est dans NP :  Proposer un codage de la solution ( certificat)  Proposer un algorithme vérifiant la solution au vu des données et du certificat  Montrer que cet algorithme a une complexité polynomiale.
  • 41. 41 Classe de Complexité (8)  Exemples  Voyageur de commerce  Certificat : indication d’un circuit de longueur inférieur à k  Clique :  Certificat : indication de k sommets du graphe d’entrée constituant une clique  Recouvrement : indication d’un sous-famille vérifiant la propriété demandée
  • 42. 42 Classe de Complexité (9)  Un grand nombre des problèmes de NP est que, on ne sait pas dire, s’ils sont ou non polynomiaux.  On ne sait pas produire une solution polynomiale,  On ne sait pas non plus démontrer que le problème est non polynomial  Que faire ?  Comparer la difficulté du problème NP considéré à celle d’autre problèmes NP.  Réduction d’un problème à un autre
  • 43. 43 Classe de Complexité (9)  Equivalence entre Problèmes
  • 44. 44 Réduction de Problèmes (1)  Transformations (Réductions) polynomiales  Définition : Soient un langage L1 et un langage L2. Une transformations polynomiale de L1 vers L2 (notée L1 p L2) est une fonction f qui satisfait les conditions suivantes:  Elle est calculable en temps polynomial,  f(x)  L2 si et seulement si x  L1  Conséquence : Si L2  P alors L1 est au plus aussi difficile que L2
  • 45. 45 Réduction de Problèmes (2) Soit G (X,E ) un graphe d’ordre n  G est un graphe complet si :  x1 et x2X : {x1,x2} E  S  X est un stable de G si :  x1 et x2S : {x1,x2} E  T  X est un transversal (couverture) de G si:  e = {x1,x2} E : x1T ou x2 T
  • 46. 46 Réduction de Problèmes (4)  Stable ( Independant Set):  Données :  Un graphe G(X,E) non orienté  Un entier k  Résultat : Décider s’ un stable S  X , S k  Clique  Données :  Un graphe G(X,E) non orienté  Un entier k  Résultat : Décider s’ une clique C  X , S  k
  • 47. 47 Exemples de Réductions (7)  CLQ <p IS.  Pour le démontrer formellement, on veut définir une fonction f permet de transformer en temps polynomial chaque instance G, k du problème Clique en une instance f(G, k) = G’, k’ du problème Ensemble Indépendant de telle sorte que G, k  CLQ  G’, k’  IS.
  • 48. 48 Exemples de Réductions (7) Instance de CLQ: Graphe G = (V,E) Entier k Instance de IS: Gc = (V,Ec), graphe complément de G. Entier k (inchangé) Transformation f  CLQ p IS.
  • 49. 49 Exemples de Réductions (8) À montrer: 1. f est calculable en temps polynomial. 2. G,k  CLQ  G c,k  IS. Un ensemble de sommets forme une clique dans G ssi il forme un ensemble indépendant dans G c. évident
  • 50. 50 Réduction de Problèmes (2)  Propriétés de  p :  Si L1  p L2 alors  Si L2 P alors L1 P  Si L1 P alors L2  P  Si L1  NP alors L2  NP  Si L1  p L2 et L2  p L3  L1  p L3
  • 51. 51 Réduction de Problèmes (3)  Problèmes polynomialement équivalents  Définition: Deux langages L1 et L2 sont polynomialement équivalents (L1 p L2) si et seulement si L1  p L2 et L2  p L1  Classes d’équivalence polynomiale : soit tous les membres sont dans P, soit aucun.  Possibilité de construire une classe d’équivalence de proche en proche.
  • 52. 52 Réduction de Problèmes (4)  Structure de NP:  Définition : Une classe d’équivalence polynomiale C1 est inférieure à une classe d’équivalence C2 ( notation C1 C2 ) si  L1  C1 et L2  C2 : L1  p L2  P  NP ( P est la plus petite classe dans NP)   L1 P et  L  NP on a L1  p L2  Plus grande classe de NP : NP-Complets (noyau dur)
  • 53. 53 NP-Complétude (1)  Langage NP-Complet :  Définition : Un langage L est NP-Complet si  L  NP   L’  NP alors L’  p L ( Problème NP-Dur)  Théorème : Soit L un langage NP-Complet, L  P si et seulement si P = NP  Un problème NP-Complet n’a de solution polynomiale que si et seulement si P = NP
  • 54. 54 NP-Complétude (2)  Problème de Satisfiabilité (SAT):  Données :  Un ensemble de variables booléennes {x1,x2,…xn}  Un ensemble de clauses Ci = {y i,1  …… y i,r} où yi,j est égal à l’un des xi soit à l’un des xi  F = C1  C2  . . . .  Cm  Résultat : Décider si F est satisfaisable (vraie)par une affectation de valeurs de vérité V/F aux variables
  • 55. 55 NP-Complétude (4) Théorème de Cook - Levin  Théorème : SAT est NP-Complet En d'autres termes, tout problème de décision décidable par une machine de Turing non déterministe polynomiale peut être réduit en temps polynomial au problème SAT.  Idée de la preuve : On construit en temps polynomial un ensemble de clauses satisfaisables si et seulement si il existe une branche de l'exécution de la MTND qui s'arrête sur « oui ». Notions similaires : Edmonds(1966) mais aussi Gödel (1956 - Lettre à Von Neumann).
  • 56. 56 SAT & Co  Problème k – SAT :  Données :  Un ensemble de variables booléennes {x1,x2,…xk}  Un ensemble de clauses Ci = {y i,1  …… y i,k} où yi,j est égal à l’un des xi soit à l’un des xi ( Ci = k )  F = C1  C2  . . . .  Cm  Résultat : Décider si F est satisfaisable par une affectation de valeurs de vérité V/F aux variables
  • 57. 57 Problèmes de Graphes NP-Complets (2) Soit G (X,E ) un graphe d’ordre n :  est le graphe complémentaire de G : {x1,x2} E  {x1,x2}  F  S est une clique de G  S est sous-graphe complet de G  S est une clique G (X,E )  S est stable de   F X G ,   F X G ,
  • 58. 58 Problèmes de Graphes NP-Complets (3) Une coloration des sommets de G (X,E) est une application : C : X IN telle que C(v) ≠ C(w)  {v,w} E  Une k - coloration est une coloration utilisant k couleurs  Le nombre chromatique (G) est défini par (G) = Min { k / G est k –colorable} G =3
  • 59. 59 Problèmes de Graphes NP-Complets (5)  Couverture de Sommets ( Vertex Cover):  Données :  Un graphe G(X,E) non orienté  Un entier k  Résultat : Décider s’ transversal T  X , S  k  Coupure maximale ( Max Cut)  Données :  Un graphe G(X,E) non orienté  Un entier k  Résultat : Décider s’ une partition X = X1 X2 telle que : |{{x1,x2} E / x1 X1 et x2 X2 } |  k
  • 60. 60 Problèmes de Graphes NP-Complets (6)  Circuit Hamiltonien ( HC):  Données :  Un graphe G(X,E) non orienté  Résultat : Existe-il un circuit hamiltonien dans G  Circuit le plus long  Données :  Un graphe G(X,E) non orienté  Un entier k  Résultat : Existe –il un cycle hamiltonien et dont la longueur est  k ?
  • 61. 61 Problèmes de Graphes NP-Complets (7)  Voyageur de Commerce (TSP)  Données : un couple ( n,M) où M est une matrice d’ordre n de réels et un réel B  Réponse : Existe-t-il une permutation  de [1,n] telle que: Allemagne ( 15 112 cités)
  • 62. 62 Problèmes de Graphes NP-Complets (8)  k – Coloration ( k- Color)  Données :  Un graphe G(X,E) non orienté  Un entier k  Résultat : Existe t-il une k-coloration de G ?
  • 63. 63 Somme de Sous-ensemble & Variantes (1)  Somme de sous-ensemble ( Subset Sum)  Données : E  IN , fini et un but t  IN  Réponse : Existe-t-il E’  E tel que : ? '    E x t x
  • 64. 64 Somme de Sous-ensemble & Variantes(2)  Sac à Dos ( KnapSack)  Données :  Un ensemble de poids ai , i = 1,n  Un ensemble de valeurs vi , i =1,n  Un poids limite A et entier V  Réponse : Existe-t-il une suite ci  {0,1}telle que : ? 1 1 V v c et A a c n i i i n i i i      
  • 65. 65 Somme de Sous-ensemble & Variantes (3)  Partition  Données :  Un ensemble A fini d’entiers  Réponse : Existe-t-il A’  A tel que : ? ' '       A A x A x x x
  • 66. 66 Somme de Sous-ensemble & Variantes (4)  Rangement Optimal ( Bin Packing)  Données :  N objets de poids si  Une capacité B et un entier k  Réponse : Est-il possible de ranger les N objets dans k boîtes de capacité B ?
  • 67. 67 Programmation Entière  Programmation entière 0-1  Données:  Une matrice entière A (m,n)  Un vecteur entier b d’ordre m  Réponse : Existe-t-il un vecteur x d’ordre dont les éléments sont pris dans {0,1} tel que : A x  b ?
  • 68. 68 Exemples de Réductions (1) 3-Sat  p Stable  3-Sat  p 3-Color HC  p Circuit le + long VC  p Subset-Sum Subset-Sum  p KnapSack Subset-Sum  p Partition 3-Sat  p Prog. Entière Partition  p Bin Packing
  • 69. 69 Exemples de Réduction (2)  3-SAT est NP  Soit I une instance de 3 –SAT , taille (I) = O( n+p)  Certificat : valeur de chaque xi , i = 1, n  Vérification en O(p)  3 – SAT est NP-Dur : réduction à partir de SAT  Soit I1 une instance de SAT  n variables xi , i = 1, n  p clauses Cj , j=1,p de longueur f(j)  Taille(I1) = O( n +  f(j) )
  • 70. 70 Exemples de Réduction (3)  Soit Ci une clause de SAT :  1 variable x : soient ai et bi deux nouvelles variables  x  ai  bi ; x  ai  bi ; x  ai  bi ; x   ai  bi  2 variables x et y : soit ci une nouvelle variable :  x  y  ci ; x  y   ci  3 variables : aucun changement  k  3 variables : soit Ci = {x1  ……  xk} et soient yi,1 ,…… y i,,k- 3 ( k-3) nouvelles variables  x1  x2  yi,1 ;  x3   yi,1  yi,2 . . . . . . .  xk -2   yi,k - 4  yi,k – 3 et xk -1   yi,k - 3  x,k
  • 71. 71 Exemples de Réduction (4)  Taille (I2) linéaire en taille(I1) ,  () Si I1 a une solution i.e. une instanciation des variables xj telle que  j Cj soit vraie.  Une solution pour I2 est :  xj inchangée  ai vrai  bi faux  ci vrai  Soit z1 ,…… zk des littéraux et zi le 1er littéral vrai alors on pose z1 ,. . ., zi-2 à vrai et zi-1 ,…… zk-3 à faux.  () si I2 a une solution :  Instanciation de I2 vraie restreinte aux xj i=1,n donne une instanciation qui satisfait I1
  • 72. 72 Exemples de Réduction(5)  Données: graphe G = (X,E) et un k  |X|.  Clique (CLQ): Existe-t-il C  X avec |C|  k et (u,v)  E pour tous u,v  C?  Ensemble indépendant (IS): Existe-t-il C  X avec |C|  k et (u,v)  E pour tous u,v  C?  Couverture par sommets (VC): Existe-t-il C  X avec |C|  k et tel que pour tout (u,v)  E, on a u  C ou v  C?
  • 73. 73 Exemples de Réductions (6) Théorème: CLQ p IS p VC.  Idée: montrer que ces trois problèmes ne sont que des reformulations les uns des autres.  L’existence d’une grande clique est équivalente à l’existence d’un grand ensemble indépendant dans le complément du graphe.  L’existence d’un grand ensemble indépendant est équivalente à l’existence d’une petite couverture par sommets.
  • 74. 74 Exemples de Réduction (9) Instance de IS: Graphe G = (V,E) Entier k Instance de VC: G = (V,E) (inchangé) Entier |V| - k Transformation f  IS p VC.
  • 75. 75 Exemple de Réduction (10) À montrer: 1. f est calculable en temps polynomial. 2. G,k  IS  G, |V| - k  VC. a)  G,k   IS   G, |V| - k   VC: Si V’ est un IS de taille k, alors toutes les arêtes de E ont au moins une extrémité dans V – V’. Donc V – V’ est une VC de taille |V| - k. b)  G,k   IS   G, |V| - k   VC: Si V’ est une VC de taille |V| - k, alors V – V’ est un IS de taille k. évident
  • 76. 76 Exemples de Réduction (11) 3-SAT p IS Instance de 3-SAT  Variables X = x1, …, xn m clauses Cj = l1j  l2j  l3j Instance de IS : Graphe G = (V,E) Occurrence d’un littéral  sommet dans G. Arête entre deux sommets lij, li’j’ si les littéraux sont dans une même clause ou si sont contradictoires Entier m (nombre de clauses)
  • 77. 77 Exemples de Réduction (12) 3 2 1 x x x   4 3 2 x x x   4 2 1 x x x   2 x 1 x 2 x 3 x 4 x 4 x 1 x 2 x 3 x La transformation se fait en temps O(m2). (borne supérieure de |E|). Reste le plus dur : montrer que   3-SAT  G, m  IS.
  • 78. 78 Exemple de Réduction (13) Étape 1:   3-SAT  G, m  IS x1 = 0, x2 = 1, x3 = 0, x4 = 1 3 2 1 x x x   4 3 2 x x x   4 2 1 x x x   2 x 1 x 2 x 3 x 4 x 4 x 1 x 2 x 3 x  Chaque clause contient un littéral dont la valeur est 1 (Vrai). Les sommets correspondants forment un IS de taille m car les littéraux correspondants sont de clause différentes et non- contradictoires
  • 79. 79 Exemples de Réduction (14) Étape 2: G, m  IS    3-SAT x1 = 1, x2 = 1, x3 = 0, x4 = 1 3 2 1 x x x   4 3 2 x x x   4 2 1 x x x   2 x 1 x 2 x 3 x 4 x 4 x 1 x 2 x 3 x
  • 80. 80 P = NP ? (1)  La question « P = NP ? » signifie à peu près : « Ce que nous pouvons trouver rapidement lorsque nous avons de la chance, peut-il être trouvé aussi vite par un calcul intelligent ? ».  Une autre formulation est : « Tout ce que l'on peut vérifier facilement, peut-il être découvert aisément...
  • 81. 81 P = NP ? (2)  Les problèmes vérifiables en temps polynomial sont-ils aussi décidables en temps polynomial ?  Autrement dit, existe- t- il des problèmes dont les solutions sont faciles à vérifier mais sont dures à trouver ?  Montrer P = NP : Montrer que tous les problèmes de NP sont dans P.
  • 82. 82 Liste de Garey & Johnson Théorie des graphes (65 problèmes) 3-COL, domination, cycle Hamiltonien, etc. Conception de réseau (51) TSP, Max-cut, plus long chemin, etc. Ensembles et partitions (21) Formation d’équipes, partition Logique (19), Planification (22), archivage (36), programmation mathématique (13), algèbre (18), jeux et puzzles (15), automates et langages (21), optimisation de code (20), autres (19) Problèmes qu’on n’arrive à placer ni dans P ni NP-complets . Plus que 3!
  • 83. 83 Que faire face à un problème NP?(1)  Si on a à résoudre un problème NP, on a les deux options suivantes :  Soit le problème est facile et on cherche à exhiber une résolution polynomiale,  Soit que le problème est difficile et on cherche à démontrer qu’il est NP-Complet (par réduction).
  • 84. 84 Que faire face à un problème NP?(2)  Si on a à résoudre un problème NP-Complet, on peut :  Chercher à donner une résolution polynomiale  Vérifier que l’on est pas, intéressé par une instance polynomiale  Appliquer des schémas de résolution algorithmique efficaces  Diviser pour régner  Programmation Dynamique  Mettre en œuvre des algorithmes approchés, avec garantie de performance.  Utiliser des approches à base de machines parallèles
  • 85. 85 Classe de Complexité Co-NP (1)  Les problèmes de P ont des solutions faciles à trouver (algorithmes polynomiaux)  Les problèmes de NP ont des solutions faciles à vérifier  Puisqu’on est autoriser à « regarder » la réponse,  Comment un problème peut ne pas appartenir à NP ?
  • 86. 86 Classe de Complexité Co-NP(2)  Exemple :  Données : un couple ( n,M) où M est une matrice d’ordre n de réels et un réel B  Réponse : Est –il vrai qu’il n’existe pas une permutation  de [1,n] telle que : Ce problème appartient – il à NP ?
  • 87. 87 Classe de Complexité Co-NP (3)  Complémentaire d’un problème de décision  noté C :  D C = D  Y C = N  N C = Y  P = co-P  Définition : La classe Co –NP est l’ensemble des compléments des langages appartenant à NP i.e. Co-NP = { L / LC  NP }
  • 88. 88 Classe de Complexité Co-NP (4)  Données : G(X,E) un graphe  Résultat : G est –il hamiltonien ?  Ce problème appartient à Co-NP  Appartient – il à NP ?
  • 89. 89 Classe de Complexité Co-NP (5)  Théorème : Soit L NP- complet, si LC est NP alors co-NP = NP  Conjecture : NP  co-NP  Théorème : Si NP  co-NP alors P  NP
  • 90. 90 Relations entre les classes de Complexité