• Aucun résultat trouvé

Analyse de l’algorithme glouton dans les graphes d’intervalles

4.6 Dans les graphes d’intervalles

4.6.3 Analyse de l’algorithme glouton dans les graphes d’intervalles

Introduction et définition de l’algorithme

Dans cette sous-section, nous analysons l’algorithme glouton présenté en introduc- tion de la section 4.3, où un algorithme approché a été présenté dans les graphes chordaux. Nous montrons que cet algorithme glouton donne, dans les graphes d’in- tervalles propres, une solution 2-approchée. Ainsi, l’intérêt du résultat qui suit n’est pas d’obtenir un algorithme d’approximation pour le cas des graphes d’intervalles propres, puisque l’algorithme précédent donne des solutions 2-approchées dans une classe de graphes plus générale. Son intérêt est simplement d’étudier ses perfor- mances, en remarquant que pour les graphes d’intervalles propres, il peut être ar- bitrairement mauvais (c.f. Figure 20), alors qu’il donne une solution 2-approchée pour les graphes d’intervalles propres. Il est également intéressant de noter que cet algorithme est plus simple que celui présenté dans le cas des graphes chordaux.

L’algorithme consiste à prendre successivement des ensembles indépendants maxi- maux du graphe, jusqu’à atteindre k sommets. Étant donné que la recherche d’un ensemble indépendant dans un graphe d’intervalles propres se fait en temps poly- nomial, l’algorithme ainsi obtenu est bien polynomial. La description formelle ainsi que les notations qui y sont liées sont décrites dans l’Algorithme 4.

S← ∅, i ← 0

tant que |S| ≤ k faire i← i + 1, Li← ∅

tant que (|S| + |Li| ≤ k) et (Li n’est pas un ensemble indépendant maximum)

faire

Ajouter à Lile premier intervalle de I qui n’intersecte aucun intervalle de Li

fin tant que

S ← S ∪ Li, I ← I \ Li

fin tant que retourner S

Algorithme 4 Algorithme glouton pour Sparsest k-Subgraph dans les graphes d’intervalles propres.

Pour la suite de l’analyse, nous introduisons la définition suivante :

Définition 35. Soit S ⊆ I une solution de Sparsest k-Subgraph dans les graphes d’intervalles propres. Une décomposition couche par couche de S est une partition (L1, · · · , Lc) de S telle que :

