• Aucun résultat trouvé

Ainsi, chaque transition d’une allocation non stable vers une autre allocation grâce à une délé- gation de tâche socialement rationnelle fait décroître le vecteurW dans l’ordre lexicographiquejusqu’à atteindre une allocation stable. De plus, comme il existe un nombre fini d’allocations et queW décroît strictement à chaque étape, il ne peut y avoir qu’un nombre fini de tellestransitions.

Exemple 4.3 (Allocation stable).

Considérons l’instance MASTA issue de l’exemple4.1avec l’allocation courante P suivante :

• P1= {τ2, τ4, τ6},

• P2= {τ1, τ3, τ5, τ7}.

Dans cette situation, les charges de travail des agents sont w1(P ) = 46 et w2(P ) = 27. On a

donc Cmax(P ) = 46 (cf. figure 4.2a). On observe que les délégations des tâches τ2 et τ6 sont socialement rationnelles pour l’agent 1 (Γ1(P ) = {τ2, τ6}). Il est donc possible d’améliorer

P afin de faire décroitre son makespan. En revanche, l’agent 2 est moins chargé que l’agent 1 et ne peut donc pas déléguer de tâche (Γ2(P ) = ∅).

Si l’agent 1 initie la délégation δ1 de la tâche τ6, l’allocation courante devient P0 = δ1(P )

avec :

• P10 = {τ2, τ4},

• P0

2= {τ1, τ3, τ5, τ6, τ7}.

L’allocation de tâches P0 (cf. figure 4.2b) offre une répartition des charges plus équilibrée

(w1(P0) = 38 et w2(P0) = 40) et un meilleur makespan (Cmax(P0) = 40) mais n’est pas

stable. En effet, on observe que Γ1(P0) = ∅ mais Γ2(P0) = {τ1}.

La délégation δ2 de la tâche τ1 de l’agent 2 à l’agent 1 crée une nouvelle allocation P00 =

δ2(P0) où w1(P00) = 39 et w2(P00) = 38 (cf. figure 4.2c). Comme Γ1(P00) = Γ2(P00) = ∅,

l’allocation P00 est stable. L’allocation P00 n’est pas optimale (Cmax(P00) > Cmax(Pmks))

mais elle ne peut plus être améliorée par une délégation de tâche socialement rationnelle. Les délégations de tâche δ1 et δ2 permettent d’améliorer de manière successive le makespan

de l’allocation de tâche courante (Cmax(P ) > Cmax(P0) > Cmax(P00)) jusqu’à ce qu’une

allocation stable soit atteinte.

4.4

Réallocation des tâches pendant leur exécution

Les agents peuvent simultanément exécuter les tâches et entreprendre des délégations de tâches. En d’autres mots, pendant que les agents délèguent les tâches pour améliorer l’allocation cou- rante, ils réalisent (ou consomment) également les tâches. Les opérations de délégation et de consommation modifient toutes deux l’instance MASTA courante. D’une part, comme nous l’avons vu dans la section précédente, une délégation modifie l’allocation courante. D’autre part, une fois qu’une tâche est consommée, elle est supprimée de l’ensemble des tâches T et de l’alloca- tion courante. Cette section définit la consommation d’une tâche et présente ensuite le processus utilisé par les agents pour gérer simultanément les délégations et les consommations de tâches.

60 Chapitre 4. Réallocation multi-agents de tâches situées

(a) Charges de travail des agents 1 et 2 pour l’allo- cation P .

(b) Charges de travail des agents 1 et 2 pour l’allo- cation P0.

(c) Charges de travail des agents 1 et 2 pour l’allo- cation P00.

Figure 4.2 : Évolutions des charges de travail des agents 1 et 2 après les délégations δ1 et δ2 de

l’exemple4.3.

4.4.1 Consommations de tâches

Les consommations de tâches sont des perturbations qui modifient l’instance MASTA courante en supprimant une tâche de l’allocation courante et de l’ensemble des tâches à consommer.

Définition 4.7 (Consommation de tâche).

Soit M AST A = (S, T , P, c) l’instance MASTA courante. La consommation de la tâche τ par l’agent i, notée γ, crée une nouvelle allocation courante P0 = γ(P ) et donc une nouvelle

instance M AST A0 = (S, T0, P0, c) tel que :

T0 = T \ {τ } (4.8)

Pi0 = Pi\ {τ } (4.9)

∀j ∈ A \ {i}, Pj0 = Pj (4.10)

Lorsqu’un agent consomme une tâche, elle ne fait plus partie de son lot de tâches (cf. équa-

tion 4.9), ni de l’ensemble des tâches de l’instance (cf. équation 4.8). Les lots de tâches des

autres agents ne sont pas modifiés (cf. équation4.10). Évidemment, une consommation de tâche

4.4. Réallocation des tâches pendant leur exécution 61

Propriété 4.3.

