SlideShare une entreprise Scribd logo
1  sur  84
Télécharger pour lire hors ligne
CHAPITRE 2 :
COMPLEXITÉ DES
PROBLÈMES
1
Introduction
• Problèmes décidables : la solution algorithmique existe
• Est-ce que cette solution est efficace ?
• Est-ce qu’elle utilise une quantité de ressources
« raisonnables »
temps et espace
2
Complexité des problèmes en temps
Principaux Facteurs
1. Machine (matériel et logiciel)
2. Données :
• Taille :
• Type :
• Valeurs :
• Organisation :
Paramètre principal n
À une constante près
Pas d’influence
Meilleur, moyenne et pire des cas
À une constante près
3
Complexité des problèmes en temps
La complexité en temps est calculée en fonction
de la taille des données n quand n est grand
(n  ∞) à un facteur près au pire des cas.
4
Exemple: Temps estimé en secondes
Taille des
données
O(Log n) O(n) O(n2) O(2n)
10
100
1000
10000
100000
3.10-6
7.10-6
10-5
13.10-6
17.10-6
10-5
10-4
10-3
10-2
10-1
10-4
10-2
1 sec
1,7 min
2,8 heures
10-3
1014 siècles
astronomique
..
..
5
Complexité D’une Machine De Turing
Déterministe
Définition 1
Soit M une machine de Turing Déterministe. La complexité en
temps de la machine M est la fonction TM (n) défini par :
TM (n) = max{ m, x  Ʃ* /|x|=n et M s’exécute sur x en m
étapes}
6
Complexité d’une machine de Turing
Non Déterministe
Définition 2
Le temps de calcul d’une machine de Turing non déterministe pour un
mot w noté TCM(w) est donné par :
 La longueur de la plus courte exécution acceptant le mot si w  L(M)
1 sinon
7
Complexité d’une machine de Turing
Non Déterministe
Définition 3
Soit M une machine de Turing non Déterministe. La
complexité en temps de la machine M est la fonction
TM (n) défini par :
TM (n) = max{ m, x  Ʃ* /|x|=n et m = TCM(x)}
8
Complexité des problèmes en temps
Définition Notation Asymptotique O
Une fonction g(n) est dite en O(f(n)) : g = O(f)
s’il existe une constante c, n0/pour tout n>n0 0≤g(n)≤c(f(n))
Proposition
Si la fonction f est calculée par une machine de Turing
non déterministe M avec la complexité TM(n) alors Ǝ une
machine de Turing non déterministe calculant f avec la
complexité O(C TM(n)) où C est une constante.
9
Complexité polynomiale en temps d’une
Machine de Turing
Définition 5
Une machine de Turing M est dite polynomiale en temps
s’il Ǝ un polynôme p(n) tel que TM(n)≤p(n) pour tout n≥0.
10
Complexité polynomiale en temps
d’une Machine de Turing
Définition 6: Classe P
La classe P est la classe des langages décidés par
une machine de Turing Déterministe Polynomiale
Définition 7: Classe NP
La classe NP est la classe des langages acceptés
par une machine de Turing Non Déterministe
Polynomiale
11
Complexité polynomiale en temps
d’une Machine de Turing
Théorème
Soit L  NP, Ǝ MTD M et un polynôme
p(n)/M décide de L avec la complexité
TM(n)=O(2p(n))
12
Problèmes de décisions
• Un problème est dit de décision si pour tout input, l’unique
output possible est de type booléen.
• La plupart des problèmes d’optimisation peuvent être convertis à
des problèmes de décision.
• Il suffit d’ajouter une borne k sur la valeur à optimiser et changer
la question :
• Existe-t-il une solution dont la valeur est au plus k (en cas de minimisation);
• Existe-t-il une solution dont la valeur est au moins k (en cas de
maximisation).
13
Problèmes de décisions :Exemples
Circuit Hamiltonien
Étant donné un graphe G, existe-t-il un chemin de longueur au plus k ?
Voyageur de commerce TSP
Étant donné un ensemble de villes 𝑉 = {𝑣1, … , 𝑣𝑛} et une fonction distance
𝑑(𝑣𝑖, 𝑣𝑗) entre les villes, et soit un nombre k.
Existe-t-il un tour de toutes les villes dont la longueur au plus k ?
14
v1
v5
v3
v2
v4
d(v1,v2)
Transformation Polynomiale
Définition 8
Soient L1 ∈ Ʃ1
* et L2 ∈ Ʃ2
*
Une transformation polynomiale de L1 vers
L2 noté L1 α L2 est une fonction f définie par
f: Ʃ1
*  Ʃ2
* tel que:
1. f est calculable en un temps polynomial
2. f(x)  L2 ssi x  L1
15
Propriétés des Transformations
Polynomiales
Lemme 1
Si L1 α L2 alors
1. Si L2  P alors L1  P
2. Si L1  P alors L2  P
16
Lemme 2 Transitivité de la transformation polynomiale
Si L1 α L2 et L2 α L3 alors L1 α L3
Transformation polynomiale
1. Transformation en temps polynomial,
2. Si la fonction F peut être calculer en temps polynomial, on dit
que L1 est polynomialement réductible a L2, et on note L1 α L2
17
Problème L1
Input X
Problème L2
Input F(X)
Algorithme
Transformation F
L1 L2
x
F(x)
Transformation Polynomiale
= Projection = Réduction
Equivalence polynomiale
Définition 9
Deux langages L1 et L2 sont équivalents polynômialement notée ≡P
L1 ≡P L2 ssi L1 α L2 et L2 α L1
Définition 10
Une classe d’équivalence polynomiale C1 est inférieure à une classe
d’équivalence C2 noté C1 ≼ C2 Si :
 L1  C1 et  L2  C2 on a L1 α L2
S’il existe une transformation polynomiale de tout langage de C1 vers tout
langage C2 , on note C1 ≼p C2
18
Propriétés des Transformations
Polynomiales
Lemme 3
La classe P est une classe d’équivalence
polynomiale.
19
Lemme 4
Pout tout L1  Pet  L2  NP on a L1 α L2
P ≼ c  c classe d’équivalence de NP.
Propriétés des Transformations
Polynomiales
Définition
L est NP-Dûr si  L’  NPC alors L’ α L.
20
Exemple
Problème d’équivalence d’automates à état finie non
déterministe est NP-Dûr.
Problème NP-Complet
Définition 11
L est dit NP-complet (NPC) si
1. L  NP
2.  L’  NP on a L’ α L
21
Problème NP-Complet
Définition 12
L est dit NP-complet (NPC) si
1. L  NP
2.  L’  NPC alors L’ α L
22
Problème NP-Complet
Démonstration : par transitivité 2‘2
L  NPC
L  NP L’ α L avec L’  NPC
L’  NP ,  L''  NP alors (par transitivité) L'' α L' et L' α L
  L''  NP et L'' α L
23
Premier Problème NP-Complet
Théorème de COOK
SAT  NPC
24
Théorème de COOK
Démonstration
1) SAT  NP
2)  L'  NP alors L' α SAT
25
Pour montrer que SAT  NP
a- Soit une interprétation I de façon
non déterministe;
b- Vérifier que [𝐴𝑖]𝐼=V ∀ 1 ≤ 𝑖 ≤ 𝑛
Données de SAT
𝑃 = 𝑝𝑖; 1 ≤ 𝑖 ≤ 𝑛
𝐹 =∧𝑖=1
𝑛
𝐴𝑖
𝐴𝑖 =∨𝑗=1
𝑘𝑖
𝐿𝑖𝑗
[𝐴𝑖]𝐼=V ∀ 1 ≤ 𝑖 ≤ 𝑛
Algorithme ND
𝐼 = 𝑛
𝑜𝑛 𝑎 𝑚 𝑐𝑙𝑎𝑢𝑠𝑒𝑠
𝑝𝑜𝑢𝑟 𝑢𝑛𝑒 𝑐𝑙𝑎𝑢𝑠𝑒 𝐴𝑖
𝑘 = max
1≤𝑖≤2𝑛
𝑘𝑖; le nombre littéraux
p=max(n, m, k) 𝑂(𝑝3)
Polynomial : SAT  NP
Les classes P et NP
26
P NP-Complet
NP-Dur
NP-Difficile
NP
SAT TSP
CH PLC
k-SAT
Tri
2-SAT
2-COL
PCC
Vérifiabilité polynomiale
Résolution
polynomiale
SAT
• Un problème fondamental en théorie de la complexité,
• Satisfiabilité booléenne des formules de la logique
propositionnelle,
• C’est le premier problème NP-découvert (Théorème de Cook, 1971),
• Solveur SAT (exemple: logictools.org)
27
SAT : description d’un problème
• Valeurs booléennes Vrai et Faux : ⊺, ⊥
• Variables booléennes : par exemple: a, b, c, d;
• Formule: F = F (a, b, c, d)
• Variables =?  eval (F)= ⊺
• Si affectation possible, F est SATisfiable,
• Si non, inSATisfiable.
28
SAT : description d’un problème
Nature de la formule
• 𝑭 = (𝑎 ∨ ¬𝑐 ∨ 𝑑) ∧ (¬𝑎 ∨ ¬𝑏) ∧ (¬𝑎 ∨ ¬𝑐) ∧ 𝑏 ∨ ¬𝑑 ∧ 𝑏 ∨ 𝑐 ∨ 𝑑
𝐶1
• F est sous forme normale conjonctive (CNF)
• F est conjonction : 𝐶1 ∧ 𝐶2 ∧ ⋯ ∧ 𝐶𝑘
• Chaque 𝐶𝑖 est une clause:
• 𝐶𝑖 est une disjonction de littéraux : 𝑙1 ∨ 𝑙2 ∨ ⋯ ∨ 𝑙𝑝;
• Chaque opérant de la disjonction est un littéral 𝑙𝑗 : de la forme variable propositionnelle ou sa
négation 𝑣 et ¬𝑣;
• CNF non restrictif;
• Affectation rend F satisfiable ( chaque clause s’évalue à T):
• 𝑎 = ⊥
• 𝑏, 𝑐, 𝑑 = ⊺
29
SAT : description d’un problème
Nature de la formule
𝑭 = (𝑎 ∨ ¬𝑐 ∨ 𝑑) ∧ (¬𝑎 ∨ ¬𝑏) ∧ (¬𝑎 ∨ ¬𝑐) ∧ 𝑏 ∨ ¬𝑑 ∧ 𝑏 ∨ 𝑐 ∨ 𝑑
• F est une formule cohérente,
• Interprétation : assignation d’une valeur de vérité à chaque
variable I: {a=faux, b=Vrai, c=vrai, d=Vrai},
• Modèle d’une formule F : interprétation pour laquelle F a la
valeur Vrai,
• Formule F cohérente : F admet au moins un modèle.
30
Exemple : Problème SAT
31
I= (𝑎 ∨ 𝑏 ∨ 𝑐) ∧ (¬𝑎 ∨ 𝑏) ∧ ¬𝑐
….
J= (𝑎 ∨ 𝑏 ∨ 𝑐) ∧ (¬𝑎 ∨ 𝑏) ∧
¬𝑐 ∧ ¬𝑏 Vrai
Faux
Vérificateur
S= {a=Vrai, b=Vrai, c=Faux},
…
{a=Faux, b=Faux, c=Vrai},
Instance de SAT
Certificat de I
Exemples
32
SAT
3-SAT Clique
3 coloriage
K-coloriage
CS (VS)
HC (graphe orienté)
HC
TS
Stable
IS
(Independent Set)
2-SAT
2-Coloriage
3-SAT : Description d’un problème
Nature de la formule
• Soit F est conjonction : 𝐹 = 𝐶1 ∧ 𝐶2 ∧ ⋯ ∧ 𝐶𝑘 une formule en 3-CNF, avec k
clauses, contenant chacune 3 littéraux distincts.
• Pour chaque clause on crée 3 sommets, un pour chaque littéral dans la clause.
Données :
𝑃 = 𝑝𝑖; 1 ≤ 𝑖 ≤ 𝑛
𝐹 =∧𝑖=1
𝑛
𝐴𝑖 𝑜𝑢 𝐹 = {𝐴𝑖; 1 ≤ 𝑖 ≤ 𝑛} avec 𝐴𝑖 =∨𝑗=1
3
𝐿𝑖𝑗.
(𝐴𝑖 𝑙′
𝑒𝑛𝑠𝑒𝑚𝑏𝑙𝑒 𝑑𝑒 𝑐𝑙𝑎𝑢𝑠𝑒𝑠 𝑒𝑡 3 𝑙𝑖𝑡𝑡é𝑟𝑎𝑢𝑥 𝑝𝑎𝑟 𝑐𝑙𝑎𝑢𝑠𝑒)
Problème :
Existe-t-il une interprétation I / [𝐴𝑖]𝐼=V ∀ 1 ≤ 𝑖 ≤ 𝑛 ?
33
Circuit Hamiltonien : Description d’un problème
Données :
Soit un graphe G = (S, A) et |S|=n sommets.
Problème :
Existe-t-il un parcours fermé qui passe par tous les sommets une
seule fois?
Trouver une permutation 𝑠𝑝1, … , 𝑠𝑝𝑛 𝑑𝑒 𝑆,
𝑒𝑡 (𝑠𝑝𝑖, … , 𝑠𝑝𝑖+1) ∈ 𝐴 ∀ 1 ≤ 𝑖 ≤ 𝑛 − 1; (𝑠𝑝𝑛 , … , 𝑠𝑝1) ∈ A.
34
G=(S,A)
5
4
3 2
1
Voyageur de commerce (TSP) : Description d’un
problème
Données :
Soit un graphe G = (V, E) complet et pondéré avec V l’ensemble de
villes, et 𝑑(𝑣𝑖, 𝑣𝑗) : la distance entre ville i et ville j et un entier 𝑏.
Problème :
Existe-t-il un parcours fermé qui passe par toutes les villes une seule
fois dont la longueur ≤ 𝑏?
Trouver une permutation 𝑣𝑝1, … , 𝑣𝑝𝑛 𝑑𝑒 𝑉,
𝑒𝑡
𝑖=1
𝑛−1
𝑑 (𝑣𝑝𝑖, … , 𝑣𝑝𝑖+1)+ 𝑑(𝑣𝑝𝑛, … , 𝑣𝑝1) ≤ 𝑏
35
Exemples : Circuit Ham𝑖𝑙𝑡𝑜𝑛𝑖𝑒𝑛 ∝ TSP
Exercice :
Montrer que CH ∝ 𝑇𝑆𝑃.
36
CH
Input G=(S,A)
TSP ou n=|V|
Input F(X)=G'=(V, E)
Algorithme
Transformation F
5
4
3 2
1
5
4
3 2
1
1
1
1
1
1
1
1
2
2
2
Définition de F :
V=S
𝑑(𝑣𝑖, … , 𝑣𝑗) =
1 𝑠𝑖 (𝑣𝑖, … , 𝑣𝑗) ∈ 𝐴
2 𝑠𝑖 𝑛𝑜𝑛
b= |V|=n
Cliques Maximale : Description d’un problème
Données :
graphe G = (S, A) et un entier 𝑘 ≤ |𝑆|
Problème :
G contient-il une clique de taille k?
Existe-t-il un sous-graphe complet dont le nombre de sommet ≥ 𝑘?
∃ 𝑆′ ⊂ 𝑆 𝑡𝑒𝑙𝑞𝑢𝑒 𝑆′ ≥ 𝑘
∀ 𝑠1 ∈ 𝑆′
𝑒𝑡 𝑠2 ∈ 𝑆′
on a (𝑠1, 𝑠2 ) ∈ A
37
Couverture par Sommet (Vertex Code) : Description
d’un problème
Données :
Graphe G = (S, A) et un entier 𝑘 ≤ |𝑆|
Problème :
Existe-t-il une couverture par sommets de G de taille k?
∃ 𝑆′
⊂ 𝑆 𝑡𝑒𝑙𝑞𝑢𝑒 𝑆′
≤ 𝑘
∀ (𝑠1, 𝑠2 ) ∈ A on a 𝑠1 ∈ 𝑆′ 𝑜𝑢 𝑠2 ∈ 𝑆′
38
Coloration de Graphe : Description d’un problème
Données :
Un graphe G = (S, A) et un entier 𝑘 ≤ |𝑆|
Problème :
Existe-t-il une coloration des sommets de G de taille k (k couleurs)?
Existe-t-il une coloration minimale de telle sorte que deux sommets
adjacents seront coloriés avec deux couleurs différentes?
39
Exemples : Coloration de Graphe
40
3-coloriage
3-coloriage
Vrai
Faux
Graphe G
Vrai
Faux
Vérificateur
S= {V,B,O,V,O},
…
S‘={V,B,V,V,O},
Instance de Coloration de Graphe
Certificat de I
k=3 k=3
Instance
Positive
Certificat
Positif
Instance
Négative
Exemple : Transformation Polynomiale
Coloration de Graphe ∝ 𝑆𝐴𝑇
SAT
• Données : les formules
propositionnelles au format
CNF.
• Problème : Trouver les
formules CNF Cohérentes.
41
Coloration de Graphe
• Données : un graphe G non
orienté et un entier k.
• Problème : Coloration d’un
graphe avec au moins k
couleurs.
Algorithme
Transformation
b c
a
Transformation
𝑭 = {𝑎, 𝑏, 𝑐, ¬𝑎, ¬𝑏, ¬𝑐/∧,∨}
Le plus long Cycle (PLC) : Description d’un problème
Données :
Soit un graphe G = (S, A) et un entier 𝑘.
Problème :
Déterminer si G possède un cycle de longueur ≥ 𝑘.
Exercice :
Montrer que CH ∝ 𝑃𝐿𝐶.
42
CH
Input G=(S,A)
PLC
Input F(X)=G'=(S',A')
Algorithme
Transformation F
Somme de sous-ensemble : Description d’un problème
Données :
𝑆 ⊆ ℕ 𝑒𝑡 𝑡 ∈ ℕ
Problème :
Existe-t-il 𝑆′ ⊆ 𝑆 / 𝑠𝑖
′∈𝑆′ 𝑠𝑖
′
= 𝑡 ?
Exemple :
S= {1, 3 , 5, 45, 65, 98, 45658, 45458, 1235, 785, 659}
t=1590,
43
Exercice 1
Prouver que
𝑇𝑆𝑃 ∝ 𝐶ircuit Hamiltonien et
𝐶ircuit Hamiltonien ∝ 𝑇𝑆𝑃
44
Exercice 2
Prouver que
𝐶𝑙𝑖𝑞𝑢𝑒 𝑀𝑎𝑥𝑖𝑚𝑎𝑙𝑒
∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡.
45
Correction Exercice 2 :𝐶𝑙𝑖𝑞𝑢𝑒 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒𝑆𝑜𝑚𝑚𝑒𝑡
Données :
Graphe 𝐺1 = ( 𝑆1, 𝐴1), | 𝑆1|=n
et un entier 𝑘1≤ | 𝑆1|
Problème :
G contient-il une clique de taille
𝑘1?
Existe-t-il un sous-graphe complet
dont le nombre de sommet ≥ 𝑘1?
∃ 𝑆′
1 ⊆ 𝑆1 𝑡𝑒𝑙𝑞𝑢𝑒 𝑆′
1 ≥ 𝑘1 et
∀ 𝑠1∈ 𝑆′
1 𝑒𝑡 𝑠2 ∈ 𝑆′
1
𝑎𝑙𝑜𝑟𝑠 (𝑠1, 𝑠2 ) ∈ 𝐴1
46
Données :
Graphe 𝐺2 = ( 𝑆2, 𝐴2) et un entier
𝑘2 ≤ | 𝑆2|
Problème :
Existe-t-il une couverture par
sommets de G de taille 𝑘2?
∃ ? 𝑆′
2 ⊆ 𝑆2 𝑡𝑒𝑙𝑞𝑢𝑒 𝑆′
2 ≤ 𝑘2 et
∀ (𝑠1, 𝑠2 ) ∈ 𝐴2 on a 𝑠1 ∈ 𝑆′
2
𝑜𝑢 𝑠2 ∈ 𝑆′
2
𝑪𝒐𝒖𝒗𝒆𝒓𝒕𝒖𝒓𝒆 𝒅𝒆 𝑺𝒐𝒎𝒎𝒆𝒕
𝑪𝒍𝒊𝒒𝒖𝒆
Correction Exercice 2 :𝐶𝑙𝑖𝑞𝑢𝑒 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒𝑆𝑜𝑚𝑚𝑒𝑡
47
Montrer que f est calculable en un temps polynomial :
Algorithme:
Pour i de 1 à n faire
𝑆2[𝑖] = 𝑆1[𝑖]
Fin pour
Pour i de 1 à n faire
Pour j de 1 à n faire
Si 𝑠𝑖, 𝑠𝑗 ∉ 𝐴1𝑒𝑡 (𝑖 ≠ 𝑗) alors
𝐴2 = 𝐴2 ∪ (𝑠𝑖, 𝑠𝑗)
Fin Si
Fin pour
Fin pour
𝑘2 = 𝑛 − 𝑘1
Pour i de 1 à n faire
Si (𝑠𝑖∉ 𝑆′1) alors
𝑆′2 = 𝑆′2 ∪ {𝑠𝑖}
Fin Si
Fin Pour
O(n)
O(n2)
La transformation est de O(n2)
 Transformation polynomiale
 f est calculable en un temps
