Résolution générique à la volée de systèmes d équations booléennes et applications



Documents pareils
Outils logiciels pour la combinaison de vérification fonctionnelle et d évaluation de performances au sein de CADP

Chapitre 5 : Flot maximal dans un graphe

Model checking temporisé

Application au protocole POTS

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Conception des systèmes répartis

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Les diagrammes de modélisation

aux différences est appelé équation aux différences d ordre n en forme normale.

Raisonnement probabiliste

Les structures de données. Rajae El Ouazzani

Grammaires d unification

Ordonnancement temps réel

Programmation par contraintes. Laurent Beaudou

VÉRIFICATION DES SYSTÈMES À PILE AU MOYEN DES ALGÈBRES DE KLEENE

LE PROBLEME DU PLUS COURT CHEMIN

Intelligence Artificielle Planification

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Évaluation et implémentation des langages

Introduction à la Programmation Parallèle: MPI

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Algorithmes de recherche

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Architecture des Systèmes d Information Architecture des Systèmes d Information

Cours de Génie Logiciel

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

Big Data et Graphes : Quelques pistes de recherche

Chp. 4. Minimisation d une fonction d une variable

Les processus légers : threads. Système L3, /31

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Algorithmique et Programmation, IMA

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Algorithmique et Programmation Fonctionnelle

Initiation à LabView : Les exemples d applications :

Cours de Master Recherche

Programmation Par Contraintes

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

IFT1215 Introduction aux systèmes informatiques

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Formula Negator, Outil de négation de formule.

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

INF601 : Algorithme et Structure de données

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

Rappels sur les suites - Algorithme

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Intelligence artificielle appliquée à l automatique

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Plus courts chemins, programmation dynamique

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Comparer l intérêt simple et l intérêt composé

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

MASTER SIS PRO : logique et sécurité DÉTECTION D INTRUSIONS. Odile PAPINI, LSIS. Université de Toulon et du Var. papini@univ-tln.

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Programmes des classes préparatoires aux Grandes Ecoles

Sélection du contrôleur

Programmation parallèle et distribuée

Chapitre 4 : Exclusion mutuelle

Programmation linéaire

Contribution à l algorithmique de la vérification

Cours de Programmation 2

Traduction des Langages : Le Compilateur Micro Java

Qualité du logiciel: Méthodes de test

Algèbre binaire et Circuits logiques ( )

Fonctions de deux variables. Mai 2011

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Introduction aux algorithmes répartis

Algorithmique des Systèmes Répartis Protocoles de Communications

Resolution limit in community detection

UNIVERSITÉ DEMONTRÉAL

Limitations of the Playstation 3 for High Performance Cluster Computing

Logiciel Libre Cours 3 Fondements: Génie Logiciel

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Big Data et Graphes : Quelques pistes de recherche

Le transistor bipolaire

Les algorithmes de base du graphisme

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

Quelques Algorithmes simples


4.2 Unités d enseignement du M1

L exclusion mutuelle distribuée

A.3 Les méthodes : L applicabilité

Réseaux de preuves booléens sous-logarithmiques

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Chap. 3: Le modèle de données entité-association (E.A.)

Modélisation de la Reconfiguration Dynamique appliquée à un décodeur LDPC Non Binaire

Informatique Générale

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Entraînement au concours ACM-ICPC

1 Recherche en table par balayage

Introduction à MATLAB R

Introduction à la théorie des graphes. Solutions des exercices

Rapport d activité. Mathieu Souchaud Juin 2007

Quelques tests de primalité

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

MCMC et approximations en champ moyen pour les modèles de Markov

Initiation. àl algorithmique et à la programmation. en C

TD de supervision. J.P. Chemla. Polytech Tours Département productique 2ème année

Algorithmes de Transmission et de Recherche de l Information dans les Réseaux de Communication. Philippe Robert INRIA Paris-Rocquencourt

Transcription:

Résolution générique à la volée de systèmes d équations booléennes et applications Radu Mateescu INRIA Rhône-Alpes / VASY

Plan Introduction Systèmes d équations booléennes d alternance 1 Algorithmes de résolution à la volée Vérification par équivalence et logique temporelle Implémentation et expérimentation Conclusion et travaux futurs 2003 Radu Mateescu 2