Une consommation de tâche γ n’accroît pas le makespan d’une allocation de tâches P , c’est-à-dire

Cmax(γ(P )) ≤ Cmax(P ) (4.11)

Preuve 4.3. Soit P une allocation de tâches et γ une consommation de tâche appliquée à P .

Si l’agent qui consomme est l’agent le plus chargé du système, on a Cmax(γ(P )) ≤ Cmax(P ),

sinon Cmax(γ(P )) = Cmax(P ).

La succession de consommations de tâches supprime progressivement les tâches de l’alloca-

tion initiale Pinit jusqu’à atteindre l’allocation finale vide Pf inale, c’est-à-dire l’allocation dans

laquelle il n’existe plus de tâche à consommer (∀i ∈ A, Pif inale= ∅). On rappelle que l’on consi-

dère que le coût d’une tâche pour un agent est l’estimation du temps nécessaire à cet agent

pour consommer la tâche. En débutant avec Pinit et sans appliquer de délégation de tâche, le

temps théorique nécessaire pour consommer l’ensemble des tâches est égal au makespan de Pinit

(Cmax(Pinit)). Cependant, si Pinit n’est pas stable, les délégations de tâches socialement ration-

nelles aident à équilibrer la charge de travail des agents et améliorent ainsi le temps d’exécution de l’ensemble des tâches.

4.4.2 Co-occurence des consommations et des délégations

Pour résoudre un problème MASTA, les agents utilisent les délégations socialement rationnelles. De plus, les consommations de tâches ont lieu simultanément et suppriment progressivement des tâches de l’ensemble T . Alors que les délégations sont des opérations provoquées par les agents, les consommations sont subies. En effet, quelque soit l’instance MASTA et jusqu’à parvenir

à l’allocation Pf inale, les agents consomment les tâches en continu. De cette façon les agents

passent d’instance en instance en améliorant systématiquement le makespan de l’allocation cou- rante. Les agents peuvent atteindre une allocation stable, c’est-à-dire une allocation où aucune délégation de tâche socialement rationnelle n’est possible. Cependant lorsqu’une consommation de tâche se produit, l’allocation courante se trouve perturbée et il est possible qu’elle ne soit plus stable. Dans ce cas, celle-ci peut de nouveau être améliorée. Ces délégations et consommations s’enchaînent jusqu’à ce que toutes les tâches aient été consommées. Les délégations socialement rationnelles et les consommations améliorent le makespan de l’allocation courante de manière concurrente. Ces deux opérations sont complémentaires car une consommation peut offrir de nouvelles opportunités d’effectuer des délégations socialement rationnelles.

La figure 4.3 illustre comment les agents passent d’une instance MASTA à l’autre à chaque

délégation/consommation de tâche. Afin d’exprimer les délégations de tâches socialement ra-

tionnelles et les consommations de tâches, on note Pn,kl’allocation de n tâches (|T | = n), ayant

bénéficié de k délégations de tâche socialement rationnelles. En partant de l’allocation initiale

Pn,0, les agents utilisent k délégations de tâches socialement rationnelles pour l’améliorer (de

Pn,0 à Pn,k) jusqu’à ce qu’une tâche soit consommée (de Pn,k à Pn−1,0). Une consommation de

tâche peut se produire quand les agents ont atteint une allocation stable (par exemple Pstablen−1 )

ou pas (par exemple Pn,k).

62 Chapitre 4. Réallocation multi-agents de tâches situées

Figure 4.3 : Co-occurence des délégations et des consommations de tâches durant la résolution d’un problème MASTA. Les transitions horizontales correspondent à des délégations de tâches socialement rationnelles. Les transitions verticales correspondent à des consommations de tâches. Les états grisés montrent des opérations qui auraient pu avoir lieu sans consommation de tâche. La ligne en pointillés représente la dernière consommation de tâche. Pf inaleest la seule allocation finale possible dans laquelle les lots de tâches de tous les agents sont vides car toutes les tâches ont été exécutées.

1. Le système distribué est intrinsèquement adaptatif à une variation de performances des nœuds de calculs. En effet, si un nœud ralentit lors de l’exécution, sa charge de travail diminue moins rapidement que celles de ses pairs car il consomme les tâches qui lui sont allouées moins rapidement. De ce fait, il arrive un temps où une de ses tâches peut être déléguée à l’un de ses pairs pour rééquilibrer la charge de travail.

2. Le système est robuste à l’utilisation d’une fonction de coût mal calibrée. Dès lors qu’une fonction de coût préserve le caractère socialement rationnel d’une délégation, celle-ci peut ne pas indiquer précisément le coût d’une tâche pour un agent sans que l’allocation des tâches soit totalement faussée. En effet, les ajustements continus des agents permettent de corriger l’allocation tout au long de l’exécution et d’atténuer l’impact que pourrait avoir une mauvaise estimation du coût des tâches pour les agents.