Problèmes NP-complets - Free
Problèmes NP-complets - Free
Problèmes NP-complets - Free
- No tags were found...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Problèmes <strong>NP</strong>-<strong>complets</strong><br />
Pour montrer qu'un problème est <strong>NP</strong>-complet,<br />
1) on montre que ∈<strong>NP</strong><br />
2) On trouve un problème <strong>NP</strong>-complet connu 0 tel que<br />
0<br />
≤ P K<br />
<br />
Théorème de Cook-Levin :<br />
SAT et CNF-SAT sont <strong>NP</strong>-<strong>complets</strong><br />
Théorème :<br />
Pour k≤3 , k-SAT est <strong>NP</strong>-complet<br />
Preuve en 3 parties :<br />
3-SAT est <strong>NP</strong>-complet<br />
3−SAT ≤ P K<br />
k−SAT (exo TD)<br />
Preuve pour 3-SAT<br />
1) 3-SAT in <strong>NP</strong><br />
1 algorithme non déterministe pour CNF-SAT est aussi un algorithme pour 3-SAT (cas<br />
particulier de CNF-SAT)<br />
2) CNF −SAT ≤ K P 3−SAT<br />
X={X 1 ...X n }<br />
C={C 1 ...C m }<br />
C j sont des clauses de longueur quelconque.<br />
Pour construire la réduction :<br />
X , C <br />
instancede CNF −SAT<br />
f<br />
<br />
temps poly<br />
X ' ,C ' <br />
instance de3−SAT C '∈C<br />
On part de (X,C) on suppose toutes les variables sont utilisées et que les littéraux d'une<br />
clause c de C c={l 1 ,...,l p } n'utilise qu'au plus une fois les variables.<br />
l 1 =x i l 12 =x i<br />
n<br />
● C= ∪<br />
k=1<br />
C k<br />
C k<br />
={c∈C∣ayant k littéraux x}<br />
1. Dans X' on met toutes les variables de X<br />
2. k=1 c∈C 1 c={l 1 }<br />
Si C 1<br />
≠0 on ajoute deux variables X 1 , X 2 à X'
c=l dansC 1<br />
<br />
' {l 1<br />
, X 1 , X 2 }, {l 1<br />
, X 1<br />
, X 2 }, {l 1<br />
, X 1<br />
, X 2<br />
},{l 1<br />
, X 1<br />
, X 2<br />
}<br />
Une interprétation de (X,C) satisfait c si et seulement si toute interprétation ' prolongeant<br />
satisfait les 4 clauses<br />
' X i =X i sur X<br />
Si c=1 c'est à dire l 1 =1 ' {l 1 , X 1 , X 2 }=1<br />
Idem pour les 3 autres.<br />
Réciproquement si ' satisfait les 4 clauses, alors ' l 1 =1<br />
..........<br />
..........<br />
CNF −SAT ≤ K P 3−SAT<br />
Comme CNF-SAT est <strong>NP</strong>-complet, alors 3-SAT est <strong>NP</strong>-complet<br />
Les preuves de <strong>NP</strong>-complétude sont - Soit invariables, le problème est manifestement une<br />
généralisation d'un problème <strong>NP</strong>-complet<br />
Construction gadget.<br />
- Soit hyper astucieuse<br />
Ex : Démineur, grille n*n<br />
Est-ce que les chiffres sont cohérents <br />
C'est un problème <strong>NP</strong>-complet (cf Clay institute)<br />
HP (Hamiltonian Path) :<br />
Instance G=(V,E) un graphe non orienté.<br />
Q : Existe-t-il un chemin hamiltonien dans G <br />
Théorème :<br />
HP est <strong>NP</strong>-complet.<br />
Preuve :<br />
HP∈<strong>NP</strong> (exo TD)<br />
X variables, C m 3-clauses -> (V, E)<br />
Il existe une interprétation si et seulement si G admet un chemin hamiltonien satisfaisant C<br />
(X,C)<br />
On construit des gadgets<br />
X={X 1 ...X n }<br />
c={c 1 ...c m } c j ={l 1,j , l 2,j ,l 3,j }<br />
Gadgets pour les variables
X i<br />
∈ X H i<br />
graphe s<br />
r=2m+2<br />
Quels sont les chemins hamiltoniens y i<br />
− ∗ y i1 <br />
Les graphes H 1 ...H n on ajoute les sommets a et b.<br />
...<br />
2 n chemins hamiltonien possibles.<br />
Gadgets pour les clauses<br />
c j ={l 1,j ,l 2,j ,l 3,j }<br />
c j un sommet z j<br />
...<br />
On a une réduction qui se calcule en temps polynomial