• Aucun résultat trouvé

1 si Vi ∈ V 0 sinon ∀Gi6= G0,∀Gj, α(i)j = βi,j = 0 α(0)0 = 0.

Comme Vest un ensemble ind´ependant, il n’existe pas d’arˆete de E entre deux sommets de V, donc il n’existe pas de lien longue-distance distance partag´e par des connexions (Gi, Gj) tels que αj(i) = 1. Chaque lien longue-distance est utilis´e par au plus une connexion, et comme max-connect(l) = 1 pour tout lien, la contrainte (7.1d) est respect´ee. Il y a |V| 6 n connexions utilis´ees sortant de G0, et aucune entrante, donc comme b0 = n, la contrainte (7.1c) est respect´ee en G0. Pour les autres grappes, au plus une connexion entre dans chaque grappe, et bk = 1 donc la contrainte est ´egalement v´erifi´ee. Chaque grappe Gk utilis´ee doit calculer une unit´e de travail par unit´e de temps, et sk = 1, donc la contrainte (7.1a) est v´erifi´ee.

Ainsi (α, β) est une solution valide, de d´ebit|V| > B = K, donc I2 a une solution. – Supposons maintenant queI2 admette une solution (α, β). Comme G0a une puissance de

calcul nulle, son travail doit ˆetre d´el´egu´e aux autres grappes. Chaque autre grappe `a une puissance de calcul lui permettant de traiter une unit´e de travail par unit´e de temps, donc il existe au moins K = B grappes utilis´ees pour traiter des tˆaches de l’application A(0), donc au moins K connexions utilis´ees depuis G0. Comme max-connect(l) pour chaque lien longue-distance, deux routes utilis´ees ne peuvent partager un lien de communication. Donc pour tout couple de grappes utilis´ees Gi, Gj, les routes L0,i et L0,j ne partagent pas de lien longue-distance. D’apr`es le lemme ci-dessus, pour tout couple de sommets Vi, Vj

correspondants, le graphe G ne comporte par d’arˆete (Vi, Vj). L’ensemble de sommets V correspondant aux grappes utilis´ees est donc de taille au moins B, et ind´ependant. On

v´erifie donc que V est solution deI1. 

7.4 Heuristiques

Comme nous ne pouvons pas r´esoudre directement le probl`eme d’optimisation li´e au pro-gramme lin´eaire, nous proposons des heuristiques pour trouver des solutions approch´ees.

7.4.1 Strat´egie gloutonne par ´etapes (SGE)

La premi`ere strat´egie que nous proposons proc`ede par ´etapes, et alloue de nouvelles res-sources pour une des K applications `a chaque ´etape. Plus pr´ecis´ement, `a chaque ´etape une

application A(k) est d’abord choisie, puis on choisit une grappe Gl, et enfin une quantit´e de tra-vail de l’application A(k)`a traiter sur la grappe Gl. Ces trois choix s’appuyent sur les intuitions suivantes :

– `A un instant donn´e, on doit choisir l’application qui poss`ede le plus petit d´ebit pond´er´e, c’est `a dire l’application A(k) qui r´ealise le minimum minkn

α(k) w(k)

o

. Cependant, lorsqu’on n’a encore allou´e aucune ressource, tous les d´ebits sont nuls. On choisit alors l’application de priorit´e maximale.

– Une fois l’application choisie, on compare l’int´erˆet d’effectuer du travail pour cette appli-cation localement, ou sur une autre grappe. On choisit la grappe (locale ou distante) la plus int´eressante.

– Pour allouer une certaine quantit´e de travail, on prend garde de ne pas mobiliser toutes les ressources de calcul de la grappe choisie, afin de garder des ressources disponibles pour les autres applications.

Comme pr´ec´edemment, on note bk,l la bande-passante disponible pour une connexion sur la route entre Gk et Gl :

gk,l= min

λ∈Lk,l

bw(λ) Cette heuristique est d´ecrite par l’algorithme suivant :

1. On note L ={A(1), . . . , A(K)}. On initialise α(k)l = 0 et βk,l = 0. 2. Si L =∅, terminer.

3. Choix de l’application – On choisit l’application de L qui a le rapport αk/w(k)minimal. En cas d’´egalit´e, on choisit l’application avec la plus grande priorit´e w(k). On note A(k) cette application.

4. Choix de la grappe cible – Pour toute grappe Gm 6= Gk, telle que pour tout lien longue-distance λ∈ Lk,m max-connect(λ) > 0, on calcule le travail qui peut ˆetre effectu´e pour A(k) sur Gm en utilisant une seule connexion :

gainm = min  bk size(k), bk,m size(k), bm size(k), sm flops(k) 

Pour les autres grappes distantes Gm vers lesquelles on ne peut plus ouvrir de connexion, on pose gainm= 0.

Pour la grappe locale, on pose gaink = sk

flops(k). On choisit Gl tel que gainl= max

m {gainm}

Si gainl = 0 (ce n’est plus possible d’ajouter du travail pour l’application A(k)), alors on supprime A(k) de l’ensemble L, et on retourne `a l’´etape 2.

5. Choix de la quantit´e de travail– Si k6= l (calcul distant) alors on pose alloc ← gainl. Sinon, on choisit alloc← max m6=k  min  bm size(m), bm,k size(m), bk size(m), sk flops(m) 

Ceci signifie que l’on n’attribue `a l’application locale pas plus de travail que ce que l’on aurait attribu´e `a une autre application s’effectuant sur A(k), pour ´eviter de surcharger la grappe Gk dans les premi`eres ´etapes de l’algorithme.

6. Mise `a jour des variables

– On diminue la puissance de calcul de Gl : sl ← sl− alloc × flops(k)

– On alloue le travail de A(k) : α(k)l ← α(k)l + alloc

