23.01.2015 Views

Problèmes NP-complets - Free

Problèmes NP-complets - Free

Problèmes NP-complets - Free

SHOW MORE
SHOW LESS
  • 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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!