• Aucun résultat trouvé

4.5 Strat´egie de fusion

4.5.3 Planifications des fusions

L’objectif de la fusion est de v´erifier qu’une hypoth`ese propos´ee par un diagnostic local est valide en la confrontant `a celles des autres diagnostics locaux. Une hypoth`ese locale est valide si les interactions qu’elle suppose sont possibles du point de vue des autres diagnostics. Par cons´equent, il est facile de voir que fusionner des hypoth`eses qui ne supposent aucune interaction ne sert `a rien, car elles sont a fortiori valides.

Ce constat nous invite `a mettre au point un plan des fusions de diagnostics qui sont utiles et qui ´evite des fusions qui n’apportent plus aucune information de diagnostic. Un tel plan d´etermine la mani`ere dont on va appliquer la fusion des diagnostics pour obtenir le r ´esultat final : tout plan est possible ´etant donn´e que l’op´eration est commutative et associative (voir propri´et´e 9).

Algorithme 8 Algorithme de calcul des interactions impossibles

1: Entr´ee :T1, . . . , Tm, R1, . . . , Rm{ ´Ev´enements transmis et rec¸us.} 2: a r´` epercuter ← ∅ ; `a ´eliminer ← ∅

3: {D´etection des interactions impossibles selon T1. . . Tm.} 4: pour touti ∈ {1, . . . , m} faire

5: pour tout(e, Eγi(e)) ∈ Ti faire

6: si6 ∃k ∈ {1, . . . , m} \ {i}, (e, Eγk(e)) ∈ Rkalors

7: Eγi(e) ← ∅ ; inserer queue(`a r´epercuter, e) {L’´emission de e est impossible.} 8: fin si

9: fin pour

10: fin pour

11: {D´etection des interactions impossibles selon R1. . . Rm.} 12: pour touti ∈ {1, . . . , m} faire

13: pour tout(e, Eγi(e)) ∈ Ri faire

14: si6 ∃k ∈ {1, . . . , m} \ {i}, (e, Eγk(e)) ∈ Tkalors

15: Eγi(e) ← ∅ ; inserer queue(`a r´epercuter, e) {La r´eception de e est impos-sible.}

16: fin si

17: fin pour

18: fin pour

19: {Calcul des r´epercussions des ´ev´enements incompatibles sur les autres.} 20: tant que `a r´epercuter 6= ∅ faire

21: e ← oter tˆete(`a r´epercuter)

22: pour tout(e0, Eγk(e0)) ∈ R1∪ · · · ∪ Rm∪ T1∪ · · · ∪ Tm|e ∈ Eγk(e0) faire 23: Eγk(e0) ← Eγk(e0) \ {e}

24: siEγk(e0) = ∅ alors

25: inserer queue(`a r´epercuter, e0) {L’´echange de e0est impossible.} 26: fin si

27: fin pour

28: a ´` eliminer ← `a ´eliminer ∪ {e} 29: fin tant que

30: Sortie : `a ´eliminer {L’ensemble des ´ev´enements qui rendent impossibles certaines hy-poth`eses locales de diagnostic.}

Strat´egie de fusion 119

Fusions `a privil´egier

Notation : on noteIγij) l’ensemble des ´ev´enements des composants de γi qui sont sup-pos´es avoir ´et´e ´echang´es avec les composants deγj d’apr`es le diagnostic local deγi (`a savoir ∆γi).

D´efinition 43 (Grappes interagissantes) γietγj sont deux grappes interagissantes ssi

Iγij) ∩ Iγji) 6= ∅.

2

De cette d´efinition, on d´eduit queγietγj sont interagissantes ssi leurs diagnostics ´epur´es sont tels queI0

γij) = I0

γji) = Iγij) ∩ Iγji) 6= ∅. En effet, I0

γij) contient tous les ´ev´enements deIγij) qui peuvent ˆetre ´echang´es entre γietγj selon∆γi et∆γj, ce qui est ni plus ni moins queI∆0

γji).

D´efinition 44 (Grappes k-interagissantes) γi et γj sont deux grappes k-interagissantes ssi elles sont interagissantes et

|I0

γij)| = |I0

γji)| = |Iγij) ∩ Iγji)| = k.

2

Les fusions `a privil´egier sont celles entre des diagnostics correspondant `a des grappes in-teragissantes. En effet, si les grappes sont interagissantes, cela signifie que des hypoth `eses de diagnostic de chaque grappe supposent l’´echange d’´ev´enements communs aux deux grappes. C’est le travail de la fusion de valider ou d’invalider ces hypoth`eses. La deuxi`eme cons´equence est que la fusion de diagnostics correspondant `a des grappesγ1 γ2 non-interagissantes ne sert `a rien. Aucune hypoth`ese ne sera (in)valid´ee, le r´esultat de la fusion se r´esumera au calcul des diff´erentes traces de diagnostics dekγ1∪ γ2k, traces qui sont implicitement d´ecrites dans les diagnostics deγ1etγ2.

D´efinition 45 (Diagnostic ind´ependant) Un diagnosticγ est ind´ependant ssiI∆γi) = ∅

pour toutγidisjoint deγ. 2

Un diagnostic ind´ependant est un diagnostic fond´e sur une grappe de composants ´el´ementairesγ pour laquelle aucun ´echange avec des composants ext´erieurs `a γ n’est diag-nostiqu´e (le diagnostic global∆Γ est ind´ependant). Dans ce cas, le diagnostic recense l’en-semble des comportements deγ compatibles avec les observations du syst`eme. Tout chemin de transitions d’un diagnostic ind´ependant participe n´ecessairement `a un chemin de transitions du diagnostic global. Il est donc inutile de fusionner un tel diagnostic avec un autre8.

8

La fusion d’un diagnostic ind´ependant produirait uniquement un ordonnancement des transitions de ce diag-nostic qui soit compatible avec l’ordre partiel global des observations.

Principes et algorithme

L’algorithme 9 r´esume toute la strat´egie de fusion employ´ee en vue d’obtenir le diagnostic global. Cet algorithme de coordination a besoin dans un premier temps des ensemblesTietRi qui repr´esentent l’ensemble des couples(e, Eγi(e)) o`u e est un ´ev´enement ´emis ou rec¸u par kγik selon ∆γi(voir page 117). Il calcule ensuite les ´ev´enements impossibles (ligne 4) `a l’aide de l’algorithme 8 (pr´esent´e page 118) en vue de produire des diagnostics locaux ´epur´es (lignes 6-8).

La deuxi`eme phase de l’algorithme consiste `a ´etablir les grappes interagissantes. Pour la grappe γi, on initialise l’ensemble k-interactionsi) (ligne 11). Chaque ´el´ement de