polynomial et borné par O(n2).
O(1)
O(n)
𝐴2 = 𝐴1 = { 𝑠1, 𝑠2 ∉ 𝐴1}
𝑆2 = 𝑆1
𝑘2 = |𝑆1| − 𝑘1 = 𝑛 − 𝑘1
𝑆′2 = 𝑆1𝑆′1
Calcule de
la solution
48
2
1
5 4
3
G1=(S1,A1)
S’1= {2,3,4,5}
A’1= {(2,3);(3,4);(4,5); …..}
2
1
5 4
3
G2=(S2,A2)
S’2= {1}
A’2= {(1,3);(1,4);(1,5)}
Correction Exercice 2 :𝐶𝑙𝑖𝑞𝑢𝑒 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒𝑆𝑜𝑚𝑚𝑒𝑡
𝑪𝒐𝒖𝒗𝒆𝒓𝒕𝒖𝒓𝒆 𝒅𝒆 𝑺𝒐𝒎𝒎𝒆𝒕
𝑪𝒍𝒊𝒒𝒖𝒆 «  »
A2 =𝐴1
S2={1,2,3,4,,5}
Correction Exercice 2 :𝐶𝑙𝑖𝑞𝑢𝑒 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒𝑆𝑜𝑚𝑚𝑒𝑡
49
”  »
Soit x ∈ 𝐶𝑙𝑖𝑞𝑢𝑒  Montrer que f(x) ∈ 𝐶𝑆
∃ 𝑆′
1 ⊆ 𝑆1 𝑡𝑒𝑙𝑞𝑢𝑒 𝑆′
1 ≥ 𝑘1 et ∀ 𝑠1∈ 𝑆′
1 𝑒𝑡 𝑠2 ∈ 𝑆′
1alors
(𝑠1, 𝑠2 ) ∈ 𝐴1
o𝑛 𝑎 𝑆′
2 = 𝑆1 ∖ 𝑆′
1 = 𝑆2 ∖ 𝑆′
1 ⊆ 𝑆2
𝑆2 = 𝑆2| − |𝑆′
1
𝑆2 ≤ 𝑛 − 𝑘1 = 𝑘2
∀(𝑠1, 𝑠2 ) ∈ 𝐴2 𝑎𝑙𝑜𝑟𝑠 (𝑠1, 𝑠2 ) ∉ 𝐴1 𝑑𝑜𝑛𝑐 𝑠1 ∉ 𝑆′
1𝑜𝑢 𝑠2 ∉ 𝑆′
1
 𝑠1 ∈ 𝑆2 𝑜𝑢 𝑠2 ∈ 𝑆2
𝑫𝒐𝒏𝒄 𝑺′
𝟐 𝒆𝒔𝒕 𝒖𝒏𝒆 𝒔𝒐𝒍𝒖𝒕𝒊𝒐𝒏 𝒅𝒆 CS
Correction Exercice 2 :𝐶𝑙𝑖𝑞𝑢𝑒 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒𝑆𝑜𝑚𝑚𝑒𝑡
50
”  ”
Soit f(x) ∈ 𝐶𝑆  Montrer que x ∈ 𝐶𝑙𝑖𝑞𝑢𝑒
∃ 𝑆′
2 ⊆ 𝑆2 𝑡𝑒𝑙𝑞𝑢𝑒 𝑆′
2 ≤ 𝑘2 et ∀(𝑠1, 𝑠2 ) ∈ 𝐴2 alors
on a 𝑠1 ∈ 𝑆′
2 𝑜𝑢 𝑠2 ∈ 𝑆′
2
o𝑛 𝑎 𝑆′
1 = 𝑆1 ∖ 𝑆′
2 = 𝑆2 ∖ 𝑆′
2 ⊆ 𝑆1
|𝑆′
1| = 𝑆2 ∖ 𝑆′
2 = 𝑆2| − |𝑆′
2 ≥ 𝑛 − 𝑘2 = 𝑘1
∀ 𝑠1∈ 𝑆′
1 𝑒𝑡 𝑠2 ∈ 𝑆′
1  ∀ 𝑠1∉ 𝑆′
2 𝑒𝑡 𝑠2 ∉ 𝑆′
2
(𝑠1, 𝑠2 ) ∉ 𝐴2= 𝐴1  (𝑠1, 𝑠2 ) ∈ 𝐴1
𝑫𝒐𝒏𝒄 𝑺′
𝟏 𝒆𝒔𝒕 𝒖𝒏𝒆 𝒔𝒐𝒍𝒖𝒕𝒊𝒐𝒏 𝒅𝒆 𝑪𝒍𝒊𝒒𝒖𝒆 𝒆𝒕 𝒙 ∈ 𝑪𝒍𝒊𝒒𝒖𝒆
𝒇 𝒙 ∈ 𝑪𝑺
D’où 𝑪𝒍𝒊𝒒𝒖𝒆 ∝ 𝑪𝑺
Exercice 3
Prouver que
3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡.
51
Exercice 3 : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡
Indication :
1. Toute variable propositionnelle on lui associe 2 sommets (variable et sa
négation) Exemple : p → 𝑝 𝑒𝑡 ¬𝑝;
2. Toute clause est représentée par un triangle étiqueté par 3 littéraux de clauses;
3. Une arête est couverte par 1 sommet et un triangle est couvert par 2 sommets.
52
Prouver que : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡.
3-SAT
Données :
𝑃 = 𝑝𝑖; 1 ≤ 𝑖 ≤ 𝑛
𝐹 =∧𝑖=1
𝑚
𝐴𝑖
𝐴𝑖 =∨𝑗=1
3
𝐿𝑖𝑗
Problème :
Existe-t-il une interprétation I /
[𝐴𝑖]𝐼=V ∀ 1 ≤ 𝑖 ≤ 𝑛 ?
𝑪𝒐𝒖𝒗𝒆𝒓𝒕𝒖𝒓𝒆 𝒅𝒆 𝑺𝒐𝒎𝒎𝒆𝒕
Données :
𝐺: 𝑆, 𝐴
Problème :
Existe-t-il une couverture par
sommets de G de taille k?
∃ 𝑆′
⊆ 𝑆 𝑡𝑒𝑙𝑞𝑢𝑒 |𝑆′
| ≤ 𝑘 et
∀ (𝑠1, 𝑠2 ) ∈ A
on a 𝑠1 ∈ 𝑆′
𝑜𝑢 𝑠2 ∈ 𝑆′
Transformation
F(x)
Exercice 3 : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡
𝑩 = (𝑝1 ∨ 𝑝2 ∨ 𝑝3) ∧ (𝑝1 ∨ ¬𝑝2 ∨ 𝑝4) ∧ 𝑝2 ∨ ¬𝑝3 ∨ ¬𝑝4
53
 l’algorithme de transformation est polynomiale ≅ O(n2)
car on a la taille de graphe est 2n+3m d’où pour parcourir les sommets
on a [2n+3m]2 ≅O(n2).
𝑝1 ¬𝑝1 𝑝2 ¬𝑝2 𝑝3 ¬𝑝3 𝑝4 ¬𝑝4
𝑙1
1
𝑙2
1
𝑙3
1
𝑙1
2 𝑙2
2
𝑙3
2
𝑙1
3
𝑙2
3
𝑙3
3
n variables et
m clauses 
la taille de
graphe est
2n+3m
La taille de CS :
 k=2m+n (nombre de sommets couverts)