Introduction Vérification énumérative : Fiabilité des systèmes concurrents à nombre fini d états Construction de l espace d états par énumération explicite des états ( vérification symbolique) Adaptée aux systèmes asynchrones non-déterministes Approches traditionnelles : Vérification par équivalence (equivalence checking) Vérification par logique temporelle (model checking) Solution adoptée : Traduction du problème de vérification vers la résolution d un système d équations booléennes (SEB) Génération de diagnostics (fragments de l espace d états) expliquant le résultat de la vérification 2003 Radu Mateescu 3

Systèmes d équations booléennes (syntaxe) Un SEB est un tuple B = (x, M 1,, M n ), où x X : variable booléenne principale M i = { x j =σ i op j X j } j in [1, mi] : blocs d équations σ i { µ, ν } : signe (point fixe) du bloc i op j {, } : opérateur de l équation j X j X : variables en partie droite de l équation j F = (disjonction vide) et T = (conjonction vide) x j dépend de x k ssi x k X j M i dépend de M l ssi une x j de M i dépend d une x k de M l Bloc fermé : ne dépend pas d autres blocs SEB d alternance 1 : M i ne dépend que de M i+1 M n 2003 Radu Mateescu 4

Exemple x 1 = µ x 2 x 3 x 7 = ν x 8 x 9 x 2 = µ x 3 x 4 x 8 = ν T M 1 x 3 = µ x 2 x 7 M 3 x 9 = ν F x 4 = µ x 5 x 6 M 2 x 5 = µ x 8 x 9 x 6 = µ F 2003 Radu Mateescu 5

Bloc acyclique : Blocs particuliers Pas de dépendances cycliques entre les variables du bloc Var. x i disjonctive (conjonctive) : op i = (op i = ) Bloc disjonctif : Comporte des variables disjonctives Et des variables conjonctives avec un seul successeur non constant dans le bloc (le dernier en partie droite de l équation) les autres successeurs sont des constantes ou des variables libres (définies dans d autres blocs) Bloc conjonctif : définition duale 2003 Radu Mateescu 6

Systèmes d équations booléennes (sémantique) Contexte : fonction partielle δ : X Bool Sémantique d une formule booléenne : [[ op { x 1,, x p } ]] δ = op (δ (x 1 ),, δ (x p )) Sémantique d un bloc : [[ { x j =σ op j X j } j in [1, m] ]] δ = σφ δ Φ δ : Bool m Bool m Φ δ (b 1,, b m ) = ([[ op j X j ]] (δ [b 1 /x 1,, b m /x m ])) j in [1, m] Sémantique d un SEB : [[(x, M 1,, M n ) ]] = δ 1 (x) δ n = [[ M n ]] [] (M n fermé) δ i = ([[ M i ]] δ i+1 ) δ i+1 (M i dépend de M i+1 M n ) 2003 Radu Mateescu 7

Résolution globale SEB B = (x, M 1,, M n ) d alternance 1 Primitive : calcul de la sémantique d un bloc Par ordre inverse des dépendances δ n = [[ M n ]] [], δ i = ([[ M i ]] δ i+1 ) δ i+1 Application «brutale» du théorème de Knaster-Tarski [[ { x j =µ op j X j } j in [1, m] ]] δ = µφ δ = k 0 Φ δk (F,, F) [[ { x j =ν op j X j } j in [1, m] ]] δ = νφ δ = k 0 Φ δk (T,, T) Prendre la valeur de x dans M 1 : δ 1 (x) Inconvénients : Nécessite la construction complète du SEB Risque de calculer des informations «inutiles» 2003 Radu Mateescu 8

Exemple x 1 = µ x 2 x 3 x 7 = ν x 8 x 9 x 2 = µ x 3 x 4 x 8 = ν T M 1 x 3 = µ x 2 x 7 M 3 x 9 = ν F x 4 = µ x 5 x 6 M 2 x 5 = µ x 8 x 9 x 6 = µ F 2003 Radu Mateescu 9

