• Aucun résultat trouvé

9.8 Coloration de graphes

9.8.1 COLOR

Th´eor`eme 16. COLOR est NP-complet D´emonstration.

1. COLOR est dans NP.

Une instance I de COLOR est une paire (G, k) de taille |V | +| E | + log k. Comme certificat on peut choisir une liste des couleurs des sommets. On peut v´erifier en temps lin´eaireO(|V |+|E |) si pour chaque arˆete (x, y) de E la conditioncolor(x)�=color(y) est vraie et si la somme des couleurs utilis´ees est ´egale `ak.

2. R´eduction `a partir de 3-SAT.

On se donne une instance I1 de 3-SAT avec p clauses Ck, k = 1, . . . , p, et n variables x1, . . . , xn. Comme on a le droit d’ignorer les instances«faciles»on peut supposer n≥4.

A partir de cette instance on construit un grapheG= (V, E) avec les 3n+p sommets x1, . . . , xn, x1, . . . , xn, y1, . . . , yn, c1, . . . , cp

et les arˆetes

(xi, xi) ∀i= 1, . . . , n (yi, yj) ∀i, j= 1, . . . , n, i�=j (yi, xj) ∀i, j = 1, . . . , n, i�=j (yi, xj) ∀i, j = 1, . . . , n, i�=j

(xi, ck) ∀xi �∈Ck (xi, ck) ∀xi �∈Ck.

c1

x1 x1

x2

x3

c2

y1

y2

y3

x2

x3

Fig.9.1: Exemple : Le graphe construit `a partir de la formule (x1∨x2∨x3)∧(x1∨x2∨x3).

Un exemple pour la construction de ce graphe est donn´e en Figure 9.1. La taille deI2 est polynomiale en la taille deI1 comme |V |=O(n+p).

On va prouver queI1 a une solution ssiG est coloriable avecn+ 1 couleurs.

⇒Supposons queI1 a une solution : il y a une instantiation des variables t.q.Ckest vraie pout toutk. On pose

color(xi) =isi xi est vraie color(xi) =n+ 1 sixi est fausse

color(xi) =isi xi est vraie color(xi) =n+ 1 sixi est fausse

color(yi) =i

et pour color(ck) on choisit la couleur d’une variable qui met la clauseCk `a vraie.

Montrons que cette allocation des couleurs r´ealise une coloration valide du graphe. Le seul probl`eme pourrait venir des arˆetes entre lesx (ou lesx) et les clauses. Soit Ckune clause colori´ee `a i`a cause d’une variable xi ou xi qui la met `a vraie, donc qui est aussi colori´ee en i. Mais cette variable est dans la clause : alors l’arˆete entre cette variable et la clause n’existe pas. On a l’arˆete entre la clause et l’oppos´e de la variable, mais cette derni`ere est color´ee `an+ 1, donc pas de conflit.

⇐ Supposons maintenant qu’ il y a un coloriage deG `an+ 1 couleurs.

Lemme 1. Les yi forment une clique, donc ont des couleurs diff´erentes. Quitte `a re-num´eroter les couleurs, color(yi) =i.

Lemme 2. xi et xi ont pour couleur iou n+ 1 et ce n’ est pas la mˆeme.

En effet, xi etxi sont reli´es entre eux et avec tous lesyj, j �=i, on peut en d´eduire que color( xi

xi ) = ( i

n+ 1 ) ou ( n+ 1 i )

Lemme 3. ck ne peut pas avoir la couleur n+ 1. En effet, n ≥ 4, donc il y a un xi t.q.

xi �∈Ck, xi�∈Ck, et l’un des deux est de couleur n+ 1.

Supposons alors quecolor(ci) =k∈1, . . . , n. On pose

xi =

�1 sicolor(xi) =i 0 sicolor(xi) =n+ 1 et (forc´ement)

xi=

�1 sicolor(xi) =i 0 sicolor(xi) =n+ 1.

Alors la variable qui donne `a ci sa couleur est dans la clause Ci (sinon ils sont reli´es) et met cette clause `a vraie, car sa couleur n’est pas n+ 1. Comme c’est vrai pour chaque clauseCi,I1 a une solution.

9.8.2 3-COLOR

Th´eor`eme 17. 3-COLOR est NP-complet