k-interactionsi) est un couple (γj, k) informant que γietγj sont k-interagissantes.

La troisi`eme phase planifie et applique les fusions de diagnostics. L’ensembleD contient `a tout instant un ensemble de diagnostics ; au d´epart, il est initialis´e avec tous les diagnos-tics locaux ´epur´es (ligne 14). L’ensemble P contient l’information sur les interactions entre les diff´erents diagnostics deD. Tant que cet ensemble P contient des informations sur les in-teractions, cela implique qu’il existe dansD au moins deux diagnostics corrrespondant `a des grappes interagissantes. Il est donc n´ecesssaire d’appliquer des fusions. Pour les appliquer, on partitionneD (ligne 17). La fonction choisir partition de grappes interagissantes ´etablit une partition suivant les crit`eres suivants :

– tout ´el´ement de la partition contient au plus deux diagnostics ;

– tout ´el´ement de la partition de cardinal sup´erieur `a 1 contient deux diagnostics associ´es `a des grappes k-interagissantes avec k aussi grand que possible.

Si un ´el´ement de partition contient deux diagnostics, alors ces deux diagnostics corres-pondent `a des grappes interagissantes. Si l’´el´ement de partition ne contient qu’un seul diag-nostic, cela signifie que la grappe correspondante n’est interagissante avec aucune grappe (le diagnostic est donc ind´ependant) ou alors les grappes avec lesquelles elle interagit ont leur diagnostic dans un autre ´el´ement de partition9.

Une fois la partition de diagnostic choisie, on fusionne les diagnostics associ ´es `a chaque ´el´ement de la partition (ligne 18). Nous obtenons un nouvel ensemble de diagnostics (un diag-nostic pour chaque ´el´ement de partition). Nous mettons `a jour les relations d’interactions en fonction du nouvel ensemble de diagnostics, et donc du nouvel ensemble de grappes qui leur correspond (ligne 19). Cette mise `a jour est ´etablie de la mani`ere suivante :

– soitγi1 ∪ · · · ∪ γikune grappe de composants associ´ee `a un diagnostic deD ;

– on cr´ee k-interactionsi1 ∪ · · · ∪ γik) = {(γj1 ∪ · · · ∪ γjl, k), k > 0} o`u γj1∪ · · · ∪ γjl est une autre grappe correspondant `a un diagnostic deD et o`u

k = X

(γi,γj)|i∈{i1,...,ik}j∈{j1,...,jl}

|Iγij)|.

Ensuite, il suffit de r´eit´erer en choisissant une nouvelle partition de diagnostics en fonction des nouvelles interactions. Une fois que l’ensemble P ne contient plus d’interactions, cela signifie queD contient un ensemble de diagnostics ind´ependants repr´esentant implicitement le diagnostic global du syst`eme.

9

Strat´egie de fusion 121

Algorithme 9 Calcul du diagnostic global

1: Entr´ee :{∆γi, i ∈ {1, . . . , m}} 2: Entr´ee :T1, . . . , Tm, R1, . . . , Rm

3: {1– ´Elimination des hypoth`eses locales impossibles.}

4: ´ev´enements impossibles← d´etecter ´ev´enements impossibles(T1, . . . , Tm, R1, . . . , Rm)

5: {´ev´enements impossibles : ´ev´enements produisant des hypoth`eses locales impossibles (voir algorithme 8).}

6: pour touti ∈ {1, . . . , m} faire 7:0

γi ← ´eliminer hypoth`eses impossibles(∆γi, ´ev´enements impossibles ∩ Σγiint) 8: fin pour

9: {2– Recherche des grappes interagissantes} 10: pour touti ∈ {1, . . . , m} faire

11: k-interactionsi) ← {(γj, |I0

γij)|) | I0

γij) 6= ∅} 12: fin pour

13: {3– Planification et application des fusions} 14: D ← {∆0

γi, i ∈ {1, . . . , m}}

15: P ← {k-interactions(γi), i ∈ {1, . . . , m}} 16: tant queP 6= ∅ faire

17: πD ← choisir partition de grappes interagissantes(D, P) ;

18: D ←S

{∆a,∆b}∈πD{∆ab} ∪S

{∆a}∈πD{∆a} 19: P ← mettre `a jour les interactions(P, D)

20: fin tant que

21: Sortie : D