Test des Machines de Mealy

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
LES NOMBRES PREMIERS ET COMPOSÉS
Vocabulaire 6.2 Français II Bon voyage ! 1.
Licence pro MPCQ : Cours
Additions soustractions
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
11 Bienvenue Entrez le nom du groupe ou projet ici mardi, 17 novembre 2009.
Les numéros 70 –
Les numéros
Les identités remarquables
Le, la, les words Possessive Adjectives MINE!!. 2 My in french is mon, ma,mes... Le word/ begins with a vowel: Mon La word: Ma Les word: Mes.
Demande globale, élasticités et équilibre de marché
Sirop de Liège « industriel »
Introduction à la logique
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Technologies et pédagogie actives en FGA. Plan de latelier 1.Introduction 2.Les technologies en éducation 3.iPads 4.TNI 5.Ordinateurs portables 6.Téléphones.
La législation formation, les aides des pouvoirs publics
1 7 Langues niveaux débutant à avancé. 2 Allemand.
Le Concours de Conaissance II Francais I decembre 2012.
COTE DIVOIRE IMAGES DES ATROCITES COMMISES PAR ALASSANE DRAMANE OUATARA, SORO GUILAUMES ET LEURS HOMMES 1.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
SERABEC Simulation sauvetage aérien avec un Hercule C130. Départ de St-Honoré le 4 octobre Durée de vol 3 heures. Premier vol en Hercule pour les.
1 5 octobre 2011 / paw Présentation du 7 octobre 2011.
La méthodologie………………………………………………………….. p3 Les résultats
Le Concours de Conaissance III Francais I fevrier 2013.
Écrit, animé et illustré par Sheila CartwrightTraduit par
Jack Jedwab Association détudes canadiennes Le 27 septembre 2008 Sondage post-Olympique.
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
1 Choisir une catégorie. Vous recevrez la réponse, vous devez donner la question. Cliquez pour commencer.
Présentation générale
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
Le drapeau canadien comme symbole de fierté nationale : une question de valeurs partagées Jack Jedwab Association détudes canadiennes 28 novembre 2012.
Le Concours de Conaissance Francais I novembre 2012.
Si le Diaporama ne s'ouvre pas en plein écran Faites F5 sur votre clavier.
Titre : Implémentation des éléments finis sous Matlab
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
LES NOMBRES PREMIERS ET COMPOSÉS
CLL11 : chlorambucil (CLB) versus CLB + rituximab (R)
Matériel dont vous aller avoir besoin pour cette séance
Logiciel gratuit à télécharger à cette adresse :
Les chiffres & les nombres
1.Un rang de données multicolores 2. Deux permutations des n premiers entiers 3. b permutations des k premiers entiers 4. Choix de n points dans [0,1]
RACINES CARREES Définition Développer avec la distributivité Produit 1
Systèmes mécaniques et électriques
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Titre : Implémentation des éléments finis en Matlab
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Influenza: le modèle épidémiologique belge 29 Mai 2009
Aire d’une figure par encadrement
Comment rendre une femme heureuse…
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
Les fondements constitutionnels
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Certains droits réservés pour plus d’infos, cliquer sur l’icône.
Nom:____________ Prénom: ___________
Annexe Résultats provinciaux comparés à la moyenne canadienne
Commission paritaire de suivi des opérations de reclassement repositionnement dans le cadre du droit d’option Statistiques novembre 2010.
Les Chiffres Prêts?
La formation des maîtres et la manifestation de la compétence professionnelle à intégrer les technologies de l'information et des communications (TIC)
Transcription de la présentation:

Test des Machines de Mealy Master 2 Recherche S&L « Méthodes de test » Test des Machines de Mealy Stavros Tripakis Laboratoire Verimag

Les machines à entrées/sorties synchrones (machines de Mealy) Entrées: e1 e2 e3 … Fonctionnement: Sorties: s1 s2 s3 …

Un exemple de machine s1 s2 b/1 a/1 a/0

