• Aucun résultat trouvé

Construction d’un algorithme d’approximation pour DST

Dans le document Approximation de l'arborescence de Steiner (Page 128-131)

DST

Cette section décrit une technique pour construire des algorithmes d’approximation pour DST à l’aide de DSTLD.

Soit I = (G = (V, A), r, X, ω) une instance de DST et Id= (G, r, X, ω, d) une instance de DSTLD. On peut remarquer que I. = I.

d et que I = Ik−1. On va démontrer que construire une solution optimale de Id permet d’approcher les solutions optimales de I avec un rapport k−1

d , en conséquence de quoi il est possible de construire une approximation pour le problème de Steiner. Puisque DSTLD est XP en d, c’est également le cas de cette approximation.

Il a été démontré dans la preuve du théorème 2.1.2, en page 16 du chapitre 2, que, pour DST, toute solution optimale de I. a le même poids qu’une solution optimale de I = Ik−1. Ainsi, notre propriété est vérifiée pour d = k − 1.

Nous cherchons ici à réduire artificiellement le nombre de nœuds diffusants autorisés pour trouver une solution approchée de l’instance I de DST. Plus on réduit d, plus le temps

de calcul est court, mais en contre partie, le rapport d’approximation devient moins bon. Par cette technique il est possible de garantir n’importe quel rapport d’approximation pour le problème de Steiner, y compris un rapport qu’une approximation polynomiale ne peut atteindre, à condition que notre choix pour d dépende des paramètres de l’instance que l’on souhaite résoudre. En effet, si on fixe d = k−1r(k), alors on dispose d’une dr(k)e-approximation pour DST.

S’il est préférable de conserver un temps polynomial sans pour autant restreindre d à des valeurs constantes, il est toujours possible de résoudre l’instance Id à l’aide d’un algorithme d’approximation polynomial. Si cet algorithme est de rapport r(d, k), alors la solution renvoyée est une k−1d  · r(d, k)-approximation pour le problème de Steiner. Nous y reviendrons dans une section ultérieure, dans laquelle nous étudions l’inapproximabilité de DSTLD.

Théorème 9.2.1. Soient T une solution optimale pour I et Td une solution optimale pour Id alors ω.(T

d)

ω(T∗) ≤k−1 d .

Démonstration. En partant de la solution optimale T, on va construire une solution réalisable Td de Id vérifiant ce rapport. Et puisque ω.(Td) ≤ ω.(Td), le théorème sera prouvé.

Pour tout arc (u, v) de T, un plus court chemin reliant u à v est l’arc (u, v) lui-même. En effet, dans le cas contraire, on pourrait remplacer l’arc (u, v) par un plus court chemin reliant u et v pour obtenir une arborescence de poids plus petit. Donc ω.(u, v) = ω(u, v). Sélectionnons pour chaque arc (u, v) de T l’arc (u, v) dans I.. L’arborescence obtenue a donc le même poids que T. On la note également T. On vérifie ω(T) = ω.(T).

Pour un nœud u de T, soit X(u) l’ensemble des terminaux contenus dans le sous-arbre de T enraciné en u. On cherche un nœud v de T tel que

- |X(v)| ≥ 1 +k−1d 

- pour tout fils w de v, |X(w)| ≤k−1d 

Si un tel nœud n’existe pas, on pose v = r, et on a alors nécessairement |X(r)| ≤k−1d . On remplace le sous-arbre enraciné en v par une étoile S(v) reliant v à tous les terminaux de X(v). Puisque chaque arc est pondéré par le poids d’un plus court chemin dans G, le poids de chaque arc (v, x) de cette étoile ne peut excéder celui du chemin reliant v à x dans T. Soit P (v, x) ce chemin. On vérifie alors

ω.(S(v)) ≤ X x∈X(v) ω.(P (v, x)) ω.(S(v)) ≤ X w, fils de v X x∈X(w) ω.(v, w) + ω.(P (w, x))

On rappelle que, par définition de v, pour tout fils w de v, |X(w)| ≤k−1d . De plus chaque chemin P (w, x) dans T est nécessairement de poids plus petit que l’union des chemins

