Beruflich Dokumente
Kultur Dokumente
H. Hasni
Ecole Nationale des Sciences de l’Informatique
Université de Manouba
2010 Campus Universitaire – Manouba
E-mail : hamadi.hasni@ensi.rnu.tn
1
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
2
Introduction
La théorie de la complexité s’intéresse à l’étude formelle de la
difficulté des problèmes en informatique.
3
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 ?
4
Qu’est – ce que la complexité ?(2)
Taille n Opérations
élémentaires
5
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.
6
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é
7
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
Définition formelle de la notion d’algorithme
(Modèles abstraits de Calcul ,1936)
Machine de Turing
Machine de Post
Fonctions récursives de Kleene
-calcul de Church
Machine RAM
Tous ces modèles sont équivalents
8
Modèles Abstraits de Calcul(2)
Théorie de la Complexité :
9
Machines de Turing (1)
Alan Matheson Turing
(1912 – 1954)
Inventeur de la Machine
de Turing ( 1936)
Machine ENIGMA
10
Machines de Turing (2)
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)
11
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
12
Machine de Turing (4)
Machine de Turing Non Déterministe (MTND) :
13
Machine de Turing (5)
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ù :
14
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.
15
Décidabilité – Calculabilité (2)
Un langage est dit récursif s’il est décidé par une machine
de Turing.
16
Décidabilité – Calculabilité (3)
David Hilbert
(1862 –1943)
18
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
19
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 :
20
Décidabilité – Calculabilité (7)
Alonzo Church
(1903 – 1995)
Développement du lambda-calcul
Thèse de Church
21
Décidabilité – Calculabilité (8)
Kurt Godël
(1906 – 1978)
Théorème d’Incomplétude
Complétude : Une théorie mathématique pour
laquelle tout énoncé est décidable est dite complète,
sinon elle est dite incomplète
22
Décidabilité – Calculabilité
23
Décidabilité – Calculabilité (10)
24
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
25
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
26
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 ?
27
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 ?
28
Problèmes de Décision (4)
Notations : soit D l’ensemble des instances possibles
d’un problème de décision
29
Problèmes de Décision (5)
Lien entre Problème de Décision et Langages:
30
Problème de Décision (6)
Problème de décision
& langage accepté par une machine de Turing
Tête de
Controleur lecture /
d'états finis écriture
l ’ensemble des symboles pouvant être écrit par l ’utilisateur sur le ruban
* l ’ensemble des mots du langage sur l ’alphabet
LM = { x * : M accepte x }
Résoudre le problème revient à savoir si x LM
31
Problème de Décision (7)
Codage des entiers positifs :
Codage binaire efficace : i est codé par la
séquence
n k
i ik .2 avec ik 0,1
k 0
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
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])
33
Classes de Complexité (1)
Complexité en temps d’une machine de Turing
s’arrêtant toujours :
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é
35
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
36
Classe de Complexité (4)
Exemple : Circuit Hamiltonien
37
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)
38
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:
39
Classe de Complexité (6)
Pour Prouver qu’un problème est dans NP :
40
Classe de Complexité (7)
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
41
Classe de Complexité (8)
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,
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
42
Classe de Complexité (9)
Equivalence entre Problèmes
43
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:
44
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
45
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
46
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
L1 P et L NP on a L1 p L2
47
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
48
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
49
NP-Complétude (3)
Stephen COOK
Travaux sur SAT
50
NP-Complétude (4)
Théorème de Cook - Levin
Théorème :
SAT est NP-Complet
51
SAT & Co
Problème k – SAT :
Données :
Un ensemble de variables booléennes {x1,x2,…xn}
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
52
Problèmes de Graphes NP-Complets (1)
Soit G (X,E ) un graphe d’ordre n
G est un graphe complet si :
x1 et x2X : {x1,x2} E
S X est un stable de G si :
x1 et x2S : {x1,x2} S
53
Problèmes de Graphes NP-Complets (2)
Soit G (X,E ) un graphe d’ordre n :
54
Problèmes de Graphes NP-Complets (3)
55
Problèmes de Graphes NP-Complets (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
56
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
57
Problèmes de Graphes NP-Complets (6)
Circuit Hamiltonien ( HC):
Données :
Un graphe G(X,E) non orienté
58
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:
60
Somme de Sous-ensemble & Variantes (1)
Somme de sous-ensemble ( Subset Sum)
Données : E IN , fini et un but t IN
xt
xE'
?
61
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 : n n
c a A
i 1
i i et c v V
i 1
i i ?
62
Somme de Sous-ensemble & Variantes (3)
Partition
Données :
Un ensemble A fini d’entiers
Réponse : Existe-t-il A’ A tel que :
x x
x A' x A A'
?
63
Somme de Sous-ensemble & Variantes (4)
Rangement Optimal ( Bin Packing)
Données :
N objets de poids si
Une capacité B et un entier k
64
Programmation Entière
Programmation entière 0-1
Données:
Une matrice entière A (m,n)
Un vecteur entier b d’ordre m
65
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
66
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) )
67
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
x x y
1 2 i,1 ;
x y y
3 i,1 i,2 . . . . . . .
69
Exemples de Réduction(5)
Données: graphe G = (V,E) et un k |V|.
70
Exemples de Réductions (6)
Théorème: CLQ p IS p VC.
71
Exemples de Réductions (7)
CLQ <p IS.
72
Exemples de Réductions (7)
CLQ p IS.
Instance de IS:
Instance de CLQ: Gc = (V,Ec), graphe
Graphe G = (V,E) complément de G.
Entier k Entier k (inchangé)
Transformation f
73
Exemples de Réductions (8)
À montrer:
1. f est calculable en évident
temps polynomial.
2. G,k CLQ G c,k Un ensemble de sommets forme
IS. une clique dans G ssi il forme
un ensemble indépendant dans
G c.
74
Exemples de Réduction (9)
IS p VC.
Instance de VC:
Instance de IS: G = (V,E) (inchangé)
Graphe G = (V,E) Entier |V| - k
Entier k
Transformation f
75
Exemple de Réduction (10)
À montrer:
1. f est calculable en temps polynomial. évident
76
Exemples de Réduction (11)
3-SAT p IS
Instance de IS : Graphe G = (V,E)
Occurrence d’un littéral sommet
dans G.
Instance de 3-SAT Arête entre deux sommets lij, li’j’ si
Variables X = x1, …, x les littéraux sont dans une même
n
m clauses Cj = l1j l2j l3j clause ou si sont contradictoires
Entier m (nombre de clauses)
77
Exemples de Réduction (12)
x1 x2 x3
x1 x2 x3
x2 x3 x4
x2 x3 x4
x1 x2 x4 x1 x2 x4
78
Exemple de Réduction (13)
Étape 1: 3-SAT G, m IS
x1 = 0, x2 = 1, x3 = 0, x4 = 1
x1 x2 x3 x1 x2 x3
x2 x3 x4 x2 x3 x4
x1 x2 x4 x1 x2 x4
x1 x2 x3 x1 x2 x3
x2 x3 x4 x2 x3 x4
x1 x2 x4 x1 x2 x4
80
P = NP ?
Pas de solution polynomiale pour un
problème NP-Complet
On ne sait pas si les problèmes de
NP sont polynomiaux ou s’il existe
certains qui sont difficiles d’où
P = NP ?
Soit P NP
81
Liste de Garey & Johnson
Théorie des graphes (65 problèmes)
3-COL, domination, cycle Hamiltonien, etc.
82
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).
83
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
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
84
Classe de Complexité Co-NP (1)
Les problèmes de P ont des solutions faciles à
trouver (algorithmes polynomiaux)
85
Classe de Complexité Co-NP(2)
Exemple :
Est –il vrai qu’il n’existe pas une permutation de [1,n] telle que :
Ce problème appartient – il à NP ?
86
Classe de Complexité Co-NP (3)
Complémentaire d’un problème de décision
noté C :
DC = D
YC = N
NC = 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 }
87
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 ?
88
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
89
Relations entre les classes de Complexité
90