Remarque 6. Le fait que COLOR est NP-complet ne dit rien. Par exemple, 2-COLOR est polynomial (voir Paragraphe 4.3).

D´emonstration.

1. Comme COLOR est dans NP, 3-COLOR est dans NP.

2. On fait une r´eduction `a partir de 3-SAT en utilisant le gadget de la figure 9.2.

x

Fig. 9.2: A gauche le gadget, `a droite son symbole.

Lemme 8. Le gadget v´erifie les deux propri´et´es suivantes : i) Si x=y=z= 0 alors v est colori´e `a 0.

ii) Toute autre entr´ee (x, y, z) permet de colorier v `a 1 ou 2.

D´emonstration. i) Six=y =z= 0 alors on ne peut que colorier le gadget comme suivant (fig. 9.3) :

Avec ce gadget on construit `a partir d’une instance I1 de 3-SAT avec p clauses Ck (k= 1..p) et n variables xi (i = 1..n) une instance de 3-COLOR comme le graphe G avec 1 + 2n+ 6p+ 1 = O(n+p) sommets (voir fig. 9.4) : 2 sommets par variable et 1 gadget (6 sommets) par clause. Les entr´ees d’un gadget sont reli´ees aux variables pr´esentes dans la clause correspondante.

On va prouver queI1 a une solution ssiG est 3-coloriable.

(a) ⇒On suppose queI1a une solution, c’est `a dire une instantiation qui met toutes les clauses `a vrai. On pose color(xi) =

�1 sixi vrai

0 sinon et color(xi) =

�1 si xi vrai

0 sinon .

Comme il y a une variable `a vrai dans chaque clause, il y a pour chaque gadget une entr´ee qui est non nulle. La propri´et´e ii) du gadget permet alors d’avoir vi �= 0∀i= 1..p. En posant color(D) = 2 et color(Z) = 0 on obtient un coloriage de G `a trois couleurs.

D

x1 x1 x2 x2 xn xn

v1 v2 vp

Z

Fig.9.4: Un exemple de grapheGconstruit `a partir de l’instanceI1 de 3-SAT. Le gadget kest reli´e avec les variables de la clause Ck de I1.

(b) ⇐ On suppose queG a une coloration `a trois couleurs. En permutant les couleurs on peut supposer que color(D) = 2, color(Z) = 0, color( xi

xi ) = ( 1

0 ) ou ( 0 1 ) car le coloriage est valide. Comme color(Z) = 0 la couleur des vi doit ˆetre 1 ou 2. La propri´et´e i) permet de conclure que dans chaque clause il y a une variable

`a vrai (on ne peut pas avoir trois 0 en entr´ee). Par cons´equence, l’instantiation xi =

�1 sicolor(xi) = 1

0 sicolor(xi) = 0 , xi =

�1 si color(xi) = 1

0 si color(xi) = 0 donne une instantiation des xi qui met toutes les clauses `a vrai.

9.8.3 3-COLOR-PLAN

Th´eor`eme 18. 3-COLOR-PLAN est NP-complet D´emonstration.

1. Comme 3-COLOR est dans NP, 3-COLOR-PLAN est dans NP.

2. On fait une r´eduction `a partir de 3-COLOR en utilisant le gadget de la figure 9.5, ap-pel´eW.

b

*

*

*

* *

*

*

*

*

b'

a' a

Fig. 9.5: Le gadget W avec 13 sommets Lemme 9. Le gadget W v´erifie les deux propri´et´es suivantes :

i) Pour tout 3-coloriage de W les sommetsa et a ainsi que b et b ont la mˆeme couleur.

ii) Si (a, a) et (b, b) ont la mˆeme couleur donn´ee, on peut compl´eter ce coloriage en un 3-coloriage de W.

D´emonstration.

i) On proc`ede par exploration exhaustive des coloriages possibles. Les coloriages montr´es en ii) donnent des exemples.

ii) Si on donne par exemplea=a = 0,b=b = 1, on peut compl´eter le coloriage comme dans la figure 9.6. Si on donne a = a = 0, b = b = 0, on peut compl´eter le coloriage comme dans la figure 9.7. Les autres cas sont sym´etriques.

1

0

2

0