S x∈X(w) P (w, x). ω.(S(v)) ≤ X w, fils de v  k − 1 d  · ω.((v, w) ∪ [ x∈X(w) P (w, x))

Soit T(v) le sous-arbre de T enraciné en v.

ω.(S(v)) ≤ k − 1 d



Le nombre de nœuds de branchement dans le sous-arbre enraciné en v est réduit à 1, et le poids de ce sous-arbre n’a pu être multiplié par plus de k−1d . On remplace temporairement cette nouvelle étoile par un terminal seul. On recommence jusqu’au moment où T est réduit à un seul terminal. On construit donc au plus d étoiles.

On va maintenant redéployer les terminaux en étoiles, dans l’ordre inverse de leur contrac-tion. Ceci nous donne un arbre Td de I.

d possédant pas plus de d nœuds de branchement, un par étoile, c’est donc une solution réalisable de Id. Puisque le poids de chaque étoile est au plus k−1d  fois celui des sous-arbres de T qu’elles remplacent, on a ω.(Td)

ω(T∗) ≤k−1

d . Donc Td vérifie la propriété désirée, prouvant le théorème.

Il n’y a pas de rapport d’approximation d2

d1 garanti entre les valeurs des solutions optimales de Id1 et Id2, comme le montre la figure 9.1. Ceci est dû au fait qu’il faut toujours partager les terminaux entre les nœuds que l’on choisit comme diffusants, et ce partage démultiplie le poids par un facteur qui dépend de k. Il n’est donc pas toujours possible de réduire le nombre de nœuds diffusants sans tenir compte du nombre de terminaux.

r u v 0 0 1 (1) 1 (1) k 2 k 2 ω.(T ) = 2 r u v 0 0 1 (1) 1 k 2  k 2 k 2 ω.(T ) = k2 + 1 r u v 0 0 1 k2 + 1 1 (1) k 2 k 2 ω.(T ) = k2 + 2

Figure 9.1 – Nous avons représenté une arborescence T avec 2 nœuds de branchement. Le poids des arcs (r, u) et (u, v) vaut 1, les autres arcs sont de poids nul. Cette arborescence constitue notre instance I. À gauche, on a représenté une solution réalisable de I = I2. Au centre et à droite, on a représenté deux solutions réalisables de l’instance I1. On a mentionné entre parenthèses la charge des arcs (c’est-à-dire le nombre de fois qu’il faut payer le poids de ces arcs). Une solution optimale pour I = I2 est le graphe tout entier. On pourrait penser en généralisant le théorème 9.2.1 qu’en retirant un nœud diffusant le poids de la solution optimale serait multiplié par 2. Cet exemple montre que, quel que soit le nœud diffusant choisi, alors le poids de la solution est multiplié par k4. Il est aisé de construire à partir de là un exemple pour tout paramètre d1 et d2.

Dans le chapitre 2, le lemme 2.2.4 en page 19 fait mention d’une technique similaire, consistant à contraindre la hauteur des solutions renvoyées. Chercher une solution de hauteur fixée égale à l et de poids optimal parmi les solutions de hauteur l permet de construire une O(k1l)-approximation pour le problème de Steiner non contraint. La restriction par les nœuds diffusants que nous faisons dans cette section est donc moins efficace que la restriction par la hauteur des solutions, au sens où il faut autoriser beaucoup de nœuds diffusants dans la solution là où il n’est nécessaire que d’autoriser une faible hauteur de solution réalisable pour obtenir une solution de qualité équivalente. Cependant, comme nous l’avons fait remarqué en page 19, il est NP-difficile de construire une arborescence profondeur au plus l de poids

minimum (parmi toutes les solutions de profondeur au plus l) si l ≥ 2 alors que restreindre le nombre de nœuds diffusant peut rendre le problème de Steiner polynomial puisque DSTLD est XP vis-à-vis du paramètre d.

Le résultat de cette section montre qu’en disposant d’un algorithme d’approximation de rapport r(d, k) pour DSTLD, on dispose d’un algorithme d’approximation de rapport

k−1

d  · r(d, k) pour DST. Dans la section suivante, nous démontrons un résultat d’inap-proximabilité pour DSTLD.

Dans le document Approximation de l'arborescence de Steiner (Page 128-131)