• Aucun résultat trouvé

3.3 Algorithmes d’approximation

3.3.1 Analyse de l’algorithme glouton pour la version pondérée

Présentation de l’algorithme glouton

Un algorithme glouton pour résoudre le problème Weighted Sparsest k-Compaction est de supprimer des arêtes jusqu’à ce que le nombre de composantes connexes (qui représenteront les différentes parties de la partition) atteigne k. Étant donné que le coût d’une solution dépend du poids de ces arêtes retirées, il est naturel de les traiter par ordre de poids croissant. Il est facile de voir qu’un tel algorithme, formellement présenté par l’Algorithme 2, s’exécute en temps polynomial, plus précisément en temps O(|E| log |E|).

trier E dans l’ordre croissant des poids. j← 1

pour i = 1 à k − 1 faire

tant que G a i composantes connexes faire G← G\{ej}

j← j + 1

fin tant que //soit wi le poids de la dernière arête retirée.

fin pour

retourner les composantes connexes de G.

Algorithme 2 Un algorithme glouton pour Weighted Sparsest k-Compaction

Analyse de l’algorithme

Notations. Soient G = (V, E) et k ≤ |V | une instance de notre problème. Posons θ = max{w(ew(e)′) : e, e

∈ E, e )= e′, w(e)

i A1 t i A2 t i

A

t i− 1 i A1 iAi i At−1 i At+1 wi

Figure 12: Les pointillés représentent les arêtes de poids maximum entre iA t et

les autres clusters, déjà présents dans CA. Les traits pleins représentent les au plus

(i− 1) nouvelles arêtes (arêtes ajoutées) CA après la séparation deiAt

e, e′

∈ E tels que w(e) ≤ w(e′), on a en fait w(e)

≤ θw(e′). À une solution S =

{S1, · · · , Sk} du problème, on associe l’ensemble CS = {c1, · · · , cps} des arêtes de

poids maximum entre chaque paire de clusters, avec ps ≤

"k

2#. Ainsi, le coût de la

solution S est défini par cost(S) ='ps

i=1w(ci).

Soit A = {A1, · · · , Ak} la solution retournée par l’algorithme, et {iAa, · · · ,iAi}

la solution partielle au début de l’étape i de l’algorithme. La boucle « tant que » consiste à séparer un cluster iA

t pour un certain t ∈ {1, · · · , i} entre deux clusters iA1

t et iA2t. Ainsi, en séparant ce cluster, on ajoute à CA plusieurs arêtes : tout

d’abord l’arête que l’on vient de retirer, celle de poids maximum entre iA1

t et iA2t,

mais aussi au plus (i − 1) arêtes (que l’on appellera arêtes supplémentaires) entre

iA1

t ou iA2t et les autres clusters (c.f. Figure 12. Toutes ces arêtes ajoutent donc à

la valeur de la solution le terme wi (coût de l’arête de poids maximum entreiA1t et iA2

t), et (i − 1) termes (α j

i)j=1,··· ,(i−1) : pour j ∈ {1, · · · , (i − 1)}, si l’arête de poids

maximum entre iA

t et iAj avait son extrémité dans iA1t (resp. dans iA2t), alors α j i

est égal à l’arête de poids maximum entre iA

t et iA1t (resp. dans iA2t), ou à 0 si les

deux clusters n’étaient en fait pas adjacents. Par définition, on a : cost(A) = k−1 % i=1 (wi+ i−1 % j=1 αji) (3.1)

Préliminaires. Afin de prouver le résultat d’approximation (Théorème 19), cer- taines propriétés sont d’abord nécessaires. Tout d’abord, étant donné que les arêtes sont retirées dans un ordre croissant des poids, il est clair que w1≤ w2≤ · · · ≤ wk−1.

3.3. ALGORITHMES D’APPROXIMATION 77

Lemme 1. Considérons le début de l’étape i, ainsi que la partition correspondante {iA

1, · · · ,iAi}. Pour tout t ∈ {1, · · · , i}, il est possible de majorer supérieurement la

somme des poids des arêtes les plus lourdes sortant de iA

t de la manière suivante : i % j=1 j'=t w(et,j) ≤ i−1 % j=1 wj,

où et,j représente l’arête de poids maximum entre iAt et iAj.

Preuve. La preuve est par récurrence sur i. On peut facilement vérifier que le théo- rème est vrai pour les premières étapes : pour i = 1 le résultat est trivial car il n’y a qu’un seul cluster, et pour i = 2 il n’y a qu’une arête de poids maximum entre les deux clusters. Considérons donc le début de l’étape i+1 : lors de l’étape d’avant,iA

ta

été séparé eniA1

t etiA2t, ajoutant ainsi wi au coût de la solution. Pour j0 )= t, remar-

