]> AND Private Git Repository - loba.git/blob - ALGORITHMS
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Update TODO.
[loba.git] / ALGORITHMS
1 DESCRIPTIONS DES ALGORITHMES
2
3 fairstrategy
4 ============
5 Tant qu'il reste un voisin moins chargé[*] que soi-même, envoyer une
6 certaine quantité de charge (delta = 0.001 dans le code) à tous les
7 voisins moins chargés que soi-même.
8 [*] en réalité, un voisin moins chargé à qui on peut envoyer delta de
9     charge sans devenir moins chargé que lui.
10
11 Q: à quoi sert le tri du départ ?
12
13 makhoul
14 =======
15 Ordonne les voisins du moins chargé au plus chargé puis calcule les
16 différences de charge entre soi-même et chacun des voisins.
17
18 Ensuite, pour chaque voisin, dans l'ordre, et tant qu'on reste plus
19 chargé que le voisin en question, on lui envoie 1/(N+1) de la
20 différence calculée au départ, avec N le nombre de voisins.
21
22 none
23 ====
24 Aucun équilibrage.  Peut-être utile pour tester/déboguer le code.
25
26 simple
27 ======
28 Tentative de respecter simplement les conditions de Bertsekas.
29 Parmi les voisins moins chargés que soi, on sélectionne :
30     - un des moins chargés (vmin) ;
31     - un des plus chargés (vmax),
32 puis on équilibre avec vmin en s'assurant que notre charge reste
33 toujours supérieure à celle de vmin et à celle de vmax.
34
35 On envoie donc (avec "self" pour soi-même) :
36     min((load(self) - load(vmin)) / 2, (load(self) - load(vmax)))