2 2

1

2 1

2

1

0 0

Fig. 9.6: 3-coloriage deW avec a=a= 0, b=b= 1

0

2

0

2

1 2

1

1 1

2

0

0 0

Fig. 9.7: 3-coloriage deW avec a=a= 0, b=b= 0

Soit I1 une instance de 3-COLOR, c’est un graphe G. A partir de I1 on construit une instanceI2 de 3-COLOR-PLAN comme grapheGen rempla¸cant les arˆetes qui se croisent par un gadget W (voir fig. 9.8). Pr´ecis´ement, une arˆete (u, v) qui croise (u, v) est

rem-W W W

a b a b

W W W

a b a b

W

Fig. 9.8: On transforme le graphe G en un graphe planaire en rempla¸cant les arˆetes qui se croisent par le gadget W

plac´ee par l’arˆete (u, a) suivie du gadget W, avec v = a : on met une arˆete entre u et l’extr´emit´e gauche du gadget, et on confond v et l’extr´emit´e droite du gadget. De mˆeme pour (u, v) : il y a une arˆete entre u et l’extr´emit´e nordb du gadget, mais v =b. De cette fa¸con, commeaeta ont la mˆeme couleur,u etven ont une diff´erente. Enfin, quand il y a plusieurs arˆetes, on place plusieurs gadgets en s´erie, en confondant l’extr´emit´e droite d’un gadget avec l’extr´emit´e gauche du gadget suivant.

Gest 3-coloriable ssi G est 3-coloriable :

⇒ SiGest 3-coloriable, la proposition i) donne la solution.

⇐ SiG est 3-coloriable, la proposition ii) donne la solution.

9.9 Exercices

Exercice 9.9.1. Complexit´e de SUBSET-SUM

Montrer que le probl`eme suivant SUBSET-SUM est N P-complet.

SUBSET-SUM

Instance : un ensemble finiS d’entiers positifs et un entier objectift.

Question : existe-t-il un sous-ensembleS ⊆S tel que�

x∈Sx=t?

Indication :vous pouvez par exemple effectuer une r´eduction `a partir de 3-SAT. A partir d’un ensemble de clausesC0, ..., Cm1sur les variablesx0, ..., xn1, consid´ererSl’ensemble des entiers vi = 10m+i+�m−1

j=0 bij10j et vi = 10m+i+�m−1

j=0 bij10j, 0≤i≤n−1, o`u bij (resp. bij) vaut 1 si le litt´eral xi (resp. xi) apparaˆıt dans Cj et 0 sinon, et des entiers sj = 10j etsj = 2.10j, 0 ≤ j ≤ m−1. Trouver alors un entier objectif t tel qu’il existe un sous-ensemble S ⊆S de somme t si et seulement si l’ensemble initial de clauses est satisfiable. Conclure. Quels autres entiers auraient aussi march´e ?

Exercice 9.9.2. Variantes de 3-SAT

Montrer la N P-compl´etude des deux variantes de 3-SAT suivantes :

Question 9.1 3-SAT NAE (not all equal), o`u l’on impose que les trois litt´eraux de chaque clause ne soient pas tous `a la mˆeme valeur.

Question 9.2 3-SAT OIT(one in three), o`u l’on impose qu’exactement un litt´eral soit `avrai dans chaque clause.

Exercice 9.9.3. Variantes de SAT-N

On appelle SAT-N le probl`eme SAT restreint aux formules qui n’ont pas plus deN occur-rences de la mˆeme variable.

Question 9.3 Montrer que SAT-3 est au moins aussi dur que SAT. En d´eduire que pour tout N ≥3, SAT-N estN P-complet.

Question 9.4 Soit x une variable apparaissant dans une formule F de SAT-2. Trouver une formule ´equivalente `aF et dans laquelle la variablexn’apparaisse plus. En d´eduire un algorithme polynomial pour SAT-2.

Exercice 9.9.4. De la N P-compl´etude

Montrer que les probl`emes suivants sont NP-complets : Question 9.5 Chevaliers de la table ronde

