IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

95
IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin

Transcript of IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Page 1: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

IFT-66975

Chapitre 3La NP-complétude et

le théorème de Cook-Levin

Page 2: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

DéfinitionsSoit A un problème de décision et C une

classe de problèmes de décision.1. A est C-ardu (ou C-difficile) sous

transformations polynomiales si pour tout C C, on a C p A.

2. A est C-facile sous transformations polynomiales s’il existe C C A p C.

3. A est C-équivalent sous transformations polynomiales s’il est C-ardu et C-facile.

4. A est C-complet sous transformations polynomiales si A est C-ardu et A C.

NOTE: On peut également définir ces notions en utilisant des réductions différentes (e.g. les réductions de Turing ou réductions logspace.)

Page 3: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Pourquoi ces notions sont-elles utiles?

1. Si A est C-ardu et qu’un des problèmes de C n’admet pas d’algorithme efficace, alors A n’en admet pas non plus.

2. Si A est C-facile et que tous les problèmes de C ont des algorithmes efficaces, alors A en admet un aussi.

3. Si A est C-équivalent alors sa complexité représente celle de tous les problèmes de C.

4. Si A est C-complet, alors sa complexité représente la complexité maximale des problèmes dans C.

Dernier détail: existe-t-il des problèmes ardus ou complets pour P, NP, RP, BPP, etc. ?

Page 4: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Soit AccNP le problème suivant:

Instance: M,x,p où M est une machine de Turing non-déterministe, x est une entrée pour M et p est un polynôme.

Question: Est-ce que M accepte l’entrée x en au plus p(|x|) étapes?

Théorème: Le problème AccNP est NP-complet

Page 5: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Démonstration:1. AccNP NP: un algorithme non-déterministe peut simuler

M sur l’entrée x pendant p(|x|) étapes en choisissant non-déterministement les bits non-déterministes de M. Cet algorithme accepte si et seulement s’il existe un choix non-déterministe tel que M accepte x en au plus p(|x|) étapes donc ssi M,x,p AccNP.

2. Pour tout langage K NP on a K p AccNP. Puisque K NP il existe une machine de Turing non-déterministe NK telle que L(NK) = K et dont le temps de calcul est borné par un polynôme q. Soit fK la transformation polynomiale fK(w) = Nk,w,qk. Cette transformation est calculable en temps polynomial car NK et qK sont toujours les mêmes!

w K NK accepte w en temps qK(|w|) Nk,w,qk AccNP

Donc K p AccNP et AccNP est NP-complet.

Page 6: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Théorème de Cook-Levin

SAT est NP-complet.

On a déjà vu que SAT NP. Mais le théorème montre que SAT est le plus dur de sa classe.

Page 7: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Démonstration (Cook-Levin) Soit M une machine de Turing non-

déterministe dont le temps de calcul est nk et L = L(M) le langage reconnu par cette machine. Il faut montrer que

L p SAT. Donc, trouver une fonction f calculable en

temps polynomial et telle quex L f(x) SAT.

En d’autres mots, f associe à x une formule Booléenne satisfiable ssi M accepte x!

Page 8: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Une configuration représente l’état de la machine M à un moment précis. Déterminé par

1. L’état du ruban.2. L’état du contrôle fini.3. La position de la tête de lecture.4. Le bit non-déterministe courant b.

Peut être représenté par un ruban d’une longueur correspondant au temps de M + 2. Les cases contiennent le contenu du ruban de M. De plus, une case contient l’état du contrôle fini de M, et est placé devant la case correspondans à la position de la tête de lecture. La dernière case du ruban contient le bit non-déterministe.

Nous allons suivre le calcul de M sur x en considérant les configurations successives de M.

a1 a2 a3 ... q ai ai+1 ... al b

Page 9: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

B ... B B b1

b2

b3

bnk

#

#

#

#

#

#

#

#

q0 x1 x2 ... xn

nk

nk

configinitiale

2ème config

config finale

Tableau du calcul de MBits non-déterministes

Page 10: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Un tableau est dit valide si la configuration i+1 est bien celle obtenue à partir de la configuration j en effectuant la transition bi

. Notez que pour chaque

choix de configuration initiale et chaque choix des bi, il existe un tableau unique représentant l’exécution de M avec ces bits.

Un tableau est dit acceptant pour x s’il est valide, si la configuration initiale est celle de x et si un des états q du tableau est un état final acceptant.

Note: Comme le calcul est non-déterministe, il existe plus d’un tableau possible pour chaque entrée x. M accepte x si et seulement s’il existe un tableau acceptant pour x.

On veut construire pour chaque x une formule x qui est satisfiable ssi il existe un tableau acceptant pour x.

Page 11: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Construction de

Le tableau est formé de (nk)2 cellules cell[i,j] qui contiennent chacune soit un symbole de , soit un état de Q.