Objectif : test de conformité Spécification Implémentation Machine A Machine B 1 2 3 4 5 a/1 a/0 Modèle Boite noire Est-elle conforme à A ? Se comporte-t-elle comme A ?

Possibilités et impossibilités a/0 s1 b/1 Comment tester la conformité pour cette spécification ? Conformité = Isomorphisme

Un exemple un peu plus compliqué … Spécification Séquence de test a a b a b b s1 s2 b/1 a/1 a/0 Observation attendue ? 0 1 1 1 1 Est-ce correct ?

Pas tout à fait … Spécification Machine B Séquence de test a a b a b b Observation attendue ? 0 1 1 1 1 a/0 a/1 t2 b/1

Plan du cours Rappel sur les machines de Mealy Problèmes d’identification d’état: Séquences « homing » et « synchronizing » Séquences « distinguishing » Séquences « UIO » Existence, construction, longueur, complexité Test de conformité

Machines de Mealy: formalisation et rappel de notions M = (I, O, S, , ) Ensemble d’états fini Déterministe et complète

Machines de Mealy: formalisation et rappel de notions M = (I, O, S, , ) Exemple : Table des transitions Notation s1 s2 b/1 a/1 a/0

Machines de Mealy: formalisation et rappel de notions M = (I, O, S, , ) Équivalence des états, séquences « separating » Machines minimales Algorithme de minimisation Machines équivalentes Machines isomorphes Machines fortement connexes

Plan du cours Rappel sur les machines de Mealy Problèmes d’identification d’état: Séquences « homing » et « synchronizing » Séquences « distinguishing » Séquences « UIO » Existence, construction, longueur, complexité Test de conformité

Problèmes d’identification d’état La machine est connue, son état est inconnu Plusieurs types de problèmes: « homing » : identifier l’état final « synchronizing » : mener vers un état donné « distinguishing » : identifier l’état initial « UIO » (« unique I/O ») : vérifier l’état initial Ca va servir pour le test de conformité

Exemple : séquences homing et synchronizing (1) b/1 a/1 a/0 « M1 » La séquence « a » est homing. Elle est aussi synchronizing.

Exemple : séquences homing et synchronizing (2) a/0 s1 s3 b/1 b/0 a/1 s2 Cette machine est minimale (pourquoi ?) Homing : a b (d’autres ?) Pas de synchronizing (pourquoi ?)

Exemple : séquences homing et synchronizing (3) Pas de homing/synchronizing Homing/synchronizing : a s1 s2 b/1 a/0 s1 a/1 a/1 s2 Ces machines ne sont pas minimales (pourquoi ?)

Séquences homing et synchronizing: des faits Toute séquence synchronizing est aussi une séquence homing… …mais pas l’inverse. Machines non-minimales : peuvent avoir ou ne pas avoir des séquences homing/synchronizing. Toute machine minimale a une séquence homing… …mais elle peut ne pas avoir de synchronizing.

Comment trouver des séquences homing: le « successor tree » (pour machines minimales) (s1, s2, s3) « M2 » a/0 s1 s3 b/1 b/0 a/1 s2 a 1 (s1, s3) (s2) b 1 (s2, s3) (s1) a 1 (s2) (s1) (s3)

Existence des séquences homing (pour machines minimales) Toute machine minimale avec n états a une séquence homing de longueur

Longueur des séquences homing Il existe des machines qui nécessitent une séquence de longueur (exercice)

Comment trouver des séquences synchronizing (s’il en existe) Utiliser le « successor tree » Modifications: Ignorer les sorties Arrêter l’exploration quand on tombe sur une boucle Arrêter quand on trouve un nœud singleton: séquence synchronizing trouvée !

Exemple: synchronizing b/1 a/1 a/0 « M1 » (s1, s2) a b (s1) (s1, s2)

Exemple: pas de synchronizing b/1 b/0 a/1 s2 (s1, s2, s3) a b (s1, s2, s3) (s1, s2, s3)

Exercice Trouver si la machine a une synchronizing entrées états 1 A 1 A B, 0 D, 0 B A, 0 C D, 1 D C, 0 états Trouver si la machine a une synchronizing

