• Aucun résultat trouvé

Exp´ erimentations

a faux (ligne 16), sont tous les deux possibles. Lorsque pref est conditionnelle (ligne 22), alors il n’y a qu’une seule d´ecision possible. La coh´erence avec ∆ est test´ee avec la fonction

isSAT faisant directement appel `a un solveur SAT avec les contraintes de la version d´epli´ee du mod`ele ∆ (lignes 17, 19 et 23).

Dans l’algorithme 2, chaque scenario est ajout´e `a une file d’attente et `a chaque it´eration on cherche `a construire tous les successeurs possibles du scenario trait´e. L’algorithme 3 est initialis´e avec une liste de scenarios initialis´ee avec (>, 1, γ1) (ligne 8), ce qui exprime qu’aucun choix de d´ecision n’a ´et´e fait jusqu’alors, l’´etape discr`ete est fix´ee `a 1 et la prochaine pr´ef´erence `a appliquer est γ1. `A chaque it´eration, on construit les successeurs d’un ´etat en faisant appel `a l’algorithme 4 (ligne 14). Les scenarios pour lesquels l’attribut decision est incoh´erent avec ∆ (dans sa version d´epli´ee ∆0, . . . , ∆k) sont rejet´es. L’algorithme termine quand un scenario complet (ligne 11) est trouv´e (dans ce cas Ω est un m´eta-diagnostic) ou alors lorsqu’il ne reste aucun scenario dans la file d’attente (dans ce cas Ω n’est pas un m´eta-diagnostic) (ligne 16).

Algorithm 2 MetaDiagnosis({impasset|t ∈ [1, k]}, {∆t|t ∈ [1, k]}, Γ) : retourne vrai si et seulement si Γ est un m´eta-diagnostic

1: Entrees

2: {impasset|t ∈ [1, k]} : une impasse d´epli´ee sur l’horizon k

3: {∆t|t ∈ [1, k]} : ∆ d´epli´e sur l’horizon k

4: Γ : un sous ensembles de pr´ef´erence `a tester

5: Sorties

6: retourne vrai si et seulement si Ω est un m´eta-diagnostic

7: function isAMetaDiagnosis(impasset|t ∈ [1, k]}, {∆t|t ∈ [1, k]}, Γ)

8: scenarios ← {(>, 1, γ1)}

9: while scenarios 6= ∅ do select curScen in scenarios

10: scenarios ← scenarios − {curScen}

11: if curScen.step > length(impasse) then

12: return true

13: else

14: nextScen ← makeNextScenarios(curScen, {impasset|t ∈ [1, k]}, {∆t|t ∈ [1, k]}, Γ)

15: scenarios ← scenarios ∪ nextScen

16: return f alse

On consid`ere que l’ordre dans lequel les diff´erents sous-ensembles de Γ sont test´es est d´eduit directement par la th´eorie du diagnostic `a base de coh´erence [Reiter, 1987]. Si on trouve un Ω qui est un m´eta-diagnostic, alors on ne teste pas ses sur-ensembles et si on trouve un Ω qui n’est pas un m´eta-diagnostic, on ne teste pas ses sous-ensembles.

5.3 Exp´erimentations

Cette section pr´esente les diff´erentes exp´erimentations effectu´ees pour les deux approches pr´esent´ees pr´ec´edemment. Pour chaque approche, on reprend les mod`eles utilis´es pour la

Algorithm 3 makeNextScenarios(curScen, {impasset|t ∈ [1, k]}, {∆t|t ∈ [1, k]}, Γ) 1: Entrees 2: curScen 3: {impasset|t ∈ [1, k]} 4: {∆t|t ∈ [1, k]} 5: Γ 6: Sorties