n : pour la couverture de tout les sommets 𝑝𝑖 𝑜ù 𝑝𝑖 𝐼 =V,
2m : pour couvrir les arêtes de chaque triangle.
𝑝1 ¬𝑝1 𝑝2 ¬𝑝2 𝑝3 ¬𝑝3 𝑝4 ¬𝑝4
𝑉 𝐹
𝑉 𝑉
𝑝1 𝐼 = 𝑝2 𝐼 = 𝑝4 𝐼 = 𝑉
𝑒𝑡 𝑝3 𝐼 = 𝐹
Exercice 3 : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡
k= 2n+3m
𝑆 = 𝑆1 ∪ 𝑆2
𝑆1 = 𝑝𝑖, ¬𝑝𝑖; 1 ≤ 𝑖 ≤ 𝑛 ; 𝑆1 = 2𝑛
𝑆2 = 𝐿𝑖1, 𝐿𝑖2, 𝐿𝑖3; 1 ≤ 𝑖 ≤ 𝑚 ; 𝑆2 = 3𝑚
𝐴𝑖 =∨𝑖=1
3
𝐿𝑖𝑗
𝑺 = 𝟐𝒏 + 𝟑m
54
Prouver que : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡.
𝐴 = 𝐴1 ∪ 𝐴2∪ 𝐴3
𝐴1 = 𝑝𝑖, ¬𝑝𝑖; 1 ≤ 𝑖 ≤ 𝑛 ; 𝐴1 = 𝑛
𝐴2 = (𝐿𝑖1, 𝐿𝑖2); (𝐿𝑖1, 𝐿𝑖3); 𝐿𝑖2, 𝐿𝑖3 ; 1 ≤ 𝑖 ≤ 𝑚; 𝐿𝑖𝑗 ∈ 𝑆2 ; 𝐴2 = 3𝑚
𝐴3 = (𝐿𝑖𝑗, 𝑋𝑘); (𝐿𝑖𝑗 ∈ 𝑆2 ); 𝑝𝑘 ∈ 𝑆1 ; 𝐿𝑖𝑗 ∈ 𝑋𝑘, 𝑎𝑣𝑒𝑐 𝑋𝑘 = 𝑝𝑘 𝑜𝑢 ¬𝑝𝑘 ; 𝐴3 = 3𝑚
𝑨 = 𝒏 + 𝟑𝒎 + 𝟑𝒎 = 𝒏 + 𝟔𝒎
Exercice 3 : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡
55
Prouver que : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡.
Montrer que f est calculable en un temps polynomial :
Algorithme:
Pour i de 1 à n faire
𝑆1 = 𝑆1 ∪ 𝑝𝑖, ¬𝑝𝑖
Fin pour
Pour i de 1 à m faire
𝑆2 = 𝑆2 ∪ 𝐿𝑖1, 𝐿𝑖2, 𝐿𝑖3
Fin pour
𝑆 = 𝑆1 ∪ 𝑆2
O(n)
O(m)
O(2n+3m): parcours de tous les sommets
l= max
(m,n)
O(l)
k= 2n+3m
𝑆 = 𝑆1 ∪ 𝑆2
𝑆1 = 𝑝𝑖, ¬𝑝𝑖; 1 ≤ 𝑖 ≤ 𝑛 ; 𝑆1 = 2𝑛
𝑆2 = 𝐿𝑖1, 𝐿𝑖2, 𝐿𝑖3; 1 ≤ 𝑖 ≤ 𝑚 ; 𝑆2 = 3𝑚
𝐴𝑖 =∨𝑖=1
3
𝐿𝑖𝑗
𝑺 = 𝟐𝒏 + 𝟑m
Exercice 3 : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡
56
Algorithme (suite):
Pour i de 1 à n faire
𝐴1 = 𝐴1 ∪ 𝑝𝑖, ¬𝑝𝑖
Fin pour
Pour i de 1 à m faire
𝐴2 = 𝐴2 ∪ (𝐿𝑖1,𝐿𝑖2); (𝐿𝑖1,𝐿𝑖3); 𝐿𝑖2, 𝐿𝑖3
Fin pour
Pour i de 1 à m faire
Pour j de 1 à 3 faire
Pour k de 1 à n faire
si (𝐿𝑖𝑗= 𝑝𝑘) alors 𝐴3 = 𝐴3 ∪ (𝐿𝑖𝑗, 𝑝𝑘)
si non si (𝐿𝑖𝑗= ¬𝑝𝑘) alors 𝐴3 = 𝐴3 ∪ (𝐿𝑖𝑗, ¬𝑝𝑘)
Fin si
Fin Pour
Fin Pour
Fin pour
𝐴 = 𝐴1 ∪ 𝐴2 ∪ 𝐴3;
k= n+2m
Fin algorithme
O(n)
O(m)
O(nm)
O(l2)
O(n+6m)
 O(l2)
D’où f est calculable en un
temps polynomiale
𝐴 = 𝐴1 ∪ 𝐴2∪ 𝐴3
𝐴1 = 𝑛 ; 𝐴2 = 3𝑚; 𝐴3 = 3𝑚
𝑨 = 𝒏 + 𝟑𝒎 + 𝟑𝒎 = 𝒏 + 𝟔𝒎
O(1)
Exercice 3 : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡
• x ∈ 3𝑆𝐴𝑇  Montrer que f(x) ∈ 𝐶𝑆
∃ ? 𝑆′
⊂ 𝑆 𝑡𝑒𝑙𝑞𝑢𝑒 𝑆′
𝑒𝑠𝑡 𝑢𝑛𝑒 𝑐𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒
∃ ? I / [𝐴𝑖]𝐼=V ∀ 1 ≤ 𝑖 ≤ 𝑚
∃ ? 𝑗0 / [𝐴𝑖𝑗0]𝐼=V
𝑝𝑖 ∈ 𝑃 ; 𝑠𝑖 𝑝𝑖 = 𝑉 𝑝𝑖 ∈ 𝑆′
𝑠𝑖 𝑝𝑖 = 𝐹 ¬𝑝𝑖∈ 𝑆′
∀ 𝑖 𝐿𝑖𝑗1, 𝐿𝑖𝑗2 ∈ 𝑆′
tel que 𝑗1 𝑒𝑡𝑗2 ≠ 𝑗0
|𝑆′
| = 𝑛 + 2𝑚 = 𝑘 𝑜𝑢 ≤ 𝑘
57
1
2
𝑺′
𝒆𝒔𝒕 𝒖𝒏𝒆 𝒔𝒐𝒍𝒖𝒕𝒊𝒐𝒏 𝒅𝒆 𝑪𝑺
Exercice 3 : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡
Prouvons : ∀ 𝑠1, 𝑠2 ∈ 𝐴 𝑎𝑙𝑜𝑟𝑠 𝑠1 ∈ 𝑆′ 𝑜𝑢 𝑠2 ∈ 𝑆′
𝑠1, 𝑠2 ∈ 𝐴1 ∃ I / 𝑠1, 𝑠2 = 𝑝𝑖, ¬𝑝𝑖
𝑝𝑖 ∈ 𝑆′
ou ¬𝑝𝑖∈ 𝑆′
 𝐴1 est couvert
𝑠1, 𝑠2 ∈ 𝐴2 : 𝑠1, 𝑠2 = (𝐿𝑖1, 𝐿𝑖2) ou (𝐿𝑖1, 𝐿𝑖3) ou (𝐿𝑖2, 𝐿𝑖3)
𝐿𝑖𝑗1, 𝐿𝑖𝑗2 ∈ 𝑆′
O𝑛 𝑎 𝑠1 ∈ 𝑆′
ou 𝑠2 ∈ 𝑆′
𝐴𝟐 est couvert
𝑠1, 𝑠2 = (𝐿𝑖𝑗1, 𝑥𝑘) ou (𝐿𝑖𝑗2, 𝑥𝑘) ou (𝐿𝑖𝑗3, 𝑥𝑘)
[𝐿𝑖𝑗0]𝐼=V  𝑥𝑘 𝐼= V
𝐴𝟑 est couvert
58
D’après 1 :
 𝑫′
𝒐ù 𝑨 est couvert
 𝑺′
𝒆𝒔𝒕 𝒖𝒏𝒆 𝒔𝒐𝒍𝒖𝒕𝒊𝒐𝒏 𝒅𝒆 𝑪𝑺
D’après 2 :
D’après 2 : car
𝐿𝑖𝑗1 ∈ 𝑆′ et 𝐿𝑖𝑗2 ∈ 𝑆′
D’après 1 et 2 : 𝑥𝑘 ∈ 𝑆′
Exercice 4
Prouver que 3𝑆𝐴𝑇 ∈ 𝑁𝑃𝐶,
sachant que 𝑆𝐴𝑇 ∈ 𝑁𝑃𝐶.
59
Exercice 4 : Correction
Prouver que ∶
3𝑆𝐴𝑇 ∈ 𝑁𝑃𝐶, sachant que 𝑆𝐴𝑇 ∈ 𝑁𝑃𝐶.
60
1) 3SAT est un cas particulier de SAT ∈ 𝑁𝑃 (avec k=3) donc 3SAT ∈ 𝑁𝑃.
2)
SAT
Données :
𝑃 = 𝑝𝑖; 1 ≤ 𝑖 ≤ 𝑚
𝐹 =∧𝑖=1
𝑛
𝐴𝑖
𝐴𝑖 =∨𝑗=1
𝑘𝑖
𝐿𝑖𝑗
Problème :
Existe-t-il une interprétation I /
[𝐴𝑖]𝐼=V ∀ 1 ≤ 𝑖 ≤ 𝑛 ?
3 SAT
Données :
𝑃′ = 𝑝′𝑖; 1 ≤ 𝑖 ≤ 𝑚′
𝐹′ =∧𝑖=1
𝑛′
𝐴′𝑖
𝐴′𝑖 =∨𝑗=1
3
𝐿′𝑖𝑗
Problème :
Existe-t-il une interprétation I' /
[𝐴′𝑖]𝐼′=V ∀ 1 ≤ 𝑖 ≤ 𝑛' ?
𝑘𝑖 = 3 ; 𝐴′𝑖 = 𝐴𝑖;
𝑘𝑖 = 2 ; 𝐴𝑖 = 𝑥1 ∨ 𝑥2 ; 𝑓(𝐴𝑖) = 𝐴′𝑖 = (𝑥1 ∨ 𝑥2∨ 𝑦1) ∧ (𝑥1 ∨ 𝑥2∨ ¬𝑦1);
𝑘𝑖 = 1 ; 𝐴𝑖 = 𝑥1; 𝑓(𝐴𝑖) = 𝐴′𝑖= (𝑥1 ∨ 𝑥2∨ 𝑦1) ∧ (¬𝑦1 ∨ 𝑥3∨ 𝑦2) ∧
¬𝑦2 ∨ 𝑥4∨ 𝑦3 … ∧ (¬𝑦𝑝−4 ∨ 𝑥𝑝−2∨ 𝑦𝑝−3) ∧ (¬𝑦𝑝−3 ∨ 𝑥𝑝−1∨ 𝑥𝑝);
Exercice 4 : Correction
61
𝑘𝑖 > 3 ; 𝐴𝑖 = 𝑥1 ∨ ⋯ ∨ 𝑥𝑝 ;
(𝑥1 ∨ 𝑥2∨ 𝑦1) ∧ (¬𝑦1 ∨ 𝑥3∨ 𝑦2) ∧ ¬𝑦2 ∨ 𝑥4∨ 𝑦3 … ∧
(¬𝑦𝑝−4 ∨ 𝑥𝑝−2∨ 𝑦𝑝−3) ∧ ¬𝑦𝑝−3 ∨ 𝑥𝑝−1∨ 𝑥𝑝 ;
1
2
On a i-3 nouvelles variables  on a i-2 clauses
exactement 3 littéraux.
Prouvons que est satisfiable ssi est satisfiable.
1 2
Prouver que f est polynomiale et
𝑓 𝑥 ∈ 3𝑆𝐴𝑇 𝑠𝑠𝑖 𝑥 ∈ 𝑆𝐴𝑇
Exercice 4 : Correction
62
Algorithme de f:
Pour i de 1 à n faire
selon (𝑘𝑖):
3: 𝐴′𝑖 = 𝐴𝑖
2: 𝐴′𝑖 = (𝑥1 ∨ 𝑥2∨ 𝑦1) ∧ (𝑥1 ∨ 𝑥2∨ ¬𝑦1);
1: 𝐴′𝑖= (𝑥1 ∨ 𝑦1∨ 𝑦2) ∧ (𝑥1 ∨ 𝑦1∨ ¬𝑦2) ∧ (𝑥1 ∨ ¬𝑦1∨ 𝑦2) ∧
(𝑥1 ∨ ¬𝑦1∨ ¬𝑦2);
sinon: 𝐴′𝑖= (𝑥1 ∨ 𝑥2∨ 𝑦1) ∧ (¬𝑦1 ∨ 𝑥3∨ 𝑦2) ∧
¬𝑦2 ∨ 𝑥4∨ 𝑦3 … ∧ (¬𝑦𝑝−4 ∨ 𝑥𝑝−2∨ 𝑦𝑝−3) ∧ (¬𝑦𝑝−3 ∨ 𝑥𝑝−1∨ 𝑥𝑝)
Fin selon
Fin pour  O(l) = O(max( 𝑘𝑖))
D’où f est calculable en un temps polynomiale
Exercice 4 : Correction
63
𝐴𝑖 = 𝑥1 ∨ 𝑥2∨ ⋯ ∨ 𝑥𝑝
 f(x)∈ 𝟑𝑺𝑨𝑻
x ∈ 𝑺𝑨𝑻
Existe-t-il une interprétation I /
[𝐴𝑖]𝐼=V ∀ 1 ≤ 𝑖 ≤ 𝑛
[𝑥1 ∨ 𝑥2∨ ⋯ ∨ 𝑥𝑝]𝐼= V 
∃ 𝑖 /[𝑥𝑖]𝐼=V
𝐼′
=
𝐼
[𝑦𝑗] =V 𝑝𝑜𝑢𝑟 𝑗 ≤ 𝑖 − 2
[𝑦𝑗] =F 𝑝𝑜𝑢𝑟 𝑗 > 𝑖 − 2
[𝐴′𝑖]𝐼′=V
 x ∈ 𝑺𝑨𝑻
Existe-t-il une interprétation I' /
[𝐴′𝑖]𝐼′=V ∀ 1 ≤ 𝑖 ≤ 𝑛′
On suppose que
[𝐴𝑖]𝐼=F ∀ 𝐼 𝑒𝑡 𝑥𝑗 𝐼
=F ∀ 𝑗;
 [𝑦𝑘]𝐼′=V ; 1 ≤ 𝑘 ≤ 𝑖 − 3
[¬𝑦𝑙−3 ∨ 𝑥𝑙−1∨ 𝑥𝑙]𝐼′= F
 [𝐴′𝑖]𝐼′=F ;  Contradiction
𝐷′
𝑜ù 𝑖𝑙 ∃ 𝐼/[𝐴𝑖]𝐼=V
f(x)∈ 𝟑𝑺𝑨𝑻
Exercice 5
a) Prouver que 𝐶𝑆 ∈ 𝑁𝑃𝐶, à
partir de 3SAT ∈ 𝑁𝑃𝐶.
b) Prouver que 𝐶𝑆 ∈ 𝑁𝑃.
64
Exercice 5 : Correction
65
b) Montrer que 𝐶𝑆 ∈ 𝑁𝑃:
• Soit S' est un sous ensemble de façon non
déterministe.
• Vérifier que |𝑆′
| ≤ 𝑘
Vérifier que ∀ 𝑠1, 𝑠2 ∈ 𝐴 𝑜𝑛 𝑎 𝑠1 ∈ 𝑆′𝑜𝑢 𝑠2 ∈ 𝑆′;
|𝑆′
| ≤ 𝑆 = 𝑛;
|𝐴| ≤ 𝑛2
 𝑶(𝒏𝟑
)
D’où C𝑺 ∈NP
 𝒏𝟐
𝒂𝒓ê𝒕𝒆𝒔 𝒑𝒐𝒖𝒓 𝒄𝒉𝒂𝒒𝒖𝒆 𝒂𝒓ê𝒕𝒆 𝒐𝒏 𝒂 𝟐𝒏  𝟐𝒏𝟑
 𝑶(𝒏)