Résolution locale SEB B = (x, M 1,, M n ) d alternance 1 Primitive : calcul d une variable d un bloc Une routine de résolution R i associée à M i R i (x j ) calcule la valeur de xj dans Mi Evaluation des parties droites des équations+ substitution Pile des appels R 1 (x) R n (x k ) bornée par la profondeur du graphe de dépendances entre blocs Style «coroutine» : chaque Ri doit garder son contexte Avantages : Permet de construire le SEB «à la volée» Calcule uniquement des informations «utiles» 2003 Radu Mateescu 10

Exemple x 1 = µ x 2 x 3 x 7 = ν x 8 x 9 x 2 = µ x 3 x 4 x 8 = ν T M 1 x 3 = µ x 2 x 7 M 3 x 9 = ν F x 4 = µ x 5 x 6 M 2 x 5 = µ x 8 x 9 x 6 = µ F 2003 Radu Mateescu 11

Principe des algorithmes locaux Représentation des blocs comme graphes booléens Au bloc M = { x j = µ op j X j } j in [1, m] on associe le graphe booléen G = (V, E, L, µ), où : V = { x 1,, x m } : ensemble de sommets (variables) E = { (x i, x j ) x j X i } : ensemble d arcs (dépendances) L : V {, }, L (x j ) = op j : étiquetage des sommets Principe des algorithmes : Exploration en avant de G en partant de x V Propagation en arrière des variables stables (calculées) Terminaison: x est stable ou G est exploré totalement 2003 Radu Mateescu 12

Exemple SEB (µ-bloc) graphe booléen x 1 = µ x 2 x 3 x 2 = µ F x 3 = µ x 4 x 5 x 4 = µ T x 5 = µ x 1 1 2 3 : -variables : -variables 4 5 2003 Radu Mateescu 13

Trois critères d efficacité Soit B = (x, M 1,, M n ) un SEB d alternance 1. Pour chaque routine R i associée à M i : La complexité en temps de R i (x j ) dans le pire des cas doit être O ( V + E ) complexité linéaire pour la résolution de B Pendant l exécution de R i (x j ), chaque nouvelle variable explorée doit être «reliée» à x j par (au moins) une séquence de variables instables limiter l exploration du graphe aux variables «utiles» Après la fin de R i (x j ), toutes les variables explorées doivent être stables mémoriser les résultats entre appels successifs de R i (xj) 2003 Radu Mateescu 14

Algorithme A1 S applique à tous les types de blocs Parcours en profondeur (DFS) du graphe booléen Propagation en arrière des variables stables Pré-calcul de diagnostic Satisfait A, B, C Complexité en mémoire O ( V + E ) Version optimisée de [Andersen-94] Développé pour le µ-calcul régulier (EVALUATOR 3.0) [Mateescu-Sighireanu-00] 2 3 4 1 5 2003 Radu Mateescu 15

Algorithme A2 S applique à tous les types de blocs 1 Parcours en largeur (BFS) du graphe booléen Propagation en arrière des variables stables 2 3 Pré-calcul de diagnostic Satisfait A, C 4 5 6 7 Complexité en mémoire O ( V + E ) Diagnostics de profondeur réduite 8 9 10 2003 Radu Mateescu 16

Algorithme A3 S applique uniquement aux blocs acycliques Parcours DFS du graphe booléen Propagation en arrière des variables stables Pré-calcul de diagnostic Satisfait A, B, C Pas de stockage des arcs Complexité en mémoire O ( V ) Développé pour vérifier des traces de simulation [Mateescu-02] 2 3 5 6 1 4 2003 Radu Mateescu 17

Algorithme A4 S applique uniquement aux blocs disjonctifs ou conjonctifs Parcours en profondeur (DFS) du graphe booléen 1 Propagation en arrière des variables stables 2 4 Détection et stabilisation des CFC Pas de stockage des arcs 3 5 6 Satisfait A, B, C Complexité en mémoire O ( V ) CFC de variables F CFC de variables T 2003 Radu Mateescu 18

Récapitulatif A1 (DFS, général) Satisfait A, B, C Complexité en mémoire O ( V + E ) A2 (BFS, général) Satisfait A, C + diagnostics «petits» Complexité en mémoire O ( V + E ) Complexité A3 (DFS, acyclique) en temps Satisfait A, B, C O ( V + E ) Complexité en mémoire O ( V ) A4 (DFS, disjonctif) Satisfait A, B, C Complexité en mémoire O ( V ) 2003 Radu Mateescu 19