7: nextScenarios : les sc´enarios suivants associ´es `a curScen

8: function makeNextScenarios(curScen, {impasset|t ∈ [1, k]}, {∆t|t ∈ [1, k]}, Γ)

9: t ← curScen.step

10: γ ← curScen.curPref

11: formula ← curScen.d´ecision ;

12: scenarios ← ∅

13: if γ = e e then

14: curScBis ← copy(incr (curScen))

15: curScen.d´ecision ← formula ∧ et

16: curScBis.d´ecision ← formula ∧ ¬et

17: if isSAT ((Vt

i=1(∆i∧ impassei) ∧ formula ∧ et) then

18: scenarios ← scenarios ∪ {curScen}

19: if isSAT ((Vt

i=1(∆i∧ impassei) ∧ formula ∧ ¬et) then

20: scenarios ← scenarios ∪ {curScBis}

21: return scenarios

22: else //γ = cond : e ≺ e

23: if isSAT (Vt

i=1(∆i∧ impassei) ∧ formula ∧ (et↔ condt)) then

24: curScen.d´ecision ← formula ∧ (et↔ condt)

25: return {incr (curScen)}

26: else

27: curScen.d´ecision ← formula ∧ (¬et↔ condt)

28: return {incr (curScen)}

recherche de sc´enarios d’impasse du chapitre pr´ec´edent. Lorsque les mod`eles pr´esentent un sc´enario d’impasse, on r´ecup`ere celui-ci (une s´equence d’observations) et on effectue le m´ eta-diagnostic des pr´ef´erences. L’architecture utilis´ee est la mˆeme que pour les exp´erimentations du chapitre pr´ec´edent. On ´etudie ici les mod`eles pour lesquels un sc´enario d’impasse avait ´et´e d´etect´ee.

5.3.1 Exp´erimentations par l’approche Electrum

Les exp´erimentations effectu´ees avec Electrum reprennent les mod`eles sur lesquels la recherche de sc´enarios d’impasse avait ´et´e effectu´ee dans le chapitre pr´ec´edent. Les sc´enarios d’impasse sont automatiquement r´ecup´er´es sous forme de fichiers XML et traduits ensuite vers Scala. Le m´eta-diagnostic des pr´ef´erences est effectu´e sur tous les mod`eles pr´esent´es dans les r´esultats de la figure 4.7 qui pr´esentaient un sc´enario d’impasse. Lorsqu’un contre exemple est trouv´e, cela signifie que le Ω test´e est un m´eta-diagnostic. On regroupe les diff´erentes pr´ef´erences par rapport aux variables que celles-ci ciblent.

On a donc :

— Γgrid: pr´ef´erences associ´ees aux variables de la grille

— Γbots : pr´ef´erences associ´ees aux fautes pouvant toucher les robots

— Γf temp ∈ Γbots : pr´ef´erences associ´ees aux fautes intermittentes pouvant affecter les robots.

— Γf perm ∈ Γbots : pr´ef´erences associ´ees aux fautes permanentes pouvant affecter les robots.

— Γf permbot1∈ Γf perm: pr´ef´erences associ´ees `a la faute permanente pouvant affecter le robot 1.

— Γf permbot2∈ Γf perm: pr´ef´erences associ´ees `a la faute permanente pouvant affecter le robot 2.

Les figures 5.5 et 5.6 pr´esentent les r´esultats pour les mod`eles num´erot´es 1 `a 5 pour lesquels il existait un sc´enario d’impasse.

Γ=

ID ∅ Γ - Γgrid Γ - Γbots Γ - Γf temp Γ - Γf perm

1 m´eta-diag non m´eta-diag m´eta-diag non m´eta-diag m´eta-diag

0,3s(0) 0,6s(3) 0,1s(4) 0,6s(6) 0,1s(6)

2 m´eta-diag non m´eta-diag m´eta-diag non m´eta-diag m´eta-diag

0,5s(0) 2,7s(3) 0,5s(8) 2,7s(10) 0,4s(10)

3 m´eta-diag non m´eta-diag m´eta-diag non m´eta-diag m´eta-diag

7,2s(0) 44,9s(3) 7,9s(12) 44,2s(14) 7,3s(14)

Figure 5.5 – Analyse des pr´ef´erences pour les mod`eles avec 1 robot, le nombre de pr´ef´erences qui ne sont pas relax´ees est indiqu´e `a cˆot´e du temps de calcul.