Longueur des séquences synchronizing Si une séquence synchronizing existe, alors il existe une de longueur Il existe des machines qui nécessitent une séquence de longueur (exercices)

Plan du cours Rappel sur les machines de Mealy Problèmes d’identification d’état: Séquences « homing » et « synchronizing » Séquences « distinguishing » Séquences « UIO » Existence, construction, longueur, complexité Test de conformité

Exemple : une séquence distinguishing b/1 a/1 a/0 « M1 » La séquence « a » est distinguishing: Si on observe « 0 », on était à s1 Si on observe « 1 », on était à s2 Toute séquence distinguishing est aussi une séquence homing (pourquoi ?)

Exemple: pas de séquence distinguishing (machine non-minimale) b/1 a/0 Une machine non-minimale ne peut avoir de séquence distinguishing (pourquoi ?)

Exemple: pas de séquence distinguishing (machine minimale) b/0 s3 b/1 Ca ne peut pas commencer par a, Ca ne peut pas commencer par b, M4 est minimale (pourquoi ?)

Comment trouver des séquences distinguishing (s’il en existe) Utiliser le « successor tree » pour homing Modifications: Arrêter l’exploration quand on tombe sur une boucle Arrêter l’exploration quand on tombe sur un nœud avec deux mêmes états dans un block Arrêter quand on trouve un nœud avec que des singletons: séquence distinguishing trouvée !

Exemple : distinguishing (s1, s2, s3) « M2 » a/0 s1 s3 b/1 b/0 a/1 s2 a 1 (s1, s3) (s2) b 1 (s2, s3) (s1) a 1 (s2) (s1) (s3)

Exemple : pas de distinguishing (s1, s2, s3) « M4 » a/0 s1 s2 b/0 s3 b/1 a (s1, s1, s2) b 1 (s3, s3) (s3)

Des tests « adaptatifs » b/0 a/1 a/0 « M5 » s3 s5 s4 s1 S4 S1 S3 a b S5 S6 S2 1 Un test adaptatif : il est distinguishing ! M5 est minimale (pourquoi?) M5 n’a pas de séquence distinguishing (pourquoi?)

Tests adaptatifs : des faits Tout test non-adaptatif peut être vu comme adaptatif. Il existe des machines qui ont un distinguishing adaptatif mais pas de distinguishing non-adaptatif. La longueur des adaptatifs est inférieure (dans le pire cas polynomiale vs. exponentielle pour les non-adaptatifs). L’adaptation n’influence pas l’existence de séquences synchronizing (pourquoi ?)

Plan du cours Rappel sur les machines de Mealy Problèmes d’identification d’état: Séquences « homing » et « synchronizing » Séquences « distinguishing » Séquences « UIO » Existence, construction, longueur, complexité Test de conformité

Exemple : séquence UIO La séquence « a » est UIO pour s1: b/1 a/1 a/0 « M1 » La séquence « a » est UIO pour s1: Si on observe « 0 », on était à s1 Si on observe « 1 », on n’était pas à s1 S’il existe un test distinguishing alors il existe une séquence UIO pour tout état (pourquoi ?) Une séquence UIO peut ne pas exister pour un ou plusieurs états (pourquoi ?)

Exemple : séquence UIO La séquence « a » est UIO pour s1: b/1 a/1 a/0 « M1 » La séquence « a » est UIO pour s1: Si on observe « 0 », on était à s1 Si on observe « 1 », on n’était pas à s1 L’adaptation influence-t-elle l’existence de séquence UIO ?

Exemple : séquence UIO La séquence « a » est UIO pour s1: b/1 a/1 a/0 « M1 » La séquence « a » est UIO pour s1: Si on observe « 0 », on était à s1 Si on observe « 1 », on n’était pas à s1 Exercice : proposer une méthode pour chercher des séquences UIO

Complexité Les algorithmes basés sur le « successor tree » sont chers : exponentiels. Peut-on faire mieux ?

