• Aucun résultat trouvé

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

applicationA(k) est d’abord choisie, puis on choisit une grappeGl, et enfin une quantit´e de tra-vail de l’applicationA(k) `a traiter sur la grappeGl. 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 notebk,l la bande-passante disponible pour une connexion sur la route entreGk etGl :

gk,l= min

λ∈Lk,l

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

1. On noteL={A(1), . . . , A(K)}. On initialise α(k)l = 0 etβk,l = 0.

2. SiL=∅, terminer.

3. Choix de l’application– On choisit l’application deLqui 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) surGm en utilisant une seule connexion :

gainm = min

Pour les autres grappes distantesGm vers lesquelles on ne peut plus ouvrir de connexion, on posegainm= 0.

Pour la grappe locale, on posegaink = sk

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

m {gainm}

Sigainl = 0 (ce n’est plus possible d’ajouter du travail pour l’applicationA(k)), alors on supprimeA(k) de l’ensemble L, et on retourne `a l’´etape 2.

5. Choix de la quantit´e de travail– Sik6=l (calcul distant) alors on posealloc←gainl.

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 grappeGk 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βek,l une solution rationnelle du programme lin´eaire, on construit la solution :

∀k, l βk,l =j βek,lk

,

∀k, l α(k)l = min

αe(k)l , j

βek,l k

× min

λ∈Lk,lbw(λ)

Comme αe(k)l 6 α(k)l , βek,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`ememulticommodity 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 βek,l>0 avec probabilit´e uniforme.

3. Choisir al´eatoirement Xk,l ∈ {0,1} avec une probabilit´e P[Xk,l= 1] =βek,l−j

βek,lk

4. Calculer la valeurv=j βek,lk

+Xk,l et ajouter la contrainteβk,l =vau 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 βek,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 βek,l > j

βek,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 βek,l >

j βek,l

k

est une solution valide, alors il existe une solution valide avecβek,l =

j βek,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´esoudreK2 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.