2. Table des matières
- Réduction de problèmes
- Problème k-SAT
- Problème COLORING
- 3-SAT se réduit à COLORING
- Problèmes NP-complets
- Théorème de Cook
- Exemples de problèmes NP-complets
- Plus de classes de complexité !
4. Soient D et E deux problèmes de décision.
Une réduction polynomiale de D vers E est une application f ,
calculable en temps polynomial, qui à toute instance de d de D
associe une instance f (d ) de E telle que :
d est une instance positive de D
⇔ f (d ) est une instance positive de E.
Lorsque une telle application existe on dit que D se réduit à E.
Réduction de problème
Si D se réduit à E, tout algorithme qui permet de résoudre E,
permet de résoudre D en restant dans la même classe de
complexité !
E ∈ P ⇒ D ∈ P ; E ∈ NP ⇒ D ∈ NP
5. k-SAT
Pour tout entier k ≥ 1, le problème k-SAT est celui de
savoir étant donnée une proposition en forme normale
conjonctive à n variables dont chaque clause possède au
maximum k variables si elle est satisfaisable ou pas.
1-SAT :
v1
∧ v2
∧ v3
v1
∧ v2
∧ v3
∧ ᆨv2
: Oui : Non
Complexité linéaire.
2-SAT :
(v1
∨ v2
) ∧ (v2
∨ ᆨv3
) ∧ (ᆨv1
∨ v3
)
: Oui
Complexité polynomiale.
6. SAT se réduit à 3-SAT
Il suffit de montrer qu'à toute proposition de SAT, on peut associer
une proposition de 3-SAT qui soit satisfaisable ssi la première l'est.
On remplace chaque clause a1
∨ a2
∨ … ∨ ap
avec p > 3 par :
(a1
∨ a2
∨ u1
) ∧ (a3
∨ ᆨu1
∨ u2
) ∧ (a4
∨ ᆨu2
∨ u3
) ∧ …
… (ap − 2
∨ ᆨup − 4
∨ up − 3
) ∧ (ap − 1
∨ ap
∨
ᆨup − 3
).
Le nombre de variables fait moins que doubler donc c'est bien une
réduction polynomiale.
Donc 3-SAT est aussi dur que SAT !!!
7. Problème de coloration de graphe
Problème COLORING :
Étant donné un graphe G, peut-on colorier les sommets à l'aide
de 3 couleurs de sorte que deux sommets reliés ne soit jamais de
la même couleur ?
ok
8. 3-SAT se réduit à COLORING
Pour toute proposition de 3-SAT, on va construire un graphe, tel que si le
graphe est coloriable alors la proposition est satisfaisable !
VRAI
FAUX
NEUTRE
u ᆨu
v ᆨv
u ∨ v ∨
ᆨt
t ᆨt
u
v
ᆨt
10. Problèmes NP-complets
Un problème P est dit NP-difficile si tous les problèmes de NP
peuvent se réduire à lui.
Si de plus, P est dans NP, on dit qu'il est NP-complet.
P
NP
NPC
Si un problème NP-complet
est dans P alors P = NP.
Pour montrer qu'un problème P donné
est NP-complet, on montre qu'il existe un
problème NP-complet qui se réduit à P.
Mais là, on tourne en rond !
11. Théorème de Cook (1971)
SAT est NP-complet.
On considère que c'est ce résultat qui a lancé la recherche
sur le problème « P = NP ? »
Stephen Cook
(1939 - ... )
12. Idée de la preuve
Soit T une machine de Turing de complexité p(n). Il faut trouver
une proposition logique qui permette de décrire l'exécution de T.
On va introduire les variables suivantes :
Notons R l'alphabet du ruban et E l'ensemble des états.
tirk
: Vrai si la case i de la bande contient le symbole r à l'étape k.
hik
: Vrai si la tête de lecture est sur la case i à l'étape k.
sek
: Vrai si la tête de lecture est dans l'état e à l'étape k.
Le nombre de variable est un multiple de p(n)2
.
13. Idée de la preuve
tirk
: Vrai si la case i de la bande contient le symbole r à l'étape k.
hik
: Vrai si la tête de lecture est sur la case i à l'étape k.
sek
: Vrai si la tête de lecture est dans l'état e à l'étape k.
Une transition (étape k) : la tête de lecture lit r et est dans l'état e donne
1) écrire r' 2) déplacement à droite 3) état e' ou ...
∨ (tirk
∧ hik
∧ sek
) ⇒ (tir'(k +1)
∧ h(i+1)(k+1)
∧ se'(k+1)
) ∨
...
∨ (hik
∧ ( ∧ ᆨhjk
))
j ≠ i
1 ≤ i ≤ p(n)
: la tête de lecture est sur une seule case.
1 ≤ i ≤ p(n)
En recollant toutes les conditions avec des ∧ on obtient une formule
qui est satisfaisable ssi il existe un calcul de T qui accepte la donnée
initiale...
14. Exemples de problèmes NP-complets
- 3-SAT
- COLORING
- Problème du cycle hamiltonien
- Problème du sac à dos
- Sudoku
- Démineur
- Tetris
plus de 3000 problèmes recensés en 2019 !
Remarque (que je ne sais pas où caser) :
Pour montrer que CHESS n'est pas dans P, on a montré que c'est
un problème EXPTIME-complet !
15. Plus de classes de complexité
L = problème décidables en O((log n)k
)
EXPTIME
PSPACE
NP Co-NP
P
NL
L
NL = problème décidables enO((log n)k
)
par une machine de Turing non
déterministe.
PSPACE = problème décidables
avec une mémoire de taille
polynomiale.
Questions à résoudre :
1) L = NL ?
2) NL = P ?
3) P = NP ?
4) NP = PSPACE ?
5) PSPACE = EXPTIME ?