L3– Algorithmique1(Année2014/2015) A. Lagoutte & A. Plet
TD 09 – Approximation
Exercice1. SUBSET-SUM
Montrer que le problème suivant SUBSET-SUM estN P-complet.
SUBSET-SUM
Instance :un ensemble finiSd’entiers positifs et un entier objectift.
Question :existe-t-il un sous-ensembleS0⊆Stel que∑x∈S0x =t?
Indication :vous pouvez par exemple effectuer une réduction à partir de3-SAT. A partir d’un ensemble de clausesC0, ...,Cm−1sur les variables x0, ...,xn−1, considérer Sl’ensemble des entiers vi = 10m+i+
∑m−1j=0 bij10j etv0i =10m+i+∑m−1j=0 b0ij10j, 0≤ i≤n−1, oùbij (resp.b0ij) vaut1si le littéralxi (resp.xi) apparaît dansCj et0sinon, et des entierssj=10j ets0j =2.10j, 0≤j≤m−1. Trouver alors un entier objectifttel qu’il existe un sous-ensembleS0 ⊆ Sde sommetsi et seulement si l’ensemble initial de clauses est satisfiable. Conclure. Quels autres entiers auraient aussi marché ?
Exercice2. Problème du k-centre
On rappelle quelques définitions :
– Dans un grapheG= (V,E), unensemble indépendantest un sous-ensemble de sommetsV0non reliés par des arêtes (siu∈V0 etv∈V0, alors(u,v)∈/E).
– Dans un graphe G = (V,E), un ensemble dominant est un sous-ensemble de sommets V0 tel que tout sommet deV\V0 est adjacent à un sommet deV0. On notedom(G)le cardinal minimal d’un ensemble dominant.
1. Montrer que trouver un ensemble dominant de cardinal minimaldom(G)est NP-difficile.
SoitG = (V,E)un graphe non-orienté, complet, dont les arêtes sont pondérées par une fonction de poidswqui vérifie l’inégalité triangulaire :w(u,v)≤w(u,w) +w(w,v)pour tout triplet de sommets (u,v,w). Soit aussi un entierk≥1.
Pour toutS⊂Vet toutv∈V\S, on définitconnect(v,S)comme le poids minimal d’une arête reliant và un sommet deS:connect(v,S) =mins∈S{w(v,s)}. Le problème est de trouver unk-centre, c’est à dire un sous-ensembleSde cardinalket tel quecenter(S) =maxv∈V\S{connect(v,S)}soit minimal.
2. À quoi peut bien servir de déterminer unk-centre (donner un exemple d’application) ? 3. Montrer que trouver unk-centre est NP-difficile.
On va chercher une 2-approximation, i.e. un Sde cardinal ktel que center(S) ≤2·OPT, oùOPT = minS⊂V,|S|=k{center(S)}.
On ordonne les arêtes deEpar poids croissant : w(e1)≤ w(e2) ≤. . .≤ w(em), oùm=|E|. On pose Gi= (V,Ei)oùEi ={e1,e2, . . . ,ei}est l’ensemble desipremières arêtes.
4. Montrer que résoudre le problème duk-centre revient à trouver le plus petit indiceitel queGia un ensemble dominant de cardinal au plusk.
Une dernière définition : le carré d’un grapheG= (V,E), notéG(2)= (V,E(2)), contient les chemins de longueur au plus deux : (u,v) ∈ E(2) si (u,v) ∈ E ou s’il existe w ∈ V tel que (u,w) ∈ E et (w,v)∈ E.
5. Étant donné un graphe H, soit I un ensemble indépendant du graphe carré H(2). Montrer que
|I| ≤dom(H). 6.
L’algorithme d’approximation duk-centre est le suivant : (a) Montrer quew(ej)≤OPT.
(b) Montrer que l’algorithme est bien une 2-approximation.
7. Montrer que la borne 2 est stricte : donner un exemple de graphe où l’algorithme réalise effecti- vement une 2-approximation.
8. Montrer que siP6= NP, il n’existe pas de(2−ε)-approximation au problème duk-centre, pour toutε>0.
1
début
ConstruireG(2)1 ,G2(2), . . . ,G(2)m ;
Trouver de manière gloutonne un ensemble indépendant inextensible (auquel on ne peut pas rajouter des sommets)Mi dans chaque grapheGi(2);
Trouver le plus petit indiceitel que|Mi| ≤k, soitjcet indice;
retourner Mj; fin
2