X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/4b79356ada36bf494ce5f1a7bcc3744b9d31f2e3..09d41417e496c5599b00a615f4b3d67b0f6270f3:/ALGORITHMS diff --git a/ALGORITHMS b/ALGORITHMS index cc601b3..53fe1f3 100644 --- a/ALGORITHMS +++ b/ALGORITHMS @@ -1,20 +1,18 @@ DESCRIPTIONS DES ALGORITHMES D'ÉQUILIBRAGE -bulk -==== -N'ordonne pas les voisins. Cherche le nombre de voisins de charge minimum et -le nombre de voisins de charge inferieure. En fonction de leur egalité ou non, -un parametre alpha est caclulé. En cas d'egalité, alpha=1/(NB_voisins_charge_minimale +1) -sinon alpha=1/(NB_voisins_charge_minimale +2). Chaque voisin dont la charge est inferieure -recoit alpha*(myLoad - charge_du_voisin). Ensuite, une correction est effectuée -pour respecter la regle de Bertsekas. +2besteffort +=========== +Calcule la moyenne des charges des voisins et de soi-même. +Ordonne ensuite les voisins du moins chargé au plus chargé, et +effectue les transferts en prenant les voisins dans cet ordre. Les +transferts de charge sont faits en visant cette moyenne pour tous les +voisins. On envoie une quantité de charge égale à + min(moyenne - charge_du_voisin, charge_propre - moyenne), +tant que cette quantité est positive. + +NB: Ceci est une variante de besteffort, la différence étant la + moyenne visée. -lln pour Least Loaded Neighbors -=============================== -A l'origine écrit par Raphaël. -Comme simple, mais tous les voisins de charge inferieure reçoivent de la charge -pas seulement un voisin de charge minimale. N'ordonne pas les voisins, et ne respecte -pas la regle de Bertsekas. Le parametre alpha vaut toujours (1/NB_voisins_charge_inferiure+1). besteffort ========== @@ -23,11 +21,26 @@ Trouve ensuite, en les prenant dans ce ordre, le nombre maximal de voisins tels que tous ont une charge inférieure à la moyenne des charges des voisins sélectionnés, et de soi-même. -Les transferts de charge sont ensuite fait en visant cette moyenne pour +Les transferts de charge sont ensuite faits en visant cette moyenne pour tous les voisins sélectionnés. On envoie une quantité de charge égale à (moyenne - charge_du_voisin). +bulk +==== +N'ordonne pas les voisins. Cherche le nombre de voisins de charge +minimum et le nombre de voisins de charge inférieure. En fonction de +leur égalité ou non, un paramètre alpha est calculé. En cas d'égalité, + alpha = 1 / (NB_voisins_charge_minimale + 1), +sinon + alpha = 1 / (NB_voisins_charge_minimale + 2). + +Chaque voisin dont la charge est inférieure reçoit + alpha * (myLoad - charge_du_voisin). +Ensuite, une correction est effectuée pour respecter la règle de +Bertsekas. + + fairstrategy ============ Ordonne les voisins du plus chargé au moins chargé. @@ -40,6 +53,15 @@ tous les voisins moins chargés que soi-même. Q: à quoi sert le tri du départ ? +lln pour Least Loaded Neighbors +=============================== +À l'origine écrit par Raphaël. Comme simple, mais tous les voisins de +charge inférieure reçoivent de la charge pas seulement un voisin de +charge minimale. N'ordonne pas les voisins, et ne respecte pas la +règle de Bertsekas. Le paramètre alpha vaut toujours + 1 / (NB_voisins_charge_inferieure + 1). + + makhoul ======= Ordonne les voisins du moins chargé au plus chargé puis calcule les @@ -67,6 +89,12 @@ Références: cf. MAKHOUL.txt +makhoul3 +======== +Comme makhoul mais, dans le ratio 1/(N+1), N correspond au nombre de +voisins moins chargés. + + none ==== Aucun équilibrage. Peut-être utile pour tester/déboguer le code.