Applications Vérification par équivalences/préordres Vérification par logiques temporelles à la volée

Systèmes de transitions étiquetées STEs : modèles pour les systèmes parallèles asynchrones Un STE M = (S, A, T, s 0 ) Représentations d un STE : explicite (fonction «prédécesseur» et/ou «successeur») Calculs itératifs sur les ensembles d états Environnement BCG (Binary Coded Graphs) [Garavel-92] implicite (fonction «successeur») SEND ACK TOUT Exploration à la volée de la relation de transition Environnement Open / Caesar [Garavel-98] τ DELIV RECV 2003 Radu Mateescu 21

Vérification par équivalence (equivalence checking) description du système description du service compilateur compilateur STE 1 equivalence checker STE 2 vrai / faux + diagnostic 2003 Radu Mateescu 22

Equivalence forte Soit 2 STE M 1 = (S 1, A, T 1, s 01 ) et M 2 = (S 2, A, T 2, s 02 ) S 1 S 2 est la plus grande relation t.q. s 1 s 2 ssi a A. s 1 a s 1 T 1. s 2 a s 2 T 2. s 1 s 2 et a A. s 2 a s 2 T 2. s 1 a s 1 T 1. s 1 s 2 M 1 M 2 ssi s 01 s 02 c a c c a b b c a 2003 Radu Mateescu 23

Traduction vers un SEB Principe : s 1 s 2 ssi X s1,s2 est vraie SEB général : X s1,s2 = ν ( s1 a s1 s2 a s2 X s1,s2 ) ( s2 a s2 s1 a s1 X s1,s2 ) SEB simplifié : X s1,s2 = ν ( s1 a s1 Y a,s1,s2 ) ( s2 a s2 Z a,s1,s2 ) Y a,s1,s2 = ν Z a,s1,s2 = ν s2 a s2 X s1,s2 s1 a s1 X s1,s2 s 1 s 2 (préordre) 2003 Radu Mateescu 24

Exemple 0 0 c 1 m t 1 c m m 3 t 2 3 2 4 SEB général : X 00 = ν (X 11 X 13 ) X 11 X 13 X 11 = ν (X 22 F) X 22 X 13 = ν (F X 34 ) X 34 SEB simplifié : X 00 = ν Y X 11 X 13 Y = ν X 11 X 13 X 11 = ν (X 22 F) X 22 X 13 = ν (F X 34 ) X 34 2003 Radu Mateescu 25

SEB acyclique Graphe booléen acyclique : Un des deux STEs est acyclique (séquence, arbre, ) X s1,s2 a X s1,s2 b X s1,s2 c Application de l algorithme A3 (mémoire ) Utile surtout pour la vérification par préordre Exemple : relecture de séquences d exécution STE 1 : modélisation d un système STE 2 : ensemble de scénarios d exécution / simulation Vérifier que STE 1 accepte STE 2 2003 Radu Mateescu 26

SEB conjonctif Graphe booléen conjonctif : Préordre STE1 STE2 et STE2 déterministe (+ vice-versa) Equivalence et un des deux STEs est déterministe X s1,s2 = ( s1 a s1a s2 a s2 X s1a,s2 ) ( s1 b s1b s2 b s2 X s1b,s2 ) ( s2 l s2 s1 l s1a X s1l,s2 ) = ( s2 a s2 X s1a,s2 ) ( s2 b s2 X s1b,s2 ) ( s2 l s2 X s1l,s2 ) = s2 l s2 X s1l,s2 Application de l algorithme A4 (mémoire ) 2003 Radu Mateescu 27

Equivalences faibles Soit 2 STE M 1 = (S 1, A τ, T 1, s 01 ), M 2 = (S 2, A τ, T 2, s 02 ) τ : action interne, A τ = A { τ } Equivalence τ*.a : X s1,s2 = ν ( s1 τ*a s1 s2 τ*a s2 X s1,s2 ) ( s2 τ*a s2 s1 τ*a s1 X s1,s2 ) Equivalence de sûreté : X s1,s2 = ν Y s1,s2 Y s2,s1 Y s1,s2 = ν ( s1 τ*a s1 s2 τ*a s2 Y s1,s2 ) Schéma similaire : équivalence observationnelle, de branchement, delay, 2003 Radu Mateescu 28