Exercice 6
Prouver que 𝑇𝑆 ∈ 𝑁𝑃,
Clique ∈ 𝑁𝑃 et HC ∈ NP.
66
Correction Exercice 6: Prouver que 𝑇𝑆 ∈ 𝑁𝑃, HC ∈ N𝑃 et
Clique ∈ 𝑁𝑃.
• Soit une permutation 𝑣𝑝1, … , 𝑣𝑝𝑛 de façon non déterministe.
• Vérifier que 𝑖=1
𝑛−1
( 𝑣𝑝𝑖, 𝑣𝑝𝑖+1) + 𝑣𝑝𝑛, 𝑣𝑝1 ≤ 𝑏 (soit polynomial).
n distance à déterminer et pour chaque distance on parcours 𝑛2
éléments distincts.
Algorithme : 𝑛3
+ 𝑛 + 1 = 𝑂 𝑛3
 𝑻𝑺 ∈ 𝑵𝑷
HC ∝ 𝑇𝑆 𝑒𝑡 𝑇𝑆 ∈ NPC → CH ∈ NPC
67
Exercice 7
Étant donné 3-SAT est NPC
montrer que Clique ∈ 𝑁𝑃𝐶.
68
Correction Exercice 7 : Étant donné 3-SAT est
NPC montrer que Clique 𝑒𝑠𝑡 𝑁𝑃𝐶.
1. Montrer que Clique ∈ 𝑁𝑃𝐶 : Donner un algorithme ND polynomial.
2. Montrer que Clique 𝑒𝑠𝑡 𝑁𝑃_𝐷𝑢𝑟 : Montrer que 3-SAT∝ 𝐶𝑙𝑖𝑞𝑢𝑒.
69
• Soit G=(S,A) et 𝑘 ≤ |𝑆|;
• ∃? 𝑆′ ⊆ 𝑆 𝑎𝑣𝑒𝑐 𝑆 ≥ 𝑘 𝑒𝑡 ∀ 𝑠1∈ 𝑆′𝑒𝑡 𝑠2 ∈ 𝑆′
𝑂𝑛 𝑎 𝑠1, 𝑠2 ∈ 𝐴.
Réponse
Correction Exercice 7 : Étant donné 3-SAT est
NPC montrer que Clique 𝑒𝑠𝑡 𝑁𝑃𝐶.
70
• Choisir un sous − ensemble 𝑆′
⊆ 𝑆 𝑎𝑣𝑒𝑐 𝑆′
≤ 𝑘
F= True
Pour i de 1 à k-1 faire
Pour j de i+1 à k faire
Si (F=True) et 𝑠𝑖, 𝑠𝑗 ∈ 𝐴 alors …
Fin pour
Fin pour
Si (F=True) alors 𝑆′
est une clique
Algorithme
O(n2)=O(k2)
 f est calculable en un temps polynomiale et Clique ∈ 𝑵𝑷
Correction Exercice 7 : Étant donné 3-SAT est
NPC montrer que Clique 𝑒𝑠𝑡 𝑁𝑃𝐶.
71
Données :
Graphe 𝐺 = (𝑆, 𝐴), |𝑆|=n
et un entier 𝑘 ≤ |𝑆|
Problème :
Pour chaque clause 𝑐𝑖 on a 3
sommets |𝑆|=3m.
A sera construit comme suit : tous les
sommets sont reliés entre eux sauf les
2 sommets de même clause et si l’une
est la négation d’une autre.
𝑪𝒍𝒊𝒒𝒖𝒆
3 SAT
Données :
𝑃 = 𝑝1, 𝑝2, 𝑝3, … , 𝑝𝑛
A= 𝑐1 ∧ 𝑐2 ∧ ⋯ ∧ 𝑐𝑚
𝑐𝑖 = 𝑙𝑖1 ∨ 𝑙𝑖2 ∨ 𝑙𝑖3
Problème :
Existe-t-il une interprétation I
tel que
[𝐴𝑖]𝐼=V ∀ 1 ≤ 𝑖 ≤ 𝑛 ?
Correction Exercice 7 : Étant donné 3-SAT est
NPC montrer que Clique 𝑒𝑠𝑡 𝑁𝑃𝐶.
72
• Transformer une expression booléenne 3-CNF en un graphe tel
que ce graphe contient une clique de taille k ssi l’expression
booléenne est satisfiable.
• Soit B = 𝑐1 ∧ 𝑐2 ∧ ... ∧ 𝑐𝑘 une formule en 3-CNF avec k clauses,
contenant chacune 3 littéraux distincts.
• Pour chaque clause on crée 3 sommets, un pour chaque littéral
dans la clause.
• On relie 2 sommets s’ils proviennent de deux clauses différentes
et que leurs littéraux sont consistent « l’un n’est pas la négation
de l’autre ».
Transformation
Correction Exercice 7 : Étant donné 3-SAT est
NPC montrer que Clique 𝑒𝑠𝑡 𝑁𝑃𝐶.
73
Montrer que cette transformation est polynomiale:
• La construction de S se fait en O(m).
• La construction de A se fait en O(m2).
Exemple
B= 𝑐1 ∧ 𝑐2 ∧ 𝑐3
𝑐1 = 𝑎 ∨ ¬𝑏 ∨ ¬𝑐
𝑐2 = ¬𝑎 ∨ 𝑏 ∨ 𝑐
𝑐3 = 𝑎 ∨ 𝑏 ∨ 𝑐
k= m
𝑎1 𝑏1 𝑐1
𝑎3
𝑏3
𝑐3
𝑐2
𝑏2
𝑎2
𝒂, 𝒃, 𝒄 Vrai
¬𝒂, ¬𝒃, 𝒄 Vrai
Correction Exercice 7 : Étantdonné 3-SATest NPC montrerque
Clique 𝑒𝑠𝑡 𝑁𝑃𝐶.
74
” ”
Soit B une instance positive de 3-SAT, c.à.d. B est sous forme
CNF de 3 littéraux par clause et B est Satisfiable.
Montrer que G=f(B) est une instance positive de 𝐶𝑙𝑖𝑞𝑢𝑒.
c.à.d. il contient un sous-graphe complet de m sommets.
Si B est Satisfiable ∃ 𝐼 𝑡𝑒𝑙 𝑞𝑢𝑒[𝑐𝑗]𝐼=V ∀ 1 ≤ 𝑗 ≤ 𝑚
Alors 𝑖𝑙 ∃ 𝑎𝑢 𝑚𝑜𝑖𝑛𝑠 𝑢𝑛 𝑙𝑖𝑡𝑡é𝑟𝑎𝑙 𝑝𝑎𝑟 𝑐𝑙𝑎𝑢𝑠𝑒 𝑙𝑖 𝑡𝑒𝑙 𝑞𝑢𝑒 𝑙𝑖 𝐼=V
𝑆′ = 𝑙1, 𝑙2, 𝑙3, … , 𝑙𝑚  Montrer que 𝑆′
est une clique.
𝑆𝑜𝑖𝑡 𝑙𝑖, 𝑙𝑗 ∈ 𝑆′
𝑒𝑡 𝑙𝑖 ≠ ¬𝑙𝑗 et 𝑖 ≠ 𝑗 (puisqu’ils sont satisfiables
par I et ∉ à la même clause.
 (𝑙𝑖, 𝑙𝑗) ∈ 𝐴 d’où S' est une clique de taille ≥ 𝑘 = 𝑚.
Correction Exercice 7 : Étant donné 3-SATest NPC montrer
que Clique 𝑒𝑠𝑡 𝑁𝑃𝐶.
75
”  ”
Soit G une instance positive de f(B). G contient une clique S' de
taille k = m (nombre de clauses de B).  Montrer que B est
satisfiable et S' contient m sommets correspondant à m littéraux
pour chacune des clauses.
 ∃ une interprétation I qui en affectant à chacun de ces m
littéraux la valeur Vrai Car on n’a pas un littéral relié à sa
négation.
 D’où 3-SAT∝ 𝑪𝒍𝒊𝒒𝒖𝒆.
𝑶𝒏 𝒂 𝑪𝒍𝒊𝒒𝒖𝒆 𝒆𝒔𝒕 𝑵𝑷_𝑫𝒖𝒓 et 𝑪𝒍𝒊𝒒𝒖𝒆 ∈ 𝑵𝑷
D’où 𝑪𝒍𝒊𝒒𝒖𝒆 ∈ 𝑵𝑷_𝑪𝒐𝒎𝒑𝒍𝒆𝒕
Complexité en espace
76
Complexité en espace
77
Définition 1
Soit M une machine de Turing offline Déterministe.
La complexité en espace de la machine M est la fonction
EM (n) défini par :
EM (n) = max{ m, |x|=n, m est le nombre de cases visitées
lors de l’exécution de M sur x}
Complexité en espace
78
Définition 2
Soit M une machine de Turing offline Déterministe.
L’espace de calcule de la machine M sur un mot w est la
fonction EM (w) défini par :
EM (w) = {le nombre de cases visitées pour la plus
courte exécution de M sur w acceptant w}
Complexité en espace
79
Définition 3
Soit M une machine de Turing offline non Déterministe.
EM (n) = max{ECN (x) ; |x|=n}.
Définition 4
Une machine de Turing M est dite polynomiale en espace si :
∃ 𝑷 𝒏 /𝑬𝑴 (
𝒏) ≤ 𝑃 𝑛 ∀𝑛.
Complexité en espace
80
Définition 5
La classe P-space est la classe des langages décidés par
une MT Déterministe et polynomiale en espace.
Définition 6
La classe NP-space est la classe des langages acceptés par
une MT non Déterministe et polynomiale en espace.
Complexité en espace
81
Théorème
P-Space = NP-Space
et 𝑃 ⊆ 𝑁𝑃 ⊂ 𝑃_𝑠𝑝𝑎𝑐𝑒 est la classe des langages
décidés par une MT Déterministe et polynomiale
en espace.
Complexité en espace
82
Exercice : Prouver
L∈ 𝑁𝑃_𝑆𝑝𝑎𝑐𝑒
∃ 𝑴𝑻𝑵𝑫 𝑴 polynomiale en espace et
∃ 𝑷 𝒏 /𝑬𝑴(𝒏) ≤ 𝑃 𝑛 ∀𝑛.
Exercice : Prouver L∈ 𝑁𝑃_𝑆𝑝𝑎𝑐𝑒
∃𝑴𝑻𝑵𝑫 𝑴 polynomialeenespaceet ∃ 𝑷 𝒏 /𝑬𝑴(𝒏) ≤ 𝑃 𝑛 ∀𝑛.
Soit M' MTD qui reconnait L / L(M') =L.
EM' (n) ≤ 3𝑝 𝑛 = 𝑝′(𝑛)  L∈ 𝑃_𝑠𝑝𝑎𝑐𝑒
Donc 𝑁𝑃_𝑠𝑝𝑎𝑐𝑒 ⊂ 𝑃_𝑠𝑝𝑎𝑐𝑒 et 𝑃_𝑠𝑝𝑎𝑐𝑒 ⊂ 𝑁𝑃_𝑠𝑝𝑎𝑐𝑒
 𝑃_𝑠𝑝𝑎𝑐𝑒 = 𝑁𝑃_𝑠𝑝𝑎𝑐𝑒.
83
𝑁𝑃 ⊂ 𝑃_𝑠𝑝𝑎𝑐𝑒
𝑁𝑃 ⊂ 𝑁𝑃_𝑠𝑝𝑎𝑐𝑒
Soit L∈ 𝑁𝑃
∃ 𝑴𝑻𝑵𝑫 polynomiale en temps
∃ 𝑴𝑻𝑵𝑫 𝑴 𝒆𝒕 𝑷 𝒏 /𝑻𝑴 (
𝒏) ≤ 𝑃 𝑛 ∀𝑛
et on a 𝑬𝑴 𝒏 ≤ 𝑻𝑴 𝒏 ≤ 𝑃 𝑛
Donc 𝐿 ∈ 𝑁𝑃_𝑠𝑝𝑎𝑐𝑒 = 𝑃_𝑠𝑝𝑎𝑐𝑒
 NP ⊂ 𝑁𝑃_𝑠𝑝𝑎𝑐𝑒 = 𝑃_𝑠𝑝𝑎𝑐𝑒.
Chapitre 3 : Paradigmes de programmation
84
Approche Diviser pour Régner
Algorithme de Gloutonne
Méthode Branch and Bound
Méthode Programmation Dynamique

Contenu connexe

Tendances

Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
Chahrawoods Dmz
 
Chapitre i introduction et motivations
Chapitre i introduction et motivationsChapitre i introduction et motivations
Chapitre i introduction et motivations
Sana Aroussi
 
Correction de td poo n2
Correction de td poo n2Correction de td poo n2
Correction de td poo n2
yassine kchiri
 
Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Seance 3- Programmation en langage C
Seance 3- Programmation en langage C
Fahad Golra
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 si
Narûtö Bàl'Sèm
 
Exercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivitéExercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivité
salah fenni
 
Chapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéChapitre ii complexité et optimalité
Chapitre ii complexité et optimalité
Sana Aroussi
 
Ordonnancement exercices
Ordonnancement exercicesOrdonnancement exercices
Ordonnancement exercices
Selman Dridi
 

Tendances (20)

Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Les enregistrements
Les enregistrements Les enregistrements
Les enregistrements
 
Chapitre i introduction et motivations
Chapitre i introduction et motivationsChapitre i introduction et motivations
Chapitre i introduction et motivations
 
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)
 
Diviser Pour Régner
Diviser Pour RégnerDiviser Pour Régner
Diviser Pour Régner
 
Correction de td poo n2
Correction de td poo n2Correction de td poo n2
Correction de td poo n2
 
Algorithmes de tri
Algorithmes de triAlgorithmes de tri
Algorithmes de tri
 
Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Seance 3- Programmation en langage C
Seance 3- Programmation en langage C
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 si
 
Exercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivitéExercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivité
 
Chap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheChap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-recherche
 
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...
 
Chapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéChapitre ii complexité et optimalité
Chapitre ii complexité et optimalité
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Ordonnancement exercices
Ordonnancement exercicesOrdonnancement exercices
Ordonnancement exercices
 
Algorithme & structures de données Chap II
Algorithme & structures de données Chap IIAlgorithme & structures de données Chap II
Algorithme & structures de données Chap II
 
Complexité_ENSI_2011.ppt
Complexité_ENSI_2011.pptComplexité_ENSI_2011.ppt
Complexité_ENSI_2011.ppt
 
Serie
SerieSerie
Serie
 
Chapitre5 les chaînes de caractères - Copy.pptx
Chapitre5 les chaînes de caractères - Copy.pptxChapitre5 les chaînes de caractères - Copy.pptx
Chapitre5 les chaînes de caractères - Copy.pptx
 
Knn
KnnKnn
Knn
 

Similaire à Chapitre 2 -Complexité des problèmes avec correction.pdf

Décidabilité et complexité 4_4 _ Problèmes NP-Complets.pdf
Décidabilité et complexité 4_4 _ Problèmes NP-Complets.pdfDécidabilité et complexité 4_4 _ Problèmes NP-Complets.pdf
Décidabilité et complexité 4_4 _ Problèmes NP-Complets.pdf
DariusSteves
 
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
 

Similaire à Chapitre 2 -Complexité des problèmes avec correction.pdf (20)