Complexité : homing/synchronizing Les problèmes d’existence et construction sont polynomiaux. Idée : utiliser la preuve sur la longueur de homing pour n’explorer qu’un seul chemin dans le successor tree.

Complexité : homing/synchronizing Trouver les séquences les plus courtes est un problème difficile : NP-dur. Réduction du problème 3SAT : au tableau ! Est-ce que j’ai triché ?

Complexité : distinguishing Trouver une séquence non-adaptative (s’il y en a) est difficile : PSPACE-dur. Réduction du problème « Intersection d’Automates Finis ». Trouver des séquences adaptatifs est « facile » : polynomial.

Complexité : UIO Les problèmes suivants sont PSPACE-complets : Est-ce qu’un état s de M a une séquence UIO ? Est-ce que tout état de M a une séquence UIO ? Y a-t-il des états de M qui possèdent une séquence UIO ?

Plan du cours Rappel sur les machines de Mealy Problèmes d’identification d’état: Séquences « homing » et « synchronizing » Séquences « distinguishing » Séquences « UIO » Existence, construction, longueur, complexité Test de conformité

Objectif : test de conformité Spécification Implémentation Machine A Machine B 1 2 3 4 5 a/1 a/0 Modèle Boite noire B conforme à A?

Objectif : test de conformité Spécification Implémentation Machine A Machine B 1 2 3 4 5 a/1 a/0 Modèle Boite noire B équivalente à A ?

Hypothèses Le nombre d'états de B est  k A est minimale pour commencer, k = nombre d'états de A A est minimale si elle ne l’est pas, on peut toujours la minimiser sans changer la spécification A est fortement connexe sinon, on ne peut pas tout tester - pourquoi ?

Objectif : test de conformité Spécification Implémentation Machine A Machine B 1 2 3 4 5 a/1 a/0 Modèle Boite noire B isomorphe à A ?

Méthode Deux phases : Le test final est la concaténation de ces tests. Mener B vers un état donné Pour cela on va utiliser des séquences homing ou synchronizing Parcourir toutes les transitions de B et vérifier qu’elles produisent les bonnes sorties Pour cela on va utiliser des séquences « checking » Pour produire des séquences checking, on peut utiliser des séquences distinguishing, UIO, ou d’autres Le test final est la concaténation de ces tests.

Première phase: mener B vers un état donné s Si A a une séquence synchronizing vers s, utiliser cette séquence. Si A n’a pas de séquence synchronizing : utiliser une séquence homing pour aller vers un état connu utiliser une séquence de transfert pour aller vers s (pourquoi c’est toujours possible ?) Séquence de transfert (s1,s2) : une séquence qui mène de l'état s1 à l'état s2.

Première phase : exemple 1 Machine A Séquence synchronizing pour l'état s1 : a s1 s2 b/1 a/1 a/0 Et pour l'état s2 ?

Première phase : exemple 2 Machine A « M2 » a/0 s1 s3 b/1 b/0 a/1 s2 Pas de séquence synchronizing Séquence homing : a b s1 0 0 s3 1 1 s2 0 1 Etat final Sortie Etat initial

Première phase : exemple 2 Selon l'état final, appliquer : s1 b s3 s2 Nouvel état Séquence de transfert Etat final b b Machine A « M2 » a/0 s1 s3 b/1 b/0 a/1 s2 Le test de la première phase est en général adaptatif

Séquences « checking » Étant donnés une machine A avec n états et un état s de A, Une séquence d’entrées x est une séquence checking pour (A, s) ssi : Pour toute machine B avec ≤ n états, si B n’est pas isomorphe à A, alors pour tout état s’ de B

Séquences checking : quelques faits On peut toujours construire une séquence checking pour une machine minimale En utilisant des séquences « identifying » Problème : longueur peut être exponentielle S’il en existent, on peut aussi utiliser des tests distinguishing (adaptatifs ou pas) Longueur de la séquence checking : polynomiale sur la longueur du test distinguishing et la taille de A

Construction d’une séquence checking à partir d’une séquence distinguishing (I) Objectif : vérifier que B a n états distincts Supposons : x : une séquence distinguishing pour A s1 : l'état initial de A (après la première phase) ti = (si, x) Séquence (I) :