Récapitulatif Graphe booléen général : Toutes les équivalences et leurs préordres Algorithmes A1 et A2 Graphe booléen acyclique : Forte : un des deux STEs acyclique τ*.a et sûreté : un STE acyclique (circuits de τ autorisés) Branching et observationnelle : les deux STEs acycliques Algorithme A3 (mémoire ) Graphe booléen conjonctif : Toutes les équivalences : un des deux STE déterministe Algorithme A4 (mémoire ) 2003 Radu Mateescu 29

Vérification par logique temporelle (model checking) description du système propriétés compilateur modèle (STE) model checker vrai / faux + diagnostic 2003 Radu Mateescu 30

Mu-calcul modal Soit M = (S, A, T, s 0 ) un STE. Syntaxe du µ-calcul modal : Formules sur actions α ::= a α α 1 α 2 Formules sur états ϕ ::= F ϕ ϕ 1 ϕ 2 α ϕ X µx. ϕ 2003 Radu Mateescu 31

Formules sur actions Soit M = (S, A, T, s 0 ). Sémantique [[ α ]] A : [[ a ]] = { a } [[ α ]] = A \[[ α ]] [[ α 1 α 2 ]] = [[ α 1 ]] [[ α 2 ]] Opérateurs dérivés : T = a a F = T α 1 α 2 = ( α 1 α 2 ) α 1 α 2 = α 1 α 2 α 1 α 2 = (α 1 α 2 ) (α 2 α 1 ) 2003 Radu Mateescu 32

Formules sur états Contexte ρ : Y 2 S. Sémantique [[ ϕ ]]ρ S : [[ F ]]ρ = [[ ϕ ]]ρ = S \[[ ϕ ]]ρ [[ ϕ 1 ϕ 2 ]]ρ = [[ ϕ 1 ]]ρ [[ ϕ 2 ]]ρ [[ α ϕ ]]ρ = { s S (s, a, s ) T. a [[ α ]] s [[ ϕ ]]ρ } [[ Y ]]ρ = ρ (Y) [[ µy. ϕ ]]ρ = k 0 Φ ρk ( ) Φ ρ : 2 S 2 S, Φ ρ (U) = [[ ϕ ]]ρ[u/y] Opérateurs dérivés : [α]ϕ= α ϕ νy. ϕ = µy. ϕ [ Y / Y] 2003 Radu Mateescu 33

Exemples Absence de blocage sur l état courant T T Accessibilité potentielle d une action a µx. a T T X... Pas de RECV avant un SEND νx. [ RECV ] F [ SEND ] X SEND SEND RECV...... a RECV 2003 Radu Mateescu 34

Mu-calcul d alternance 1 Absence de récursion mutuelle entre les formules de plus petit et de plus grand point fixe Exemple : après chaque SEND, il y aura potentiellement un RECV νx. [ SEND ] (µy. RECV T T Y ) [ T ] X Variante équationnelle : { X = ν [ SEND ] Y [ T ] X } { Y = µ RECV T T Y } pas de dépendances cycliques entre les blocs 2003 Radu Mateescu 35

Traduction vers SEB d alternance 1 Principe : s = X ssi X s est vraie Propriété : { X = ν [ SEND ] Y [ T ] X } { Y = µ RECV T T Y } SEB : { X s = ν ( s SEND s Y s ) ( s s X s ) } { Y s = µ ( s RECV s T) ( s s Y s ) } 1 SEND TOUT X 1 = ν Y 2 X 2 Y 1 = µ Y 2 RECV 2 τ 3 X 2 = ν X 1 X 3 X 3 = ν X 1 Y 2 = µ Y 1 Y 3 Y 3 = µ T 2003 Radu Mateescu 36