quons que l’arête ej0,t (l’arête entre

iA j0 et

iA

t avant la séparation) est maintenant

remplacée par deux arêtes ej0,t1et ej0,t2, avec max(w(ej0,t1), w(ej0,t2)) = w(ej0,t). Sans

perdre de généralité, supposons que max(w(ej0,t1), w(ej0,t2)) = w(ej0,t) = w(ej0,t1) et

notons iS

j0 la somme de toutes les arêtes de poids maximum entre

iA

j0 et tous les

autres clusters (y comprisiA1

t etiA2t). Nous obtenons : iS j0 = i % j=1 j'=j0,j'=t w(ej0,j) + w(ej0,t1) * +( ) w(ej0,t) + w(ej0,t2) * +( ) ≤wi ≤ i−1 % j=1

wj+ wi en utilisant l’hypothèse de récurrence.

Les mêmes arguments s’appliquent pouriA1

t etiA2t, ce qui termine la preuve.

Corollaire 6. Considérons le début de l’étape i, et la partition correspondante {iA

j, · · · ,iAi}. Lors de la séparation de iAt, le poids total des arêtes supplémen-

taires est majoré de la manière suivante : 'i−1 j=1α

j i ≤ θ

'i−1 j=1wj.

Preuve. En ré-utilisant la notation ej,t du Lemme 1, soit ˜ej,t (avec j )= t) l’arête

supplémentaire entre iA

j et iAt. Par exemple, si ej,t était en fait une arête entre iA

j et iA1t, alors ej,t désigne l’arête entre iAj et iA2t. Par définition de θ, on a

w(˜ej,t) ≤ θw(ej,t) et donc 'i−1 j=1α j i = 'i j=1,j'=tw(˜ej,t) ≤ θ 'i−1 j=1wj (c.f. Lemme 1).

Le dernier argument nécessaire à la preuve du Théorème 19 est une borne infé- rieure de la valeur de toute solution optimale :

Lemme 2. Soit i < |V |, et S une (i + 1)-partition de V , avec CS = {c1, · · · , cps}.

On a toujours 'ps

j=1w(cj)≥

'i j=1wj.

Preuve. La preuve est par récurrence sur i. Le résultat est vrai pour i = 1, car l’algo- rithme donne clairement une 2-partition optimale. Supposons maintenant une (i+1)- partition S pour un i ≥ 2, avec CS = {c1, · · · , cps}. Posons wM = maxj=1,··· ,psw(cj),

et soit (Si1, Si2) deux ensembles de S contenant chacun une extrémité d’une arête

de poids wM. En considérant la i-partition obtenue en fusionnant Si1 et Si2, et en

utilisant l’hypothèse de récurrence, on a 'ps

j=1w(cj)− wM ≥

'i−1

j=1wj. Enfin, par

construction, toute (i + 1)-partition génère forcément une arête de poids au moins wi, puisque par définition de l’algorithme après la suppression de toutes les arêtes

de poids strictement inférieurs à wi, nous n’obtenons pas de (i + 1)-partition. Nous

obtenons ainsi wM ≥ wi, ce qui termine la preuve.

Preuve du ratio d’approximation et discussion. Nous sommes maintenant prêts à montrer le résultat suivant :

Théorème 19. L’algorithme 2 est une (1 + (k

2− 1)θ)-approximation pour Weigh-

ted Sparsest k-Compaction.

Preuve. En utilisant le Lemme 2 avec une solution optimale, il est suffisant de mon- trer l’inégalité suivante :

cost(A)≤ (1 + (k2 − 1)θ)

k−1

%

i=1

wi (3.2)

Montrons-la par récurrence sur k. Ici également l’inégalité est clairement vraie pour k = 2. Supposons qu’elle soit vraie pour tout k = 1, · · · , t, et montrons la pour k = t + 1. Par l’équation 3.1 et l’hypothèse de récurrence, on a :