On constate que relaxer les pr´ef´erences portant sur les robots permet d’´eliminer le sc´enario d’impasse : Γbotsest un m´eta-diagnostic. Lorsqu’on relaxe seulement les pr´ef´erences ciblant les fautes intermittentes, le sc´enario d’impasse subsiste : Γf temp n’est pas un m´ eta-diagnostic Dans la figure 5.5, relaxer la pr´ef´erence ciblant la faute permanente du robot permet d’´eliminer le sc´enario d’impasse : Γf permest un m´eta-diagnostic (minimal) pour les instances 1 `a 3.

Γ =

ID Γ - Γgrid Γ - Γbots Γ - Γf temp Γ - Γf perm Γ - Γf permbot1 Γ - Γf permbot2 4 non m´eta-diag m´eta-diag non m´eta-diag m´eta-diag non m´eta-diag non m´eta-diag

40,7s(6) 6,8s(8) 40,8s(12) 6,8s(12) 40,9s(13) 40,8s(13)

5 non m´eta-diag m´eta-diag non m´eta-diag m´eta-diag non m´eta-diag non m´eta-diag

885,4s(6) 150,0s(12) 895,8s(16) 150,7s(16) 900,1s(17) 903,7s(17)

Figure 5.6 – Analyse des pr´ef´erences pour les mod`eles avec 2 robots, le nombre de pr´ef´erences qui ne sont pas relax´ees est indiqu´e `a cot´e du temps de calcul.

On constate que lorsqu’on relaxe seulement la pr´ef´erence de Γf permbot1 ou la pr´ef´erence de Γf permbot2 dans les instance 4 et 5 (avec 2 robots) le sc´enario d’impasse n’est pas ´elimin´e, ces deux ensembles ne sont donc pas des m´eta-diagnostics. Le m´eta-diagnostic minimal pour toutes les versions de cet exemple est donc Ω = Γf perm On pourra donc s’int´eresser `

a modifier la condition de cette et ces pr´ef´erences suivant les instances afin d’´eliminer les sc´enarios d’impasse.

On constate une nette diff´erence des temps d’ex´ecution lorsque le Ω test´e est ou n’est pas un m´eta-diagnostic. Lorsque Ω est un m´eta-diagnostic, le temps de calcul est assez court puisque d`es qu’une s´equence d’estimations est trouv´ee celle-ci correspond `a un contre exemple qui est directement renvoy´e. A l’inverse lorsque le sc´enario d’impasse subsiste, toutes les s´equences d’estimations sont envisag´ees par le model-checker et on constate des temps de calculs jusqu’`a 5 fois sup´erieurs. Dans les deux cas, les temps de calculs restent exponentiels `a mesure qu’on augmente la taille du mod`ele.

5.3.2 Exp´erimentations par l’approche SAT

Les r´esultats pour l’approche SAT montrent des temps de calcul tr`es court pour de petits ensembles de pr´ef´erences ou pour des sc´enarios d’impasse de petite taille. Cependant, d`es

Instance |Ω| = 1 |Ω| = |Γ|/2 |Ω| = |Γ| − 1 small 3 0 [0, 0] 0 [0, 0] 0 [ 0, 0] small 4 0 [0, 0] 0 [0, 0] 0 [ 0, 0] small 5 0 [0, 0] 0 [0, 0] 0 [ 0, 1] small 6 0 [0, 0] 0 [0, 2] 1 [ 0, 2] small 7 0 [0, 0] 1 [0, 17] 5 [ 0, 14] small 8 0 [0, 0] 8 [0, 134] 37 [ 0, 108] small 9 0 [0, 0] 61 [0, 1129] 311 [ 0, 960] large 3 0 [0, 0] 0 [0, 2] 0 [ 0, 1] large 4 0 [0, 0] 0 [0, 2] 3 [ 1, 4] large 5 0 [0, 0] 14 [0, 163] 87 [ 16, 119] large 6 0 [0, 0] 48 [0, 444] 2691 [652, 4730]

Table 5.1 – R´esultats du m´eta-diagnostic pour un ensemble de pr´ef´erences Ω . Les colonnes indiquent la taille des sous-ensembles Ω test´es. Pour chaque test, on r´ealise le test sur au moins 20 ensembles possibles pour la taille donn´ee. Chaque case contient le temps moyen, le minimum et maximum sous la forme moyenne[min, max].

lors qu’on traite de grands ensembles de pr´ef´erences ou des sc´enarios d’impasse de grande taille, on constate que le temps de calcul croit de mani`ere exponentielle.

On constate que certains ensembles sont particuli`erement difficiles `a v´erifier et que le plus difficile d’entre eux peut prendre jusqu’`a dix fois plus de temps par rapport au temps de calcul moyen. Cela arrive le plus souvent lorsqu’on teste la moiti´e des pr´ef´erences de Γ puisque plus on relaxe de pr´ef´erences, plus il est facile de trouver une s´equence d’estimations.

5.4 Comparaison des r´esultats pour les deux approches