8 avril Tahiti 2003 : Calcul efficace de trajectoires utilisant l'interversibilité
8 avril Plan ► PrésentationPrésentation ► FormalismeFormalisme ► Présentation des exemplesPrésentation des exemples ► L’interversibilitéL’interversibilité ► AlgorithmesAlgorithmes ► ExemplesExemples ► ConclusionConclusion
8 avril 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 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 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 Modèle modulaire Automate A = (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 Produit synchronisé Automate A = produit synchronisé des automates A i = : ► Q = Q 1 ... Q n ► E = E 1 ... E n ► T = { ((q 1,...,q n ),e,(q 1 ',...,q n ') | i (e E i (q i,e,q i ') T i ) (e E i q i = q i ')}
8 avril Applicabilité ► Événement applicable (enabled ) : e est applicable (noté en e (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 Applicabilité (suite) Théorème 1 : Sur un automate A = produit synchronisé de A i = si q = (q 1,…,q n ) Q en e (q) = i en e (q i ) (= en e (q 1 ) ... en e (q n ))
8 avril Applicabilité (fin) ► Applicabilité d'une suite = e 1 ; … ; e k d'événements : est applicable en un état q si les événements successifs sont applicables : en (q) = en e1 (q) et en (e 1 (q)), ( = e 2 ;... ; e k ) ► Application d'une suite = e 1 ; … ; e k d'événements : Application successive des événements : (q) = e k (… (e 1 (q) …)
8 avril 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 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 Constitués de deux parties : ► L'unité qui peut tomber en panne ► Le contrôleur qui communique avec le TC Composants unit_i controller_i
8 avril 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 TC counter
8 avril ► É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) But du diagnostic
8 avril 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) Système à planifier
8 avril Modélisation But : trouver un plan pour neutraliser les bombes et conserver les toilettes débouchées valise i toilettes
8 avril ► 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= ssi q Q, L : en a; ;b (q) en b; ;a (q) â en a; ;b (q) a; ;b(q) = b; ;a(q) ► On note : a b(L) Interversibilité
8 avril Théorème 2 Si deux événements a et b peuvent être intervertis sur les langages L i dans les automates Ai, alors a et b peuvent être intervertis sur le langage L dans l'automate A avec : L = L 1 ... L n et A = synchronisation des automates A i
8 avril 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 ► 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 Algorithme de dépliage d'automate
8 avril Exemple Automate très simple avec a b({c}) Dépliage normal Algorithme 1
8 avril Calcul de L(a) ► Soient un nœud n et son nœud père n’ ► Soit b l’événement menant de n’ à n ► Soit L ab le langage tel que a b(L ab ) ► L n (a) = suffixe(L n ’(a),b) L â avec L = L ab si a a déjà été développé depuis n’ â L = sinon
8 avril ► Permet de construire des langages L ab tels que a b(L ab ) ► Les langages construits sont de la forme S* avec S E pour qu'ils soient plus faciles à manipuler Algorithme 2
8 avril 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}
8 avril 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}
8 avril 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é)