SlideShare une entreprise Scribd logo
CHAPITRE III:
NP-COMPLÉTUDE
Université Blida 1
Faculté des Sciences
Département d’Informatique
Master GSI (Génie des Systèmes Informatiques)
Semestre 1
Mme AROUSSI
2015-2016
Disponible sur https://sites.google.com/a/esi.dz/s-aroussi/
PARTIE I:
RAPPEL SUR LA COMPLEXITÉ
 Introduction
 Définitions
 Type de la Complexité
 Notation de de Landau
 Classes de complexité
 Calcul de la Complexité des algorithmes (itératifs
& récursifs)
3
PLAN DE LA PARTIE I
4
 Le temps d’exécution d’un algorithme dépend des facteurs
suivants :
 Les données du programme,
 La qualité du compilateur (langage utilisé),
 La machine utilisée (vitesse, mémoire, ),
 La complexité de l’algorithme lui-même,
 On cherche à mesurer la complexité d’un algorithme
indépendamment de la machine et du langage utilisés, c.-
à-d. uniquement en fonction de la taille des données que
l’algorithme doit traiter.
INTRODUCTION
5
INTRODUCTION
EXEMPLE: CALCUL DE LA VALEUR D’UN POLYNÔME
 Soit P(X) un polynôme de degré n
P(X) = anXn + an-1Xn-1 + ... + a1X + a0 ,
Où: n : entier naturel
an, an-1, ..., a1, a0 : les coefficients du polynôme qui sont
stockés dans le tableau T[0..n] d’entiers.
 Ecrire la fonction Calcul_poly(T: Tableau[0..n]d’entier,
X:entier): entier.
6
2ème variante
Début
Inter1
P 0
Pour  0 à n faire
P  P+ Inter *T[i]
Inter  Inter * X
FP
Fin
1ère variante
Début
P0
Pour i  0 à n faire
P  P+ T[i] * Puiss (X, i)
FP
Fin
1ère Complexité :1ère Complexité :
(n+1) additions
(n+1) multiplications
(n+1) puissances
Au moins 3 variables
2ème Complexité :
(n+1) additions
2(n+1) multiplications
3 variables
INTRODUCTION
EXEMPLE: CALCUL DE LA VALEUR D’UN POLYNÔME
7
 3ème variante: Schéma de Horner
P(X) = anXn + an-1Xn-1 + ... +a2X2 + a1X + a0
=(anXn-1 + an-1Xn-2 + ... +a2X + a1)X + a0
= ((anXn-1 + an-1Xn-2 + ... +a2)X+ a1)X + a0
= ............
= (....(((anX + an-1)X+ an-2 )X.....)X+ ... +a2)X+ a1)X + a0
3ème variante
Début
P  T[n]
Pour i  n-1 à 0 faire
P  P*X + T[i]
FP
Fin
3ème Complexité :
n additions
n multiplications
2 variables
INTRODUCTION
EXEMPLE: CALCUL DE LA VALEUR D’UN POLYNÔME
8
Variantes Première Deuxième Troisième
Complexité
en temps
(en terme de
nombre
d’opérations)
(n+1) additions
(n+1) multiplications
(n+1) puissances
(n+1) additions
2(n+1)
multiplications
n additions
n multiplications
Complexité
en espace
mémoire
(Variables)
P, i et les variables
de la fonction
puissance appelée
(n+1) fois
P, i et Inter P, i
 Nécessité d’estimer la complexité en temps et en
espace d’un algorithme avant de l’écrire et
l’implémenter
INTRODUCTION
EXEMPLE: CALCUL DE LA VALEUR D’UN POLYNÔME
9
 La complexité (temporelle) d’un algorithme est la
mesure du nombre d’opérations fondamentales
(affectations, comparaisons, opérations arithmétiques)
qu’il effectue sur un jeu de données. Elle est exprimée
comme une fonction de la taille du jeu de données.
 Elle permet en particulier de comparer deux algorithmes traitant
le même calcul. En d’autres termes, elle permet de déterminer si
un algorithme A et meilleur qu’un algorithme B
indépendamment de la machine, du langage de programmation,
du compilateur et des détails d’implémentation.
DÉFINITION
10
TYPE DE LA COMPLEXITÉ
Complexité au
meilleur
•C'est le plus petit nombre
d'opérations qu'aura à
exécuter l'algorithme sur
un jeu de données de
taille n.
•Tmin(n) = mindDn
T(d)
Complexité en
moyenne
•C’est la moyenne des
complexités de l’algorithme
sur des jeux de données de
taille n
•Tmoy(n) = ΣdDn
T(d) / |Dn|
Complexité au
pire
• C’est le plus grand
nombre d’opérations
qu’aura à exécuter
l’algorithme sur un jeu de
données de taille n
•Tmax(n) = maxdDn
T(d)
 Notations:
 Dn l’ensemble des données de taille n
 T(n) le nombre d’opération sur un jeu donnée de taille n
11
 Exemple: T(n) = O(n2) veut dire qu'il existe une
constante c > 0 et une constante n0 > 0 tel que pour tout
n > n0 T(n) <= c n2
 La notation de Landau « O » est celle qui est le
plus communément utilisée pour expliquer
formellement les performances d'un algorithme.
NOTATION DE LANDAU
 Cette notation exprime la limite supérieure d'une
fonction dans un facteur constant.
12
 Les règles de la notation O sont les suivantes :
 Les termes constants : O(c) = O(1)
 Les constantes multiplicatives sont omises :
O(cT ) = c O(T) = O(T)
 L'addition est réalisée en prenant le maximum :
O(T1) + O(T2) = O(T1 + T2) = max(O(T1);O(T2))
 La multiplication reste inchangée
O(T1)O(T2) = O(T1T2)
NOTATION DE LANDAU
13
 Supposant que le temps d'exécution d’un algorithme est décrit par la fonction
T(n) = 3n2+10n+10, Calculer O(T(n))?
O(T(n)) = O(3 n2 + 10n + 10)
= O(max (3 n2, 10n, 10))
= O(3 n2)
= O (n2)
 Remarque:
Pour n = 10 nous avons :
 Temps d'exécution de 3 n2 : 3(10)2 / 3(10)2+10(10)+10 = 73,2%
 Temps d'exécution de 10n : 10(10) / 3(10)2+10(10)+10 = 24,4%
 Temps d'exécution de 10 : 10 / 3(10)2+10(10)+10 = 2,4%
Le poids de 3 n2 devient encore plus grand quand n = 100, soit 96,7%
On peut négliger les quantités 10n et 10.
Ceci explique les règles de la notation O.
NOTATION DE LANDAU
14
CLASSES DE COMPLEXITÉ
Classe Notation O Exemple
Constante O(1) Accéder au premier élément d'un ensemble de données
Linéaire O(n) Parcourir un ensemble de données
Logarithmique O(log(n)) Couper un ensemble de données en deux parties égales,
puis couper ces moitiés en deux parties égales, etc.
Quasi-linéaire O(n log(n)) Couper répétitivement un ensemble de données en deux
et combiner les solutions partielles pour calculer la
solution générale
Quadratique O(n2) Parcourir un ensemble de données en utilisant deux
boucles imbriquées
Polynomiale O(nP) Parcourir un ensemble de données en utilisant P
boucles imbriquées
Exponentielle O(an) Générer tous les sous-ensembles possibles
d'un ensemble de données
15
CLASSES DE COMPLEXITÉ
16
CALCUL DE LA COMPLEXITÉ
1. Cas d'une instruction simple (écriture, lecture, affectation ) :
Le temps d'exécution de chaque instruction simple est O(1).
2. Cas d'une suite d'instructions simples: Le temps d ’exécution
d'une séquence d'instruction est déterminée par la règle de la
somme. C'est donc le temps de la séquence qui a le plus grand
temps d ’exécution: O(T) = O (T1 + T2) = max(O(T1);O(T2)) .
17
CALCUL DE LA COMPLEXITÉ
 Exemple 2:
Permutation (Var S: tableau [0..n-1] d’entier, i, j: entier)
O(T) = O (T1 + T2 + T3) = O(1)
tmpS[i] O(T1) = O(1)
S[i]S[j] O(T2) = O(1)
S[j]tmp O(T3) = O(1)
18
CALCUL DE LA COMPLEXITÉ
3. Cas d'un traitement conditionnel: Le temps d'exécution d'une
instruction SI est le temps d ’exécution des instructions exécutées
sous condition, plus le temps pour évaluer la condition. Pour une
alternative, on se place dans le cas le plus défavorable.
19
CALCUL DE LA COMPLEXITÉ
4. Cas d'un traitement itératif : Le temps d ’exécution d'une boucle
est la somme du temps pour évaluer le corps et du temps pour
évaluer la condition. Souvent ce temps est le produit du nombre
d'itérations de la boucle par le plus grand temps possible pour une
exécution du corps.
Boucle Pour Boule Tant que
20
CALCUL DE LA COMPLEXITÉ
 Exemple 2:
Recherche séquentielle (S: tableau [0..n-1] d’entier, x: entier): booléen
i 0 c1
Trouve  faux c2
Tant que ((i<n) et (non trouve)) faire Condition = c3;
nombre d’itération = nDTQ
Si (S[i] = x) alors c4
Trouve  vrai c5
i i + 1 c6
FTQ
Retourner trouve c7
T(n) = c1+c2+n*(c3+c4+c5+c6) + c7 = c8 + c9 *n
O(T) = O(c8 + c9 *n) = O (n)
21
CALCUL DE LA COMPLEXITÉ
 Exemple 3:
Tri par sélection (Var T: Tableau [1.. N] d’entier)
22
CALCUL DE LA COMPLEXITÉ
 Exemple 4:
23
CALCUL DE LA COMPLEXITÉ
 Exemple 5:
CALCUL DE LA COMPLEXITÉ
 Exemple 6:
CALCUL DE LA COMPLEXITÉ
 Exemple 7:
26
 La complexité d’un algorithme récursif se fait par la
résolution d’une de ces équations de récurrence:
COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
27
 Exemple 8: la fonction factorielle
Facto (n: entier): entier
Début
Si (n=1) alors retourner 1
Sinon retourner n*Facto (n-1);
Fin
COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
28
 Exemple 8: la fonction factorielle
i.e. T(n) = T(n-1) + f(n) avec a = 1, T(0) = 0, f(n) = b;
O (T) = O (n)
COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
29
 Exemple 9: T(n) = 2*T(n-1) + c avec T(0) = 0
O (T) = O(2n)
COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
30
 Exemple 10: Recherche du maximum.
COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
Fonction maximum ( Tab: Tableau , indDeb, indFin:entier)
Si ( indDeb = indFin) alors retourner (indDeb)
Sinon
M(indDeb+indFin) div 2 // division du problème en 2 sous-problèmes
k1  maximum (Tab, indDeb, m ) // régner sur le 1er sous-problème
k2 maximum (Tab, m+1, indFin) // régner sur le 2ème sous-problème
// Combiner les solutions
Si (Tab[k1] > Tab[k2]) alors retourner (k1)
Sinon retourner (k2)
31
 Exemple 10: Recherche du maximum.
T(n) = 2 T(n/2) + c
a = 2 , b = 2, k = 0  a > bk
T(n) = O(n)
COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
32
Fonction RechDicho(Tab :Tableau, borneinf, bornesup, x :entier) : bool
Si (borneinf<=bornesup) alors
mil  (borneinf+bornesup) DIV 2 ;
Si (Tab[mil]=x) Alors retourner (vrai)
Sinon
Si (Tab[mil]>x) Alors
Retourner (RechDicho(Tab, borneinf, mil-1, x))
Sinon
Retourner(RechDicho(Tab, mil+1, bornesup, x))
Sinon
Retourner (Faux)
 Exemple 11: Recherche dichotomique.
COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
33
 Exemple 11: Recherche dichotomique
T(n) = T(n/2) + c
a = 1 , b = 2, k = 0  a = bk
T(n) = O(log(n))
COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
34
 Exemple 12: Tri par Fusion
COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
Tri_Fusion (T: tableau, debut, fin : entier)
Debut
Si (debut<fin) alors
milieu  (debut + fin) /2
Tri_Fusion(T, debut, milieu);
Tri_fusion (T, milieu + 1, fin);
Interclasser (T, debut, milieu, fin)
FSI
Fin
35
Procédure Interclasser(VAR T: tableau, debut, milieu, fin:
entier)
Debut
Tmp: tableau temporaire du taille fin-debut+1
i 0; i1  debut, i2  milieu + 1;
Tant que (i1≤milieu) et (i2 ≤ fin) faire
Si (T[i1]<T[i2]) alors Tmp[i]T[i1]; i1++;
Sinon Tmp [i]T[i2]; i2++;
i++;
Tant que (i1milieu) faire Tmp[i]T[i1]; i1++; i++;
Tant que (i2fin) faire Tmp[i]T[i2]; i2++; i++;
Pour idebut à fin faire T[i]=tmp[i-debut]; // recopier le tableau
Fin
COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
 Exemple 12: Tri par Fusion
36
 Exemple 12: Tri par Fusion
T(n) = 2 T(n/2) + n
a = 2 , b = 2, k = 1  a = bk
T(n) = O(n log n)
COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
37
 Exemple 13 : La suite de Fibonacci
COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
38
 Exemple 13 : La suite de Fibonacci
COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
PARTIE II:
NP-COMPLÉTUDE
 Introduction (Vocabulaire Général)
 Classification de Problème
 Notion de Réduction
 Théorie de NP-Complétude
 Quelques Problèmes NP-Complets
40
PLAN DE LA PARTIE II
41
 Pour des raisons de simplicité et techniques, la théorie de
la NP-Complétude se limite à l’étude des problèmes de
décision dont la solution est formulée en termes
oui/non.
 Un problème de décision est une paire P =(X,Y), où
 X est l’ensemble des instances de P ;
 Y est l’ensemble des instances-«oui»
 X  Y est l’ensemble des instances-«non»
INTRODUCTION
PROBLÈME DE DÉCISION
42
 Un algorithme pour un problème de décision (X,Y) est un
algorithme qui calcule la fonction F : X →{0, 1}, définie
par
 Cette restriction aux problèmes de décision est justifiée
par le fait que les autres problèmes qui ne sont pas de
décision, comme les problèmes d’optimisation et de
recherche, peuvent être facilement transformés en un
problème de décision équivalent.
INTRODUCTION
PROBLÈME DE DÉCISION
43
 Problème de Recherche:
La réduction de la recherche à la décision est faite par test
d'hypothèse (La connexité de G)
INTRODUCTION
PROBLÈME DE DÉCISION VS AUTRES PROBLÈMES
Exemple Entrée Réponse
Algorithme de recherche
(Trouver un arbre recouvrant)
G (X, E) non
orienté
Arbre recouvrant
Algorithme de décision
(Existence d’un arbre recouvrant)
G (X, E) non
orienté
Oui/Non
44
 Problème d’Optimisation:
Lorsque le critère d'optimisation est borné a priori, la
réduction de l'optimisation à la décision est faite par test
d'hypothèse (La connexité de G et le poids de
l’arbre recouvrant).
INTRODUCTION
PROBLÈME DE DÉCISION VS AUTRES PROBLÈMES
Exemple Entrée Réponse
Algorithme d’optimisation
(Trouver un arbre recouvrant de poids
minimum)
G (X, E, L)
non orienté
Arbre
recouvrant
minimum
Algorithme de décision
(Existence d’un arbre recouvrant de poids
 k)
G (X, E, L)
non orienté
Oui/Non
45
 Un algorithme déterministe est un algorithme dont la
solution qu’il produit peut être déduite des spécifications
de l’algorithme lui-même.
 Un algorithme non déterministe est un algorithme dont
la solution est devinée puis vérifiée.
INTRODUCTION
ALGORITHME DÉTERMINISTE VS NON-DÉTERMINISTE
46
 Pour différentes raisons, la convention suivante s’est
imposée en informatique :
Un algorithme est efficace (ou facile) si sa complexité en
temps est polynomiale, c’est-à-dire en O(nk) pour un entier
k.
 Un problème est de complexité polynomiale s'il existe un
algorithme de complexité polynomiale le résolvant.
INTRODUCTION
ALGORITHME EFFICACE
47
 La classe P regroupe tous les problèmes de décision qui
peuvent être résolus par un algorithme déterministe de
complexité polynomiale.
 Exemple:
 Problème de l’existence de l’arbre de recouvrement de poids  k
(Algorithme de Kruskal)
 Problème de l’existence d’un chemin de longueur  k (Algorithme
de Dijkstra)
CLASSIFICATION DES PROBLÈMES
CLASSE P
48
 La classe NP (Non deterministic Polynomial) regroupe
tous les problèmes de décision qui peuvent être résolus
par un algorithme non-déterministe de complexité
polynomiale (i.e. dont la solution peut être vérifiée en
temps polynomial)
 Pour montrer qu’un problème est dans la classe
NP, il suffit de trouver un algorithme qui vérifie si une
solution donnée est valide en temps polynomiale.
CLASSIFICATION DES PROBLÈMES
CLASSE NP
49
 Problème 1: Problème de Satisfaction en calcul
propositionnel (SAT)
 Soit F = (x1, ...., xn) une formule du calcul propositionnel
en Forme Normale Conjonctive, i.e. F = C1  C2  .....  Cm
pour une collection de clauses {C1, C2, ....., Cm} sur l’
ensemble X = {x1, ...., xn } de variables booléennes
(littéraux).
 Décider si F est satisfiable, c-à-d décider s’il existe x1, ....,
xn  {0, 1}n tel que F s’évalue en vraie pour cette valeur de
ses variables (toutes les clauses de C soient vraies).
CLASSIFICATION DES PROBLÈMES
CLASSE NP
50
 Problème 2: Problème de K-SAT (k>2)
 Soit F = (x1, ...., xn) une formule du calcul propositionnel
en Forme Normale Conjonctive, i.e. F = C1  C2  .....  Cm
pour une collection de clauses {C1, C2, ....., Cm} sur
l’ensemble X = {x1, ...., xn } tel que chaque clause
contient exactement k littéraux |Ci| = k.
 Décider si F est satisfiable, c-à-d décider s’il existe x1, ....,
xn  {0, 1}n tel que F s’évalue en vraie pour cette valeur de
ses variables (toutes les clauses de C soient vraies).
CLASSIFICATION DES PROBLÈMES
CLASSE NP
51
 Problème 3: Problème de Coloriage de Graphe
 Étant donnée le graphe G = (X, E) non orienté,
déterminer le nombre minimal de couleurs pour
colorier les sommets X du G tel que deux sommets
adjacent soient de couleur différente.
CLASSIFICATION DES PROBLÈMES
CLASSE NP
52
 Problème 3: Problème de Coloriage de Graphe
 Le problème de décision correspondant est:
 Soient un graphe G = (X, E) et un entier k
 Déterminer si le graphe G admet un coloriage avec au
moins de k couleurs.
 Ce problème de décision est connu sous le nom du
problème K-Coloriabilité
CLASSIFICATION DES PROBLÈMES
CLASSE NP
53
 Problème 4: Problème du cycle hamiltonien
 Soit G = (X, E) un graphe non orienté
 Déterminer s’il existe un cycle hamiltonien, c’est-à-dire décider
s’il existe un chaîne de G passant une fois et une seule par
chacun des sommet et revenant à son point de départ.
 Variantes: chaîne hamiltonien, circuit
hamiltonien, chemin hamiltonienne.
CLASSIFICATION DES PROBLÈMES
CLASSE NP
54
 Clairement, P  NP mais la question qui se pose est :
P = NP ?
 C’est l’une des questions (voire la question) non résolue les
plus célèbres qui défie les chercheurs depuis plus de 40 ans :
elle a été placée parmi la liste des sept problèmes du prix du
millénaire réputés insurmontables posés par le l’institut Clay
Mathematical en 2000. L’institut offre un million de dollars
à qui déterminerait la réponse à cette question.
CLASSIFICATION DES PROBLÈMES
COMPARAISON ENTRE LES DEUX CLASSES P ET NP
55
 Clairement, P  NP mais la question qui se pose est :
P = NP ?
 Intérêt: Si P = NP, alors tous les problèmes vérifiables
polynomialement seraient décidables en temps polynomial.
 La plupart des personnes pensent que ces deux classes sont
distinctes car il y a un très grand nombre de problèmes pour
lesquels on n’arrive pas à produire d’algorithme polynomiaux
depuis plus de 40 ans.
CLASSIFICATION DES PROBLÈMES
COMPARAISON ENTRE LES DEUX CLASSES P ET NP
56
 Soient A et B deux problèmes. Si A se réduit à B (noté A
 B) , alors
 le problème A est plus facile que le problème B, ou
 le problème B est plus difficile que le problème A.
NOTION DE RÉDUCTION
IDÉE
57
 Soient A (XA, YA) et B (XB, YB) deux problèmes de
décision. Une réduction de A vers B (A  B) est une
fonction R : XA  XB calculable en temps polynomial telle
que
aYA ssi R(a) YB :
NOTION DE RÉDUCTION
DÉFINITION
R
58
 Soient A (XA, YA), B (XB, YB) et C (XC, YC) des problèmes