• L1 est un ensemble indépendant maximum du graphe induit par S (mais pas

• Pour tout l = 2, · · · , c, Ll est défini récursivement comme un ensemble indé-

pendant maximum (non vide) du sous-graphe induit par S \ l−1 i=1Li.

De plus, pour tout i ∈ {1, · · · , c}, on note xi= |Li|.

Il est facile de voir que les ensembles Li créés dans l’Algorithme 4 est une dé-

composition couche par couche de la solution créée S. En effet à chaque étape Li

est même un ensemble indépendant maximum de I \ i−1

l=1Ll. Cette propriété nous

assure que lorsque le coût optimal du graphe d’entrée est 0, l’algorithme retourne bien une solution optimale.

L’analyse

La preuve repose principalement sur le lemme suivant :

Lemme 26. Soit S une solution quelconque à Sparsest k-Subgraph dans les graphes d’intervalles propres, et soit (L1, · · · , Lc) une décomposition de S couche

par couche. Le coût de la solution vérifie :

c % l=2 (l− 1)xl≤ cost(S) ≤ 2 c % l=2 (l− 1)xl

Preuve. Soit l ∈ {2, · · · , c} et Ij ∈ Ll. Comptons le nombre d’intersections entre Ij

et les intervalles des couches précédentes : soit l′ < l. L’argument principal est que le

nombre d’intersections entre Ij et les intervalles de Ll′ est soit un soit deux. En effet,

il y a au moins un intervalle Ij′ ∈ Ll′ tel que Ij′ et Ij s’intersectent, car autrement Ll′

ne serait pas un ensemble indépendant maximum. De plus, si Ij intersecte trois (ou

plus) intervalles de Ll′, alors l’un de ces intervalles serait inclu proprement dans Ij, ce

qui est impossible puisque nous sommes dans le cas des graphes d’intervalles propres. Pour tout l, l′

∈ {1, · · · c}, on définit cost(l′, l) comme le nombre d’intersections entre

les intervalles de Ll′ et les intervalles de Ll. Ainsi, on a xl ≤ cost(l′, l) ≤ 2xl. En

sommant sur toutes les couches, on a cost(S) = c % l=2 l−1 % l′=1 cost(l′, l)≤ 2 c % l=2 (l− 1)xl

La borne inférieure est obtenue de la même manière, en utilisant la même somma- tion.

Pour la suite de l’analyse, on considère S∗ une solution optimale au problème,

et (L∗

1, · · · , L∗c∗) une décomposition couche par couche de S∗. De plus, pour tout

i∈ {1, · · · , c}, on note |L∗ i| = x∗i.

4.6. DANS LES GRAPHES D’INTERVALLES 155

Étant donné le lemme précédent, si S∗ désigne une solution optimale au problème,

et S la solution de l’algorithme, on a cost(S∗) ≥ c∗ % l=2 (l− 1)x∗ l et cost(S)≤ 2 c % l=2 (l− 1)xl

Ainsi, afin d’obtenir un rapport d’approximation de deux, il nous suffit de montrer que c % l=2 (l− 1)xl≤ c∗ % l=2 (l− 1)xl

Ceci est prouvé en combinant les deux lemmes suivants 27 et 28. Informellement, cette inégalité est vraie car l’Algorithme 4 maximise les premiers xl (qui a un petit

cœfficient), étant donné que chaque couche est un ensemble indépendant maximum dans le graphe restant.

Lemme 27. Pour tout l ∈ {1, · · · , min{c, c∗}}, on a 'l i=1xi≥

'c∗

i=1x∗i.

Preuve. Soit c = min{c, c∗}. Soit l ∈ {1, · · · , c}, on définit F

l(S) = 'li=1xi, et

F (S) = (F1(S), · · · , Fc(S)). Le but est de re-structurer S∗ en plusieurs étapes (et

couche par couche), définissant ainsi une suite de solutions intermédiaires S∗

1, · · · , St∗

pour un certain t ∈ N, avec S∗

1 = S∗, St∗= S, et pour tout j ∈ {2, · · · , t}, |Sj∗| = k

, et F (S∗

j−1)≤ F (Sj∗) (où ≤ est l’ordre produit usuel sur Nc).

On décrit maintenant la manière de transformer S∗

i en Si+1∗ . Soit (L∗1, · · · , L∗c′) la

décomposition couche par couche de S∗

i, et supposons que les (x − 1) premières

couches sont égales aux (x − 1) premières couches de S∗. Autrement dit, x ≥ 1 est

la plus petite valeur telle que L∗

x )= Lx, et L∗l = Ll ∀l ∈ {1, · · · , x − 1}. On pose

Lx = {i1, · · · , ia}, et L∗x = {i∗1, · · · , i∗b}. Notons tout d’abord que b ≤ a, puisque

par construction Lx est un ensemble indépendant maximum du graphe induit par

I \ x−1i=1 Li.

On distingue maintenant deux cas : • Supposons d’abord que L∗

x ⊆ Lx, impliquant que L∗x n’est pas la dernière

couche. Dans ce cas là on définit S∗

i+1 en ajoutant un intervalle I ∈ Lx\ L∗x à

L∗

x (on rappelle que I n’appartient pas à L∗l quel que soit l > x, étant donné

que L∗

x est maximum), et en supprimant un intervalle quelconque de L∗l, pour

un l > x. Cette transformation nous assure que F (S∗

i+1)≥ F (Si∗).

• Dans le second cas, soit j ≤ b la valeur minimum telle que i∗

j )= ij, et i∗l = il

pour tout l ∈ {1, · · · , j}. Autrement dit, j est le plus petit indice tel que les intervalles diffèrent entre L∗

l’intervalle ij est à gauche de i∗j), étant donné que l’algorithme crée Lx en

choisissant ij comme le premier intervalle non adjacent à ceux précédemment

choisis. Deux sous-cas sont alors possibles :

– Si ij n’est pas utilisé dans Si∗(c’est-à-dire ij ∈/ c

l=x+1L∗l), alors on ajoute

ij à L∗x, et on supprime i∗j de L∗x. Avec cette re-structuration, L∗x est

toujours un ensemble indépendant, puisque ij < i∗j.

– Enfin, on considère le cas où ij ∈ Si∗. Plus précisément il existe y > x

tel que ij ∈ L∗y (c.f. Figure 26). Posons alors L∗y = {i′1, · · · , i′a′}, et soit

p tel que i′

p = ij. On effectue alors les re-structurations suivantes entre

L∗

