Aucun titre de diapositive

publicité

Tahiti 2003 :
Calcul efficace de
trajectoires
utilisant l'interversibilité

8 avril 2003
1

Plan

►
Présentation
►
Formalisme
►
Présentation des exemples
►
L’interversibilité
►
Algorithmes
►
Exemples
►
Conclusion
8 avril 2003
2

Problématique
diagnostic de systèmes dynamiques 
calcul des événements sur le système
[Cordier::Largouët::2001]
planification 
calcul des actions à appliquer sur le système

diagnostic  planification 
calcul de trajectoires sur un modèle
comportemental
8 avril 2003
3

Problème
Problème de l'explosion du nombre d'états

►
utilisation des outils symboliques
(BDD, [Marchand::Rozé::2002])
►
utilisation des techniques de model-checking
([Cordier::Largouët::2001])
►
utilisation d'heuristiques (diagnostic
décentralisé [Pencolé::2001])
8 avril 2003
4

L’interversibilité
définition informelle
Définition d'une propriété sur les événements
Deux événements sont interversibles
si on peut les échanger dans une séquence
sous certaines conditions

8 avril 2003
5

Modèle modulaire
Automate A = <Q,E,T> (déterministe)
►
►
Q : ensemble des états
E : ensemble des étiquettes de transition
(événements)
►T
: ensemble des transitions
Une transition t : (q1,e,q2)
q1 : l’état de départ
e : l’événement déclencheur
q2 : l’état d’arrivée

8 avril 2003
6

Produit synchronisé
Automate A = <Q,E,T> produit synchronisé
des automates Ai = <Qi,Ei,Ti> :