SEB acyclique Graphe booléen acyclique : STE acyclique et formules gardées Traductions des opérateurs de CTL (et ACTL) : E[ϕ 1 U ϕ 2 ] = µx. ϕ 2 (ϕ 1 T X) A[ϕ 1 U ϕ 2 ] = µx. ϕ 2 (ϕ 1 T T [T ] X) Réduction pour le µ-calcul complet [Mateescu-02] Elimination des opérateurs de plus grand point fixe formule d alternance 1 Traduction en forme gardée (taille quadratique) Application de l algorithme A3 (mémoire ) 2003 Radu Mateescu 37

SEB disjonctif Graphe booléen disjonctif : Opérateur de potentialité de CTL E [ϕ 1 U ϕ 2 ] = µx. ϕ 2 (ϕ 1 T X) { X = µ ϕ 2 Y, Y = µ ϕ 1 Z, Z = µ T X } { X s = µ ϕ 2s Y s, Y s = µ ϕ 1s Z s, Z s = µ s s X s } Modalité de possibilité de PDL (a b)*. c T { X = µ c T a X b X } { X s = µ ( s c s T) ( s a s X s ) ( s b s X s ) } Application de l algorithme A4 (mémoire ) 2003 Radu Mateescu 38

SEB conjonctif Graphe booléen conjonctif : Opérateur d inévitabilité de CTL A [ϕ 1 U ϕ 2 ] = µx. ϕ 2 (ϕ 1 T T [T ] X) { X = µ ϕ 2 Y, Y = µ ϕ 1 Z [T ] X, Z = µ T T } { X s = µ ϕ 2s Y s, Y s = µ ϕ 1s Z s ( s s X s ), Z s = µ s s T } Modalité de nécessité de PDL [ (a b)*. c ] F { X = µ [ c ] F [ a ] X [ b ] X } { X s = µ ( s c s F) ( s a s X s ) ( s b s X s ) } Application de l algorithme A4 (mémoire ) 2003 Radu Mateescu 39

Récapitulatif Graphe booléen général : STE quelconque et formule de µ-calcul d alternance 1 Algorithmes A1 et A2 Graphe booléen acyclique : STE acyclique et formule gardée (CTL, ACTL) STE acyclique et formule de µ-calcul (+ réduction) Algorithme A3 (mémoire ) Graphe booléen disjonctif / conjonctif : STE quelconque et formules de CTL, ACTL, PDL Algorithme A4 (mémoire ) 2003 Radu Mateescu 40

Bibliothèque CAESAR_SOLVE SEB (graphe booléen) variable graphe implicite (fonction successeur) bibliothèque CAESAR_SOLVE (A1 A4 & diagnostic) graphe implicite (fonction successeur) diagnostic (sous-graphe booléen) valeur bibliothèques OPEN/CAESAR 2003 Radu Mateescu 41

BISIMULATOR et EVALUATOR STE1 STE2 STE formule BISIMULATOR traducteur SEB EVALUATOR traducteur SEB graphe booléen implicite & générateur de diagnostic (.c) graphe booléen implicite & générateur de diagnostic (.c) OPEN/CAESAR CAESAR_SOLVE compilateur C environnement d exécution exécutable vrai / faux diagnostic 2003 Radu Mateescu 42

Quelques mesures de performances Trois protocoles de communication (ABP, BRP, LEP) Algorithme A2 versus A1 : Comparaison STE protocole STE erroné (strong) Vérification propriété fausse sur STE protocole Réductions de 75 % - 99 % en profondeur du diagnostic Algorithme A3 versus A1 : Relecture de séquences (100000 transitions) dans le STE Vérification de propriétés sur les séquences Gains de 15 % - 27 % en mémoire Algorithme A4 versus A1 : Comparaison STE protocole STE service (τ*.a) Vérification de propriétés (ACTL + PDL) Gains de 12 % - 63 % en mémoire 2003 Radu Mateescu 43

Conclusion et travaux futurs Bilan : Algorithmes de résolution locale des SEBs Génération de diagnostics Deux applications : BISIMULATOR et EVALUATOR Bibliothèque générique CAESAR_SOLVE Perspectives : Nouveaux algorithmes («single-scan» sur traces) Nouvelles applications (génération de tests) Parallélisation sur grappes de PC 2003 Radu Mateescu 44