0% ont trouvé ce document utile (0 vote)
383 vues90 pages

Introduction à la théorie de la complexité

Transféré par

Ramzi Snoussi
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
383 vues90 pages

Introduction à la théorie de la complexité

Transféré par

Ramzi Snoussi
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd

Théorie de la Complexité

H. Hasni
Ecole Nationale des Sciences de l’Informatique
Université de Manouba
2010 Campus Universitaire – Manouba

E-mail : [email protected]

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.

 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.

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

Entrées Algorithme Résultat

Temps Ressources Espace

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

Remarque : Toutes les architectures de machines réelles sont équivalentes à la


machine de Turing ( elles sont plus « puissantes » mais pas plus
« expressives » )

8
Modèles Abstraits de Calcul(2)
 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.

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) :

 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

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ù :

 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

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.

 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.

15
Décidabilité – Calculabilité (2)
 Un langage est dit récursif s’il est décidé par une machine
de Turing.

 Un algorithme est un ensemble fini d’instructions décrivant


le déroulement des opérations pour résoudre un problème et
ce déroulement doit toujours se terminer dans un temps fini

 Un problème est décidable s’il existe une machine de


Turing s’arrêtant toujours autrement il est dit indécidable

16
Décidabilité – Calculabilité (3)
David Hilbert
(1862 –1943)

 Liste des 23 problèmes de


Hilbert (1900)
 Problème numéro 10 :
« Existe-t-il un procédé mécanique
permettant de dire, après un
nombre fini d'étapes, si une
équation diophantienne donnée
possède des solutions entières?».
est indécidable (Théorème de
Matiyasevich (1970))
17
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

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

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

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 :

 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

20
Décidabilité – Calculabilité (7)
Alonzo Church
(1903 – 1995)

 Résultat sur la calculabilité

 Développement du lambda-calcul

 1936 : Existence d ’un problème


indécidable

 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

 Théorème de Godel(1932) : Dans n'importe


quelle théorie récursivement axiomatisable,
cohérente et capable de « formaliser
l'arithmétique », on peut construire un énoncé
arithmétique qui ne peut être ni prouvé ni réfuté
dans cette théorie

22
Décidabilité – Calculabilité

23
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

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 

 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)

29
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 .

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

La longueur l2(i) des codes de i est de l’ordre de 2 l1(i)


32
Problème de Décision (8)
 Codage d’un graphe
Encodage Chaîne

 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])

Liste des voisins : (x[2] x[3])(x[1] x[3])(x[1] x[2] x[4])(x[3])

Matrice d’adjacence : 0110/1010/1101/0010

33
Classes de Complexité (1)
 Complexité en temps d’une machine de Turing
s’arrêtant toujours :

TM(n) = Max {m /  x * , |x| = n et l’exécution de


M sur x comporte m étapes }

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


une machine de Turing polynomiale i.e
 un polynôme p(n) tel que :
TM  p(n) pour tout n  0

34
Classes de Complexité (2)
 Le temps de calcul d’une machine de Turing ND
sur un mot w est donné par :
 La longueur de la plus courte exécution acceptant le mot
si celui-ci est accepté.
 La valeur 1 si le mot w n’est pas accepté

 Complexité en temps d’une machine de Turing


non déterministe
TMND(n) = Max {m /  x * , |x| = n et le temps de
calcul de M sur x est m}

35
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)

36
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.

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:

 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)

39
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.

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,

 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

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:

 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

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

 Classes d’équivalence polynomiale : soit tous les


membres sont dans P, soit aucun.

 Possibilité de construire une classe d’équivalence de


proche en proche.

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

 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)

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

 Reçoit le Turing Award en


1982

 Levin ( 1973) : travail


similaire sur le pavage

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 x2X : {x1,x2} E

 S  X est un stable de G si :
 x1 et x2S : {x1,x2} S

 T  X est un transversal de G si:


 e = {x1,x2} E : x1T ou x2 T

53
Problèmes de Graphes NP-Complets (2)
Soit G (X,E ) un graphe d’ordre n :

 G X,F  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 G X,F 

54
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

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é

 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 ?

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:

Allemagne ( 15 112 cités)


59
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 ?

60
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 :

 xt
xE'
?

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

 Réponse : Est-il possible de ranger les N objets


dans k boîtes de capacité B ?

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

 Réponse : Existe-t-il un vecteur x d’ordre dont les éléments sont


pris dans {0,1} tel que : A x  b ?

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 . . . . . . .

 xk -2   yi,k - 4  yi,k – 3 et xk -1   yi,k - 3  x,k


68
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

69
Exemples de Réduction(5)
 Données: graphe G = (V,E) et un k  |V|.

 Clique (CLQ): Existe-t-il C  V avec |C|  k et (u,v)  E


pour tous u,v  C?

 Ensemble indépendant (IS): Existe-t-il C  V avec |C|  k


et (u,v)  E pour tous u,v  C?

 Couverture par sommets (VC): Existe-t-il C  V avec |C| 


k et tel que pour tout (u,v)  E, on a u  C ou v  C?

70
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.

71
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.

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

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.

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

La transformation se fait en temps O(m2). (borne supérieure de |E|).

Reste le plus dur : montrer que   3-SAT  G, m  IS.

78
Exemple de Réduction (13)
Étape 1:   3-SAT  G, m  IS
x1 = 0, x2 = 1, x3 = 0, x4 = 1

x1  x2  x3 x1 x2 x3

x2  x3  x4 x2 x3 x4

x1  x2  x4 x1 x2 x4

 Chaque clause contient un littéral dont la valeur est 1 (Vrai).

Les sommets correspondants forment un IS de taille m car les


littéraux correspondants sont de clause différentes et non-
contradictoires 79
Exemples de Réduction (14)
Étape 2: G, m  IS    3-SAT
x1 = 1, x2 = 1, x3 = 0, x4 = 1

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

 Soit P=NP ? n’est pas


décidable

81
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!

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

 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

84
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 ?

85
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 ?

86
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 }

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

 Théorème : Si NP  co-NP alors P  NP

89
Relations entre les classes de Complexité

90

Vous aimerez peut-être aussi