►
Q = Q1  ...  Qn
►
E = E1  ...  En
►
T = { ((q1,...,qn),e,(q1',...,qn') | i
(e  Ei  (qi,e,qi')  Ti) 
(e  Ei  qi = qi')}
8 avril 2003
7

Applicabilité
►
Événement applicable (enabled ) :
e est applicable (noté ene(q) ) en q  Q ssi
(e  E)  ( q'  Q, (q,e,q')  T)
►
Application :
On note e(q), défini si e est applicable en q,
l'état q' tel que (q,e,q')  T

8 avril 2003
8

Applicabilité (suite)
Théorème 1 :
Sur un automate A = <Q,E,T>
produit synchronisé de Ai = <Qi,Ei,Ti>
si q = (q1,…,qn)  Q
ene(q) = i ene(qi)
(= ene(q1)  ...  ene(qn))

8 avril 2003
9

Applicabilité (fin)
►
Applicabilité d'une suite  = e1 ; … ; ek
d'événements :
 est applicable en un état q si les événements successifs
sont applicables :
en(q) = ene1(q) et en(e1(q)),
( = e2 ; ... ; ek)
d'une suite  = e1 ; … ; ek
d'événements :
► Application

Application successive des événements :
(q) = ek(… (e1(q) …)
8 avril 2003
10

Trajectoire
Une suite d'événements  est une trajectoire
sur un automate si elle est applicable dans un
des états de l'automate

8 avril 2003
11

Exemple de diagnostic
Système de télécommunication
► Un ensemble de composant Comp_i
►

Un centre technique TC qui reçoit les messages de panne
8 avril 2003
12

Composants
Constitués de deux parties :
►
L'unité qui peut tomber en panne
►
Le contrôleur qui communique avec le TC
controller_i
unit_i

8 avril 2003
13

Centre technique
Constitué de deux parties :
►
►
Le TC en lui même reçoit les messages
Le compteur vérifie le nombre de
composants en panne
counter
TC

8 avril 2003
14

But du diagnostic
►
►
Étant donnée une série d'observations,
retrouver une séquence d'événements
expliquant les observations
Exemple :

Compteur = 1

Observations = (doAlarm_1)


Diagnostic =
(fault_1 ; inc ; alarm ; do_Alarm_1 ; back_1)
8 avril 2003
15

Système à planifier
Bomb in the Toilet [McDermott::1987]
(version déterministe)
►

n valises armées d'une bombe
►
Neutraliser une bombe se fait en jetant la
bombe dans les toilettes (dunk_i) ce qui
bouche les toilettes
►
Si les toilettes sont bouchées, il faut tirer la
chasse d'eau (flush)
8 avril 2003
16

Modélisation
toilettes
valise i
But : trouver un plan pour neutraliser les
bombes et conserver les toilettes débouchées

8 avril 2003
17

Interversibilité
►
Soit L, un langage composé de séquences
d'événements.
►
Deux événements a et b (a  b) sont
interversibles sur un langage L dans un
automate A=<Q,E,T> ssi q  Q,   L :
 ena;;b(q)

►

 enb;;a (q)
ena;;b (q)  a;;b(q) = b;;a(q)
On note : ab(L)
8 avril 2003
18

Théorème 2
Si deux événements a et b peuvent être
intervertis sur les langages Li dans les
automates Ai, alors
a et b peuvent être intervertis sur le langage L
dans l'automate A avec :
L = L1  ...  Ln et
A = synchronisation des automates Ai

8 avril 2003
19

But de l'algorithme
Deux séquences s1 et s2 sont inv-équivalentes
si s2 peut être obtenue à partir de s1 en
intervertissant des événements conformément
aux propriétés d'interversibilité
But : éviter de développer deux séquences
inv-équivalentes

8 avril 2003
20

Algorithme de dépliage
d'automate
► Noeud_racine
= creer_noeud_racine(etatInitial)
► Noeuds_non_developpes
= {Noeud_racine}
► tant
que (aucune solution trouvée) et
(il reste des noeuds non développés)

n'  choisir un noeud de Noeuds_non_developpes

pour tout événement b applicable en n', b != evites(n')


n  creer_noeud(n')

calcul_evites(n,n')
fin pour tout
 ► fin tant que
8 avril 2003
21

Exemple
Automate très simple
avec ab({c})
Dépliage
normal

Algorithme 1
8 avril 2003
22

Calcul de L(a)
► Soient
► Soit
b l’événement menant de n’ à n
► Soit
Lab le langage tel que ab(Lab)
► Ln(a)

un nœud n et son nœud père n’
= suffixe(Ln’(a),b)  L

avec L = Lab si a a déjà été développé depuis n’

L =  sinon
8 avril 2003
23

Algorithme 2

►
Permet de construire des langages Lab tels
que ab(Lab)
►
Les langages construits sont de la forme S*
avec S  E pour qu'ils soient plus faciles à
manipuler
8 avril 2003
24

Exemple du diagnostic
►
Beaucoup d’événements interversibles
 Exemple
: fault_ifault_j(S*),
avec : S = {fault_k, back_k, doAlarm_k, inc,
doReset | i  j, i  k, j  k}

Cpt
1
1
1
2
2
2
obs
1
3
6
2
4
6
Algorithme
classique
temps
nœuds
553 ms
82
2 h 8 mn
5077
2 mn 49 s
1207
8 avril 2003
-
Algorithme 1
temps
429 ms
22 s 121 ms
2 mn 52 ms
5 s 732 ms
1 mn 29 s
5 mn 22 s
nœuds
67
427
967
372
1265
2190
25

Exemple de la planification
► Interversibilité
entre les événements dunk_i
 Exemple
: dunk_idunk_j(S*),
avec : S = {flush, dunk_k, | i  j, i  k, j  k}

valises
3
4
5
6
7
8
9
Algorithme classique
temps
nœuds
6 ms
28
82 ms
108
2 s 787 ms
534
6 mn 41 s
3196
6 h 21 mn
22362
8 avril 2003
Algorithme 1
temps
nœuds
6 ms
17
24 ms
33
102 ms
65
440 ms
129
2 s 157 ms
257
28 s 131 ms
513
3 min 46 s
1025
26

Conclusion et perspectives
► Conclusion


►
L’interversibilité permet de réduire le nombre de
transitions explorées dans certains cas
Définition de traces de séquences
inv-équivalentes
Perpectives :


:
Généralisation pour des automates non
déterministes (applicabilité)
8 avril 2003
27
Téléchargement