cost(A) ≤ (1 + (2t − 1)θ) t−1 % i=1 wi+ wt+ t−1 % j=1 αjt = (1 + (t 2 − 1)θ) t−1 % i=1 wi+ wt+ 1 2 t−1 % j=1 αjt +1 2 t−1 % j=1 αjt ≤ (1 + (2t − 1)θ) t−1 % i=1 wi+ wt+ 1 2θ t−1 % j=1 wj+ 1 2 t−1 % j=1 αjt en utilisant le Corollaire 6 ≤ (1 + (2t − 1)θ) t−1 % i=1 wi+ wt+ 1 2θ t−1 % j=1 wj+ 1 2(t− 1)θwt car α j t ≤ θwt ≤ (1 + (t + 12 − 1)θ) t−1 % i=1 wi+ wt+ ( t + 1 2 − 1)θwt ≤ (1 + (t + 12 − 1)θ) t % i=1 wi

3.3. ALGORITHMES D’APPROXIMATION 79

Ce qui termine la preuve.

En observant le ratio d’approximation ainsi obtenu, on peut remarquer que les solutions deviennent meilleures lorsque θ tend vers 0, ce qui arrive lorsque l’écart de poids entre toute paire d’arêtes devient grand. Ceci n’est pas très surprenant, étant donné que l’algorithme ne se base que sur les poids des arêtes, et non pas sur la struc- ture du graphe. Remarquons tout de même qu’il est possible d’adapter la réduction du Théorème 17 afin de montrer que Weighted Sparsest k-Compaction reste N P-difficile dans le cas où tous les poids sont différents (en donnant par exemple à l’arête i un poids de 1 + ǫi pour un certain ǫ > 0).

En fait, on peut remarquer que le facteur k

2 du ratio d’approximation provient prin-

cipalement du nombre d’arêtes de la solution. En effet, dans le pire des cas (où chaque arête a un poids de 1), la solution de l’algorithme peut former une clique de taille k entre tous les clusters, alors qu’une solution optimale est un arbre, donnant un ratio de "k

2

#

/(k− 1) = k

2. Nous nous servons de cette idée pour montrer que le

ratio montré précédemment est atteint :

Proposition 1. Le ratio d’approximation de l’Algorithme 2 est atteint.

Preuve. L’instance consiste en un split graphe G = (C ∪ S, E), où C = {c1, · · · , ck}

induit une clique et où S = {s1, · · · , sk} induit un ensemble indépendant. La

construction est résumée Figure 13. Nous définissons trois catégories d’arêtes : • X = {{ci, sj} tels que i )= j ou j = 1}

• Y = {{ci, cj} tels que i )= j}

• Z = {{ci, sj} tels que i = j et j )= 1}

Les poids sont définis comme suit : pour tout e ∈ Z, on pose w(e) = 1 ; pour tout e∈ Y , on pose w(e) = 1 + ǫ, et pour tout e ∈ X, on pose w(e) = 1 + 2ǫ, avec ǫ > 0. Il est clair que l’algorithme va commencer par supprimer les arêtes de X, puis celles de Y . À ce moment, une (k + 1)-partition est créée, et son coût est d’au moins

k(k+1) 2 .

Puis, considérons la (k + 1)-partition {V1, · · · , Vk, Vk+1} suivante : pour tout j ∈

{1, · · · , k}, Vj = {sj}, et Vk+1= C. Le coût de cette partition est de k + 2ǫ(k− 1).

Soient A et OPT les coûts respectifs de la solution donnée par l’algorithme et d’une solution optimale pour cette instance. Par ce qui précède, on a A ≥ k(k+1)

2 et

OPT ≤ k + 2ǫ(k − 1). Lorsque ǫ −→ 0, nous avons d’une part θ −→ 1, et A OPT ≥ k(k + 1) 2k + 4ǫ(k− 1) −→ k + 1 2

ce qui prouve le résultat (rappelons que nous sommes dans le cas d’une (k + 1)- partition).

s 1 si sk c 1 ci ck s 1 si sk c 1 ci ck s 1 si sk c 1 ci ck (a) (b) (c) 1 1 + ǫ 1 + 2ǫ

Figure 13: (a) : Exemple d’une instance où le ratio est atteint. Les arêtes de X sont représentées par des tirets, celles de Y par des traits pleins, et celles de Z par des traits en gras. (b) : solution donnée par l’Algorithme 2. (c) : une solution de coût k + 2ǫ(k − 1).