– S’il s’agit d’un calcul distant (k 6= l), on prend en compte la connexion utilis´ee, et on met `a jour les caract´eristiques du r´eseau :

βk,l ← βk,l+ 1

∀λ ∈ Lk,l, max-connect(λ)← max-connect(λ) − 1 bk← bk− alloc × size(k)

bl← bl− alloc × size(k) Puis on recommence depuis l’´etape 2.

7.4.2 Strat´egies fond´ee sur le programme lin´eaire en rationnels

Le programme lin´eaire7.1avec des variables enti`eres et d’autres rationnelles d´efinit le d´ebit optimal. Si on consid`ere que toutes les variables sont des nombres rationnels, alors la valeur objective du programme lin´eaire d´efinit une borne sup´erieure sur le d´ebit, qui n’est pas n´eces-sairement atteignable. En revanche, il est ais´e de calculer cette borne sup´erieure, en utilisant une m´ethode de r´esolution classique. Nous proposons ici plusieurs heuristiques qui utilisent cette solution rationnelle du programme lin´eaire, et essayent de reconstruire une solution `a valeurs βk,l enti`eres.

Arrondi `a l’entier inf´erieur (PLA)

La m´ethode la plus simple consiste `a arrondir chaque valeur de βk,l dans la solution enti`ere `

a l’entier imm´ediatement inf´erieur. Formellement, en notant eα(k)l et eβk,l une solution rationnelle du programme lin´eaire, on construit la solution :

∀k, l βk,l =j e βk,l k , ∀k, l α(k)l = min  e α(k)l ,j e βk,l k × min λ∈Lk,l bw(λ) 

Comme eα(k)l 6 α(k)l , eβk,l 6 βk,l et α(k)l 6 βk,l × minλ∈Lk,lbw(λ), cette solution est valide. Nous nommons cette solution PLA, pour Progamme Lin´eaire Arrondi.

Arrondi et utilisation des capacit´es r´esiduelles (PLA+SGE)

Arrondir les valeurs des β rationnels `a l’entier inf´erieur conduit naturellement `a laisser des ressources de calcul et de communications inutilis´ees. Pour mettre `a profit les ressources r´esiduelles, nous appliquons alors l’heuristique SGE pr´ec´edemment d´evelopp´ee.

Arrondi randomis´e fond´e sur le programme lin´eaire (ARPL)

De nombreuses m´ethodes ont ´et´e propos´ees pour r´esoudre un probl`eme s’exprimant sous la forme d’un programme lin´eaire mixte, en utilisant une relaxation en rationnels. Parmi elles, on note l’utilisation d’une approximation randomis´ee. Cette approche est ´etudi´ee dans [62, chapter 11] par Motwani, Naor et Raghavan pour r´esoudre un probl`eme proche du notre, le probl`eme✓multicommodity flow✔, consistant `a router plusieurs flots concurrents dans un r´eseau de capacit´e limit´e. En utilisant les bornes de Chernoff, ils montrent que leur algorithme conduit, avec forte probabilit´e, `a une solution de d´ebit optimal. Ce r´esultat est plutˆot de nature th´eorique : l’algorithme fournit soit une solution valide approchant (ou r´ealisant) le d´ebit optimal, soit une solution de d´ebit optimal, mais non valide. Dans ce cas, il faut alors modifier la solution pour la rendre valide.

Nous pr´ef´erons adapter une m´ethode d’arrondi plus pratique qui en est inspir´ee, propos´ee par Coudert et Rivano dans [44] et utilis´ee pour l’affectation de fr´equences dans les r´eseaux optiques. Nous nous inspirons de cette approche pour ´elaborer une heuristique d’arrondi ran-domis´e, d´ecrite ci-dessous.

1. R´esoudre le programme lin´eaire7.1en rationnels. On appelle (eα, eβ) la solution obtenue. 2. Choisir al´eatoirement une route (Gk, Gl) telle que eβk,l> 0 avec probabilit´e uniforme. 3. Choisir al´eatoirement Xk,l ∈ {0, 1} avec une probabilit´e

P [Xk,l= 1] = eβk,ljβek,lk

4. Calculer la valeur v =j e βk,lk

+Xk,l et ajouter la contrainte βk,l = v au programme lin´eaire. 5. S’il existe une route (Gk, Gl) `a laquelle on n’a pas encore assign´ee de valeur βk,l,

recom-mencer depuis l’´etape 1. `

A une ´etape quelconque de l’algorithme, nous choisissons d’arrondir un eβk,l `a la valeur enti`ere inf´erieure ou sup´erieure. Si nous choisissons d’arrondir `a la valeur sup´erieure, c’est que la probabilit´e P [Xk,l = 1] est non nulle, c’est-`a-dire que eβk,l > j

e βk,lk

. Les contraintes qui imposent une borne sup´erieure sur les βk,l sont les contraintes (7.1d) du programme lin´eaire, et elle ne font intervenir que des entiers. Donc si eβk,l > j

e βk,l

k

est une solution valide, alors il existe une solution valide avec eβk,l =j

e βk,l

k

+ 1. Si au contraire, nous arrondissons `a la valeur enti`ere inf´erieure, le choix conduit n´ecessairement `a une solution valide. Une fois que toutes les variables βk,l ont ´et´e contraintes `a des valeurs enti`eres, on r´esout le programme lin´eaire pour trouver des valeurs de α. Donc l’allocation (α, β) construite par cette heuristique est valide.

On peut remarquer que cette heuristique n´ecessite de r´esoudre K2 programmes lin´eaires, ce qui la rend plus coˆuteuse en calculs que les autres heuristiques utilisant le programme lin´eaire. Nous ´etudierons dans la partie suivante le temps de calcul de ces heuristiques.