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 wiFigure 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).