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