x et L∗y. Tout d’abord, on ajoute ij (= i′p) à L∗x. Comme L∗x est en

particulier maximal, il y a forcément une arête entre ij et i∗j. On peut

ainsi supprimer i∗

j de L∗x, et l’ajouter à L∗y. S’il n’y a pas d’arête entre i∗j

et i′

p+1, alors la re-structuration est finie (et la construction de Si+1∗ est

terminée). Autrement, on continue les échanges tant que le dernier in- tervalle échangé n’intersecte pas un autre intervalle, ou tant que l’une des couches est vide. Plus précisément, soit a ≥ 0 le plus grand in- dice tel que (i′

p, i∗j), (i∗j, i′p+1), (i′p+1, i∗j+1), · · · , (i∗j+a, i′p+a+1) sont dans E.

On supprime d’abord {i′

p, · · · , i′p+a+1} de L∗y, et on les ajoute dans L∗x.

Puis, on supprime {i∗

j, · · · , i∗j+a} de L∗x, et on les ajoute à L∗y. Enfin, si

(i′

p+a+1, i∗j+a+1) ∈ E, on supprime également i∗j+a+1 de L∗x, et on l’ajoute

à L∗

y. Remarquons qu’après tous ces échanges, soit les cardinalités de L∗x

et L∗

y n’ont pas bougé, soit L∗x a un intervalle en plus et L∗y un intervalle

en moins. Dans les deux cas, on a F (S∗

i+1) ≥ F (Si∗), ce qui termine la

démonstration. L∗ x L∗ y ij ij+1 ij+a ij+a+1 i′ j+a+1 i′ j+a i′ j+1 i′ j

Figure26: Exemple de re-structurations de Si∗ à Si+1∗ .

Lemme 28. Étant donnés c ≤ c∗, (x

1, · · · , xc), (x∗1, · · · , x∗c∗), et (a1, · · · , ac∗) tels que : • 'ci=1xi='c ∗ i=1x∗i • ∀l ∈ {1, . . . , c},'li=1xl≥ 'l i=1x ∗ l

4.6. DANS LES GRAPHES D’INTERVALLES 157 • ai ≤ ai+1 On a 'c l=1alxl≤ 'c∗ l=1alx ∗ l.

Preuve. La preuve est par induction sur c.

Le cas c = 1 est trivial. Supposons maintenant que le lemme est vrai pour tout c≤ c

≤ n − 1, et considérons le cas c ≤ c∗

≤ n. Il est clair d’après les hypothèses que x1 ≥ x∗1. Soit ∆ ≥ 0 tel que x1 = x∗1 + ∆. On ré-équilibre les cœfficients en

définissant x′∗

1 = x∗1+ ∆, x′∗2 = x∗2− ∆ (on peut alors avoir x′∗2 ≤ 0), et x′∗l = x∗l pour

l≥ 3. On obtient alors 'c l=1alxl = a1x1 + 'c l=2alxl = a1x′∗1 + 'c l=2alxl (puisque par définition x′∗ 1 = x1). Par récurrence, on a 'cl=2alxl ≤ 'c ∗ l=2alx′∗l . Enfin, puisque 'c∗ l=1alx′∗l ≤ 'c∗ l=1alx∗l, le résultat suit.

Nous avons maintenant toutes les briques nécessaires pour prouver le résultat : Théorème 38. L’Algorithme 4 est un algorithme 2-approché pour Sparsest k- Subgraph dans les graphes d’intervalles propres. De plus, cette borne est atteinte. Preuve. Soit S la solution retournée par l’algorithme, et S∗ une solution optimale

au problème. Comme précédemment (x1, · · · , xc) et (x∗1, · · · , x∗c∗) désignent les car-

dinalités de chaque couche de S et S∗respectivement. D’après les Lemmes 26, 27 et

28, on a : cost(S)≤ 2 c % l=2 (l− 1)xl≤ 2 c∗ % l=2 (l− 1)x∗l ≤ 2cost(S∗)

Ce qui prouve le rapport d’approximation.

Enfin, la Figure 27 montre un ensemble de sept intervalles propres, pour laquelle, avec k = 5, l’Algorithme 4 donne une solution de coût quatre, alors qu’une solution de coût deux existe.

Figure27: Instance qui atteint le rapport d’approximation de deux. Les intervalles de l’instance sont dessinés avec des traits continus. La solution de l’algorithme est représentée par des pointillés, et une solution optimale est représentée par des traits gras.

4.6.4

PT AS par programmation dynamique dans les inter-