Décidabilité et complexité 4_4 _ Problèmes NP-Complets.pdf
Décidabilité et complexité 4_4 _ Problèmes NP-Complets.pdfDécidabilité et complexité 4_4 _ Problèmes NP-Complets.pdf
Décidabilité et complexité 4_4 _ Problèmes NP-Complets.pdf
 
cours algorithme
cours algorithmecours algorithme
cours algorithme
 
transparents-Algo-complexite.pdf
transparents-Algo-complexite.pdftransparents-Algo-complexite.pdf
transparents-Algo-complexite.pdf
 
À la chasse aux bugs avec la Laboratoire d'informatique formelle
À la chasse aux bugs avec la Laboratoire d'informatique formelleÀ la chasse aux bugs avec la Laboratoire d'informatique formelle
À la chasse aux bugs avec la Laboratoire d'informatique formelle
 
Récursivité
RécursivitéRécursivité
Récursivité
 
Video
VideoVideo
Video
 
La recherche opérationnelle et l'optimisation combinatoire
La recherche opérationnelle et l'optimisation combinatoireLa recherche opérationnelle et l'optimisation combinatoire
La recherche opérationnelle et l'optimisation combinatoire
 
traitement de signal cours
traitement de signal cours traitement de signal cours
traitement de signal cours
 
Resume algorithme
Resume algorithmeResume algorithme
Resume algorithme
 
Résumé Algorithme et Programmation
Résumé Algorithme et ProgrammationRésumé Algorithme et Programmation
Résumé Algorithme et Programmation
 
246242769 sequence-1-pdf
246242769 sequence-1-pdf246242769 sequence-1-pdf
246242769 sequence-1-pdf
 
Traitement des données massives (INF442, A4)
Traitement des données massives (INF442, A4)Traitement des données massives (INF442, A4)
Traitement des données massives (INF442, A4)
 
3_Transformée_de_Laplace.pdf
3_Transformée_de_Laplace.pdf3_Transformée_de_Laplace.pdf
3_Transformée_de_Laplace.pdf
 
csp_sir_C1_4.pptx
csp_sir_C1_4.pptxcsp_sir_C1_4.pptx
csp_sir_C1_4.pptx
 
Oc1 2013
Oc1 2013Oc1 2013
Oc1 2013
 
chap 3 complexité (3).pdf
chap 3 complexité (3).pdfchap 3 complexité (3).pdf
chap 3 complexité (3).pdf
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite
 
Cours-optimisation.pdf
Cours-optimisation.pdfCours-optimisation.pdf
Cours-optimisation.pdf
 
corr_exos.pdf
corr_exos.pdfcorr_exos.pdf
corr_exos.pdf
 

Plus de MbarkiIsraa

Plus de MbarkiIsraa (18)

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