de décision.
 A  A
 A  B et B  C impliquent A  C.
 A  B et B  A impliquent A  B (A et B sont
équivalents).
NOTION DE RÉDUCTION
PROPRIÉTÉS
59
 Intuitivement, si un problème est plus facile qu’un
problème polynomial, alors il est polynomial.
 Formellement :
 Si A  B, et si B  P alors A  P.
 Si A  B, et si A  P alors B  P.
NOTION DE RÉDUCTION
APPLICATION À LA COMPARAISON DE DIFFICULTÉ
60
THÉORIE NP-COMPLÉTUDE
DÉFINITION
 Un problème B est dit NP-complet, si
1. B  NP
2.  A  NP, A  B.
 Les problèmes NP-complets sont donc les plus difficiles de
la classe NP.
61
THÉORIE NP-COMPLÉTUDE
PREUVE
 Pour prouver la NP-complétude d’un problème B, il suffit
de prouver que :
1. B est dans NP;
2. A  B pour un problème A que l’on sait déjà NP-
complet.
 La difficulté est d’arriver à en produire un premier
problème NP-Complet.
62
THÉORIE NP-COMPLÉTUDE
PROBLÈME 1: SAT
 Théorème 1 (Cook-Levin, 1971): Le problème SAT est
NP-complet.
 Le problème SAT est le premier problème montré comme
NP-complet.
 Résultat admis: la preuve consiste en un codage d'une
machine de Turing qui vérifie les solutions du problème
en temps polynomial.
 Ce théorème va être utilisé pour en montrer par réduction
d’autres problèmes NP-Complet.
63
THÉORIE NP-COMPLÉTUDE
PROBLÈME 2: 3-SAT
 Théorème 2 (Cook-Levin, 1971): Le problème de 3-
SAT est NP-Complet.
 Preuve 2: Il faut montrer que :
1. 3-SAT est dans NP;
2. SAT  3-SAT (réduire SAT à 3-SAT).
R
F3-sat
est elle
satisfiable?
Fsat
F3-sat
Non
Oui
64
THÉORIE NP-COMPLÉTUDE
PREUVE 2 : LE PROBLÈME DE DE 3-SAT EST NP-COMPLET
 Preuve 2: SAT  3-SAT (réduire SAT à 3-SAT).
 Toute clause du problème SAT peut être remplacée de manière
équivalente par un ensemble de clauses 3-SAT qui contiennent
chacune exactement trois littéraux.
65
THÉORIE NP-COMPLÉTUDE
PREUVE 2 : LE PROBLÈME DE DE 3-SAT EST NP-COMPLET
 Preuve 2: SAT  3-SAT (réduire SAT à 3-SAT).
 Toute clause du problème SAT peut être remplacée de manière
équivalente par un ensemble de clauses 3-SAT qui contiennent
chacune exactement trois littéraux.
66
THÉORIE NP-COMPLÉTUDE
PREUVE 2 : LE PROBLÈME DE DE 3-SAT EST NP-COMPLET
 Preuve 2: SAT  3-SAT (réduire SAT à 3-SAT).
 La satisfiabilité des clauses Z’ est donc équivalente à la
satisfaisabilité de l’ensemble initiale Z.
 La réduction est manifestement polynomiale ; on a donc bien prouvé
que SAT se réduisait à 3-SAT; ce dernier est donc bien NP-complet
67
THÉORIE NP-COMPLÉTUDE
PROBLÈME 3: 3-COLORIABLE
 Théorème 3: Le problème de 3-Coloriable est NP-
Complet.
 Preuve 3: Il faut montrer que :
1. 3-Coloriable est dans NP;
2. 3-SAT  3-Coloriable (réduire 3-SAT à 3-Coloriable).
R
G
est il 3-
Coloriable
?
F3-sat
G = (V, E)
Non
Oui
68
THÉORIE NP-COMPLÉTUDE
PREUVE 3 : LE PROBLÈME DE 3-COLORIABLE EST NP-COMPLET
 Preuve 3: 3-SAT  3-Coloriable.
On construit un graphe ayant 3 + 2 n + 5 m sommets tels que:
1. Les trois premiers sont notés VRAI, FAUX, NSP. Ces trois sommets
sont reliés deux à deux en triangle, de sorte qu’ils doivent être tous
trois de couleurs différentes. On appellera les couleurs
correspondantes CVRAI(e.g. vert), CFAUX(e.g. rouge), CNSP (e.g. bleu)
NSP
VRAI FAUX
69
THÉORIE NP-COMPLÉTUDE
PREUVE 3 : LE PROBLÈME DE 3-COLORIABLE EST NP-COMPLET
 Preuve 3: 3-SAT  3-Coloriable.
On construit un graphe ayant 3 + 2 n + 5 m sommets tels que:
2. On associe un sommet à chaque variable (Xi) et au complémentaire
de chaque variable (Not Xi). Pour assurer qu’une variable prenne la
valeur VRAI ou FAUX, on construit un triangle dont les sommets
sont Xi, NOT Xi, et NSP.
NSP
Xi
Not
Xi
NSP
Xi
Not
Xi
70
THÉORIE NP-COMPLÉTUDE
PREUVE 3 : LE PROBLÈME DE 3-COLORIABLE EST NP-COMPLET
 Preuve 3: 3-SAT  3-Coloriable.
On construit un graphe ayant 3 + 2 n + 5 m sommets tels que:
3. Pour chaque clause {A, B, C}, on introduit le motif :
 Ce motif est 3-coloriable
A
B
C
3
4
2
0
1
VRAI
71
A
B
C
3
4
2
0
1
VRAI
CVRAI ou CFAUX
A
B
C
3
4
2
0
1
VRAI
CVRAI ou CFAUX
 Preuve 3: 3-SAT  3-Coloriable.
On construit un graphe ayant 3 + 2 n + 5 m sommets tels que:
 Ce motif est 3-coloriable
THÉORIE NP-COMPLÉTUDE
PREUVE 3 : LE PROBLÈME DE 3-COLORIABLE EST NP-COMPLET
72
 Preuve 3: 3-SAT  3-Coloriable.
On construit un graphe ayant 3 + 2 n + 5 m sommets tels que:
 Ce motif est 3-coloriable
THÉORIE NP-COMPLÉTUDE
PREUVE 3 : LE PROBLÈME DE 3-COLORIABLE EST NP-COMPLET
A
B
C
3
4
2
0
1
VRAI
CVRAI ou CFAUX
A
B
C
3
4
2
0
1
VRAI
CVRAI ou CFAUX
73
THÉORIE NP-COMPLÉTUDE
PREUVE 3 : LE PROBLÈME DE 3-COLORIABLE EST NP-COMPLET
 Preuve 3: 3-SAT  3-Coloriable.
 Considérons alors le graphe formé des trois sommets distingués, des
triangles formés sur les variables, et des motifs donnés. Si ce graphe
est 3-coloriable, alors en particulier tout sous-graphe est coloriable.
 À partir d’une 3-coloration du graphe, on construit une affectation de
valeurs de vérité en mettant à 1 toutes les variables coloriées par
CVRAI. Cette affectation est cohérente (une variable et son
complémentaire ont bien une valeur opposée) et au moins une
variable par clause est à 1.
 Inversement, étant donné une affectation de valeurs de vérité, il est
aisé de déduire une 3-coloration du graphe.
74
 Preuve 3: 3-SAT  3-Coloriable.
 Exercice: Soit F =
1. Donner le graphe qui représente ces clauses et
déduire une affectation de valeurs de vérité qui
satisfait F.
2. Montrer que le graphe est 3-coloriable pour
l’affectation de valeurs de vérité suivante (x1, x2, x3)
= (0, 0, 0).
THÉORIE NP-COMPLÉTUDE
PREUVE 3 : LE PROBLÈME DE 3-COLORIABLE EST NP-COMPLET
75
THÉORIE NP-COMPLÉTUDE
PREUVE 3 : LE PROBLÈME DE 3-COLORIABLE EST NP-COMPLET
 Preuve 3: 3-SAT  3-Coloriable.
 L’existence d’une 3-coloration du graphe est donc
équivalente à la satisfaisabilité de la formule initiale.
 La réduction est manifestement polynomiale ; on a donc
bien prouvé que 3-SAT se réduisait à 3-COLORABILITE ;
ce dernier est donc bien NP-complet.
76
THÉORIE NP-COMPLÉTUDE
PROBLÈME 4: CYCLE HAMILTONIEN
 Théorème 4 (Karp, 1972): Le problème de Cycle
Hamiltonien est NP-Complet.
 Preuve 4: Il faut montrer que :
1. Cycle Hamiltonien est dans NP;
2. Plusieurs méthodes:
a. 3-SAT  Cycle Hamiltonien.
b. 3-SAT  Recouvrement de Sommets Cycle Hamiltonien
c. 3-SAT  Stable  Recouvrement de Sommets  Cycle
hamiltonien
77
THÉORIE NP-COMPLÉTUDE
PREUVE 4 : LE PROBLÈME DE CYCLE HAMILTONIEN EST NP-COMPLET
 Preuve 4 (Papadimitriou et Steiglitz, 1982) :
3-SAT  Cycle Hamiltonien.
R
G
contient il
un C. H?
F3-sat
G = (V, E)
Non
Oui
78
THÉORIE NP-COMPLÉTUDE
PREUVE 4 : LE PROBLÈME DE CYCLE HAMILTONIEN EST NP-COMPLET
 Preuve 4 (Papadimitriou et Steiglitz, 1982) :
 On construit le graphe de la manière suivante:
1. Pour chaque variable, on introduit le sous graphe suivant:
2. Chaque nouvelle variable est liée à la précédente
X
Not X
X1 X2 Xn
79
THÉORIE NP-COMPLÉTUDE
PREUVE 4 : LE PROBLÈME DE CYCLE HAMILTONIEN EST NP-COMPLET
 Preuve 4 (Papadimitriou et Steiglitz, 1982) :
 On construit le graphe de la manière suivante:
3. Pour chaque clause, on introduit la structure B :
Aucun cycle hamiltonien de
G ne peut traverser à la fois
L1, L2 et L3.
UU' L1L2L3
80
THÉORIE NP-COMPLÉTUDE
PREUVE 4 : LE PROBLÈME DE CYCLE HAMILTONIEN EST NP-COMPLET
 Preuve 4 (Papadimitriou et Steiglitz, 1982) :
 On construit le graphe de la manière suivante:
4. Les clauses sont liées comme suit:
C1 C2 Cm
X1 X2 Xn
81
THÉORIE NP-COMPLÉTUDE
PREUVE 4 : LE PROBLÈME DE CYCLE HAMILTONIEN EST NP-COMPLET
 Preuve 4 (Papadimitriou et Steiglitz, 1982) :
 On construit le graphe de la manière suivante:
5. Les littéraux de chaque clause sont liés aux variables par la
structure A comme suit:
82
THÉORIE NP-COMPLÉTUDE
PREUVE 4 : LE PROBLÈME DE CYCLE HAMILTONIEN EST NP-COMPLET
 Preuve 4 (Papadimitriou et Steiglitz, 1982) :
 Par exemple, le graphe suivant présente ces clauses
C1 C2 C3
X1 X2 X3
A A
A
A
A
A
A
A A
83
THÉORIE NP-COMPLÉTUDE
PREUVE 4 : LE PROBLÈME DE CYCLE HAMILTONIEN EST NP-COMPLET
 Preuve 4 (Papadimitriou et Steiglitz, 1982) :
 Nous affirmons maintenant que G est hamiltonien si et seulement si
F3-sat est satisfaisable. Soit C un cycle hamiltonien. On définit un
assignement en fixant un littéral à vrai si et seulement si C contient
l’arête correspondante. D’après les propriétés des structures A et B,
chaque clause contient un littéral qui est vrai.
 Inversement, tout assignement satisfaisant définit un ensemble
d’arêtes qui correspondent à des littéraux qui sont vrai. Comme
chaque clause contient un littéral qui est vrai, cet ensemble d’arêtes
peut être complété en un cycle hamiltonien de G.
 Enfin, la réduction est trivialement polynomiale.
SOURCES DE CE COURS
 Frédéric Vivien, Algorithmique avancée, École Normale Supérieure de Lyon, 2002.,
pp. 93. Disponible sur http://perso.ens-lyon.fr/frederic.vivien/Enseignement/Algo-
2001-2002/Cours.pdf
 Slim Msfar, Algorithmique et Complexité, 2012, pp 104. Disponible sur
http://p835.phpnet.org/testremorque/upload/catalogue/coursalgorithmi.pdf
 Djamel-Eddine ZEGOUR, O-Notation, École nationale Supérieure d’Informatique, pp
33. Disponible sur
http://www.zegour.netii.net/Site%20secondaire/Mcp/Cours%20ppt/1_o-notation.pdf
 Olivier Bournez, Fondements de l’informatique Logique, modèles, et calculs, Chapitre
12: Quelques problèmes NP-complets, Cours INF423 de l’Ecole Polytechnique, 2013,
pp. 234.
 Jean Fonlupt et Alexandre Skoda. Optimisation combinatoire – Théorie et
algorithmes, Chapitre 15: NP-complétude, 2010, 664p.
 Gilles Schaeffer, Cours 4: Réduction et NP-complétude, 2010, pp. 124, Disponible sur
http://www.enseignement.polytechnique.fr/informatique/INF550/Cours1011/INF550-
2010-5.pdf
 Johanne Cohen, La NP-complétude, PRISM/CNRS, 2012, pp. 95, Disponible sur
http://www.prism.uvsq.fr/~joco/enseignement/Complexite.pdf 84

Contenu connexe

Tendances

Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivité
Sana Aroussi
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdf
MbarkiIsraa
 
Chapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerChapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régner
Sana Aroussi
 
Traitement d'image sous Matlab
Traitement d'image sous Matlab  Traitement d'image sous Matlab
Traitement d'image sous Matlab
Hajer Dahech
 
cours de complexité algorithmique
cours de complexité algorithmiquecours de complexité algorithmique
cours de complexité algorithmique
Atef MASMOUDI
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
Ines Ouaz
 
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 iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de tri
Sana Aroussi
 
Examen sybase - Administration base de donnees
Examen sybase - Administration base de donneesExamen sybase - Administration base de donnees
Examen sybase - Administration base de donnees
webreaker
 
Examen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de donnéesExamen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de données
Ines Ouaz
 
correction examen rattrapage 2012 transmission numérique
correction examen rattrapage 2012 transmission numérique correction examen rattrapage 2012 transmission numérique
correction examen rattrapage 2012 transmission numérique
omar bllaouhamou
 
Cours algorithme
Cours algorithmeCours algorithme
Cours algorithme
badr zaimi
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
Yassine Badri
 
Merise exercices-mcd_corriges
Merise  exercices-mcd_corrigesMerise  exercices-mcd_corriges
Merise exercices-mcd_corriges
Mehdi El
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigés
Majid CHADAD
 
Limites classiques de toutes les fonctions 4
Limites classiques de toutes les fonctions 4Limites classiques de toutes les fonctions 4
Limites classiques de toutes les fonctions 4
ulrich loemba
 
Chapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiquesChapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiques
Sana Aroussi
 
Ordonnancement exercices
Ordonnancement exercicesOrdonnancement exercices
Ordonnancement exercices
Selman Dridi
 
Chapitre vi np complétude
Chapitre vi np complétudeChapitre vi np complétude
Chapitre vi np complétude
Sana Aroussi
 

Tendances (20)

Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivité
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdf
 
Chapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerChapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régner
 
Traitement d'image sous Matlab
Traitement d'image sous Matlab  Traitement d'image sous Matlab
Traitement d'image sous Matlab
 
cours de complexité algorithmique
cours de complexité algorithmiquecours de complexité algorithmique
cours de complexité algorithmique
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
 
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 iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de tri
 
Examen sybase - Administration base de donnees
Examen sybase - Administration base de donneesExamen sybase - Administration base de donnees
Examen sybase - Administration base de donnees
 
Récursivité
RécursivitéRécursivité
Récursivité
 
Examen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de donnéesExamen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de données
 
correction examen rattrapage 2012 transmission numérique
correction examen rattrapage 2012 transmission numérique correction examen rattrapage 2012 transmission numérique
correction examen rattrapage 2012 transmission numérique
 
Cours algorithme
Cours algorithmeCours algorithme
Cours algorithme
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
 
Merise exercices-mcd_corriges
Merise  exercices-mcd_corrigesMerise  exercices-mcd_corriges
Merise exercices-mcd_corriges
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigés
 
Limites classiques de toutes les fonctions 4
Limites classiques de toutes les fonctions 4Limites classiques de toutes les fonctions 4
Limites classiques de toutes les fonctions 4
 
Chapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiquesChapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiques
 
Ordonnancement exercices
Ordonnancement exercicesOrdonnancement exercices
Ordonnancement exercices
 
Chapitre vi np complétude
Chapitre vi np complétudeChapitre vi np complétude
Chapitre vi np complétude
 

Similaire à Chapitre 3 NP-complétude

Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
Chahrawoods Dmz
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite
Saddem Chikh
 
transparents-Algo-complexite.pdf
transparents-Algo-complexite.pdftransparents-Algo-complexite.pdf
transparents-Algo-complexite.pdf
abdallahyoubiidrissi1
 
cours algorithme
cours algorithmecours algorithme
cours algorithme
mohamednacim
 
Cours_3_0910.pdf
Cours_3_0910.pdfCours_3_0910.pdf
Cours_3_0910.pdf
LAHCIENEELHOUCINE
 
Cours_3_0910_2.pdf
Cours_3_0910_2.pdfCours_3_0910_2.pdf
Cours_3_0910_2.pdf
SongSonfack
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicité
Sana REFAI
 
124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011
sunprass
 
Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)
DriNox NordisTe
 
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
 
Présentation Finale - Partie I.pptx
Présentation Finale - Partie I.pptxPrésentation Finale - Partie I.pptx
Présentation Finale - Partie I.pptx
ouassityoussef
 
Les algorithmes recurrents
Les algorithmes recurrentsLes algorithmes recurrents
Les algorithmes recurrents
mohamed_SAYARI
 
Résumé Algorithme et Programmation
Résumé Algorithme et ProgrammationRésumé Algorithme et Programmation
Résumé Algorithme et Programmation
borhen boukthir
 
Resume algorithme
Resume algorithmeResume algorithme
Resume algorithme
NAWEL_DERBEL
 
4 si ds1 (algo)
4 si   ds1 (algo)4 si   ds1 (algo)
4 si ds1 (algo)
Abdelmajid ElGhwaila
 
Correction td2
Correction td2Correction td2
Correction td2
USINEALIMENTS
 
chap 3 complexité (3).pdf
chap 3 complexité (3).pdfchap 3 complexité (3).pdf
chap 3 complexité (3).pdf
donixwm
 
TAD (1).pptx
TAD (1).pptxTAD (1).pptx
TAD (1).pptx
SergeOngolo
 

Similaire à Chapitre 3 NP-complétude (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
 
transparents-Algo-complexite.pdf
transparents-Algo-complexite.pdftransparents-Algo-complexite.pdf
transparents-Algo-complexite.pdf
 
Video
VideoVideo
Video
 
cours algorithme
cours algorithmecours algorithme
cours algorithme
 
Cours_3_0910.pdf
Cours_3_0910.pdfCours_3_0910.pdf
Cours_3_0910.pdf
 
Cours_3_0910_2.pdf
Cours_3_0910_2.pdfCours_3_0910_2.pdf
Cours_3_0910_2.pdf
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicité
 
124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011
 
Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)
 
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
 
Présentation Finale - Partie I.pptx
Présentation Finale - Partie I.pptxPrésentation Finale - Partie I.pptx
Présentation Finale - Partie I.pptx
 
Les algorithmes recurrents
Les algorithmes recurrentsLes algorithmes recurrents
Les algorithmes recurrents
 
Résumé Algorithme et Programmation
Résumé Algorithme et ProgrammationRésumé Algorithme et Programmation
Résumé Algorithme et Programmation
 
Resume algorithme
Resume algorithmeResume algorithme
Resume algorithme
 
4 si ds1 (algo)
4 si   ds1 (algo)4 si   ds1 (algo)
4 si ds1 (algo)
 
Correction td2
Correction td2Correction td2
Correction td2
 
chap 3 complexité (3).pdf
chap 3 complexité (3).pdfchap 3 complexité (3).pdf
chap 3 complexité (3).pdf
 
TAD (1).pptx
TAD (1).pptxTAD (1).pptx
TAD (1).pptx
 
Exercice intégrales
Exercice intégralesExercice intégrales
Exercice intégrales
 

Plus de Sana Aroussi

Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
Sana Aroussi
 
Gestion des threads
Gestion des threadsGestion des threads
Gestion des threads
Sana Aroussi
 
Chapitre 2 plus court chemin
Chapitre 2 plus court cheminChapitre 2 plus court chemin
Chapitre 2 plus court chemin
Sana Aroussi
 
Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de recherche
Sana Aroussi
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
Sana Aroussi
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
Sana Aroussi
 
Chapitre 5 arbres binaires
Chapitre 5 arbres binairesChapitre 5 arbres binaires
Chapitre 5 arbres binaires
Sana Aroussi
 
Chapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court cheminChapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court chemin
Sana Aroussi
 
Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de recherche
Sana Aroussi
 