´Etant donn´es n chevaliers, et connaissant toutes les paires de f´eroces ennemis parmi eux, est-il possible de les placer autour d’une table circulaire de telle sorte qu’aucune paire de f´eroces ennemis ne soit cˆote `a cˆote ?

Question 9.6 Etant donn´e un graphe G= (V, E), et un entierK >0, existe-t-il deux cliques disjointes de tailleK dansG? On rappelle qu’une clique est un sous-ensemble de sommets tous adjacents deux `a deux.

Question 9.7 Soient G = (V, E) un graphe orient´e (on distingue l’arc (u,v) de l’arc (v,u)), deux sommets de ce graphes, t∈V et une listeP ={(a1, b1), . . . ,(an, bn)}de paires de sommets deG. Existe-t-il un chemin orient´e desverstdansGqui contient au plus un sommet de chaque paire de la liste P?

Indication : faire une r´eduction `a partir de 3-SAT.

Question 9.8 Soient G = (V, E) un graphe dont tous les sommets sont de degr´e pair, et k≥1 un entier. Existe-t-il un ensemble de sommets deGcouvrant toutes les arˆetes et de taille inf´erieure ou ´egale `a k?

Question 9.9 Soient n = 2p un entier pair, et n entiers strictement positifs a1, a2, . . . , an. Existe-t-il une partition de {1,2, . . . n} en deux ensembles I et I de mˆeme cardinal p et tels que�

iIai =�

iIai?

Question 9.10 Soient G= (V, E) un graphe dont tous les sommets sont de mˆeme degr´e, et k≥1 un entier. Existe-t-il une clique de taille sup´erieure ou ´egale `ak?

Question 9.11 ´Etant donn´es un graphe G = (V, E) et un entier K ≥ 3, d´eterminer si G contient une roue de taille K, i.e. un ensemble de K+ 1 sommets w, v1, v2, . . . , vK tels que (vi, vi+1)∈E pour 1≤i < K, (vK, v1)∈E et (vi, w)∈E pour 1≤i≤K (w est le centre de la roue).

Question 9.12 ´Etant donn´es un graphe G = (V, E) et un entier K ≥ 3, d´eterminer si G contient un dominateur de cardinalK, i.e. un sous-ensembleD⊂V de cardinalK tel que pour tout sommetu∈V \D, il existe u∈D avec (u, v)∈E

Question : Dcontient-il une sous-chaˆıne transitive de longueur au moins �

|V| 2

�?

Indication :Vous pouvez par exemple effectuer une r´eduction `a partir de 3-SAT. Si on se donne un ensemble de clausesC1, ..., Ck, avecCi = (x1i ∨x2i ∨x3i), on peut construire une instance du probl`eme de sous-chaˆıne transitive en posant V ={C0}�

1ik{Ci, x1i, x2i, x3i} et en choissant avec soin les arˆetes `a mettre dansE.

9.10 R´ ef´ erences bibliographiques

Ce chapitre s’inspire du c´el`ebre livre de Garey et Johnson [5]. Le lecteur qui cherche une introduction claire aux machines de Turing, et une preuve concise du th´eor`eme de Cook, trouvera son bonheur avec le livre de Wilf [12], dont la premi`ere ´edition est mise par l’auteur `a la libre disposition de tous sur le Web : http://www.cis.upenn.edu/~wilf/.

Chapitre 10

Algorithmes d’approximation

10.1 D´ efinition

On connaˆıt un certain nombre de probl`emes NP-complets : – 3-SAT, Clique, Vertex cover, Cycle Hamiltonien, Color.

– Subset-sum : n entiersa1, . . . , an et un objectif t. Existe-t-ilI tel que�

iIai=t? – 2-Partition : nentiers a1, . . . , an. Existe-t-ilI tel que�

i∈Iai =�

i�∈Iai?

En fait, la plupart d’entre eux sont des probl`emes de d´ecision associ´es `a des probl`emes d’opti-misation. A d´efaut de calculer la solution optimale, peut-on l’approximer ?

D´efinition 17. Un algorithme de λ-appproximation est un algorithme polynomial en la taille de l’instance qui renvoie une solution approch´ee garantie au pire cas `a un facteur λ.

Exemple : Pour un probl`eme de minimisation, dire que la solution est garantie `a un facteur λde l’optimal s’´ecrit :

∀I instance du probl`eme, ObjAlgo(I)≤λ·ObjOpt(I)