• Pour chaque s Q, on crée une variable ci,j,s avec l’intention suivante: ci,j,s = 1 ssi cell[i,j] contient s.• On crée les variables b1, ... ,bnk représentant les bits aléatoires.• Finalement, on construit = cell init étape accepte comme la conjonction de 4 formules construites séparément.

Page 12: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Construction de cell

On veut que les variables ci,j,s représentent le contenu des différentes cellules du tableau. Pour rendre cela possible, cell s’assure que

1. Pour chaque i,j, au moins une variable ci,j,s est vraie.2. Pour chaque i,j au plus une variable ci,j,s est vraie.

)(()( ,,,,,,,1

tjisjiCtsCs

sjinji

cell ccck

Page 13: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Construction de init.

On s’intéresse au tableaux dont la configuration intiale est celle de x. C’est ce que garantit init.

init = c1,1,# c1,2,q0 c1,3,x1 c1,4,x2

... c1,n+2, xn c1,n+3,b

... c1,nk-1,b c1,nk,#

Important: Contrairement à cell, cette formule est différente pour deux entrées x différentes.

Page 14: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Construction de accepte

accepte assure qu’un état acceptant existe dans le tableau.

k

accepte

njiqjiaccepte c

,1

,,

Page 15: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Construction de étape.

étape s’assure que la (i+1)ème configuration est bien celle atteinte à partir de la ième lorsque le bit aléatoire est bi .

On considère pour ça chaque bloc 2 3 du tableau avec l’intention suivante: si tous les blocs de cette taille sont localement valides alors le tableau au complet est valide.

a c d

a c d

Exemples

Bloc légal

Page 16: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

a q1 c bi

a a q2

Bloc légal si la transition de Men lisant c dans l’état q1 avec le bit aléatoire bi écrit un a et passe à l’état q2 et déplace la tête de lecture à droite.

Bloc légal si la transition de Men lisant c dans l’état q1 avec le bit aléatoire bi écrit un a et passe à l’état q2 et déplace la tête de lecture à gauche.

a q1 c bi

q2 a d

Page 17: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Bloc légal si la transition de M a réécrit le a en d.

Bloc légal si la transition de Mdéplacé la tête de lecture à gauche.

a d c bi

d d c

a d c bi

a d q2

Page 18: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Exemples de bloc illégaux

a d c

a a b

Impossible, un seul caractère peut changer par étape.

a q1 c

b c q2

Impossible, seul le caractère à droite de q1 peut avoir changé.

Page 19: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

a b c

a a c

Impossible car b ne peut être changé si la tête de lecture n’est pas sur cette position.

q1 b c

a b q2

Impossible car la tête de lecture se déplace d’une case au plus à chaque étape.

Page 20: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Définition formelle: Un bloc est légal pour bi = 0 si1. Le bloc contient au plus un symbole d’état par ligne.2. Si le bloc ne contient pas de symbole d’état alors a2 = a5, a3 = a6

et soit a1 = a4 soit il existe un état q telle que la transition 0 (q’,a1) réécrit le symbole a1 par a4 et ne déplace pas la tête de lecture ou la déplace vers la gauche.

3. Si a1 = q alors si la transition (q,a1) ne déplace pas la tête à gauche, la seconde ligne est celle résultant de la transition. Si (q,a1) déplace la tête à gauche, a2 = a5 et a3 = a6.

4. Idem si a2 = q.5. Si a3 = q alors il existe un symbole a’ qui fait en sorte que (q,a’)

donne la ligne a4, a5, a6.6. Si le seul symbole d’état est a4 = q alors il existe un état q’ tel

que 0(q’,a1) déplace la tête à droite et a2 = a5 et a3 = a6.7. Si le seul symbole d’état est a6 = q alors il existe une paire (q,a)

telle que 0(q,a) déplace la tête à gauche.8. On n’a pas comme seul symbole d’état a5 = q.

a1 a2 a3

a4 a5 a6

Page 21: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Le nombre total de blocs 2 3 possibles est (|| + |Q|)6, un nombre fini indépendant de n.

Soit a1, ..., a6 les 6 symboles composant un bloc. Le bloc commençant en (i,j) contient ces 6 symboles ssici,j,a1

ci,j+1,a2 ci,j+2,a3

ci+1,j,a4 ci+1,j+1,a5

ci+1,j+2,a6

Donc le bloc est légal pour bi = 1 ssi1b légal bloc

,...,i

61

aa

ci,j,a1 ci,j+1,a2 ci,j+2,a3 ci+1,j,a4 ci+1,j+1,a5 ci+1,j+2,a6 bi

Il n’y a que deux types de blocs légaux. Ceux qui sont légaux pour bi =1 et ceux légaux pour bi = 0.

0b légal bloc

,...,i

61

aa

ci,j,a1 ci,j+1,a2 ci,j+2,a3 ci+1,j,a4 ci+1,j+1,a5 ci+1,j+2,a6 ̅bi

Page 22: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

kk njni

étape

1,,1

[Le bloc (i,j) est légal]

À montrer: Si la première rangée du tableau est la configuration initiale sur x et si tous les blocs sont légaux alors chaque rangée du tableau est la configuration résultant de la précédente lorsque le bit aléatoire est bi.

Page 23: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Nous avons maintenant une fonction f qui associe à x la formule = cell init étape accepte.

1. Cette fonction est calculable en temps polynomial! || = O(n2k) + O(nk) + O(n2k) + O(n2k)

2. Si x L alors M accepte x. Soient b1, ..., bnk les bits aléatoires qui amènent M à acepter x. Par notre construction, on peut mettre en correspondance les valeurs des variables ci,j,s avec le contenu du tableau correspondant à ce choix des bi avec la garantie que cell, init et étape sont satisfaites. De plus, comme M accepte x, il existe un état acceptant dans le tableau donc accepte est aussi satisfaite. Donc SAT.

3. Si SAT, alors il existe des valeurs des ci,j,s et bi qui satisfont . Par construction, ces valeurs correspondent à un tableau du calcul sur x avec les bits aléatoires bi. Puisque accepte est satisfaite, ce tableau est acceptant pour x donc x L.

Page 24: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Observations utiles Théorème: S’il existe un problème A P

avec A NP-complet alors P = NP.

Démonstration: On a P NP. Pour montrer NP P,

prenons un B NP. On a B p A car A est NP-complet.

Il existe f calculable en temps polynomial avec x B f(x) A.

On peut donc tester si x B en calculant f(x) puis en utilisant un algorithme de temps polynomial pour A. Donc B P.

Page 25: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Observations utiles

Théorème: Si A NP et s’il existe un B NP-complet tel que B

p A alors A est

NP-complet.

Démonstration: On sait que A NP, il reste à montrer

que pour tout C NP on a C p A.

On sait que C p B et B p A donc C p A.

Page 26: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

SAT p 3-SAT

CLQ p IS p VCDHC p HC

TSP2, , sym

TSP

NP-complet!

NP-complet!

NP-complet!

NP-complet!

NP-complet!

Page 27: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Démontrer qu’un problème est NP-complet

Pour démontrer que A est NP-complet il faut

1. Démontrer que A est dans NP.2. Choisir judicieusement un problème

NP-complet B et montrer que B p A.

Page 28: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Problèmes complets pour d’autres classes? Soit L un langage de P tel qu’il

existe au moins un x1 L et un x0 L. Alors L est P-complet sous les transformations polynomiales!

Pour une notion intéressante de P-complétude on utilisera des transformations plus restrictives.

Page 29: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Problèmes complets pour d’autres classes?

On croit généralement que les classes RP, ZPP, BPP n’ont pas de problème complet.

Page 30: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Qu’indique la NP-difficulté?

Si A est NP-ardu alors

1. Il n’y a pas d’algorithme connu pour A dont le temps de calcul est o(cn) pour tout c > 1.

2. La majorité de la communauté mathématique pense que A n’admet aucun algorithme de temps polynomial.

Page 31: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

P = NP?

Pourquoi croit on que P NP?1. Parce que si c’était le cas, on aurait

trouvé un algorithme de temps polynomial pour un problème NP-complet.

2. Parce qu’intuitivement, trouver une solution est significativement plus dur que d’en vérifier la validité.

3. Parce qu’on veut y croire...

(Trois mauvaises raisons...)

Page 32: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Quels problèmes sont NP-complets?

En pratique, les variantes de décision des problèmes d’optimisation combinatoire sont soit dans P soit NP-complets.

Liste sans fin (et grandissante): problèmes de satisfiabilité problèmes de commis-voyageur problèmes de sac à dos problèmes de (ré-)partition et de planification problèmes de clique et de coloriage. problèmes de formation d’équipe

Page 33: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

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 (12). Plus que 3!

Page 34: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Problèmes de commis-voyageur.

Problèmes concernant la longueur des chemins et cycles d’un graphe (possiblement pondéré.)

On a déjà montré que HC, DHC, TSP, TSP2,,sym sont NP-complets.

Page 35: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Problème du chemin le plus long (LP, DLP)

Entrée: Graphe (dirigé) G = (V,E), entier k.Question: Existe-t-il dans G un chemin

simple de longueur k?

Clairement dans NP: on peut non-déterministement choisir k sommets du graphe et vérifier qu’ils forment un chemin simple.

Page 36: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Théorème: DLP et LP sont NP-complets.

Démonstration: On va montrer 3-SAT p DLP.

Réutilisons la transformation de 3-SAT à DHC.

Page 37: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

3-SAT p DLP.

Problème: comment refléter avec des chemins les 2n valeurs possibles des xi?

x1v

x1f

x2v

x2f xnf

…x1 x2 xn

xnv

Ce graphe contient 2n chemins passant par tous les sommets et qu’on va assimiler aux 2n valeurs possibles des xi. Lorsque xi est vrai on considère le chemin qui passe par xiv d’abord et xif ensuite.Lorsque xi est faux on considère le chemin qui passe par xif d’abord et xiv ensuite.

Page 38: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Pour représenter les clauses Cj, on rajoute un sommet cj dans le graphe.De plus, chaque fois que xi ou i apparaît dans une clause, on rajoute deux point intermédiaires entre xiv et xif.

xi

xifxiv

c1c7 c9

Si xi apparaît dans la clause Cj on construit un détour à travers cj qui ne peut être emprunté que lorsque qu’on part de xiv vers xif.Si i apparaît dans la clause Cj, on construit un détour à travers cj qui ne peut être emprunté que lorsque l’on part de xif vers xiv.

Le graphe obtenu contient un chemin simple qui passe à travers tous les sommets si et seulement si la formule 3-SAT est satisfiable.

Page 39: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Notes: Pour montrer DLP p LP, on procède

comme pour montrer DHC p HC.

La transformation nous permet de montrer que le problème est NP-complet même si on spécifie les points entre lesquels on cherche le chemin le plus long.

Le problème du chemin le plus court est résoluble en temps polynomial (algorithme de Dijkstra).

Page 40: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Arbre de recouvrement de degré borné (BMST)

Entrée: graphe pondéré G = (V,E), borne de degré k, valeur cible C.

Question: Existe-t-il un arbre de recouvrement de G avec degré k et coût C?

Clairement dans NP. LP est le cas particulier de BMST où k =

2, où les poids sont 1 ou 2 et C = |V|-1. BMST est NP-complet.

Page 41: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Problèmes de sac à dos

Dans sa forme la plus générale (Knapsack)

Entrée: Un ensemble d’objets avec un poids pi et une valeur vi + une capacité de sac à dos C + un objectif de valeur V.

Question: Peut-on choisir un ensemble d’objets dont le poids total est au plus C et la valeur totale au moins V.

Page 42: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Somme de sous-ensemble (Subset-sum)

Cas particulier du sac à dos où pi = vi.

Entrée: Ensemble d’entiers positifs R = {p1, ..., pn }, valeur

cible S.Question: existe-t-il un sous ensemble

R’ R tel que pi R pi = S.

Page 43: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Théorème: Subset-sum est NP-complet.

Démonstration:On montre 3-SAT p Subset-sum.

Les deux problèmes sont de nature très différentes la transformation sera compliquée.

Page 44: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Idées de départ: Chaque variable et chaque clause

de l’instance de 3-SAT peut-être vraie ou fausse, chaque élément de R fait ou ne fait pas partie de R’. Exploiter cette correspondance.

Si on choisit les nombres de R avec des décimales qui sont presque toutes 0, l’effet d’un nombre sur la somme est localisé.

Page 45: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Supposons que l’instance de 3-SAT contient n variables x1, ..., xn et m clauses C1, ..., Cm.

On construit des entiers avec m + n décimales: R = {a1, ..., an,b1, ... bn, d1, ..., dm, e1, ...,em}.

Les m premières décimales vont correspondre aux clauses et les n suivantes aux variables.

Page 46: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

On veut faire correspondre le choix xi = 1 au choix de ai dans R’ et le choix xi = 0 choix de bi dans R’.

Pour y arriver les n dernières décimales de ai et de bi sont 0, sauf celle correspondant à xi qui est 1.

x1 x2 ... xn

a1 1 0 0 0

b1 1 0 0 0

a2 0 1 0 0

b2 0 1 0 0

... ... ... ...

an 0 0 0 1

bn 0 0 0 1

m

Page 47: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Si xi = 1 toutes les clauses contenant xi sont vraies. Si xi = 0, toutes les clauses contenant i sont vraies.

Pour le refléter dans l’instance de subset-sum, la jème décimale de ai est 1 si xi apparaît dans Cj et 0 sinon. On choisit la jème

décimale de bi si i apparaît dans Cj et 0 sinon.

C1 C2 ... ... Cm

a1 1 0 0 0 1 0 ... 0 1

b1 0 1 0 0 0 0 ... 0 1

a2 0 0 ... 1 0

b2 1 0 ... 1 0

0

an 1 1 0 ... 0

bn 0 1 0 ... 0

Exemple:

C1 = x1 2 xn

Le litéral x1 apparaît dans les clauses C1 et Cm.

Le litéral 1 dans C2 seulement

Page 48: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Chaque choix de valeur à xi correspond au choix de ai ou de bi. Si on fait ce choix pour chaque i, la somme obtenue est un entier dont les n dernières décimales sont 1.

La décimale correspondant à Cj est alors 0,1,2 ou 3 selon le nombre de litéraux vrais que contient Cj.

C1 C2 ... ... Cm

a1 1 0 0 0 1 0 ... 0 1

b1 0 1 0 0 0 0 ... 0 1

a2 0 0 ... 1 0

b2 1 0 ... 1 0

0

an 1 1 0 ... 0

bn 0 1 0 ... 0

Page 49: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Les dj et ej nous permettent d’effacer la distinction entre les clauses satisfaites grâce à 1,2 ou 3 litéraux dans la clause Cj.

On choisit 0 pour toutes les décimales de toutes les décimales de dj et ej sauf la j-ème qui est 1.

C1 C2 ... ... Cm

d1 1 0 ... ... 0 0 ... ... 0

e1 1 0 ... ... 0 0 ... ... 0

d2 0 1 0 ... 0 0 ... ... 0

e2 0 1 0 ... 0 0 ... ... 0

dm 0 0 ... 0 1 0 ... ... 0

em 0 0 ... 0 1 0 ... ... 0

Page 50: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Finalement, on choisit 3 pour les m premières décimales de S et 1 pour les n dernières.

C1 C2 ... ... Cm x1 x2 xn

S 3 3 3 3 3 1 ... ... 1

Page 51: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Si la formule est satisfiable alors on va trouver R’ R dont la somme est S.

Si la formule est satisfiable et que xi = 1 dans l’assignation satisfaisante, on prend ai dans R’ et bi sinon.

Si la clause Cj est satisfaite par 1 litéral, on choisit dj et ej. Si elle est satisfaite par 2 litéraux, on ne prend que dj. Si elle est satisfaite par les 3 litéraux on ne prend ni dj ni ej.

On peut voir facilement que la somme de R’ est bien S.

Page 52: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Si un R’ avec somme S existe, alors la formule était satisfiable.

R’ doit contenir soit ai soit bi car les n dernières décimales de S sont 1. Choisissons xi = 1 ssi ai R’.

Les m premières décimales de S sont 3. Donc pour chaque j m, il y a au moins un des ai ou des bi dans R’ qui contient un 1 dans la colonne j.

Donc la clause Cj est satisfaite.

Page 53: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Corollaire: Knapsack est NP-complet.

Démonstration:1. Clairement dans NP.

2. Subset-sum P Knapsack

Car Subset-sum est un cas particulier de Knapsack.

Page 54: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Problème de partition (PART)

Entrée: R = {p1, ..., pn} N.

Question: Peut on séparer R en R1, R2 tel que pi R1

pi = pi R2 pi?

Cas particulier de Subset-sum où la valeur cible est S = ( pi)/2

Page 55: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Théorème: PART est NP-complet.

Démonstration:Suffit de montrer Subset-sum p PART.

Soit (p1, ..., pn,S) une instance de Subset-sum. Soit S* = pi. On peut supposer que 0 pi S S*.

Construisons l’instance de PART (p1, ..., pn, 2S* - S, S* + S).

Pour former une partition, il faut donc sélectionner des éléments dont la somme est 2S*.

Cela est possible si et seulement si il y a un ensemble de pi dont la somme est S.

Page 56: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Problèmes de répartition et de planification

Remplissage de seaux (Bin-packing BP)

Entrée: poids p1, ..., pn de n objets, k seaux de capacité c.

Question: Peut-on répartir les n objets dans les k seaux tels que la somme des poids de chaque seau n’excède pas c?

Page 57: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Théorème: BP est NP-complet.

Démonstration:1. Clairement dans NP: choix non-

déterministe de la répartition et vérification.

2. PART P BP

PART est le cas particulier de BP à deux seaux et de capacité ( pi)/2.

Page 58: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Planification de tâches (SWI)

Entrée: Un ensemble A de tâches. Pour chaque a A, un temps d’arrivée r(a), un temps de calcul l(a) et une échéance d(a). On suppose r(a), l(a), d(a) N+.

Question: Peut-on ordonner l’exécution des tâches séquentiellement sur un processeur de façon à ce que l’exécution de chaque tâche débute après r(a) et soit terminée avant d(a)? À noter: les tâches entreprises ne peuvent être interrompues avant leur fin.

Page 59: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Théorème: SWI est NP-complet.

Démonstration:1. Clairement dans NP.2. PART P SWI

L’instance (p1, ..., pn) de PART se transforme en n+1 tâches à faire en temps S+1 où S = pi.

On choisit l(ai) = pi, r(ai) = 0 et d(ai) = S+1. De plus on définit r(an+1) = S/2, l(an+1) = 1 et

d(an+1) = S/2 +1. Clairement la tâche an+1 doit être exécuté

dans l’intervalle [S/2, S/2 + 1] ce qui n’est possible que si les autres tâches peuvent être réparties en deux groupes avec somme de temps S/2.

Page 60: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Problèmes de clique et de coloriage de graphe

On a déjà vu que CLIQUE, IS, et VC sont NP-complets.

On peut en déduire que le problème du sous-graphe isomorphe (SI) et du plus grand sous-graphe commun sont NP-complets (Wegener).

Page 61: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Théorème: 3-COL est NP-complet.

Démonstration:3-SAT P 3-COL

Réduction à priori difficile. Comment représenter la valeur de variables booléennes à travers un coloriage de graphe?

Page 62: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Première étape très utile: on crée un triangle dans le graphe. Ces trois sommets doivent forcément avoir les trois couleurs.

Lorsque par la suite on reliera le sommet bleu à un nouveau sommet du graphe, on pourra être certain que sa couleur ne peut être que rouge ou vert! En associant vert à vrai et rouge à faux, on peut représenter des valeurs booléennes dans le graphe.

Page 63: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Pour chaque litéral xi, i de l’instance de 3-SAT, on crée les sommets xi et i, reliés entre eux et reliés au sommet bleu.

Quoiqu’il arrive, ces sommets ne pourront donc être coloriés qu’en rouge et vert et xi et i devront avoir des couleurs différentes. On veut associer vert à vrai et rouge à faux.

x1

1

x2

2

xn

n

Page 64: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Supposons que Cj = l1 l2 l3. Cette clause est satisfaite si et seulement si au moins un li est vrai. Donc si et seulement si un des sommets li est colorié en vert.

Pour refléter cette correspondance, on construit 6 sommets cj1, ..., cj6 reliés à l1, l2, l3 et à nos 3 sommets de départ.

l1

l2

l3

cj1

cj2

cj3 cj4

cj6

cj5

Page 65: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

On veut montrer que ce gadget est 3-coloriable ssi un des li est vert.

cj6 est forcément vert. cj4 et cj5 sont forcément rouge et bleu. Si cj5 est rouge alors l3 est vert mais si l3

est rouge alors cj5 est bleu. Les sommets cj1, cj2, cj3 ont des couleurs

toutes différentes.

l1

l2

l3

cj1

cj2

cj3 cj4

cj6

cj5

Page 66: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Supposons que l1 est vert.

On peut donc colorier cj1 en rouge, cj2

en vert et cj3 en vert. (peut importe la couleur de l2)

On peut donc colorier cj4 en rouge et cj5 en bleu. Le coloriage est valide peut importe la couleur de l3.

l1

l2

l3

cj1

cj2

cj3 cj4

cj6

cj5

Page 67: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Supposons que l3 est vert mais que l1 et l

2 sont rouges.

On doit colorier cj1 et cj2 en bleu et vert et donc cj3 en rouge.

On peut colorier cj5 en rouge et cj4 en bleu pour compléter le coloriage.

l1

l2

l3

cj1

cj2

cj3 cj4

cj6

cj5

Page 68: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Il reste à montrer que si l1, l2 et l3 sont tous rouges, ce sous-graphe n’est pas 3-coloriable.

On doit colorier cj5 en bleu et cj4 en rouge.

Les trois sommets cj1, cj2 et cj3 doivent avoir des couleurs différentes mais aucun ne peut être rouge!

l1

l2

l3

cj1

cj2

cj3 cj4

cj6

cj5

Page 69: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

On construit en temps polynomial un graphe avec 2n + 6m + 3 sommets.

Si la formule de départ est satisfaite, alors on peut utiliser les valeurs des xi satisfiant la formule pour colorier les li en rouge et vert. Comme chaque clause contient un litéral vrai, chaque composante de clause dans le graphe contient un li colorié vert et est coloriable.

S’il existe un 3-coloriage du graphe, alors les li sont verts ou rouges et l’on peut assigner des valeurs correspondantes aux xi. Comme les composantes de clauses sont toutes 3-coloriables, chacune contient un li qui est vert. Donc la formule est satisfaite.

Page 70: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Problèmes de formation d’équipesMariage tri-dimensionel (3DM)

Entrée: Trois ensembles disjoints de personnes K1, K2, K3 (compétences différentes) avec |K1| = |K2| = |K3| = n. Ensemble d’équipes possibles T K1 K2 K3.

Question: Peut-on trouver dans T n équipes de 3 personnes telles que chaque personne soit assigné à une et une seule équipe?

Page 71: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Théorème: 3-DM est NP-complet.

Démonstration:3-SAT P 3-DM

Réduction à priori difficile. Comment représenter la valeur de variables booléennes à travers les équipes et les compétences?

Page 72: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Soient x1, ..., xn les variables et C1, ..., Cm les clauses de la 3-SAT formule . On peut supposer que chaque clause contient exactement 3 litéraux et que la formule contient 3m litéraux en tout. (en comptant les répétitions)

Notre seule porte de sortie: s’assurer de mettre en correspondance les choix de valeurs aux xi avec le choix de nos équipes

On forme 3 groupes d’experts de taille 6m.

Page 73: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Groupe d’experts K1: répartis en n sous-groupes correspondant aux n variables. Le sous-groupe i contient 2zi experts, où zi est le nombre d’occurrences de xi ou i dans une clause.

Pour suivre la construction, on dénote ces experts xi

l et il pour 1 l zi.

On veut que le choix de xi = 0 ou de xi = 1 se traduise par un choix d’équipes particulier.

Pour y arriver: on crée des experts dans les groupe K2 et K3 tels que leur répartition dans une équipe nous forcent 1. soit à assigner tous les xi

l à des équipes en laissant tous les i

l sans équipe; 2. soit à assigner tous les i

l en laissant tous les xil.

sans équipe.

Page 74: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

On crée dans K2 les 3m personnes ail où 1

i n et 1 l zi. On crée dans K3 les 3m personnes bi

l où 1 i n et 1 l zi.

À noter: il y a zi experts ail et zi experts bi

l mais 2zi experts xi

l et il.

Chaque ail et bi

l ne fait partie que de deux équipes et c’est cette rigidité qui va nous permettre d’encoder les valeurs booléennes.

Page 75: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Supposons zi = 4. On forme 8 équipes à partir de xi

1, ..., xi4, i

1, ... i4, ai

1, ..., ai4, bi

1, ..., bi4.

Pour placer les a et b dans des équipes on a seulement deux choix. L’un d’eux laisse tous les xi

l sans équipe, l’autre tous les i

l.

xi2

i2

ai2

bi2

xi1

i1

ai1

bi1

xi4

i4

ai4

bi4

xi3

i3

ai3bi

3

Page 76: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Il faut maintenant représenter les clauses Cj. On place un expert pj

2 dans le groupe K2 et un expert pj

3 dans le groupe K3.

pj2 et pj

3 doivent former une équipe complétée par un expert de K1. Pour relier les valeurs booléennes aux clauses, on choisit: (xi

l, pj2, pj

3) T, ssi xi apparaît dans Cj et (i

l, pj2, pj

3) T ssi i apparaît dans Cj.

Page 77: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Notre intention est donc: Choix de valeurs booléennes choix

des équipes pour les ail et bi

l. Satisfaction des clauses possibilité

d’assigner les p2j, p3

j à une équipe.

Lorsque ces équipes sont formées, les experts de K1 correspondants aux

litéraux faux sont tous assignés à une équipe

pour chaque clause, un litéral restant dans K1 est assigné à une équipe.

Il reste donc 2m experts de K1 à placer dans des équipes.

Page 78: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

On ajoute à K2 les experts qj2 pour 1 j

2m et à K3 les experts qj2 pour 1 j 2m.

Pour tous les experts xil, i

l de K1, on ajoute comme équipes possibles (xi

l, qj2, qj

3) et (il,

qj2, qj

3).

La transformation est maintenant complète. Elle se fait clairement en temps polynomial.

Page 79: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Supposons que x1, ..., xn {0,1} satisfont la formule .

Si xi = 0, on place tous les experts ail, bi

l dans les équipes (xi

l,ail,bi

l), laissant les il sans équipe pour

l’instant.

Si xi = 1, on place tous les experts ail, bi

l dans les équipes (i

l,ail+1,bi

l), laissant les xil sans équipe pour

l’instant.

Si xi est vrai, alors les experts xil de K1 n’ont pas

encore d’équipe. Si xi apparaît dans Cj, alors on peut donc former une équipe (xi

l,pj2,pj

3). Comme chaque Cj contient un litéral vrai on peut donc assigner des équipes à tous les pj

2,pj3.

Dans les groupes K2, K3, il ne reste que des experts q2, q3 qui forment les dernières équipes.

Donc, il existe un mariage tri-dimensionnel!

Page 80: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Supposons qu’il existe un mariage.

Pour chaque i, considérons les ail, bi

l. S’ils forment des équipes contenant tous les xi

l, alors on choisit xi = 0. Sinon, on choisit xi = 1. On a assigné des valeurs booléennes aux xi et on veut montrer qu’elles satisfont .

Pour chaque j, les points p2j et p3

j font partie d’une équipe qui est complétée par un xi

l ou un il. Si c’est par un xi

l, alors xi apparaît dans Cj et xi = 1. Même raisonnement pour l’autre cas.

Donc chaque Cj contient un litéral vrai et est satisfiable.

Page 81: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Couverture d’ensemble (Set-cover, SC)

Entrée: Un ensemble S, des sous ensembles A1, ..., An de S, un entier k.

Question: S est-il l’union de k Ai?

3DM est un cas particulier de SC. S = K1 K2 K3. Union de tous les experts. Les Ai correspondent aux équipes de trois

experts. On cherche une couverture de S avec k = |Ki|

équipes. Donc SC est NP-complet.

Page 82: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

SAT p 3-SAT

CLQ p IS p VCDHC p HC

TSP2, , sym

TSP

NP-complet!

SubIso+grand subcommun

DS

3-COL

Knapsack

Subset-sum

PART

BP

SWI

3DM

SC

1. Donc tous NP-complets!2. Donc il existe des transformations polynomiales entre tous ces problèmes!

DLP p LP

BMST

Page 83: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Où est la frontière?

Des problèmes apparemment très semblables peuvent être de complexité très différente.

La différence entre des problèmes dans P et des problèmes NP-complets est souvent subtile.

Page 84: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Dans P NP-complets

2-SAT k-SAT pour k 3

2-COL k-COL, k 3

MariageMariage tri-

dimensionnel

Plus court chemin entre deux points

d’un graphe

Plus long chemin entre deux points

d’un graphe

Faire les séries avec répartition

des points (0,1,2)

Faire les séries avec répartition

des points (0,1,3)

Page 85: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

On a vu que VC est NP-complet mais le problème de couverture par arêtes est dans P.

Entrée: graphe G = (V,E), entier k.Question: Existe-t-il une couverture

par arêtes E’ E avec |E’| k? (E’ est une couverture par arêtes si pour tout v V, il existe u V avec (u,v) E’.)

Page 86: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Réduction transitive ( P)

Entrée: graphe dirigé G = (V,E), entier k.

Question: Existe-t-il E’ V V avec |E’| k, tel qu’il existe un chemin de u vers v dans G si et seulement si il existe un chemin de u vers v dans G’ = (V,E’).

Page 87: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Plus petit sous-graphe équivalent (NP-complet)

Entrée: graphe dirigé G = (V,E), entier k.

Question: Existe-t-il E’ E avec |E’| k, tel qu’il existe un chemin de u vers v dans G si et seulement si il existe un chemin de u vers v dans G’ = (V,E’).

Page 88: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

2-SAT P... mais Max-2-SAT est NP-complet!

Entrée: Formule 2-CNF avec m clauses et entier k m.

Question: Peut-on assigner des valeurs aux xi qui satisfont au moins k clauses?

Page 89: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

SAT et le théorème de Schaefer

Soit = {R1, ..., Rk} un ensemble de relations booléennes avec Ri {0,1}ji.

Problème de satisfiabilité généralisée ():

Entrée: variables booléennes x1, ..., xn et liste de contraintes C1, ..., Cm. Chaque contrainte est de la forme Ci= (xi1

, ..., xis) Rj.

Question: Peut-on assigner des valeurs aux xi telles que toutes les contraintes soient satisfaites?

Page 90: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Exemples:

Le problème 3-SAT correspond à = {R0,R1,R2,R3} avec

1. (x,y,z) R0 x y z;

2. (x,y,z) R1 y z;

3. (x,y,z) R2 z;

4. (x,y,z) R3 ̅z.

Page 91: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Exemples:

Le problème 2-SAT correspond à = {R0,R1,R2} avec

1. (x,y) R0 x y;

2. (x,y) R1 y;

3. (x,y) R2 .

Page 92: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Théorème [Schaefer (78)]

Pour tout le problème Gen-SAT() est soit dans P soit NP-complet. Il n’existe que six cas qui sont dans P.

1. 2-SAT2. Horn-SAT3. co-Horn-SAT4. 0-valide-SAT5. 1-valide-SAT6. Linéaire-SAT

Page 93: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Horn-SAT: cas particulier de SAT où chaque clause a au plus un litéral positif.

i1 i2

... ik y

Intuitivement: si presque toutes les occurrences de variables sont négatives, alors choisir tous les xi = 0 semble être un bon point de départ.

Page 94: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Algorithme polynomial pour Horn-SAT

Entrée: Instance de Horn-SAT1. Initialiser tous les xi à 0.

2. Si une clause est insatisfaite c’est qu’elle est de la forme C = xj. Donc choisir xj = 1.

3. Enlever les occurrences de j. Enlever les clauses où xj apparaît.

4. Répéter 2 et 3 jusqu’à ce que la formule soit satisfaite où qu’une clause devienne vide.

Page 95: IFT-66975 Chapitre 3 La NP-complétude et le théorème de Cook-Levin.

Les autres cas de Schaefer1. co-Horn-SAT: dual de Horn-SAT2. 0-valide: cas où la solution i xi = 0

satisfait toutes les contraintes.3. 1-valide: cas où la solution i xi = 1

satisfait toutes les contraintes.4. Linéaire-SAT: cas où toutes les

relations sont équivalents à des conjonctions de ou-exclusif de litéraux, e.g. (1 x2 x3) (x3 x5).

Algorithme utilisant l’algèbre linéaire.