Chapitre 6 hachage statique
Chapitre 6 hachage statiqueChapitre 6 hachage statique
Chapitre 6 hachage statique
Sana Aroussi
 
Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)
Sana Aroussi
 
Chapitre 3 structures séquentielles
Chapitre 3 structures séquentiellesChapitre 3 structures séquentielles
Chapitre 3 structures séquentielles
Sana Aroussi
 
Chapitre 1 rappel
Chapitre 1   rappelChapitre 1   rappel
Chapitre 1 rappel
Sana Aroussi
 
Chapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busChapitre iv entrées sorties et bus
Chapitre iv entrées sorties et bus
Sana Aroussi
 
Chapitre iii interruptions
Chapitre iii interruptionsChapitre iii interruptions
Chapitre iii interruptions
Sana Aroussi
 
Chapitre ii mémoires
Chapitre ii mémoiresChapitre ii mémoires
Chapitre ii mémoires
Sana Aroussi
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récents
Sana Aroussi
 
Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86
Sana Aroussi
 
Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeurs
Sana Aroussi
 
Chapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateurChapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateur
Sana Aroussi
 

Plus de Sana Aroussi (20)

Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Gestion des threads
Gestion des threadsGestion des threads
Gestion des threads
 
Chapitre 2 plus court chemin
Chapitre 2 plus court cheminChapitre 2 plus court chemin
Chapitre 2 plus court chemin
 
Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de recherche
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre 5 arbres binaires
Chapitre 5 arbres binairesChapitre 5 arbres binaires
Chapitre 5 arbres binaires
 
Chapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court cheminChapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court chemin
 
Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de recherche
 
Chapitre 6 hachage statique
Chapitre 6 hachage statiqueChapitre 6 hachage statique
Chapitre 6 hachage statique
 
Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)Chapitre 5 structures hierarchiques (arbres)
Chapitre 5 structures hierarchiques (arbres)
 
Chapitre 3 structures séquentielles
Chapitre 3 structures séquentiellesChapitre 3 structures séquentielles
Chapitre 3 structures séquentielles
 
Chapitre 1 rappel
Chapitre 1   rappelChapitre 1   rappel
Chapitre 1 rappel
 
Chapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busChapitre iv entrées sorties et bus
Chapitre iv entrées sorties et bus
 
Chapitre iii interruptions
Chapitre iii interruptionsChapitre iii interruptions
Chapitre iii interruptions
 
Chapitre ii mémoires
Chapitre ii mémoiresChapitre ii mémoires
Chapitre ii mémoires
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récents
 
Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86
 
Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeurs
 
Chapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateurChapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateur
 

Dernier

Burkina Faso libraries newsletter for June 2024
Burkina Faso libraries newsletter for June 2024Burkina Faso libraries newsletter for June 2024
Burkina Faso libraries newsletter for June 2024
Friends of African Village Libraries
 
MS-203 Microsoft 365 Messaging Study Guide to prepare the certification
MS-203 Microsoft 365 Messaging Study Guide to prepare the certificationMS-203 Microsoft 365 Messaging Study Guide to prepare the certification
MS-203 Microsoft 365 Messaging Study Guide to prepare the certification
OlivierLumeau1
 
Microbiologie: le monde microbien et les techniques de mise en évidence.
Microbiologie: le monde microbien et les techniques de mise en évidence.Microbiologie: le monde microbien et les techniques de mise en évidence.
Microbiologie: le monde microbien et les techniques de mise en évidence.
MahouwetinJacquesGBO
 
Présentation3.pptxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Présentation3.pptxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPrésentation3.pptxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Présentation3.pptxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 
1eT Revolutions Empire Revolution Empire
1eT Revolutions Empire Revolution Empire1eT Revolutions Empire Revolution Empire
1eT Revolutions Empire Revolution Empire
NadineHG
 
Cours Gestion d’actifs BNP -- CAMGESTION
Cours Gestion d’actifs BNP -- CAMGESTIONCours Gestion d’actifs BNP -- CAMGESTION
Cours Gestion d’actifs BNP -- CAMGESTION
Sékou Oumar SYLLA
 
A2-Faire-une-appreciation positive et/ou négative (A2)
A2-Faire-une-appreciation positive et/ou négative (A2)A2-Faire-une-appreciation positive et/ou négative (A2)
A2-Faire-une-appreciation positive et/ou négative (A2)
lebaobabbleu
 
Formation M2i - Attitude constructive : développer l'art de l'optimisme
Formation M2i - Attitude constructive : développer l'art de l'optimismeFormation M2i - Attitude constructive : développer l'art de l'optimisme
Formation M2i - Attitude constructive : développer l'art de l'optimisme
M2i Formation
 
Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...
Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...
Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...
dokposeverin
 
A2-Critiques-gastronomiques activités critiques
A2-Critiques-gastronomiques activités critiquesA2-Critiques-gastronomiques activités critiques
A2-Critiques-gastronomiques activités critiques
lebaobabbleu
 
