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 : ab(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 ab({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 ab(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 ab(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_ifault_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_idunk_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