Chapitre 2 -Complexité des problèmes avec correction.pdf

  • 1. CHAPITRE 2 : COMPLEXITÉ DES PROBLÈMES 1
  • 2. Introduction • Problèmes décidables : la solution algorithmique existe • Est-ce que cette solution est efficace ? • Est-ce qu’elle utilise une quantité de ressources « raisonnables » temps et espace 2
  • 3. Complexité des problèmes en temps Principaux Facteurs 1. Machine (matériel et logiciel) 2. Données : • Taille : • Type : • Valeurs : • Organisation : Paramètre principal n À une constante près Pas d’influence Meilleur, moyenne et pire des cas À une constante près 3
  • 4. Complexité des problèmes en temps La complexité en temps est calculée en fonction de la taille des données n quand n est grand (n  ∞) à un facteur près au pire des cas. 4
  • 5. Exemple: Temps estimé en secondes Taille des données O(Log n) O(n) O(n2) O(2n) 10 100 1000 10000 100000 3.10-6 7.10-6 10-5 13.10-6 17.10-6 10-5 10-4 10-3 10-2 10-1 10-4 10-2 1 sec 1,7 min 2,8 heures 10-3 1014 siècles astronomique .. .. 5
  • 6. Complexité D’une Machine De Turing Déterministe Définition 1 Soit M une machine de Turing Déterministe. La complexité en temps de la machine M est la fonction TM (n) défini par : TM (n) = max{ m, x  Ʃ* /|x|=n et M s’exécute sur x en m étapes} 6
  • 7. Complexité d’une machine de Turing Non Déterministe Définition 2 Le temps de calcul d’une machine de Turing non déterministe pour un mot w noté TCM(w) est donné par :  La longueur de la plus courte exécution acceptant le mot si w  L(M) 1 sinon 7
  • 8. Complexité d’une machine de Turing Non Déterministe Définition 3 Soit M une machine de Turing non Déterministe. La complexité en temps de la machine M est la fonction TM (n) défini par : TM (n) = max{ m, x  Ʃ* /|x|=n et m = TCM(x)} 8
  • 9. Complexité des problèmes en temps Définition Notation Asymptotique O Une fonction g(n) est dite en O(f(n)) : g = O(f) s’il existe une constante c, n0/pour tout n>n0 0≤g(n)≤c(f(n)) Proposition Si la fonction f est calculée par une machine de Turing non déterministe M avec la complexité TM(n) alors Ǝ une machine de Turing non déterministe calculant f avec la complexité O(C TM(n)) où C est une constante. 9
  • 10. Complexité polynomiale en temps d’une Machine de Turing Définition 5 Une machine de Turing M est dite polynomiale en temps s’il Ǝ un polynôme p(n) tel que TM(n)≤p(n) pour tout n≥0. 10
  • 11. Complexité polynomiale en temps d’une Machine de Turing Définition 6: Classe P La classe P est la classe des langages décidés par une machine de Turing Déterministe Polynomiale Définition 7: Classe NP La classe NP est la classe des langages acceptés par une machine de Turing Non Déterministe Polynomiale 11
  • 12. Complexité polynomiale en temps d’une Machine de Turing Théorème Soit L  NP, Ǝ MTD M et un polynôme p(n)/M décide de L avec la complexité TM(n)=O(2p(n)) 12
  • 13. Problèmes de décisions • Un problème est dit de décision si pour tout input, l’unique output possible est de type booléen. • La plupart des problèmes d’optimisation peuvent être convertis à des problèmes de décision. • Il suffit d’ajouter une borne k sur la valeur à optimiser et changer la question : • Existe-t-il une solution dont la valeur est au plus k (en cas de minimisation); • Existe-t-il une solution dont la valeur est au moins k (en cas de maximisation). 13
  • 14. Problèmes de décisions :Exemples Circuit Hamiltonien Étant donné un graphe G, existe-t-il un chemin de longueur au plus k ? Voyageur de commerce TSP Étant donné un ensemble de villes 𝑉 = {𝑣1, … , 𝑣𝑛} et une fonction distance 𝑑(𝑣𝑖, 𝑣𝑗) entre les villes, et soit un nombre k. Existe-t-il un tour de toutes les villes dont la longueur au plus k ? 14 v1 v5 v3 v2 v4 d(v1,v2)
  • 15. Transformation Polynomiale Définition 8 Soient L1 ∈ Ʃ1 * et L2 ∈ Ʃ2 * Une transformation polynomiale de L1 vers L2 noté L1 α L2 est une fonction f définie par f: Ʃ1 *  Ʃ2 * tel que: 1. f est calculable en un temps polynomial 2. f(x)  L2 ssi x  L1 15
  • 16. Propriétés des Transformations Polynomiales Lemme 1 Si L1 α L2 alors 1. Si L2  P alors L1  P 2. Si L1  P alors L2  P 16 Lemme 2 Transitivité de la transformation polynomiale Si L1 α L2 et L2 α L3 alors L1 α L3
  • 17. Transformation polynomiale 1. Transformation en temps polynomial, 2. Si la fonction F peut être calculer en temps polynomial, on dit que L1 est polynomialement réductible a L2, et on note L1 α L2 17 Problème L1 Input X Problème L2 Input F(X) Algorithme Transformation F L1 L2 x F(x) Transformation Polynomiale = Projection = Réduction
  • 18. Equivalence polynomiale Définition 9 Deux langages L1 et L2 sont équivalents polynômialement notée ≡P L1 ≡P L2 ssi L1 α L2 et L2 α L1 Définition 10 Une classe d’équivalence polynomiale C1 est inférieure à une classe d’équivalence C2 noté C1 ≼ C2 Si :  L1  C1 et  L2  C2 on a L1 α L2 S’il existe une transformation polynomiale de tout langage de C1 vers tout langage C2 , on note C1 ≼p C2 18
  • 19. Propriétés des Transformations Polynomiales Lemme 3 La classe P est une classe d’équivalence polynomiale. 19 Lemme 4 Pout tout L1  Pet  L2  NP on a L1 α L2 P ≼ c  c classe d’équivalence de NP.
  • 20. Propriétés des Transformations Polynomiales Définition L est NP-Dûr si  L’  NPC alors L’ α L. 20 Exemple Problème d’équivalence d’automates à état finie non déterministe est NP-Dûr.
  • 21. Problème NP-Complet Définition 11 L est dit NP-complet (NPC) si 1. L  NP 2.  L’  NP on a L’ α L 21
  • 22. Problème NP-Complet Définition 12 L est dit NP-complet (NPC) si 1. L  NP 2.  L’  NPC alors L’ α L 22
  • 23. Problème NP-Complet Démonstration : par transitivité 2‘2 L  NPC L  NP L’ α L avec L’  NPC L’  NP ,  L''  NP alors (par transitivité) L'' α L' et L' α L   L''  NP et L'' α L 23
  • 24. Premier Problème NP-Complet Théorème de COOK SAT  NPC 24
  • 25. Théorème de COOK Démonstration 1) SAT  NP 2)  L'  NP alors L' α SAT 25 Pour montrer que SAT  NP a- Soit une interprétation I de façon non déterministe; b- Vérifier que [𝐴𝑖]𝐼=V ∀ 1 ≤ 𝑖 ≤ 𝑛 Données de SAT 𝑃 = 𝑝𝑖; 1 ≤ 𝑖 ≤ 𝑛 𝐹 =∧𝑖=1 𝑛 𝐴𝑖 𝐴𝑖 =∨𝑗=1 𝑘𝑖 𝐿𝑖𝑗 [𝐴𝑖]𝐼=V ∀ 1 ≤ 𝑖 ≤ 𝑛 Algorithme ND 𝐼 = 𝑛 𝑜𝑛 𝑎 𝑚 𝑐𝑙𝑎𝑢𝑠𝑒𝑠 𝑝𝑜𝑢𝑟 𝑢𝑛𝑒 𝑐𝑙𝑎𝑢𝑠𝑒 𝐴𝑖 𝑘 = max 1≤𝑖≤2𝑛 𝑘𝑖; le nombre littéraux p=max(n, m, k) 𝑂(𝑝3) Polynomial : SAT  NP
  • 26. Les classes P et NP 26 P NP-Complet NP-Dur NP-Difficile NP SAT TSP CH PLC k-SAT Tri 2-SAT 2-COL PCC Vérifiabilité polynomiale Résolution polynomiale
  • 27. SAT • Un problème fondamental en théorie de la complexité, • Satisfiabilité booléenne des formules de la logique propositionnelle, • C’est le premier problème NP-découvert (Théorème de Cook, 1971), • Solveur SAT (exemple: logictools.org) 27
  • 28. SAT : description d’un problème • Valeurs booléennes Vrai et Faux : ⊺, ⊥ • Variables booléennes : par exemple: a, b, c, d; • Formule: F = F (a, b, c, d) • Variables =?  eval (F)= ⊺ • Si affectation possible, F est SATisfiable, • Si non, inSATisfiable. 28
  • 29. SAT : description d’un problème Nature de la formule • 𝑭 = (𝑎 ∨ ¬𝑐 ∨ 𝑑) ∧ (¬𝑎 ∨ ¬𝑏) ∧ (¬𝑎 ∨ ¬𝑐) ∧ 𝑏 ∨ ¬𝑑 ∧ 𝑏 ∨ 𝑐 ∨ 𝑑 𝐶1 • F est sous forme normale conjonctive (CNF) • F est conjonction : 𝐶1 ∧ 𝐶2 ∧ ⋯ ∧ 𝐶𝑘 • Chaque 𝐶𝑖 est une clause: • 𝐶𝑖 est une disjonction de littéraux : 𝑙1 ∨ 𝑙2 ∨ ⋯ ∨ 𝑙𝑝; • Chaque opérant de la disjonction est un littéral 𝑙𝑗 : de la forme variable propositionnelle ou sa négation 𝑣 et ¬𝑣; • CNF non restrictif; • Affectation rend F satisfiable ( chaque clause s’évalue à T): • 𝑎 = ⊥ • 𝑏, 𝑐, 𝑑 = ⊺ 29
  • 30. SAT : description d’un problème Nature de la formule 𝑭 = (𝑎 ∨ ¬𝑐 ∨ 𝑑) ∧ (¬𝑎 ∨ ¬𝑏) ∧ (¬𝑎 ∨ ¬𝑐) ∧ 𝑏 ∨ ¬𝑑 ∧ 𝑏 ∨ 𝑐 ∨ 𝑑 • F est une formule cohérente, • Interprétation : assignation d’une valeur de vérité à chaque variable I: {a=faux, b=Vrai, c=vrai, d=Vrai}, • Modèle d’une formule F : interprétation pour laquelle F a la valeur Vrai, • Formule F cohérente : F admet au moins un modèle. 30
  • 31. Exemple : Problème SAT 31 I= (𝑎 ∨ 𝑏 ∨ 𝑐) ∧ (¬𝑎 ∨ 𝑏) ∧ ¬𝑐 …. J= (𝑎 ∨ 𝑏 ∨ 𝑐) ∧ (¬𝑎 ∨ 𝑏) ∧ ¬𝑐 ∧ ¬𝑏 Vrai Faux Vérificateur S= {a=Vrai, b=Vrai, c=Faux}, … {a=Faux, b=Faux, c=Vrai}, Instance de SAT Certificat de I
  • 32. Exemples 32 SAT 3-SAT Clique 3 coloriage K-coloriage CS (VS) HC (graphe orienté) HC TS Stable IS (Independent Set) 2-SAT 2-Coloriage
  • 33. 3-SAT : Description d’un problème Nature de la formule • Soit F est conjonction : 𝐹 = 𝐶1 ∧ 𝐶2 ∧ ⋯ ∧ 𝐶𝑘 une formule en 3-CNF, avec k clauses, contenant chacune 3 littéraux distincts. • Pour chaque clause on crée 3 sommets, un pour chaque littéral dans la clause. Données : 𝑃 = 𝑝𝑖; 1 ≤ 𝑖 ≤ 𝑛 𝐹 =∧𝑖=1 𝑛 𝐴𝑖 𝑜𝑢 𝐹 = {𝐴𝑖; 1 ≤ 𝑖 ≤ 𝑛} avec 𝐴𝑖 =∨𝑗=1 3 𝐿𝑖𝑗. (𝐴𝑖 𝑙′ 𝑒𝑛𝑠𝑒𝑚𝑏𝑙𝑒 𝑑𝑒 𝑐𝑙𝑎𝑢𝑠𝑒𝑠 𝑒𝑡 3 𝑙𝑖𝑡𝑡é𝑟𝑎𝑢𝑥 𝑝𝑎𝑟 𝑐𝑙𝑎𝑢𝑠𝑒) Problème : Existe-t-il une interprétation I / [𝐴𝑖]𝐼=V ∀ 1 ≤ 𝑖 ≤ 𝑛 ? 33
  • 34. Circuit Hamiltonien : Description d’un problème Données : Soit un graphe G = (S, A) et |S|=n sommets. Problème : Existe-t-il un parcours fermé qui passe par tous les sommets une seule fois? Trouver une permutation 𝑠𝑝1, … , 𝑠𝑝𝑛 𝑑𝑒 𝑆, 𝑒𝑡 (𝑠𝑝𝑖, … , 𝑠𝑝𝑖+1) ∈ 𝐴 ∀ 1 ≤ 𝑖 ≤ 𝑛 − 1; (𝑠𝑝𝑛 , … , 𝑠𝑝1) ∈ A. 34 G=(S,A) 5 4 3 2 1
  • 35. Voyageur de commerce (TSP) : Description d’un problème Données : Soit un graphe G = (V, E) complet et pondéré avec V l’ensemble de villes, et 𝑑(𝑣𝑖, 𝑣𝑗) : la distance entre ville i et ville j et un entier 𝑏. Problème : Existe-t-il un parcours fermé qui passe par toutes les villes une seule fois dont la longueur ≤ 𝑏? Trouver une permutation 𝑣𝑝1, … , 𝑣𝑝𝑛 𝑑𝑒 𝑉, 𝑒𝑡 𝑖=1 𝑛−1 𝑑 (𝑣𝑝𝑖, … , 𝑣𝑝𝑖+1)+ 𝑑(𝑣𝑝𝑛, … , 𝑣𝑝1) ≤ 𝑏 35
  • 36. Exemples : Circuit Ham𝑖𝑙𝑡𝑜𝑛𝑖𝑒𝑛 ∝ TSP Exercice : Montrer que CH ∝ 𝑇𝑆𝑃. 36 CH Input G=(S,A) TSP ou n=|V| Input F(X)=G'=(V, E) Algorithme Transformation F 5 4 3 2 1 5 4 3 2 1 1 1 1 1 1 1 1 2 2 2 Définition de F : V=S 𝑑(𝑣𝑖, … , 𝑣𝑗) = 1 𝑠𝑖 (𝑣𝑖, … , 𝑣𝑗) ∈ 𝐴 2 𝑠𝑖 𝑛𝑜𝑛 b= |V|=n
  • 37. Cliques Maximale : Description d’un problème Données : graphe G = (S, A) et un entier 𝑘 ≤ |𝑆| Problème : G contient-il une clique de taille k? Existe-t-il un sous-graphe complet dont le nombre de sommet ≥ 𝑘? ∃ 𝑆′ ⊂ 𝑆 𝑡𝑒𝑙𝑞𝑢𝑒 𝑆′ ≥ 𝑘 ∀ 𝑠1 ∈ 𝑆′ 𝑒𝑡 𝑠2 ∈ 𝑆′ on a (𝑠1, 𝑠2 ) ∈ A 37
  • 38. Couverture par Sommet (Vertex Code) : Description d’un problème Données : Graphe G = (S, A) et un entier 𝑘 ≤ |𝑆| Problème : Existe-t-il une couverture par sommets de G de taille k? ∃ 𝑆′ ⊂ 𝑆 𝑡𝑒𝑙𝑞𝑢𝑒 𝑆′ ≤ 𝑘 ∀ (𝑠1, 𝑠2 ) ∈ A on a 𝑠1 ∈ 𝑆′ 𝑜𝑢 𝑠2 ∈ 𝑆′ 38
  • 39. Coloration de Graphe : Description d’un problème Données : Un graphe G = (S, A) et un entier 𝑘 ≤ |𝑆| Problème : Existe-t-il une coloration des sommets de G de taille k (k couleurs)? Existe-t-il une coloration minimale de telle sorte que deux sommets adjacents seront coloriés avec deux couleurs différentes? 39
  • 40. Exemples : Coloration de Graphe 40 3-coloriage 3-coloriage Vrai Faux Graphe G Vrai Faux Vérificateur S= {V,B,O,V,O}, … S‘={V,B,V,V,O}, Instance de Coloration de Graphe Certificat de I k=3 k=3 Instance Positive Certificat Positif Instance Négative
  • 41. Exemple : Transformation Polynomiale Coloration de Graphe ∝ 𝑆𝐴𝑇 SAT • Données : les formules propositionnelles au format CNF. • Problème : Trouver les formules CNF Cohérentes. 41 Coloration de Graphe • Données : un graphe G non orienté et un entier k. • Problème : Coloration d’un graphe avec au moins k couleurs. Algorithme Transformation b c a Transformation 𝑭 = {𝑎, 𝑏, 𝑐, ¬𝑎, ¬𝑏, ¬𝑐/∧,∨}
  • 42. Le plus long Cycle (PLC) : Description d’un problème Données : Soit un graphe G = (S, A) et un entier 𝑘. Problème : Déterminer si G possède un cycle de longueur ≥ 𝑘. Exercice : Montrer que CH ∝ 𝑃𝐿𝐶. 42 CH Input G=(S,A) PLC Input F(X)=G'=(S',A') Algorithme Transformation F
  • 43. Somme de sous-ensemble : Description d’un problème Données : 𝑆 ⊆ ℕ 𝑒𝑡 𝑡 ∈ ℕ Problème : Existe-t-il 𝑆′ ⊆ 𝑆 / 𝑠𝑖 ′∈𝑆′ 𝑠𝑖 ′ = 𝑡 ? Exemple : S= {1, 3 , 5, 45, 65, 98, 45658, 45458, 1235, 785, 659} t=1590, 43
  • 44. Exercice 1 Prouver que 𝑇𝑆𝑃 ∝ 𝐶ircuit Hamiltonien et 𝐶ircuit Hamiltonien ∝ 𝑇𝑆𝑃 44
  • 45. Exercice 2 Prouver que 𝐶𝑙𝑖𝑞𝑢𝑒 𝑀𝑎𝑥𝑖𝑚𝑎𝑙𝑒 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡. 45
  • 46. Correction Exercice 2 :𝐶𝑙𝑖𝑞𝑢𝑒 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒𝑆𝑜𝑚𝑚𝑒𝑡 Données : Graphe 𝐺1 = ( 𝑆1, 𝐴1), | 𝑆1|=n et un entier 𝑘1≤ | 𝑆1| Problème : G contient-il une clique de taille 𝑘1? Existe-t-il un sous-graphe complet dont le nombre de sommet ≥ 𝑘1? ∃ 𝑆′ 1 ⊆ 𝑆1 𝑡𝑒𝑙𝑞𝑢𝑒 𝑆′ 1 ≥ 𝑘1 et ∀ 𝑠1∈ 𝑆′ 1 𝑒𝑡 𝑠2 ∈ 𝑆′ 1 𝑎𝑙𝑜𝑟𝑠 (𝑠1, 𝑠2 ) ∈ 𝐴1 46 Données : Graphe 𝐺2 = ( 𝑆2, 𝐴2) et un entier 𝑘2 ≤ | 𝑆2| Problème : Existe-t-il une couverture par sommets de G de taille 𝑘2? ∃ ? 𝑆′ 2 ⊆ 𝑆2 𝑡𝑒𝑙𝑞𝑢𝑒 𝑆′ 2 ≤ 𝑘2 et ∀ (𝑠1, 𝑠2 ) ∈ 𝐴2 on a 𝑠1 ∈ 𝑆′ 2 𝑜𝑢 𝑠2 ∈ 𝑆′ 2 𝑪𝒐𝒖𝒗𝒆𝒓𝒕𝒖𝒓𝒆 𝒅𝒆 𝑺𝒐𝒎𝒎𝒆𝒕 𝑪𝒍𝒊𝒒𝒖𝒆
  • 47. Correction Exercice 2 :𝐶𝑙𝑖𝑞𝑢𝑒 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒𝑆𝑜𝑚𝑚𝑒𝑡 47 Montrer que f est calculable en un temps polynomial : Algorithme: Pour i de 1 à n faire 𝑆2[𝑖] = 𝑆1[𝑖] Fin pour Pour i de 1 à n faire Pour j de 1 à n faire Si 𝑠𝑖, 𝑠𝑗 ∉ 𝐴1𝑒𝑡 (𝑖 ≠ 𝑗) alors 𝐴2 = 𝐴2 ∪ (𝑠𝑖, 𝑠𝑗) Fin Si Fin pour Fin pour 𝑘2 = 𝑛 − 𝑘1 Pour i de 1 à n faire Si (𝑠𝑖∉ 𝑆′1) alors 𝑆′2 = 𝑆′2 ∪ {𝑠𝑖} Fin Si Fin Pour O(n) O(n2) La transformation est de O(n2)  Transformation polynomiale  f est calculable en un temps polynomial et borné par O(n2). O(1) O(n) 𝐴2 = 𝐴1 = { 𝑠1, 𝑠2 ∉ 𝐴1} 𝑆2 = 𝑆1 𝑘2 = |𝑆1| − 𝑘1 = 𝑛 − 𝑘1 𝑆′2 = 𝑆1𝑆′1 Calcule de la solution
  • 48. 48 2 1 5 4 3 G1=(S1,A1) S’1= {2,3,4,5} A’1= {(2,3);(3,4);(4,5); …..} 2 1 5 4 3 G2=(S2,A2) S’2= {1} A’2= {(1,3);(1,4);(1,5)} Correction Exercice 2 :𝐶𝑙𝑖𝑞𝑢𝑒 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒𝑆𝑜𝑚𝑚𝑒𝑡 𝑪𝒐𝒖𝒗𝒆𝒓𝒕𝒖𝒓𝒆 𝒅𝒆 𝑺𝒐𝒎𝒎𝒆𝒕 𝑪𝒍𝒊𝒒𝒖𝒆 «  » A2 =𝐴1 S2={1,2,3,4,,5}
  • 49. Correction Exercice 2 :𝐶𝑙𝑖𝑞𝑢𝑒 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒𝑆𝑜𝑚𝑚𝑒𝑡 49 ”  » Soit x ∈ 𝐶𝑙𝑖𝑞𝑢𝑒  Montrer que f(x) ∈ 𝐶𝑆 ∃ 𝑆′ 1 ⊆ 𝑆1 𝑡𝑒𝑙𝑞𝑢𝑒 𝑆′ 1 ≥ 𝑘1 et ∀ 𝑠1∈ 𝑆′ 1 𝑒𝑡 𝑠2 ∈ 𝑆′ 1alors (𝑠1, 𝑠2 ) ∈ 𝐴1 o𝑛 𝑎 𝑆′ 2 = 𝑆1 ∖ 𝑆′ 1 = 𝑆2 ∖ 𝑆′ 1 ⊆ 𝑆2 𝑆2 = 𝑆2| − |𝑆′ 1 𝑆2 ≤ 𝑛 − 𝑘1 = 𝑘2 ∀(𝑠1, 𝑠2 ) ∈ 𝐴2 𝑎𝑙𝑜𝑟𝑠 (𝑠1, 𝑠2 ) ∉ 𝐴1 𝑑𝑜𝑛𝑐 𝑠1 ∉ 𝑆′ 1𝑜𝑢 𝑠2 ∉ 𝑆′ 1  𝑠1 ∈ 𝑆2 𝑜𝑢 𝑠2 ∈ 𝑆2 𝑫𝒐𝒏𝒄 𝑺′ 𝟐 𝒆𝒔𝒕 𝒖𝒏𝒆 𝒔𝒐𝒍𝒖𝒕𝒊𝒐𝒏 𝒅𝒆 CS
  • 50. Correction Exercice 2 :𝐶𝑙𝑖𝑞𝑢𝑒 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒𝑆𝑜𝑚𝑚𝑒𝑡 50 ”  ” Soit f(x) ∈ 𝐶𝑆  Montrer que x ∈ 𝐶𝑙𝑖𝑞𝑢𝑒 ∃ 𝑆′ 2 ⊆ 𝑆2 𝑡𝑒𝑙𝑞𝑢𝑒 𝑆′ 2 ≤ 𝑘2 et ∀(𝑠1, 𝑠2 ) ∈ 𝐴2 alors on a 𝑠1 ∈ 𝑆′ 2 𝑜𝑢 𝑠2 ∈ 𝑆′ 2 o𝑛 𝑎 𝑆′ 1 = 𝑆1 ∖ 𝑆′ 2 = 𝑆2 ∖ 𝑆′ 2 ⊆ 𝑆1 |𝑆′ 1| = 𝑆2 ∖ 𝑆′ 2 = 𝑆2| − |𝑆′ 2 ≥ 𝑛 − 𝑘2 = 𝑘1 ∀ 𝑠1∈ 𝑆′ 1 𝑒𝑡 𝑠2 ∈ 𝑆′ 1  ∀ 𝑠1∉ 𝑆′ 2 𝑒𝑡 𝑠2 ∉ 𝑆′ 2 (𝑠1, 𝑠2 ) ∉ 𝐴2= 𝐴1  (𝑠1, 𝑠2 ) ∈ 𝐴1 𝑫𝒐𝒏𝒄 𝑺′ 𝟏 𝒆𝒔𝒕 𝒖𝒏𝒆 𝒔𝒐𝒍𝒖𝒕𝒊𝒐𝒏 𝒅𝒆 𝑪𝒍𝒊𝒒𝒖𝒆 𝒆𝒕 𝒙 ∈ 𝑪𝒍𝒊𝒒𝒖𝒆 𝒇 𝒙 ∈ 𝑪𝑺 D’où 𝑪𝒍𝒊𝒒𝒖𝒆 ∝ 𝑪𝑺
  • 51. Exercice 3 Prouver que 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡. 51
  • 52. Exercice 3 : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡 Indication : 1. Toute variable propositionnelle on lui associe 2 sommets (variable et sa négation) Exemple : p → 𝑝 𝑒𝑡 ¬𝑝; 2. Toute clause est représentée par un triangle étiqueté par 3 littéraux de clauses; 3. Une arête est couverte par 1 sommet et un triangle est couvert par 2 sommets. 52 Prouver que : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡. 3-SAT Données : 𝑃 = 𝑝𝑖; 1 ≤ 𝑖 ≤ 𝑛 𝐹 =∧𝑖=1 𝑚 𝐴𝑖 𝐴𝑖 =∨𝑗=1 3 𝐿𝑖𝑗 Problème : Existe-t-il une interprétation I / [𝐴𝑖]𝐼=V ∀ 1 ≤ 𝑖 ≤ 𝑛 ? 𝑪𝒐𝒖𝒗𝒆𝒓𝒕𝒖𝒓𝒆 𝒅𝒆 𝑺𝒐𝒎𝒎𝒆𝒕 Données : 𝐺: 𝑆, 𝐴 Problème : Existe-t-il une couverture par sommets de G de taille k? ∃ 𝑆′ ⊆ 𝑆 𝑡𝑒𝑙𝑞𝑢𝑒 |𝑆′ | ≤ 𝑘 et ∀ (𝑠1, 𝑠2 ) ∈ A on a 𝑠1 ∈ 𝑆′ 𝑜𝑢 𝑠2 ∈ 𝑆′ Transformation F(x)
  • 53. Exercice 3 : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡 𝑩 = (𝑝1 ∨ 𝑝2 ∨ 𝑝3) ∧ (𝑝1 ∨ ¬𝑝2 ∨ 𝑝4) ∧ 𝑝2 ∨ ¬𝑝3 ∨ ¬𝑝4 53  l’algorithme de transformation est polynomiale ≅ O(n2) car on a la taille de graphe est 2n+3m d’où pour parcourir les sommets on a [2n+3m]2 ≅O(n2). 𝑝1 ¬𝑝1 𝑝2 ¬𝑝2 𝑝3 ¬𝑝3 𝑝4 ¬𝑝4 𝑙1 1 𝑙2 1 𝑙3 1 𝑙1 2 𝑙2 2 𝑙3 2 𝑙1 3 𝑙2 3 𝑙3 3 n variables et m clauses  la taille de graphe est 2n+3m La taille de CS :  k=2m+n (nombre de sommets couverts) n : pour la couverture de tout les sommets 𝑝𝑖 𝑜ù 𝑝𝑖 𝐼 =V, 2m : pour couvrir les arêtes de chaque triangle. 𝑝1 ¬𝑝1 𝑝2 ¬𝑝2 𝑝3 ¬𝑝3 𝑝4 ¬𝑝4 𝑉 𝐹 𝑉 𝑉 𝑝1 𝐼 = 𝑝2 𝐼 = 𝑝4 𝐼 = 𝑉 𝑒𝑡 𝑝3 𝐼 = 𝐹
  • 54. Exercice 3 : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡 k= 2n+3m 𝑆 = 𝑆1 ∪ 𝑆2 𝑆1 = 𝑝𝑖, ¬𝑝𝑖; 1 ≤ 𝑖 ≤ 𝑛 ; 𝑆1 = 2𝑛 𝑆2 = 𝐿𝑖1, 𝐿𝑖2, 𝐿𝑖3; 1 ≤ 𝑖 ≤ 𝑚 ; 𝑆2 = 3𝑚 𝐴𝑖 =∨𝑖=1 3 𝐿𝑖𝑗 𝑺 = 𝟐𝒏 + 𝟑m 54 Prouver que : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡. 𝐴 = 𝐴1 ∪ 𝐴2∪ 𝐴3 𝐴1 = 𝑝𝑖, ¬𝑝𝑖; 1 ≤ 𝑖 ≤ 𝑛 ; 𝐴1 = 𝑛 𝐴2 = (𝐿𝑖1, 𝐿𝑖2); (𝐿𝑖1, 𝐿𝑖3); 𝐿𝑖2, 𝐿𝑖3 ; 1 ≤ 𝑖 ≤ 𝑚; 𝐿𝑖𝑗 ∈ 𝑆2 ; 𝐴2 = 3𝑚 𝐴3 = (𝐿𝑖𝑗, 𝑋𝑘); (𝐿𝑖𝑗 ∈ 𝑆2 ); 𝑝𝑘 ∈ 𝑆1 ; 𝐿𝑖𝑗 ∈ 𝑋𝑘, 𝑎𝑣𝑒𝑐 𝑋𝑘 = 𝑝𝑘 𝑜𝑢 ¬𝑝𝑘 ; 𝐴3 = 3𝑚 𝑨 = 𝒏 + 𝟑𝒎 + 𝟑𝒎 = 𝒏 + 𝟔𝒎
  • 55. Exercice 3 : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡 55 Prouver que : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡. Montrer que f est calculable en un temps polynomial : Algorithme: Pour i de 1 à n faire 𝑆1 = 𝑆1 ∪ 𝑝𝑖, ¬𝑝𝑖 Fin pour Pour i de 1 à m faire 𝑆2 = 𝑆2 ∪ 𝐿𝑖1, 𝐿𝑖2, 𝐿𝑖3 Fin pour 𝑆 = 𝑆1 ∪ 𝑆2 O(n) O(m) O(2n+3m): parcours de tous les sommets l= max (m,n) O(l) k= 2n+3m 𝑆 = 𝑆1 ∪ 𝑆2 𝑆1 = 𝑝𝑖, ¬𝑝𝑖; 1 ≤ 𝑖 ≤ 𝑛 ; 𝑆1 = 2𝑛 𝑆2 = 𝐿𝑖1, 𝐿𝑖2, 𝐿𝑖3; 1 ≤ 𝑖 ≤ 𝑚 ; 𝑆2 = 3𝑚 𝐴𝑖 =∨𝑖=1 3 𝐿𝑖𝑗 𝑺 = 𝟐𝒏 + 𝟑m
  • 56. Exercice 3 : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡 56 Algorithme (suite): Pour i de 1 à n faire 𝐴1 = 𝐴1 ∪ 𝑝𝑖, ¬𝑝𝑖 Fin pour Pour i de 1 à m faire 𝐴2 = 𝐴2 ∪ (𝐿𝑖1,𝐿𝑖2); (𝐿𝑖1,𝐿𝑖3); 𝐿𝑖2, 𝐿𝑖3 Fin pour Pour i de 1 à m faire Pour j de 1 à 3 faire Pour k de 1 à n faire si (𝐿𝑖𝑗= 𝑝𝑘) alors 𝐴3 = 𝐴3 ∪ (𝐿𝑖𝑗, 𝑝𝑘) si non si (𝐿𝑖𝑗= ¬𝑝𝑘) alors 𝐴3 = 𝐴3 ∪ (𝐿𝑖𝑗, ¬𝑝𝑘) Fin si Fin Pour Fin Pour Fin pour 𝐴 = 𝐴1 ∪ 𝐴2 ∪ 𝐴3; k= n+2m Fin algorithme O(n) O(m) O(nm) O(l2) O(n+6m)  O(l2) D’où f est calculable en un temps polynomiale 𝐴 = 𝐴1 ∪ 𝐴2∪ 𝐴3 𝐴1 = 𝑛 ; 𝐴2 = 3𝑚; 𝐴3 = 3𝑚 𝑨 = 𝒏 + 𝟑𝒎 + 𝟑𝒎 = 𝒏 + 𝟔𝒎 O(1)
  • 57. Exercice 3 : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡 • x ∈ 3𝑆𝐴𝑇  Montrer que f(x) ∈ 𝐶𝑆 ∃ ? 𝑆′ ⊂ 𝑆 𝑡𝑒𝑙𝑞𝑢𝑒 𝑆′ 𝑒𝑠𝑡 𝑢𝑛𝑒 𝑐𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 ∃ ? I / [𝐴𝑖]𝐼=V ∀ 1 ≤ 𝑖 ≤ 𝑚 ∃ ? 𝑗0 / [𝐴𝑖𝑗0]𝐼=V 𝑝𝑖 ∈ 𝑃 ; 𝑠𝑖 𝑝𝑖 = 𝑉 𝑝𝑖 ∈ 𝑆′ 𝑠𝑖 𝑝𝑖 = 𝐹 ¬𝑝𝑖∈ 𝑆′ ∀ 𝑖 𝐿𝑖𝑗1, 𝐿𝑖𝑗2 ∈ 𝑆′ tel que 𝑗1 𝑒𝑡𝑗2 ≠ 𝑗0 |𝑆′ | = 𝑛 + 2𝑚 = 𝑘 𝑜𝑢 ≤ 𝑘 57 1 2 𝑺′ 𝒆𝒔𝒕 𝒖𝒏𝒆 𝒔𝒐𝒍𝒖𝒕𝒊𝒐𝒏 𝒅𝒆 𝑪𝑺
  • 58. Exercice 3 : 3𝑆𝐴𝑇 ∝ 𝐶𝑜𝑢𝑣𝑒𝑟𝑡𝑢𝑟𝑒 𝑑𝑒 𝑆𝑜𝑚𝑚𝑒𝑡 Prouvons : ∀ 𝑠1, 𝑠2 ∈ 𝐴 𝑎𝑙𝑜𝑟𝑠 𝑠1 ∈ 𝑆′ 𝑜𝑢 𝑠2 ∈ 𝑆′ 𝑠1, 𝑠2 ∈ 𝐴1 ∃ I / 𝑠1, 𝑠2 = 𝑝𝑖, ¬𝑝𝑖 𝑝𝑖 ∈ 𝑆′ ou ¬𝑝𝑖∈ 𝑆′  𝐴1 est couvert 𝑠1, 𝑠2 ∈ 𝐴2 : 𝑠1, 𝑠2 = (𝐿𝑖1, 𝐿𝑖2) ou (𝐿𝑖1, 𝐿𝑖3) ou (𝐿𝑖2, 𝐿𝑖3) 𝐿𝑖𝑗1, 𝐿𝑖𝑗2 ∈ 𝑆′ O𝑛 𝑎 𝑠1 ∈ 𝑆′ ou 𝑠2 ∈ 𝑆′ 𝐴𝟐 est couvert 𝑠1, 𝑠2 = (𝐿𝑖𝑗1, 𝑥𝑘) ou (𝐿𝑖𝑗2, 𝑥𝑘) ou (𝐿𝑖𝑗3, 𝑥𝑘) [𝐿𝑖𝑗0]𝐼=V  𝑥𝑘 𝐼= V 𝐴𝟑 est couvert 58 D’après 1 :  𝑫′ 𝒐ù 𝑨 est couvert  𝑺′ 𝒆𝒔𝒕 𝒖𝒏𝒆 𝒔𝒐𝒍𝒖𝒕𝒊𝒐𝒏 𝒅𝒆 𝑪𝑺 D’après 2 : D’après 2 : car 𝐿𝑖𝑗1 ∈ 𝑆′ et 𝐿𝑖𝑗2 ∈ 𝑆′ D’après 1 et 2 : 𝑥𝑘 ∈ 𝑆′
  • 59. Exercice 4 Prouver que 3𝑆𝐴𝑇 ∈ 𝑁𝑃𝐶, sachant que 𝑆𝐴𝑇 ∈ 𝑁𝑃𝐶. 59
  • 60. Exercice 4 : Correction Prouver que ∶ 3𝑆𝐴𝑇 ∈ 𝑁𝑃𝐶, sachant que 𝑆𝐴𝑇 ∈ 𝑁𝑃𝐶. 60 1) 3SAT est un cas particulier de SAT ∈ 𝑁𝑃 (avec k=3) donc 3SAT ∈ 𝑁𝑃. 2) SAT Données : 𝑃 = 𝑝𝑖; 1 ≤ 𝑖 ≤ 𝑚 𝐹 =∧𝑖=1 𝑛 𝐴𝑖 𝐴𝑖 =∨𝑗=1 𝑘𝑖 𝐿𝑖𝑗 Problème : Existe-t-il une interprétation I / [𝐴𝑖]𝐼=V ∀ 1 ≤ 𝑖 ≤ 𝑛 ? 3 SAT Données : 𝑃′ = 𝑝′𝑖; 1 ≤ 𝑖 ≤ 𝑚′ 𝐹′ =∧𝑖=1 𝑛′ 𝐴′𝑖 𝐴′𝑖 =∨𝑗=1 3 𝐿′𝑖𝑗 Problème : Existe-t-il une interprétation I' / [𝐴′𝑖]𝐼′=V ∀ 1 ≤ 𝑖 ≤ 𝑛' ? 𝑘𝑖 = 3 ; 𝐴′𝑖 = 𝐴𝑖; 𝑘𝑖 = 2 ; 𝐴𝑖 = 𝑥1 ∨ 𝑥2 ; 𝑓(𝐴𝑖) = 𝐴′𝑖 = (𝑥1 ∨ 𝑥2∨ 𝑦1) ∧ (𝑥1 ∨ 𝑥2∨ ¬𝑦1); 𝑘𝑖 = 1 ; 𝐴𝑖 = 𝑥1; 𝑓(𝐴𝑖) = 𝐴′𝑖= (𝑥1 ∨ 𝑥2∨ 𝑦1) ∧ (¬𝑦1 ∨ 𝑥3∨ 𝑦2) ∧ ¬𝑦2 ∨ 𝑥4∨ 𝑦3 … ∧ (¬𝑦𝑝−4 ∨ 𝑥𝑝−2∨ 𝑦𝑝−3) ∧ (¬𝑦𝑝−3 ∨ 𝑥𝑝−1∨ 𝑥𝑝);
  • 61. Exercice 4 : Correction 61 𝑘𝑖 > 3 ; 𝐴𝑖 = 𝑥1 ∨ ⋯ ∨ 𝑥𝑝 ; (𝑥1 ∨ 𝑥2∨ 𝑦1) ∧ (¬𝑦1 ∨ 𝑥3∨ 𝑦2) ∧ ¬𝑦2 ∨ 𝑥4∨ 𝑦3 … ∧ (¬𝑦𝑝−4 ∨ 𝑥𝑝−2∨ 𝑦𝑝−3) ∧ ¬𝑦𝑝−3 ∨ 𝑥𝑝−1∨ 𝑥𝑝 ; 1 2 On a i-3 nouvelles variables  on a i-2 clauses exactement 3 littéraux. Prouvons que est satisfiable ssi est satisfiable. 1 2 Prouver que f est polynomiale et 𝑓 𝑥 ∈ 3𝑆𝐴𝑇 𝑠𝑠𝑖 𝑥 ∈ 𝑆𝐴𝑇
  • 62. Exercice 4 : Correction 62 Algorithme de f: Pour i de 1 à n faire selon (𝑘𝑖): 3: 𝐴′𝑖 = 𝐴𝑖 2: 𝐴′𝑖 = (𝑥1 ∨ 𝑥2∨ 𝑦1) ∧ (𝑥1 ∨ 𝑥2∨ ¬𝑦1); 1: 𝐴′𝑖= (𝑥1 ∨ 𝑦1∨ 𝑦2) ∧ (𝑥1 ∨ 𝑦1∨ ¬𝑦2) ∧ (𝑥1 ∨ ¬𝑦1∨ 𝑦2) ∧ (𝑥1 ∨ ¬𝑦1∨ ¬𝑦2); sinon: 𝐴′𝑖= (𝑥1 ∨ 𝑥2∨ 𝑦1) ∧ (¬𝑦1 ∨ 𝑥3∨ 𝑦2) ∧ ¬𝑦2 ∨ 𝑥4∨ 𝑦3 … ∧ (¬𝑦𝑝−4 ∨ 𝑥𝑝−2∨ 𝑦𝑝−3) ∧ (¬𝑦𝑝−3 ∨ 𝑥𝑝−1∨ 𝑥𝑝) Fin selon Fin pour  O(l) = O(max( 𝑘𝑖)) D’où f est calculable en un temps polynomiale
  • 63. Exercice 4 : Correction 63 𝐴𝑖 = 𝑥1 ∨ 𝑥2∨ ⋯ ∨ 𝑥𝑝  f(x)∈ 𝟑𝑺𝑨𝑻 x ∈ 𝑺𝑨𝑻 Existe-t-il une interprétation I / [𝐴𝑖]𝐼=V ∀ 1 ≤ 𝑖 ≤ 𝑛 [𝑥1 ∨ 𝑥2∨ ⋯ ∨ 𝑥𝑝]𝐼= V  ∃ 𝑖 /[𝑥𝑖]𝐼=V 𝐼′ = 𝐼 [𝑦𝑗] =V 𝑝𝑜𝑢𝑟 𝑗 ≤ 𝑖 − 2 [𝑦𝑗] =F 𝑝𝑜𝑢𝑟 𝑗 > 𝑖 − 2 [𝐴′𝑖]𝐼′=V  x ∈ 𝑺𝑨𝑻 Existe-t-il une interprétation I' / [𝐴′𝑖]𝐼′=V ∀ 1 ≤ 𝑖 ≤ 𝑛′ On suppose que [𝐴𝑖]𝐼=F ∀ 𝐼 𝑒𝑡 𝑥𝑗 𝐼 =F ∀ 𝑗;  [𝑦𝑘]𝐼′=V ; 1 ≤ 𝑘 ≤ 𝑖 − 3 [¬𝑦𝑙−3 ∨ 𝑥𝑙−1∨ 𝑥𝑙]𝐼′= F  [𝐴′𝑖]𝐼′=F ;  Contradiction 𝐷′ 𝑜ù 𝑖𝑙 ∃ 𝐼/[𝐴𝑖]𝐼=V f(x)∈ 𝟑𝑺𝑨𝑻
  • 64. Exercice 5 a) Prouver que 𝐶𝑆 ∈ 𝑁𝑃𝐶, à partir de 3SAT ∈ 𝑁𝑃𝐶. b) Prouver que 𝐶𝑆 ∈ 𝑁𝑃. 64
  • 65. Exercice 5 : Correction 65 b) Montrer que 𝐶𝑆 ∈ 𝑁𝑃: • Soit S' est un sous ensemble de façon non déterministe. • Vérifier que |𝑆′ | ≤ 𝑘 Vérifier que ∀ 𝑠1, 𝑠2 ∈ 𝐴 𝑜𝑛 𝑎 𝑠1 ∈ 𝑆′𝑜𝑢 𝑠2 ∈ 𝑆′; |𝑆′ | ≤ 𝑆 = 𝑛; |𝐴| ≤ 𝑛2  𝑶(𝒏𝟑 ) D’où C𝑺 ∈NP  𝒏𝟐 𝒂𝒓ê𝒕𝒆𝒔 𝒑𝒐𝒖𝒓 𝒄𝒉𝒂𝒒𝒖𝒆 𝒂𝒓ê𝒕𝒆 𝒐𝒏 𝒂 𝟐𝒏  𝟐𝒏𝟑  𝑶(𝒏)
  • 66. Exercice 6 Prouver que 𝑇𝑆 ∈ 𝑁𝑃, Clique ∈ 𝑁𝑃 et HC ∈ NP. 66
  • 67. Correction Exercice 6: Prouver que 𝑇𝑆 ∈ 𝑁𝑃, HC ∈ N𝑃 et Clique ∈ 𝑁𝑃. • Soit une permutation 𝑣𝑝1, … , 𝑣𝑝𝑛 de façon non déterministe. • Vérifier que 𝑖=1 𝑛−1 ( 𝑣𝑝𝑖, 𝑣𝑝𝑖+1) + 𝑣𝑝𝑛, 𝑣𝑝1 ≤ 𝑏 (soit polynomial). n distance à déterminer et pour chaque distance on parcours 𝑛2 éléments distincts. Algorithme : 𝑛3 + 𝑛 + 1 = 𝑂 𝑛3  𝑻𝑺 ∈ 𝑵𝑷 HC ∝ 𝑇𝑆 𝑒𝑡 𝑇𝑆 ∈ NPC → CH ∈ NPC 67
  • 68. Exercice 7 Étant donné 3-SAT est NPC montrer que Clique ∈ 𝑁𝑃𝐶. 68
  • 69. Correction Exercice 7 : Étant donné 3-SAT est NPC montrer que Clique 𝑒𝑠𝑡 𝑁𝑃𝐶. 1. Montrer que Clique ∈ 𝑁𝑃𝐶 : Donner un algorithme ND polynomial. 2. Montrer que Clique 𝑒𝑠𝑡 𝑁𝑃_𝐷𝑢𝑟 : Montrer que 3-SAT∝ 𝐶𝑙𝑖𝑞𝑢𝑒. 69 • Soit G=(S,A) et 𝑘 ≤ |𝑆|; • ∃? 𝑆′ ⊆ 𝑆 𝑎𝑣𝑒𝑐 𝑆 ≥ 𝑘 𝑒𝑡 ∀ 𝑠1∈ 𝑆′𝑒𝑡 𝑠2 ∈ 𝑆′ 𝑂𝑛 𝑎 𝑠1, 𝑠2 ∈ 𝐴. Réponse
  • 70. Correction Exercice 7 : Étant donné 3-SAT est NPC montrer que Clique 𝑒𝑠𝑡 𝑁𝑃𝐶. 70 • Choisir un sous − ensemble 𝑆′ ⊆ 𝑆 𝑎𝑣𝑒𝑐 𝑆′ ≤ 𝑘 F= True Pour i de 1 à k-1 faire Pour j de i+1 à k faire Si (F=True) et 𝑠𝑖, 𝑠𝑗 ∈ 𝐴 alors … Fin pour Fin pour Si (F=True) alors 𝑆′ est une clique Algorithme O(n2)=O(k2)  f est calculable en un temps polynomiale et Clique ∈ 𝑵𝑷
  • 71. Correction Exercice 7 : Étant donné 3-SAT est NPC montrer que Clique 𝑒𝑠𝑡 𝑁𝑃𝐶. 71 Données : Graphe 𝐺 = (𝑆, 𝐴), |𝑆|=n et un entier 𝑘 ≤ |𝑆| Problème : Pour chaque clause 𝑐𝑖 on a 3 sommets |𝑆|=3m. A sera construit comme suit : tous les sommets sont reliés entre eux sauf les 2 sommets de même clause et si l’une est la négation d’une autre. 𝑪𝒍𝒊𝒒𝒖𝒆 3 SAT Données : 𝑃 = 𝑝1, 𝑝2, 𝑝3, … , 𝑝𝑛 A= 𝑐1 ∧ 𝑐2 ∧ ⋯ ∧ 𝑐𝑚 𝑐𝑖 = 𝑙𝑖1 ∨ 𝑙𝑖2 ∨ 𝑙𝑖3 Problème : Existe-t-il une interprétation I tel que [𝐴𝑖]𝐼=V ∀ 1 ≤ 𝑖 ≤ 𝑛 ?
  • 72. Correction Exercice 7 : Étant donné 3-SAT est NPC montrer que Clique 𝑒𝑠𝑡 𝑁𝑃𝐶. 72 • Transformer une expression booléenne 3-CNF en un graphe tel que ce graphe contient une clique de taille k ssi l’expression booléenne est satisfiable. • Soit B = 𝑐1 ∧ 𝑐2 ∧ ... ∧ 𝑐𝑘 une formule en 3-CNF avec k clauses, contenant chacune 3 littéraux distincts. • Pour chaque clause on crée 3 sommets, un pour chaque littéral dans la clause. • On relie 2 sommets s’ils proviennent de deux clauses différentes et que leurs littéraux sont consistent « l’un n’est pas la négation de l’autre ». Transformation
  • 73. Correction Exercice 7 : Étant donné 3-SAT est NPC montrer que Clique 𝑒𝑠𝑡 𝑁𝑃𝐶. 73 Montrer que cette transformation est polynomiale: • La construction de S se fait en O(m). • La construction de A se fait en O(m2). Exemple B= 𝑐1 ∧ 𝑐2 ∧ 𝑐3 𝑐1 = 𝑎 ∨ ¬𝑏 ∨ ¬𝑐 𝑐2 = ¬𝑎 ∨ 𝑏 ∨ 𝑐 𝑐3 = 𝑎 ∨ 𝑏 ∨ 𝑐 k= m 𝑎1 𝑏1 𝑐1 𝑎3 𝑏3 𝑐3 𝑐2 𝑏2 𝑎2 𝒂, 𝒃, 𝒄 Vrai ¬𝒂, ¬𝒃, 𝒄 Vrai
  • 74. Correction Exercice 7 : Étantdonné 3-SATest NPC montrerque Clique 𝑒𝑠𝑡 𝑁𝑃𝐶. 74 ” ” Soit B une instance positive de 3-SAT, c.à.d. B est sous forme CNF de 3 littéraux par clause et B est Satisfiable. Montrer que G=f(B) est une instance positive de 𝐶𝑙𝑖𝑞𝑢𝑒. c.à.d. il contient un sous-graphe complet de m sommets. Si B est Satisfiable ∃ 𝐼 𝑡𝑒𝑙 𝑞𝑢𝑒[𝑐𝑗]𝐼=V ∀ 1 ≤ 𝑗 ≤ 𝑚 Alors 𝑖𝑙 ∃ 𝑎𝑢 𝑚𝑜𝑖𝑛𝑠 𝑢𝑛 𝑙𝑖𝑡𝑡é𝑟𝑎𝑙 𝑝𝑎𝑟 𝑐𝑙𝑎𝑢𝑠𝑒 𝑙𝑖 𝑡𝑒𝑙 𝑞𝑢𝑒 𝑙𝑖 𝐼=V 𝑆′ = 𝑙1, 𝑙2, 𝑙3, … , 𝑙𝑚  Montrer que 𝑆′ est une clique. 𝑆𝑜𝑖𝑡 𝑙𝑖, 𝑙𝑗 ∈ 𝑆′ 𝑒𝑡 𝑙𝑖 ≠ ¬𝑙𝑗 et 𝑖 ≠ 𝑗 (puisqu’ils sont satisfiables par I et ∉ à la même clause.  (𝑙𝑖, 𝑙𝑗) ∈ 𝐴 d’où S' est une clique de taille ≥ 𝑘 = 𝑚.
  • 75. Correction Exercice 7 : Étant donné 3-SATest NPC montrer que Clique 𝑒𝑠𝑡 𝑁𝑃𝐶. 75 ”  ” Soit G une instance positive de f(B). G contient une clique S' de taille k = m (nombre de clauses de B).  Montrer que B est satisfiable et S' contient m sommets correspondant à m littéraux pour chacune des clauses.  ∃ une interprétation I qui en affectant à chacun de ces m littéraux la valeur Vrai Car on n’a pas un littéral relié à sa négation.  D’où 3-SAT∝ 𝑪𝒍𝒊𝒒𝒖𝒆. 𝑶𝒏 𝒂 𝑪𝒍𝒊𝒒𝒖𝒆 𝒆𝒔𝒕 𝑵𝑷_𝑫𝒖𝒓 et 𝑪𝒍𝒊𝒒𝒖𝒆 ∈ 𝑵𝑷 D’où 𝑪𝒍𝒊𝒒𝒖𝒆 ∈ 𝑵𝑷_𝑪𝒐𝒎𝒑𝒍𝒆𝒕
  • 77. Complexité en espace 77 Définition 1 Soit M une machine de Turing offline Déterministe. La complexité en espace de la machine M est la fonction EM (n) défini par : EM (n) = max{ m, |x|=n, m est le nombre de cases visitées lors de l’exécution de M sur x}
  • 78. Complexité en espace 78 Définition 2 Soit M une machine de Turing offline Déterministe. L’espace de calcule de la machine M sur un mot w est la fonction EM (w) défini par : EM (w) = {le nombre de cases visitées pour la plus courte exécution de M sur w acceptant w}
  • 79. Complexité en espace 79 Définition 3 Soit M une machine de Turing offline non Déterministe. EM (n) = max{ECN (x) ; |x|=n}. Définition 4 Une machine de Turing M est dite polynomiale en espace si : ∃ 𝑷 𝒏 /𝑬𝑴 ( 𝒏) ≤ 𝑃 𝑛 ∀𝑛.
  • 80. Complexité en espace 80 Définition 5 La classe P-space est la classe des langages décidés par une MT Déterministe et polynomiale en espace. Définition 6 La classe NP-space est la classe des langages acceptés par une MT non Déterministe et polynomiale en espace.
  • 81. Complexité en espace 81 Théorème P-Space = NP-Space et 𝑃 ⊆ 𝑁𝑃 ⊂ 𝑃_𝑠𝑝𝑎𝑐𝑒 est la classe des langages décidés par une MT Déterministe et polynomiale en espace.
  • 82. Complexité en espace 82 Exercice : Prouver L∈ 𝑁𝑃_𝑆𝑝𝑎𝑐𝑒 ∃ 𝑴𝑻𝑵𝑫 𝑴 polynomiale en espace et ∃ 𝑷 𝒏 /𝑬𝑴(𝒏) ≤ 𝑃 𝑛 ∀𝑛.
  • 83. Exercice : Prouver L∈ 𝑁𝑃_𝑆𝑝𝑎𝑐𝑒 ∃𝑴𝑻𝑵𝑫 𝑴 polynomialeenespaceet ∃ 𝑷 𝒏 /𝑬𝑴(𝒏) ≤ 𝑃 𝑛 ∀𝑛. Soit M' MTD qui reconnait L / L(M') =L. EM' (n) ≤ 3𝑝 𝑛 = 𝑝′(𝑛)  L∈ 𝑃_𝑠𝑝𝑎𝑐𝑒 Donc 𝑁𝑃_𝑠𝑝𝑎𝑐𝑒 ⊂ 𝑃_𝑠𝑝𝑎𝑐𝑒 et 𝑃_𝑠𝑝𝑎𝑐𝑒 ⊂ 𝑁𝑃_𝑠𝑝𝑎𝑐𝑒  𝑃_𝑠𝑝𝑎𝑐𝑒 = 𝑁𝑃_𝑠𝑝𝑎𝑐𝑒. 83 𝑁𝑃 ⊂ 𝑃_𝑠𝑝𝑎𝑐𝑒 𝑁𝑃 ⊂ 𝑁𝑃_𝑠𝑝𝑎𝑐𝑒 Soit L∈ 𝑁𝑃 ∃ 𝑴𝑻𝑵𝑫 polynomiale en temps ∃ 𝑴𝑻𝑵𝑫 𝑴 𝒆𝒕 𝑷 𝒏 /𝑻𝑴 ( 𝒏) ≤ 𝑃 𝑛 ∀𝑛 et on a 𝑬𝑴 𝒏 ≤ 𝑻𝑴 𝒏 ≤ 𝑃 𝑛 Donc 𝐿 ∈ 𝑁𝑃_𝑠𝑝𝑎𝑐𝑒 = 𝑃_𝑠𝑝𝑎𝑐𝑒  NP ⊂ 𝑁𝑃_𝑠𝑝𝑎𝑐𝑒 = 𝑃_𝑠𝑝𝑎𝑐𝑒.
  • 84. Chapitre 3 : Paradigmes de programmation 84 Approche Diviser pour Régner Algorithme de Gloutonne Méthode Branch and Bound Méthode Programmation Dynamique