[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf
[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf
[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf
mcevapi3
 
apprendre-a-programmer-avec-python-3.pdf
apprendre-a-programmer-avec-python-3.pdfapprendre-a-programmer-avec-python-3.pdf
apprendre-a-programmer-avec-python-3.pdf
kamouzou878
 
Zineb Mekouar.pptx Écrivaine marocaine
Zineb Mekouar.pptx   Écrivaine  marocaineZineb Mekouar.pptx   Écrivaine  marocaine
Zineb Mekouar.pptx Écrivaine marocaine
Txaruka
 
MARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptx
MARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptxMARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptx
MARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptx
Martin M Flynn
 

Dernier (14)

Burkina Faso libraries newsletter for June 2024
Burkina Faso libraries newsletter for June 2024Burkina Faso libraries newsletter for June 2024
Burkina Faso libraries newsletter for June 2024
 
MS-203 Microsoft 365 Messaging Study Guide to prepare the certification
MS-203 Microsoft 365 Messaging Study Guide to prepare the certificationMS-203 Microsoft 365 Messaging Study Guide to prepare the certification
MS-203 Microsoft 365 Messaging Study Guide to prepare the certification
 
Microbiologie: le monde microbien et les techniques de mise en évidence.
Microbiologie: le monde microbien et les techniques de mise en évidence.Microbiologie: le monde microbien et les techniques de mise en évidence.
Microbiologie: le monde microbien et les techniques de mise en évidence.
 
Présentation3.pptxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Présentation3.pptxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPrésentation3.pptxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Présentation3.pptxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
1eT Revolutions Empire Revolution Empire
1eT Revolutions Empire Revolution Empire1eT Revolutions Empire Revolution Empire
1eT Revolutions Empire Revolution Empire
 
Cours Gestion d’actifs BNP -- CAMGESTION
Cours Gestion d’actifs BNP -- CAMGESTIONCours Gestion d’actifs BNP -- CAMGESTION
Cours Gestion d’actifs BNP -- CAMGESTION
 
A2-Faire-une-appreciation positive et/ou négative (A2)
A2-Faire-une-appreciation positive et/ou négative (A2)A2-Faire-une-appreciation positive et/ou négative (A2)
A2-Faire-une-appreciation positive et/ou négative (A2)
 
Formation M2i - Attitude constructive : développer l'art de l'optimisme
Formation M2i - Attitude constructive : développer l'art de l'optimismeFormation M2i - Attitude constructive : développer l'art de l'optimisme
Formation M2i - Attitude constructive : développer l'art de l'optimisme
 
Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...
Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...
Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...
 
A2-Critiques-gastronomiques activités critiques
A2-Critiques-gastronomiques activités critiquesA2-Critiques-gastronomiques activités critiques
A2-Critiques-gastronomiques activités critiques
 
[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf
[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf
[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf
 
apprendre-a-programmer-avec-python-3.pdf
apprendre-a-programmer-avec-python-3.pdfapprendre-a-programmer-avec-python-3.pdf
apprendre-a-programmer-avec-python-3.pdf
 
Zineb Mekouar.pptx Écrivaine marocaine
Zineb Mekouar.pptx   Écrivaine  marocaineZineb Mekouar.pptx   Écrivaine  marocaine
Zineb Mekouar.pptx Écrivaine marocaine
 
MARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptx
MARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptxMARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptx
MARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptx
 

Chapitre 3 NP-complétude

  • 1. CHAPITRE III: NP-COMPLÉTUDE Université Blida 1 Faculté des Sciences Département d’Informatique Master GSI (Génie des Systèmes Informatiques) Semestre 1 Mme AROUSSI 2015-2016 Disponible sur https://sites.google.com/a/esi.dz/s-aroussi/
  • 2. PARTIE I: RAPPEL SUR LA COMPLEXITÉ
  • 3.  Introduction  Définitions  Type de la Complexité  Notation de de Landau  Classes de complexité  Calcul de la Complexité des algorithmes (itératifs & récursifs) 3 PLAN DE LA PARTIE I
  • 4. 4  Le temps d’exécution d’un algorithme dépend des facteurs suivants :  Les données du programme,  La qualité du compilateur (langage utilisé),  La machine utilisée (vitesse, mémoire, ),  La complexité de l’algorithme lui-même,  On cherche à mesurer la complexité d’un algorithme indépendamment de la machine et du langage utilisés, c.- à-d. uniquement en fonction de la taille des données que l’algorithme doit traiter. INTRODUCTION
  • 5. 5 INTRODUCTION EXEMPLE: CALCUL DE LA VALEUR D’UN POLYNÔME  Soit P(X) un polynôme de degré n P(X) = anXn + an-1Xn-1 + ... + a1X + a0 , Où: n : entier naturel an, an-1, ..., a1, a0 : les coefficients du polynôme qui sont stockés dans le tableau T[0..n] d’entiers.  Ecrire la fonction Calcul_poly(T: Tableau[0..n]d’entier, X:entier): entier.
  • 6. 6 2ème variante Début Inter1 P 0 Pour  0 à n faire P  P+ Inter *T[i] Inter  Inter * X FP Fin 1ère variante Début P0 Pour i  0 à n faire P  P+ T[i] * Puiss (X, i) FP Fin 1ère Complexité :1ère Complexité : (n+1) additions (n+1) multiplications (n+1) puissances Au moins 3 variables 2ème Complexité : (n+1) additions 2(n+1) multiplications 3 variables INTRODUCTION EXEMPLE: CALCUL DE LA VALEUR D’UN POLYNÔME
  • 7. 7  3ème variante: Schéma de Horner P(X) = anXn + an-1Xn-1 + ... +a2X2 + a1X + a0 =(anXn-1 + an-1Xn-2 + ... +a2X + a1)X + a0 = ((anXn-1 + an-1Xn-2 + ... +a2)X+ a1)X + a0 = ............ = (....(((anX + an-1)X+ an-2 )X.....)X+ ... +a2)X+ a1)X + a0 3ème variante Début P  T[n] Pour i  n-1 à 0 faire P  P*X + T[i] FP Fin 3ème Complexité : n additions n multiplications 2 variables INTRODUCTION EXEMPLE: CALCUL DE LA VALEUR D’UN POLYNÔME
  • 8. 8 Variantes Première Deuxième Troisième Complexité en temps (en terme de nombre d’opérations) (n+1) additions (n+1) multiplications (n+1) puissances (n+1) additions 2(n+1) multiplications n additions n multiplications Complexité en espace mémoire (Variables) P, i et les variables de la fonction puissance appelée (n+1) fois P, i et Inter P, i  Nécessité d’estimer la complexité en temps et en espace d’un algorithme avant de l’écrire et l’implémenter INTRODUCTION EXEMPLE: CALCUL DE LA VALEUR D’UN POLYNÔME
  • 9. 9  La complexité (temporelle) d’un algorithme est la mesure du nombre d’opérations fondamentales (affectations, comparaisons, opérations arithmétiques) qu’il effectue sur un jeu de données. Elle est exprimée comme une fonction de la taille du jeu de données.  Elle permet en particulier de comparer deux algorithmes traitant le même calcul. En d’autres termes, elle permet de déterminer si un algorithme A et meilleur qu’un algorithme B indépendamment de la machine, du langage de programmation, du compilateur et des détails d’implémentation. DÉFINITION
  • 10. 10 TYPE DE LA COMPLEXITÉ Complexité au meilleur •C'est le plus petit nombre d'opérations qu'aura à exécuter l'algorithme sur un jeu de données de taille n. •Tmin(n) = mindDn T(d) Complexité en moyenne •C’est la moyenne des complexités de l’algorithme sur des jeux de données de taille n •Tmoy(n) = ΣdDn T(d) / |Dn| Complexité au pire • C’est le plus grand nombre d’opérations qu’aura à exécuter l’algorithme sur un jeu de données de taille n •Tmax(n) = maxdDn T(d)  Notations:  Dn l’ensemble des données de taille n  T(n) le nombre d’opération sur un jeu donnée de taille n
  • 11. 11  Exemple: T(n) = O(n2) veut dire qu'il existe une constante c > 0 et une constante n0 > 0 tel que pour tout n > n0 T(n) <= c n2  La notation de Landau « O » est celle qui est le plus communément utilisée pour expliquer formellement les performances d'un algorithme. NOTATION DE LANDAU  Cette notation exprime la limite supérieure d'une fonction dans un facteur constant.
  • 12. 12  Les règles de la notation O sont les suivantes :  Les termes constants : O(c) = O(1)  Les constantes multiplicatives sont omises : O(cT ) = c O(T) = O(T)  L'addition est réalisée en prenant le maximum : O(T1) + O(T2) = O(T1 + T2) = max(O(T1);O(T2))  La multiplication reste inchangée O(T1)O(T2) = O(T1T2) NOTATION DE LANDAU
  • 13. 13  Supposant que le temps d'exécution d’un algorithme est décrit par la fonction T(n) = 3n2+10n+10, Calculer O(T(n))? O(T(n)) = O(3 n2 + 10n + 10) = O(max (3 n2, 10n, 10)) = O(3 n2) = O (n2)  Remarque: Pour n = 10 nous avons :  Temps d'exécution de 3 n2 : 3(10)2 / 3(10)2+10(10)+10 = 73,2%  Temps d'exécution de 10n : 10(10) / 3(10)2+10(10)+10 = 24,4%  Temps d'exécution de 10 : 10 / 3(10)2+10(10)+10 = 2,4% Le poids de 3 n2 devient encore plus grand quand n = 100, soit 96,7% On peut négliger les quantités 10n et 10. Ceci explique les règles de la notation O. NOTATION DE LANDAU
  • 14. 14 CLASSES DE COMPLEXITÉ Classe Notation O Exemple Constante O(1) Accéder au premier élément d'un ensemble de données Linéaire O(n) Parcourir un ensemble de données Logarithmique O(log(n)) Couper un ensemble de données en deux parties égales, puis couper ces moitiés en deux parties égales, etc. Quasi-linéaire O(n log(n)) Couper répétitivement un ensemble de données en deux et combiner les solutions partielles pour calculer la solution générale Quadratique O(n2) Parcourir un ensemble de données en utilisant deux boucles imbriquées Polynomiale O(nP) Parcourir un ensemble de données en utilisant P boucles imbriquées Exponentielle O(an) Générer tous les sous-ensembles possibles d'un ensemble de données
  • 16. 16 CALCUL DE LA COMPLEXITÉ 1. Cas d'une instruction simple (écriture, lecture, affectation ) : Le temps d'exécution de chaque instruction simple est O(1). 2. Cas d'une suite d'instructions simples: Le temps d ’exécution d'une séquence d'instruction est déterminée par la règle de la somme. C'est donc le temps de la séquence qui a le plus grand temps d ’exécution: O(T) = O (T1 + T2) = max(O(T1);O(T2)) .
  • 17. 17 CALCUL DE LA COMPLEXITÉ  Exemple 2: Permutation (Var S: tableau [0..n-1] d’entier, i, j: entier) O(T) = O (T1 + T2 + T3) = O(1) tmpS[i] O(T1) = O(1) S[i]S[j] O(T2) = O(1) S[j]tmp O(T3) = O(1)
  • 18. 18 CALCUL DE LA COMPLEXITÉ 3. Cas d'un traitement conditionnel: Le temps d'exécution d'une instruction SI est le temps d ’exécution des instructions exécutées sous condition, plus le temps pour évaluer la condition. Pour une alternative, on se place dans le cas le plus défavorable.
  • 19. 19 CALCUL DE LA COMPLEXITÉ 4. Cas d'un traitement itératif : Le temps d ’exécution d'une boucle est la somme du temps pour évaluer le corps et du temps pour évaluer la condition. Souvent ce temps est le produit du nombre d'itérations de la boucle par le plus grand temps possible pour une exécution du corps. Boucle Pour Boule Tant que
  • 20. 20 CALCUL DE LA COMPLEXITÉ  Exemple 2: Recherche séquentielle (S: tableau [0..n-1] d’entier, x: entier): booléen i 0 c1 Trouve  faux c2 Tant que ((i<n) et (non trouve)) faire Condition = c3; nombre d’itération = nDTQ Si (S[i] = x) alors c4 Trouve  vrai c5 i i + 1 c6 FTQ Retourner trouve c7 T(n) = c1+c2+n*(c3+c4+c5+c6) + c7 = c8 + c9 *n O(T) = O(c8 + c9 *n) = O (n)
  • 21. 21 CALCUL DE LA COMPLEXITÉ  Exemple 3: Tri par sélection (Var T: Tableau [1.. N] d’entier)
  • 22. 22 CALCUL DE LA COMPLEXITÉ  Exemple 4:
  • 23. 23 CALCUL DE LA COMPLEXITÉ  Exemple 5:
  • 24. CALCUL DE LA COMPLEXITÉ  Exemple 6:
  • 25. CALCUL DE LA COMPLEXITÉ  Exemple 7:
  • 26. 26  La complexité d’un algorithme récursif se fait par la résolution d’une de ces équations de récurrence: COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
  • 27. 27  Exemple 8: la fonction factorielle Facto (n: entier): entier Début Si (n=1) alors retourner 1 Sinon retourner n*Facto (n-1); Fin COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
  • 28. 28  Exemple 8: la fonction factorielle i.e. T(n) = T(n-1) + f(n) avec a = 1, T(0) = 0, f(n) = b; O (T) = O (n) COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
  • 29. 29  Exemple 9: T(n) = 2*T(n-1) + c avec T(0) = 0 O (T) = O(2n) COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
  • 30. 30  Exemple 10: Recherche du maximum. COMPLEXITÉ DES ALGORITHMES RÉCURSIFS Fonction maximum ( Tab: Tableau , indDeb, indFin:entier) Si ( indDeb = indFin) alors retourner (indDeb) Sinon M(indDeb+indFin) div 2 // division du problème en 2 sous-problèmes k1  maximum (Tab, indDeb, m ) // régner sur le 1er sous-problème k2 maximum (Tab, m+1, indFin) // régner sur le 2ème sous-problème // Combiner les solutions Si (Tab[k1] > Tab[k2]) alors retourner (k1) Sinon retourner (k2)
  • 31. 31  Exemple 10: Recherche du maximum. T(n) = 2 T(n/2) + c a = 2 , b = 2, k = 0  a > bk T(n) = O(n) COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
  • 32. 32 Fonction RechDicho(Tab :Tableau, borneinf, bornesup, x :entier) : bool Si (borneinf<=bornesup) alors mil  (borneinf+bornesup) DIV 2 ; Si (Tab[mil]=x) Alors retourner (vrai) Sinon Si (Tab[mil]>x) Alors Retourner (RechDicho(Tab, borneinf, mil-1, x)) Sinon Retourner(RechDicho(Tab, mil+1, bornesup, x)) Sinon Retourner (Faux)  Exemple 11: Recherche dichotomique. COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
  • 33. 33  Exemple 11: Recherche dichotomique T(n) = T(n/2) + c a = 1 , b = 2, k = 0  a = bk T(n) = O(log(n)) COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
  • 34. 34  Exemple 12: Tri par Fusion COMPLEXITÉ DES ALGORITHMES RÉCURSIFS Tri_Fusion (T: tableau, debut, fin : entier) Debut Si (debut<fin) alors milieu  (debut + fin) /2 Tri_Fusion(T, debut, milieu); Tri_fusion (T, milieu + 1, fin); Interclasser (T, debut, milieu, fin) FSI Fin
  • 35. 35 Procédure Interclasser(VAR T: tableau, debut, milieu, fin: entier) Debut Tmp: tableau temporaire du taille fin-debut+1 i 0; i1  debut, i2  milieu + 1; Tant que (i1≤milieu) et (i2 ≤ fin) faire Si (T[i1]<T[i2]) alors Tmp[i]T[i1]; i1++; Sinon Tmp [i]T[i2]; i2++; i++; Tant que (i1milieu) faire Tmp[i]T[i1]; i1++; i++; Tant que (i2fin) faire Tmp[i]T[i2]; i2++; i++; Pour idebut à fin faire T[i]=tmp[i-debut]; // recopier le tableau Fin COMPLEXITÉ DES ALGORITHMES RÉCURSIFS  Exemple 12: Tri par Fusion
  • 36. 36  Exemple 12: Tri par Fusion T(n) = 2 T(n/2) + n a = 2 , b = 2, k = 1  a = bk T(n) = O(n log n) COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
  • 37. 37  Exemple 13 : La suite de Fibonacci COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
  • 38. 38  Exemple 13 : La suite de Fibonacci COMPLEXITÉ DES ALGORITHMES RÉCURSIFS
  • 40.  Introduction (Vocabulaire Général)  Classification de Problème  Notion de Réduction  Théorie de NP-Complétude  Quelques Problèmes NP-Complets 40 PLAN DE LA PARTIE II
  • 41. 41  Pour des raisons de simplicité et techniques, la théorie de la NP-Complétude se limite à l’étude des problèmes de décision dont la solution est formulée en termes oui/non.  Un problème de décision est une paire P =(X,Y), où  X est l’ensemble des instances de P ;  Y est l’ensemble des instances-«oui»  X Y est l’ensemble des instances-«non» INTRODUCTION PROBLÈME DE DÉCISION
  • 42. 42  Un algorithme pour un problème de décision (X,Y) est un algorithme qui calcule la fonction F : X →{0, 1}, définie par  Cette restriction aux problèmes de décision est justifiée par le fait que les autres problèmes qui ne sont pas de décision, comme les problèmes d’optimisation et de recherche, peuvent être facilement transformés en un problème de décision équivalent. INTRODUCTION PROBLÈME DE DÉCISION
  • 43. 43  Problème de Recherche: La réduction de la recherche à la décision est faite par test d'hypothèse (La connexité de G) INTRODUCTION PROBLÈME DE DÉCISION VS AUTRES PROBLÈMES Exemple Entrée Réponse Algorithme de recherche (Trouver un arbre recouvrant) G (X, E) non orienté Arbre recouvrant Algorithme de décision (Existence d’un arbre recouvrant) G (X, E) non orienté Oui/Non
  • 44. 44  Problème d’Optimisation: Lorsque le critère d'optimisation est borné a priori, la réduction de l'optimisation à la décision est faite par test d'hypothèse (La connexité de G et le poids de l’arbre recouvrant). INTRODUCTION PROBLÈME DE DÉCISION VS AUTRES PROBLÈMES Exemple Entrée Réponse Algorithme d’optimisation (Trouver un arbre recouvrant de poids minimum) G (X, E, L) non orienté Arbre recouvrant minimum Algorithme de décision (Existence d’un arbre recouvrant de poids  k) G (X, E, L) non orienté Oui/Non
  • 45. 45  Un algorithme déterministe est un algorithme dont la solution qu’il produit peut être déduite des spécifications de l’algorithme lui-même.  Un algorithme non déterministe est un algorithme dont la solution est devinée puis vérifiée. INTRODUCTION ALGORITHME DÉTERMINISTE VS NON-DÉTERMINISTE
  • 46. 46  Pour différentes raisons, la convention suivante s’est imposée en informatique : Un algorithme est efficace (ou facile) si sa complexité en temps est polynomiale, c’est-à-dire en O(nk) pour un entier k.  Un problème est de complexité polynomiale s'il existe un algorithme de complexité polynomiale le résolvant. INTRODUCTION ALGORITHME EFFICACE
  • 47. 47  La classe P regroupe tous les problèmes de décision qui peuvent être résolus par un algorithme déterministe de complexité polynomiale.  Exemple:  Problème de l’existence de l’arbre de recouvrement de poids  k (Algorithme de Kruskal)  Problème de l’existence d’un chemin de longueur  k (Algorithme de Dijkstra) CLASSIFICATION DES PROBLÈMES CLASSE P
  • 48. 48  La classe NP (Non deterministic Polynomial) regroupe tous les problèmes de décision qui peuvent être résolus par un algorithme non-déterministe de complexité polynomiale (i.e. dont la solution peut être vérifiée en temps polynomial)  Pour montrer qu’un problème est dans la classe NP, il suffit de trouver un algorithme qui vérifie si une solution donnée est valide en temps polynomiale. CLASSIFICATION DES PROBLÈMES CLASSE NP
  • 49. 49  Problème 1: Problème de Satisfaction en calcul propositionnel (SAT)  Soit F = (x1, ...., xn) une formule du calcul propositionnel en Forme Normale Conjonctive, i.e. F = C1  C2  .....  Cm pour une collection de clauses {C1, C2, ....., Cm} sur l’ ensemble X = {x1, ...., xn } de variables booléennes (littéraux).  Décider si F est satisfiable, c-à-d décider s’il existe x1, ...., xn  {0, 1}n tel que F s’évalue en vraie pour cette valeur de ses variables (toutes les clauses de C soient vraies). CLASSIFICATION DES PROBLÈMES CLASSE NP
  • 50. 50  Problème 2: Problème de K-SAT (k>2)  Soit F = (x1, ...., xn) une formule du calcul propositionnel en Forme Normale Conjonctive, i.e. F = C1  C2  .....  Cm pour une collection de clauses {C1, C2, ....., Cm} sur l’ensemble X = {x1, ...., xn } tel que chaque clause contient exactement k littéraux |Ci| = k.  Décider si F est satisfiable, c-à-d décider s’il existe x1, ...., xn  {0, 1}n tel que F s’évalue en vraie pour cette valeur de ses variables (toutes les clauses de C soient vraies). CLASSIFICATION DES PROBLÈMES CLASSE NP
  • 51. 51  Problème 3: Problème de Coloriage de Graphe  Étant donnée le graphe G = (X, E) non orienté, déterminer le nombre minimal de couleurs pour colorier les sommets X du G tel que deux sommets adjacent soient de couleur différente. CLASSIFICATION DES PROBLÈMES CLASSE NP
  • 52. 52  Problème 3: Problème de Coloriage de Graphe  Le problème de décision correspondant est:  Soient un graphe G = (X, E) et un entier k  Déterminer si le graphe G admet un coloriage avec au moins de k couleurs.  Ce problème de décision est connu sous le nom du problème K-Coloriabilité CLASSIFICATION DES PROBLÈMES CLASSE NP
  • 53. 53  Problème 4: Problème du cycle hamiltonien  Soit G = (X, E) un graphe non orienté  Déterminer s’il existe un cycle hamiltonien, c’est-à-dire décider s’il existe un chaîne de G passant une fois et une seule par chacun des sommet et revenant à son point de départ.  Variantes: chaîne hamiltonien, circuit hamiltonien, chemin hamiltonienne. CLASSIFICATION DES PROBLÈMES CLASSE NP
  • 54. 54  Clairement, P  NP mais la question qui se pose est : P = NP ?  C’est l’une des questions (voire la question) non résolue les plus célèbres qui défie les chercheurs depuis plus de 40 ans : elle a été placée parmi la liste des sept problèmes du prix du millénaire réputés insurmontables posés par le l’institut Clay Mathematical en 2000. L’institut offre un million de dollars à qui déterminerait la réponse à cette question. CLASSIFICATION DES PROBLÈMES COMPARAISON ENTRE LES DEUX CLASSES P ET NP
  • 55. 55  Clairement, P  NP mais la question qui se pose est : P = NP ?  Intérêt: Si P = NP, alors tous les problèmes vérifiables polynomialement seraient décidables en temps polynomial.  La plupart des personnes pensent que ces deux classes sont distinctes car il y a un très grand nombre de problèmes pour lesquels on n’arrive pas à produire d’algorithme polynomiaux depuis plus de 40 ans. CLASSIFICATION DES PROBLÈMES COMPARAISON ENTRE LES DEUX CLASSES P ET NP
  • 56. 56  Soient A et B deux problèmes. Si A se réduit à B (noté A  B) , alors  le problème A est plus facile que le problème B, ou  le problème B est plus difficile que le problème A. NOTION DE RÉDUCTION IDÉE
  • 57. 57  Soient A (XA, YA) et B (XB, YB) deux problèmes de décision. Une réduction de A vers B (A  B) est une fonction R : XA  XB calculable en temps polynomial telle que aYA ssi R(a) YB : NOTION DE RÉDUCTION DÉFINITION R
  • 58. 58  Soient A (XA, YA), B (XB, YB) et C (XC, YC) des problèmes de décision.  A  A  A  B et B  C impliquent A  C.  A  B et B  A impliquent A  B (A et B sont équivalents). NOTION DE RÉDUCTION PROPRIÉTÉS
  • 59. 59  Intuitivement, si un problème est plus facile qu’un problème polynomial, alors il est polynomial.  Formellement :  Si A  B, et si B  P alors A  P.  Si A  B, et si A  P alors B  P. NOTION DE RÉDUCTION APPLICATION À LA COMPARAISON DE DIFFICULTÉ
  • 60. 60 THÉORIE NP-COMPLÉTUDE DÉFINITION  Un problème B est dit NP-complet, si 1. B  NP 2.  A  NP, A  B.  Les problèmes NP-complets sont donc les plus difficiles de la classe NP.
  • 61. 61 THÉORIE NP-COMPLÉTUDE PREUVE  Pour prouver la NP-complétude d’un problème B, il suffit de prouver que : 1. B est dans NP; 2. A  B pour un problème A que l’on sait déjà NP- complet.  La difficulté est d’arriver à en produire un premier problème NP-Complet.
  • 62. 62 THÉORIE NP-COMPLÉTUDE PROBLÈME 1: SAT  Théorème 1 (Cook-Levin, 1971): Le problème SAT est NP-complet.  Le problème SAT est le premier problème montré comme NP-complet.  Résultat admis: la preuve consiste en un codage d'une machine de Turing qui vérifie les solutions du problème en temps polynomial.  Ce théorème va être utilisé pour en montrer par réduction d’autres problèmes NP-Complet.
  • 63. 63 THÉORIE NP-COMPLÉTUDE PROBLÈME 2: 3-SAT  Théorème 2 (Cook-Levin, 1971): Le problème de 3- SAT est NP-Complet.  Preuve 2: Il faut montrer que : 1. 3-SAT est dans NP; 2. SAT  3-SAT (réduire SAT à 3-SAT). R F3-sat est elle satisfiable? Fsat F3-sat Non Oui
  • 64. 64 THÉORIE NP-COMPLÉTUDE PREUVE 2 : LE PROBLÈME DE DE 3-SAT EST NP-COMPLET  Preuve 2: SAT  3-SAT (réduire SAT à 3-SAT).  Toute clause du problème SAT peut être remplacée de manière équivalente par un ensemble de clauses 3-SAT qui contiennent chacune exactement trois littéraux.
  • 65. 65 THÉORIE NP-COMPLÉTUDE PREUVE 2 : LE PROBLÈME DE DE 3-SAT EST NP-COMPLET  Preuve 2: SAT  3-SAT (réduire SAT à 3-SAT).  Toute clause du problème SAT peut être remplacée de manière équivalente par un ensemble de clauses 3-SAT qui contiennent chacune exactement trois littéraux.
  • 66. 66 THÉORIE NP-COMPLÉTUDE PREUVE 2 : LE PROBLÈME DE DE 3-SAT EST NP-COMPLET  Preuve 2: SAT  3-SAT (réduire SAT à 3-SAT).  La satisfiabilité des clauses Z’ est donc équivalente à la satisfaisabilité de l’ensemble initiale Z.  La réduction est manifestement polynomiale ; on a donc bien prouvé que SAT se réduisait à 3-SAT; ce dernier est donc bien NP-complet
  • 67. 67 THÉORIE NP-COMPLÉTUDE PROBLÈME 3: 3-COLORIABLE  Théorème 3: Le problème de 3-Coloriable est NP- Complet.  Preuve 3: Il faut montrer que : 1. 3-Coloriable est dans NP; 2. 3-SAT  3-Coloriable (réduire 3-SAT à 3-Coloriable). R G est il 3- Coloriable ? F3-sat G = (V, E) Non Oui
  • 68. 68 THÉORIE NP-COMPLÉTUDE PREUVE 3 : LE PROBLÈME DE 3-COLORIABLE EST NP-COMPLET  Preuve 3: 3-SAT  3-Coloriable. On construit un graphe ayant 3 + 2 n + 5 m sommets tels que: 1. Les trois premiers sont notés VRAI, FAUX, NSP. Ces trois sommets sont reliés deux à deux en triangle, de sorte qu’ils doivent être tous trois de couleurs différentes. On appellera les couleurs correspondantes CVRAI(e.g. vert), CFAUX(e.g. rouge), CNSP (e.g. bleu) NSP VRAI FAUX
  • 69. 69 THÉORIE NP-COMPLÉTUDE PREUVE 3 : LE PROBLÈME DE 3-COLORIABLE EST NP-COMPLET  Preuve 3: 3-SAT  3-Coloriable. On construit un graphe ayant 3 + 2 n + 5 m sommets tels que: 2. On associe un sommet à chaque variable (Xi) et au complémentaire de chaque variable (Not Xi). Pour assurer qu’une variable prenne la valeur VRAI ou FAUX, on construit un triangle dont les sommets sont Xi, NOT Xi, et NSP. NSP Xi Not Xi NSP Xi Not Xi
  • 70. 70 THÉORIE NP-COMPLÉTUDE PREUVE 3 : LE PROBLÈME DE 3-COLORIABLE EST NP-COMPLET  Preuve 3: 3-SAT  3-Coloriable. On construit un graphe ayant 3 + 2 n + 5 m sommets tels que: 3. Pour chaque clause {A, B, C}, on introduit le motif :  Ce motif est 3-coloriable A B C 3 4 2 0 1 VRAI
  • 71. 71 A B C 3 4 2 0 1 VRAI CVRAI ou CFAUX A B C 3 4 2 0 1 VRAI CVRAI ou CFAUX  Preuve 3: 3-SAT  3-Coloriable. On construit un graphe ayant 3 + 2 n + 5 m sommets tels que:  Ce motif est 3-coloriable THÉORIE NP-COMPLÉTUDE PREUVE 3 : LE PROBLÈME DE 3-COLORIABLE EST NP-COMPLET
  • 72. 72  Preuve 3: 3-SAT  3-Coloriable. On construit un graphe ayant 3 + 2 n + 5 m sommets tels que:  Ce motif est 3-coloriable THÉORIE NP-COMPLÉTUDE PREUVE 3 : LE PROBLÈME DE 3-COLORIABLE EST NP-COMPLET A B C 3 4 2 0 1 VRAI CVRAI ou CFAUX A B C 3 4 2 0 1 VRAI CVRAI ou CFAUX
  • 73. 73 THÉORIE NP-COMPLÉTUDE PREUVE 3 : LE PROBLÈME DE 3-COLORIABLE EST NP-COMPLET  Preuve 3: 3-SAT  3-Coloriable.  Considérons alors le graphe formé des trois sommets distingués, des triangles formés sur les variables, et des motifs donnés. Si ce graphe est 3-coloriable, alors en particulier tout sous-graphe est coloriable.  À partir d’une 3-coloration du graphe, on construit une affectation de valeurs de vérité en mettant à 1 toutes les variables coloriées par CVRAI. Cette affectation est cohérente (une variable et son complémentaire ont bien une valeur opposée) et au moins une variable par clause est à 1.  Inversement, étant donné une affectation de valeurs de vérité, il est aisé de déduire une 3-coloration du graphe.
  • 74. 74  Preuve 3: 3-SAT  3-Coloriable.  Exercice: Soit F = 1. Donner le graphe qui représente ces clauses et déduire une affectation de valeurs de vérité qui satisfait F. 2. Montrer que le graphe est 3-coloriable pour l’affectation de valeurs de vérité suivante (x1, x2, x3) = (0, 0, 0). THÉORIE NP-COMPLÉTUDE PREUVE 3 : LE PROBLÈME DE 3-COLORIABLE EST NP-COMPLET
  • 75. 75 THÉORIE NP-COMPLÉTUDE PREUVE 3 : LE PROBLÈME DE 3-COLORIABLE EST NP-COMPLET  Preuve 3: 3-SAT  3-Coloriable.  L’existence d’une 3-coloration du graphe est donc équivalente à la satisfaisabilité de la formule initiale.  La réduction est manifestement polynomiale ; on a donc bien prouvé que 3-SAT se réduisait à 3-COLORABILITE ; ce dernier est donc bien NP-complet.
  • 76. 76 THÉORIE NP-COMPLÉTUDE PROBLÈME 4: CYCLE HAMILTONIEN  Théorème 4 (Karp, 1972): Le problème de Cycle Hamiltonien est NP-Complet.  Preuve 4: Il faut montrer que : 1. Cycle Hamiltonien est dans NP; 2. Plusieurs méthodes: a. 3-SAT  Cycle Hamiltonien. b. 3-SAT  Recouvrement de Sommets Cycle Hamiltonien c. 3-SAT  Stable  Recouvrement de Sommets  Cycle hamiltonien
  • 77. 77 THÉORIE NP-COMPLÉTUDE PREUVE 4 : LE PROBLÈME DE CYCLE HAMILTONIEN EST NP-COMPLET  Preuve 4 (Papadimitriou et Steiglitz, 1982) : 3-SAT  Cycle Hamiltonien. R G contient il un C. H? F3-sat G = (V, E) Non Oui
  • 78. 78 THÉORIE NP-COMPLÉTUDE PREUVE 4 : LE PROBLÈME DE CYCLE HAMILTONIEN EST NP-COMPLET  Preuve 4 (Papadimitriou et Steiglitz, 1982) :  On construit le graphe de la manière suivante: 1. Pour chaque variable, on introduit le sous graphe suivant: 2. Chaque nouvelle variable est liée à la précédente X Not X X1 X2 Xn
  • 79. 79 THÉORIE NP-COMPLÉTUDE PREUVE 4 : LE PROBLÈME DE CYCLE HAMILTONIEN EST NP-COMPLET  Preuve 4 (Papadimitriou et Steiglitz, 1982) :  On construit le graphe de la manière suivante: 3. Pour chaque clause, on introduit la structure B : Aucun cycle hamiltonien de G ne peut traverser à la fois L1, L2 et L3. UU' L1L2L3
  • 80. 80 THÉORIE NP-COMPLÉTUDE PREUVE 4 : LE PROBLÈME DE CYCLE HAMILTONIEN EST NP-COMPLET  Preuve 4 (Papadimitriou et Steiglitz, 1982) :  On construit le graphe de la manière suivante: 4. Les clauses sont liées comme suit: C1 C2 Cm X1 X2 Xn
  • 81. 81 THÉORIE NP-COMPLÉTUDE PREUVE 4 : LE PROBLÈME DE CYCLE HAMILTONIEN EST NP-COMPLET  Preuve 4 (Papadimitriou et Steiglitz, 1982) :  On construit le graphe de la manière suivante: 5. Les littéraux de chaque clause sont liés aux variables par la structure A comme suit:
  • 82. 82 THÉORIE NP-COMPLÉTUDE PREUVE 4 : LE PROBLÈME DE CYCLE HAMILTONIEN EST NP-COMPLET  Preuve 4 (Papadimitriou et Steiglitz, 1982) :  Par exemple, le graphe suivant présente ces clauses C1 C2 C3 X1 X2 X3 A A A A A A A A A
  • 83. 83 THÉORIE NP-COMPLÉTUDE PREUVE 4 : LE PROBLÈME DE CYCLE HAMILTONIEN EST NP-COMPLET  Preuve 4 (Papadimitriou et Steiglitz, 1982) :  Nous affirmons maintenant que G est hamiltonien si et seulement si F3-sat est satisfaisable. Soit C un cycle hamiltonien. On définit un assignement en fixant un littéral à vrai si et seulement si C contient l’arête correspondante. D’après les propriétés des structures A et B, chaque clause contient un littéral qui est vrai.  Inversement, tout assignement satisfaisant définit un ensemble d’arêtes qui correspondent à des littéraux qui sont vrai. Comme chaque clause contient un littéral qui est vrai, cet ensemble d’arêtes peut être complété en un cycle hamiltonien de G.  Enfin, la réduction est trivialement polynomiale.
  • 84. SOURCES DE CE COURS  Frédéric Vivien, Algorithmique avancée, École Normale Supérieure de Lyon, 2002., pp. 93. Disponible sur http://perso.ens-lyon.fr/frederic.vivien/Enseignement/Algo- 2001-2002/Cours.pdf  Slim Msfar, Algorithmique et Complexité, 2012, pp 104. Disponible sur http://p835.phpnet.org/testremorque/upload/catalogue/coursalgorithmi.pdf  Djamel-Eddine ZEGOUR, O-Notation, École nationale Supérieure d’Informatique, pp 33. Disponible sur http://www.zegour.netii.net/Site%20secondaire/Mcp/Cours%20ppt/1_o-notation.pdf  Olivier Bournez, Fondements de l’informatique Logique, modèles, et calculs, Chapitre 12: Quelques problèmes NP-complets, Cours INF423 de l’Ecole Polytechnique, 2013, pp. 234.  Jean Fonlupt et Alexandre Skoda. Optimisation combinatoire – Théorie et algorithmes, Chapitre 15: NP-complétude, 2010, 664p.  Gilles Schaeffer, Cours 4: Réduction et NP-complétude, 2010, pp. 124, Disponible sur http://www.enseignement.polytechnique.fr/informatique/INF550/Cours1011/INF550- 2010-5.pdf  Johanne Cohen, La NP-complétude, PRISM/CNRS, 2012, pp. 95, Disponible sur http://www.prism.uvsq.fr/~joco/enseignement/Complexite.pdf 84