Exemple (I) t1 = (s1, a) = s1 t2 = (s2, a) = s1 (t1,s2) = b Spécification Séquence distinguishing : a t1 = (s1, a) = s1 t2 = (s2, a) = s1 s1 s2 b/1 a/1 a/0 (t1,s2) = b (t2,s1) = vide Séquence (I) : a b a a

Construction d’une séquence checking à partir d’une séquence distinguishing (II) Objectif : vérifier toute transition de B Pour chaque transition Mener la machine à l'état si Appliquer l’entrée a et observer la sortie o Vérifier que l'état destination est bien sj Pour ce faire, appliquer la séquence (II) : (t est l'état de départ, après la séquence précédente)

Exemple (II) t1 = (s1, a) = s1 t2 = (s2, a) = s1 (t1,s2) = b Spécification Séquence distinguishing : a t1 = (s1, a) = s1 t2 = (s2, a) = s1 s1 s2 b/1 a/1 a/0 (t1,s2) = b (t2,s1) = vide Séquence (II) pour : a b b a

Et s’il n’y a que de tests distinguishing adaptatifs ? b S5 S6 S2 1 Pour chaque état si, définir une séquence xi : le chemin de l’arbre x1 = a a b a b a x6 = a b a Les séquences (I) et (II) deviennent :

Longueur de la séquence checking lt = longueur de séquence de transfert < n ld = longueur de séquence distinguishing

Exercice Trouver un test de conformité pour la machine : « M2 » a/0 s1 b/1 b/0 a/1 s2

La vie plus facile : les machines avec « status » ou « reset » Status : dévoile l'état de la machine Un « self-loop » à chaque état « si » de A avec une entrée « status » qui donne une sortie « si ». Reset : amène la machine dans un état donné Une transition de chaque état de A vers un état « s1 » avec entrée « reset » (peu importe la sortie). Hypothèse : « status » et « reset » fonctionnent correctement dans la machine B (« reliable »).

Les machines avec « status » Pour construire une séquence checking : Trouver un chemin qui parcourt toutes les transitions de la machine A. Appliquer l’entrée « status » entre chaque deux autres entrées. Exemple : Chemin (à partir de s1) : a b a b b Checking : s a s b s a s b s b s (entrée « s » implicite) s1 s2 b/1 a/1 a/0

Les machines avec « reset » Pour construire une séquence checking : Trouver un « spanning tree » T Pour chaque état : Appliquer « reset », puis le chemin de T qui mène vers cet etat Vérifier l'état à l’aide d’une séquence distinguishing (ça vérifie aussi les transitions de T) Vérifier les transitions restantes Exemple : T : s1 -> s2 Pour s1 : r a Pour s2 : r b a Puis : r b b (entrée « r » vers s1 implicite) s1 s2 b/1 a/1 a/0

La vie plus difficile : k = n + u (k = borne sur le nombre d'états de B) Le test devient beaucoup plus « cher » : Si le nombre d'entrées est p, alors la longueur du test est Exemple : La machine B est un « combination lock » Machine A (presque) q1 q2 q3 qu s x0 x1 x2 xu-1 xu/faute Machine B

Questions ?

Conclusions Modèle : machines de Mealy Théorie bien développée : Simple, bon pour les circuits Entrées/sorties « synchrones » Théorie bien développée : Algorithmes, propriétés, complexité

Bibliographie Zvi Kohavi, « Switching and finite automata theory », 2nd edition, 1978, McGraw-Hill, Chapter 13. David Lee and Mihalis Yannakakis, « Principles and methods of testing finite-state machines – A survey », Proceedings of the IEEE, vol.84, no.8, August 1996.

Pour aller plus loin D’autres modèles : Machines non-déterministes Machines avec entrées/sorties « asynchrones » Machines étendues avec variables Automates temporisés Machines probabilistes … D’autres relations de conformité D’autres techniques de génération et sélection des tests Algorithmes randomisés Couverture