• Aucun résultat trouvé

Analyse en avant des automates temporisés

N/A
N/A
Protected

Academic year: 2022

Partager "Analyse en avant des automates temporisés"

Copied!
68
0
0

Texte intégral

(1)

Analyse en avant des automates temporisés

Pierre-Alain REYNIER

Mémoire de DEA, DEA Algorithmique 2003/2004, supervisé par Patricia Bouyer et François Laroussinie.

Résumé

Les contraintes temps-réel sont de plus en plus importantes dans les systèmes informatiques actuels, leur vérification devient donc indispensable. Les automates temporisés constituent un modèle très adapté pour la vérification de tels systèmes et sont d’ailleurs implémentés dans différents outils. La plupart de ces model-checkers utilise un algorithme d’analyse en avant à la volée pour décider de problèmes d’accessibilité. Pourtant, il a été prouvé récemment que si cet algorithme est bien correct dans le cadre des automates temporisés sans garde diagonale, il est en fait incorrect dans le cadre plus général des automates temporisés avec gardes diagonales. Le but de ce stage était de comprendre le rôle des gardes diagonales et de proposer des algorithmes corrects pour vérifier ces automates temporisés.

(2)

Remerciements

Je tiens à remercier Patricia Bouyer et François Laroussinie, qui ont supervisé mon stage, pour le temps qu’ils ont pris pour répondre à toutes mes questions et pour travailler avec moi, et pour leur bonne humeur qui rend ce travail encore plus agréable.

Je tiens également à remercier l’ensemble des membres du L.S.V. (ENS de Cachan) où j’ai effectué mon stage pour leur sympathie qui rend ce laboratoire très convivial.

(3)

Table des matières

Introduction 5

I Présentation du problème 9

1 Automates temporisés et décidabilité 10

1.1 Préliminaires . . . 10 1.2 Présentation des automates temporisés . . . 11 1.3 Résultats de décidabilité . . . 12

2 L’algorithme d’analyse en avant 14

2.1 Analyse à la volée . . . 14 2.2 Abstraction . . . 16

3 Correction de l’algorithme... 18

3.1 L’automate contre-exemple . . . 18 3.2 Résultats positifs . . . 20 3.3 Automates temporisés avec ou sans gardes diagonales... . . 21

II Quelle approche du problème ? 23

4 Choix de la méthode 24

4.1 Premières pistes . . . 24 4.2 Présentation de la méthode par raffinements successifs . . . 27 5 Structure de données pour l’analyse de systèmes temporisés 30 5.1 Zones et DBMs . . . 30 5.2 Opérations utilisées par l’algorithme . . . 32

6 Choix de l’outil 33

6.1 Quelques outils existants . . . 33 6.2 Notre choix : CMC . . . 33 6.3 Détail des fonctionnalités implémentées . . . 34

(4)

III Traitement du problème 35

7 Etude des contre-exemples erronés : premières constatations 36

7.1 Transition erronée . . . 36

7.1.1 Premières notations et définitions . . . 36

7.1.2 La transition erronée n’est pas toujours diagonale . . . 37

7.2 Transition instable initiale . . . 37

7.2.1 Définitions . . . 37

7.2.2 La transition instable initiale n’est pas toujours diagonale . . . 39

7.3 Quand les gardes diagonales se cachent... . . 39

8 Deux méthodes pour choisir les gardes diagonales en cause 41 8.1 Critère pour la dédiagonalisation . . . 41

8.1.1 Définition . . . 41

8.1.2 Cas remarquables . . . 42

8.1.3 Choix des gardes diagonales . . . 44

8.2 Pistage des erreurs . . . 46

8.2.1 Exemples et définitions . . . 46

8.2.2 Étude de l’algorithme de Floyd et historique des erreurs . . . 48

8.2.3 Méthode de choix . . . 49

9 Récapitulatif des algorithmes proposés 51 9.1 Algorithmes basés sur la méthode naïve . . . 51

9.2 Algorithmes basés sur la méthode par raffinements successifs . . . 53

Conclusion 55

Bibliographie 58

A Calculs de CMC 59

(5)

Introduction

(6)

De nos jours, l’informatique prend une place prépondérante dans une grande et croissante variété d’applications. Nous pouvons citer les transports (avionique, ligne Météor, systèmes de guidage), les télécommunications (téléphones portables avec systèmes de cryptages, Internet), la finance (systèmes sécurisés de paiement sur Internet) et la recherche spatiale (lancement de fusées, de satellites). Toutes ces applications ont des enjeux essentiels, comme la vie de nom- breuses personnes pour les transports, ou des sommes monétaires immenses pour les paiements en ligne ou la recherche spatiale. Aussi nous attendons de ces systèmes d’être irréprochables.

Pourtant, la liste des échecs retentissants de tels systèmes est malheureusement très longue (ex- position à de trop fortes radiations dûes au système Thérac 25, crash du système téléphonique AT&T, crash d’Ariane 5,:::).

Aussi, certaines de ces applications doivent désormais répondre à des normes, commes il en existe concernant des produits alimentaires ou des réalisations du génie civil. Ainsi, les protocoles de télécommunications doivent être testés avant d’être mis sur le marché. Cette phase de test a toujours existé, mais n’a pas toujours été suffisante. En effet ces tests se limitent généralement à des scénarios attendus par les ingénieurs qui réalisent le système. La batterie de telles expériences pourra être toujours plus grande, elle ne sera sûrement jamais exhaustive.

La vérification formelle a pour but de décider si un système vérifie ou non une propriété, si possible de façon entièrement automatique. Pour cela, le système doit d’abord être traduit dans un formalisme qui permet de modéliser des systèmes réels. Puis la propriété doit elle aussi être traduite dans une logique ou un langage permettant de caractériser des comportements du système. Enfin il s’agit de développer des algorithmes décidant si une propriété donnée exprimée dans une certaine logique est vérifiée ou non par un système décrit dans un certain formalisme.

Selon le type de systèmes étudiés, et le type de propriétés que l’on souhaite tester, le modèle et la logique utilisés ne seront pas les mêmes. Nous étudions dans ce stage un modèle prenant en compte le temps réel : les automates temporisés. Les automates d’états finis sont des sys- tèmes de transitions à états finis qui permettent d’étudier l’ordre relatif des actions comme par exemple “se réveiller” avant de pouvoir faire l’action “se lever” (à moins d’être somnanbule).

Mais ce formalisme ne permet pas de tester si on a mis moins de 5 minutes à se lever, une fois réveillé. Les automates temporisés sont des automates finis enrichis d’horloges qui vont donner des informations quantitatives sur l’écoulement du temps.

Les automates temporisés ont été introduits en 1990 par Alur et Dill [AD90]. Depuis, ils ont été beaucoup étudiés d’un point de vue théorique, et plusieurs outils réalisent une implé- mentation des résultats théoriques ainsi développés. Certains de ces outils ont même été utilisés lors d’études de systèmes réels afin de déceler (avec succès) des erreurs de conception. Citons par exemple la correction d’une erreur dans un protocole de contrôle audio/video de Bang&

Olufsen par l’outil UPPAAL [HSLL97].

Le problème de base de la vérification est celui de l’accessibilité. En effet, cela revient à tester des propriétés de sûreté qui constituent la plupart des propriétés réellement étudiées. Un algorithme d’analyse en avant est largement utilisé pour décider ce problème. Cet algorithme, bien qu’utilisé avec succès par le passé, a été remis en cause récemment par Patricia Bouyer [Bou04]. Elle a en effet montré qu’il ne pouvait être correct pour la classe générale des au- tomates temporisés avec gardes diagonales car il calculait en fait une surapproximation des états accessibles. Cependant, l’algorithme est correct pour la classe des automates temporisés sans garde diagonale, ce qui constitue la classe la plus couramment utilisée. Le but de ce stage consiste à comprendre le rôle des gardes diagonales dans ce “bug” et à proposer des modifica-

(7)

tions à apporter à l’algorithme classique d’analyse en avant de sorte à ce qu’il soit correct pour les automates temporisés ayant des gardes diagonales.

L’idée qui nous a guidé dans ce stage était basée sur la remarque suivante : il existe une construction permettant, étant donné un automate temporisé avec gardes diagonales, de con- struire un automate temporisé reconnaisssant le même langage sans garde diagonale. Nous pourrions penser qu’alors le problème est résolu, mais cette construction est malheureusement coûteuse du point de vue de la complexité puisqu’elle est exponentielle en le nombre de gardes diagonales. L’idée consiste donc à éliminer par cette construction un nombre minimum de gardes diagonales de sorte à essayer d’éviter une explosion de la taille de la structure. Pour cela, nous chercherons à déterminer les gardes diagonales rendant incorrect l’algorithme classique en étudiant les erreurs commises par ce dernier. Ce principe porte le nom de raffinement successif basé sur l’étude de contre-exemples erronés.

Le présent mémoire s’organisera comme suit. Dans une première partie, nous rappellerons les bases théoriques nécessaires afin de présenter le plus précisément possible le problème qui nous intéressera. Ensuite, nous justifierons notre approche du problème en montrant pourquoi des méthodes plus simples ne peuvent pas s’appliquer. Nous présenterons aussi l’outil utilisé pour les expérimentations pratiques. Pour finir, nous présenterons l’étude des contre-exemples que nous avons menée. Nous récapitulerons alors les algorithmes proposés pour répondre à notre problème.

(8)
(9)

Première partie

Présentation du problème

(10)

Chapitre 1

Automates temporisés et décidabilité

Dans ce premier chapitre, nous allons présenter le modèle des automates temporisés, intro- duit par Alur et Dill [AD90], [AD94]. Ce modèle est utilisé en vérification afin de tenir compte de propriétés liées à l’écoulement du temps.

1.1 Préliminaires

Afin d’ajouter au modèle des automates finis la notion de temps, nous allons utiliser des variables appelées horloges.

Domaine de temps. Nous considérerons comme domaine de temps T l’ensemble Q+ des nombres rationnels positifs ou l’ensembleR+ des nombres réels.désigne un ensemble fini d’actions. Une séquence de dates surT est une séquence croissante finie = (ti)1ip 2 T. Un mot temporiséw =(ai

;t

i )

1ip est un élément de(T), où = (ai )

1ipest un mot de et = (ti

)

1ipune séquence de dates surT de même longueur. La date ti correspond intuitivement à l’instant auquel l’actionaia eu lieu.

Valuations d’horloges. Nous considérons un ensemble X d’horloges. Une valuation d’hor- loges sur X est une application v : X ! T qui assigne à chaque horloge une valeur de temps. L’ensemble des valuations d’horloges sur X est noté TX. Deux opérations sont pos- sibles sur ces valuations : laisser s’écouler du temps (les horloges augmentent toutes à la même vitesse), et remettre certaines horloges à zéro. Soit t 2 T, la valuation v +t est définie par

(v+t)(x)=v(x)+t;8x2X. Pour un sous-ensembleCdeX, on note[C 0℄vla valuation définie par([C 0℄v)(x)=

(

0six2C;

v(x)six2XnC:

Contraintes d’horlorges. Étant donné un ensemble d’horlogesX, nous introduisons deux en- sembles de contraintes d’horloges surX.

Le plus général des deux, notéC(X), est défini par la grammaire suivante :

'::=xjx yj'^'jtruex;y2X;2Z;2 f<;;=;;>g. Nous utiliserons également un deuxième ensemble, constitué exclusivement de contraintes non-diagonales, notéCnd(X), défini par la grammaire :

'::=xj'^'jtruex;y2X;2Z;2 f<;;=;;>g.

(11)

Remarquons que dans le modèle initial proposé par Alur et Dill, seules les contraintes non dia- gonales étaient utilisées.

Une valuationv satisfait une contrainte simplex si v(x) . Nous noterons dans ce cas

v j=x. Nous étendons naturellement cette définition à toute contrainte d’horloge'. Sikdésigne un nombre entier, une contrainte d’horloges k-bornée est une contrainte d’horloges n’impliquant que des constantes comprises entre ketk.

1.2 Présentation des automates temporisés

Nous pouvons à présent donner la définition formelle d’un automate temporisé et de son comportement.

Automates temporisés.

Un automate temporisé surT est un 6-upletA=(;Q;T;I;F;X)où : – est un alphabet fini d’actions,

Qest un ensemble fini d’états (de contrôle), – X est un ensemble fini d’horloges,

T QC(X)2X Qest un ensemble fini de transitions, – I Qest l’ensemble des états initiaux et

F Qest l’ensemble des états finaux.

Comportement d’un automate temporisé.

Un chemin dansAest une séquence finie de transitions consécutives :

P =q

0 '

1

;a

1

;C

1

!q

1 :::q

p 1 '

p

;a

p

;C

p

!q

poù, pour chaque1ip,(qi 1

;'

i

;a

i

;C

i

;q

i )2T. Un tel chemin est dit acceptant s’il part d’un état initial (q0

2I) et se termine dans un état final (qp

2F).

Une configuration de l’automate temporiséAest un couplehq;vi2QTX. Une exécution de l’automate suivant le cheminP est une séquence de la forme :

hq

0

;v

0 i

'

1

;a

1

;C

1

!

t1

hq

1

;v

1 i:::hq

p 1

;v

p 1 i

'

p

;a

p

;C

p

!

tp

hq

p

;v

p

i = (ti )

1ip 2 T

est une séquence de dates et(vi)1ipunp-uplet de valuations d’horloges définies par :

8

>

<

>

: v

0

(x)=0;8x2X

v

i 1 +(t

i t

i 1 )j='

i

v

i

=[C

i

0℄(v

i 1 +(t

i t

i 1 ))

avec la convention quet0

=0:

L’étiquette de cette exécution est le mot temporiséw =(a1

;t

1 ):::(a

p

;t

p

). De plus, si le che- minP est acceptant, alors nous dirons que le motw est accepté par l’automate temporiséA. L’ensemble des mots temporisés acceptés parAest notéL(A)et appelé langage accepté parA. Un exemple.

endormi réveillé levé

true, réveil,fxg x<5, lever,;

(12)

Le langage accepté par cet automate est l’ensemble des mots temporisésw=(réveil;t)(lever;t+

x)avect0et0x<5.

1.3 Résultats de décidabilité

Problèmes étudiés. Dans le domaine de la vérification, une question fondamentale concernant les automates temporisés consiste à déterminer si le langage accepté est vide. Ce problème est appelé le problème du vide. Une classe d’automates temporisés est dite décidable si le problème du vide est décidable pour tout élément de cette classe. Nous nous intéresserons dans la suite au problème d’accessibilité discrète qui consiste à décider si un état de contrôle de l’automate temporisé est accessible. Notons que ces deux problèmes (vacuité du langage et accessibilité discrète) sont en fait équivalents.

Du point de vue de la vérification, le problème d’accessibilité est un problème de base. D’une part parce que les autres problèmes sont en général permet de répondre à des propriétés de sûreté : garantir que le système n’entrera jamais dans un certain ensemble d’états d’erreur.

Convention importante : Par la suite, nous nous intérésserons exclusivement au problème d’accessibilité vu comme un problème de sûreté, i.e. que nous identifierons états finaux et états d’erreurs que le système doit éviter.

Automate des régions. Alur et Dill ont démontré [AD94] que le problème du vide est déci- dable pour les automates temporisés. Leur preuve est basée sur la construction de l’automate des régions. Celui-ci consiste en fait en un graphe fini simulant l’automate temporisé basé sur une relation d’équivalence d’indice fini définie sur les valuations d’horloges. Il s’agit d’identi- fier deux valuations v et v0 telles que le comportement de l’automate temporisé soit le même à partir des configurations hq;vi et hq;v0i pour tout état q de l’automate. Le graphe quotient de cette relation d’équivalence est appelé graphe des régions. C’est simplement une partition finie de l’ensemble TX des valuations d’horloges possibles, pour laquelle chaque élément est dénommé “région”.

Nous allons faire quelques remarques élémentaires sur les propriétés que doit vérifier cette partition. Ces remarques sont illustrées sur des exemples présentés en figure 1.

0 1 2

x 1

2 y

0 1 2

x 1

2 y

FIG. 1 – Graphes des régions associés à un automate temporisé ayant deux horlogesxetyet 2 pour constante maximale. A gauche, sans garde diagonale, à droite, avec.

(13)

Compatibilité entre régions et contraintes. Deux valuations d’une même région doivent satis- faire les mêmes contraintes. (découpe selon les contraintes)

Compatibilité entre régions et écoulement du temps. Toutes les valuations d’une même région doivent avoir le même successeur immédiat, i.e. qu’en laissant écouler le temps, les valuations doivent atteindre en premier la même région. (découpe selon les diagonales)

Résultats. La taille de l’automate des régions ainsi défini est exponentielle en la taille de l’auto- mate temporisé. Comme l’accessibilité dans les automates finis est un problème NlogSPACE- facile, on obtient que le problème de l’accessibilité dans les automates temporisés est PSPACE- facile. C’est même un problème PSPACE-complet [AL02].

(14)

Chapitre 2

L’algorithme d’analyse en avant

La construction présentée dans la partie précédente étant trop coûteuse, d’autres méthodes sont utilisées pour décider le problème d’accessibilité. Celles-ci sont basées sur des techniques de construction à la volée afin d’éviter de construire l’ensemble des configurations. De plus, les ensembles de configurations seront représentés de manière symbolique.

2.1 Analyse à la volée

Il existe principalement deux algorithmes d’accessibilité à la volée : la recherche en avant, et la recherche en arrière. La recherche en avant (resp. en arrière) consiste à calculer tous les successeurs (resp. prédécesseurs) des configurations initiales (resp. finales). Rappelons que

hq;viest une configuration initiale siq 2Ietv(x)=0pour toutx2X, et finale siq 2F. L’algorithme d’analyse en arrière a de bonnes propriétés (terminaison, correction) mais souffre d’un défaut important : en pratique, les systèmes modélisés par des automates tempori- sés manipulent également des entiers, sur lesquels ils peuvent faire les opérations arithmétiques classiques (+; ;;). Ces opérations sont aisément réalisables dans un calcul en avant, mais au contraire elles sont difficiles à inverser : sachant qu’un entierk = ij décrit un intervalle

[a;b℄, comment décrire les intervalles décrits parietj? Cette remarque justifie le fait que nous nous intéresserons désormais exclusivement à l’analyse à la volée en avant.

Les horloges rendant l’ensemble des configurations infini, l’algorithme utilise une repré- sentation symbolique d’ensembles infinis de valuations : les zones.

Zones. Une zone est un ensemble de valuations défini par une contrainte d’horloges : la zone associée à la contrainte'estfv 2TX jv j='g.

Exemple. La zone associée à la contrainte'=

x>1^y 3^x y<2est illustrée sur la

figure ci-contre. 1

3 4

2 2

3

1 4

Nous pouvons à présent décrire plus précisément le fonctionnement de l’algorithme de cal- cul en avant (algorithme 1). Il consiste simplement, en partant de l’état initial (nous supposons qu’il est unique)q0 de l’automate, et de la zone initialeZ0 réduite à la seule valuation qui as-

(15)

socie 0 à chaque horloge, à calculer les successeurs en un pas, selon l’opérateurPost, puis à itérer cette opération jusqu’à obtenir la stabilisation ou la découverte d’un état final.

Algorithme 1 Analyse en avant à la volée.

Entrée : Aun automate temporisé Sortie : L(A) =;?

Visités:=;;

En_Attente:=f(q0;Z0)g; Répéter

Piocher(q;Z)dans En_Attente ; Siqest un état final Alors

Retourner “Un état final est accessible.” ; Sinon

Si il n’existe pas(q;Z0)2Visités tel queZ Z0 Alors Visités:=Visités[f(q;Z)g;

Successeurs:=f(q0;Post(Z;e))jetransition deqàq0g; En_Attente:=En_Attente[Successeurs ;

Fin Si Fin Si

Jusqu’à En_Attente=;;

Retourner “Aucun état final n’est accessible.” ;

L’opérateur Post. Deux types d’évolutions sont possibles dans un automate temporisé : lais- ser écouler du temps en restant dans l’état courant et franchir une transition. Considérons un couple(q;Z)(qest un état etZ une zone), et une transitionede cet étatqvers un autre étatq0.

Post(Z;e)retourne l’ensemble des valuations d’horloges accessibles à partir de celles appar- tenant àZ en laissant écouler du temps dansq, puis en franchissante. Plus précisément :

Post(Z;e)=fv 0

j9(v;t)2(ZT)jhq;v +ti e

!hq 0

;v 0

ig

Ce calcul peut se décomposer en plusieurs étapes : notonse = (q g;a;C! q0), alors nous avons

Post(Z;e)=[C 0℄(g\

!

Z)!Z désigne le futur deZ, i.e.!Z =fv+t jv 2Zett2Tg:

Les opérations à réaliser sur les zones sont donc les suivantes : calcul du futur d’une zone, de l’instersection de deux zones, et remise à zéro au sein d’une zone de certaines horloges. Ces opérations, qui sont stables pour les zones (l’image d’une zone est une zone), sont illustrées sur le figure 2.

Z

!

Z

!

Z \g

[y 0℄(

!

Z \g)

FIG. 2 – Détail de l’application de l’opérateurPost.

(16)

2.2 Abstraction

Bien que l’utilisation des zones permet une représentation symbolique d’ensembles de va- luations, le nombre d’objets manipulés par l’algorithme reste infini. L’algorithme risque donc de ne pas terminer. Cela est en fait possible, comme le montre le contre-exemple représenté en figure 3. En effet, en partant de la zone initiale (x = y = 0), nous obtenons l’ensemble des zones de la forme(y 0^x=y+n), pournentier naturel.

y:=0,

x:=0

x1^y=1,

y :=0

0 1 2 3 4 5 x

1 2 y

FIG. 3 – Un automate temporisé dont le calcul en avant ne termine pas.

Afin d’assurer la terminaison de l’algorithme, une idée naturelle consiste à limiter les cal- culs à un nombre fini de zones. Nous pouvons donc utiliser une abstraction identifiant certaines zones. Pour cela, nous nous inspirons de la construction du graphe des régions qui tient essen- tiellement compte des valeurs inférieures à la constante maximale du système.

Zonek-bornée etk-approximation.

Une zoneZest ditek-bornée si elle est définie par une contrainte d’horloges qui estk-bornée.

Lak-approximation deZ est alors définie par : Approxk

(Z)=

\

zones k-bornéesZ0jZZ0

Z 0

Lak-approximation est bien définie ainsi. En effet, l’ensemble des zonesk-bornées est fini (il a été construit pour cela). A fortiori, l’ensemble des zonesk-bornées contenant Z est fini lui aussi. De plus, ce dernier ensemble est non vide car la zone Tn est k-bornée et contient

Z. L’intersection définie plus haut existe donc. De plus, elle constitue une zone k-bornée et contientZ, et est donc la plus petite zone, au sens de l’inclusion, ayant cette propriété.

2 2

zoneZ

2 2

zoneZ 2-approchée FIG. 4 – 2-approximation d’une zone

(17)

Le nouvel algorithme obtenu en utilisant cette abstraction est l’algorithme 2. Il consiste sim- plement, après chaque application de Post, à appliquer l’abstraction de sorte que les éléments stockés dans les listes “Visités” et “En_Attente” soient en nombre fini. Remarquons que dans notre présentation de l’algorithme, nous avons placé la constante k d’extrapolation en entrée, mais dans les outils, celle-ci est définie à partir de l’automate temporisé Apris en entrée, par exemple en prenant la constante maximale apparaissant dansA.

Algorithme 2 Analyse en avant à la volée utilisant lak-approximation Entrée : Aun automate temporisé etk la constante d’extrapolation Sortie : L(A) =;?

Visités:=;; En_Attente:=f(q0

;Approx

k (Z

0 ))g; Répéter

Piocher(q;Z)dans En_Attente ; Siqest un état final Alors

Retourner “Un état final est accessible.” ; Sinon

Si il n’existe pas(q;Z0)2Visités tel queZ Z0 Alors Visités:=Visités[f(q;Z)g;

Successeurs:=f(q0;Approx

k

(Post(Z;e)))jetransition deqàq0g; En_Attente:=En_Attente[Successeurs ;

Fin Si Fin Si

Jusqu’à En_Attente=;;

Retourner “Aucun état final n’est accessible.” ;

Pour valider un algorithme d’accessibilité, il y a essentiellement quatre propriétés à vérifier : – la terminaison,

– la complétude (tout état accessible peut être déclaré comme tel par l’algorithme), – la correction (tout état déclaré accessible par l’algorithme l’est réellement), – l’implémentabilité.

L’abstraction utilisée a été construite pour assurer la première propriété.

La seconde propriété est elle aussi vérifiée car, comme nous l’avons vu, toute zone est incluse dans son image par Approxk, et l’algorithme réalise donc une surapproximation de l’ensemble des états accessibles.

Le troisième point va être discuté en détail dans le chapitre suivant. Il constitue en fait le point critique.

Enfin, notons que la notion d’implémentabilité est assez subjective. Nous verrons cependant dans le chapitre 5 une structure de données adaptée permettant d’implémenter les zones, et dans le chapitre 6 nous présenterons différents outils utilisant cet algorithme.

(18)

Chapitre 3

Correction de l’algorithme...

L’algorithme 1 était bien correct puisqu’il réalisait un calcul exact. En revanche, nous avons vu qu’il ne terminait pas toujours. Nous avons donc introduit l’abstraction Approxk qui assure la terminaison de l’algorithme 2. Il s’agit donc à présent de s’interroger sur la correction de cet algorithme. C’est précisément l’étude menée dans [Bou04]. Nous pouvons déjà remarquer que l’algorithme réalise à présent une surapproximation. En effet, par définition, nous avons

Z Approx

k

(Z) pour toute zoneZ. Donc si un étatq est accessible, l’algorithme va bien le déclarer accessible. En revanche, l’inverse n’est a priori pas forcément vrai, i.e. l’algorithme pourrait déclarer accessible un état qui ne l’est pas.

Alors que cet algorithme est implémenté dans différents outils et même utilisé dans des études de cas réels, il n’existait en fait pas de preuve complète de sa correction. Or nous allons voir qu’en réalité l’algorithme n’est pas correct dans le cas général des automates temporisés avec gardes diagonales.

3.1 L’automate contre-exemple

Nous allons étudier à présent l’automate temporiséCprésenté ci-dessous et nous allons voir que l’algorithme 2 donne une réponse incorrecte sur cette entrée.

i

q

Erreur

A

0 x

3 3

fx

3

;x

1 g:=0

x

2

=3

x

2 :=0

x

1

=2;

x

1 :=0 x

1

=2;x

1 :=0

x

2

=2;x

2 :=0

x

2

=2

x

2 :=0

x

1

=3

x

1

:=0 x

2

>x

1 +2 x

4

<x

3 +2

FIG. 5 – Un automate temporisé,C Notation. Nous notonsA0la partie deC encadrée.

(19)

x

1 x

2

x

3 x

4

[1;3℄

[2+5℄

[2+2;2+4℄

[2+6;2+8℄

FIG. 6 – Les zonesZ

Considérons un chemin dei à q dans l’automate C. Si d est la date à laquelle est franchie la première transition, et siest le nombre de fois que la boucle est prise sur ce chemin, alors la valuationvd’horloges en arrivant enqest définie par :

v(x

1

)=0 v(x

3

)=2+5

v(x

2

)=d v(x

4

)=2+5+d

Alors, en appliquant un calcul exact des successeurs de l’état initial, avec toutes les horloges mises à 0, l’ensemble des valuations qui peuvent être atteintes en q, quand la boucle est prise

fois, est défini par les relations (1) de la table 1. Cet ensemble constitue bien sûr une zone et est notéZ. Il est représenté en figure 6.

(1)

8

>

>

>

>

>

>

>

>

>

>

>

<

>

>

>

>

>

>

>

>

>

>

>

: x

2 1

x

3

2+5

x

4

2+6

1x

2 x

1 3

1x

4 x

3 3

x

3 x

1

=2+5

x

4 x

2

=2+5

(2)

8

>

>

>

>

>

>

>

>

>

>

>

<

>

>

>

>

>

>

>

>

>

>

>

: x

2 1

x

3

>k

x

4

>k

1x

2 x

1 3

1x

4 x

3 3

x

3 x

1

>k

x

4 x

2

>k

TAB. 1 – Les équations des zonesZet Approxk (Z

)

Bien que ce ne soit pas explicite dans la description deZ par les équations (1), nous pouvons aisément déduire, et cela est très visible sur la représentation des zones de la figure 6, que siv est une valuation deZ, alors elle vérifie la contrainte très forte suivante :

v(x

4

) v(x

3

)=v(x

2

) v(x

1

) (3)

En particulier, nous en déduisons que l’état Erreur n’est pas accessible.

Cependant, comme la condition (3) n’est pas expicite dans les équations (1), celle-ci va dis- paraître lorsque l’opérateur Approxk va être appliqué. Plus précisément, soit k la constante d’extrapolation fixée, et soittel que2+2>k. Appliquons alors l’opérateur ApproxkàZ, la zone Approxk

(Z

)obtenue est définie par les équations (2) de la table 1. Remarquons que nous appliquons ici l’opérateur d’abstraction seulement à la zone calculée pour l’étatq, et non

(20)

sur l’ensemble du chemin. Cela est en fait suffisant car la zone Approxk (Z

)est incluse dans la zone qui serait calculée par l’algorithme 2.

D’après ce contre-exemple, nous obtenons donc qu’il n’existe pas de constante k permettant d’appliquer l’algorithme 2 et de tester correctement l’accesibilité. Pour résumer, nous avons le résultat suivant :

Théorème 1 Pour l’automate temporisé C, il n’existe pas de choix de la constante k tel que l’algorithme 2 appliqué avec l’opérateur Approxksoit correct pour l’accessibilité.

Ce résultat précis sur cette abstraction va même se généraliser. En effet, supposons trouvée une abstraction Abs telle que :

– SiZest une zone, Abs(Z) est également une zone, – {Abs(Z) |Z est une zone} est fini,

– Abs est complète, i.e.Z Abs(Z),

– Abs est correcte pour l’accessibilité, i.e. que le calcul de (AbsÆPost)est correct.

Comme Abs est d’image finie sur les zones, nous pouvons considérerkla plus grande constante apparaissant dans ces zones. Nous avons alors la propriété suivante :

8Z;Z Approx

k

(Z)Abs(Z)

puisque, d’après le choix dek, Abs(Z) est une zonek-bornée contenantZ et que par définition Approxk

(Z)est la plus petite de ces zones. Nous obtenons donc le

Corollaire 1 Pour l’automate temporiséC, il n’existe pas d’opérateur Abs satisfaisant les condi- tions ci-dessus.

3.2 Résultats positifs

Les résultats de la partie précédente paraissent au premier abord très inquiétants pour les outils basés sur l’algorithme 2. En réalité, la plupart des systèmes étudiés avec ces outils étaient modélisés sans garde diagonale ([HSLL97], [BBP02]). Le résultat suivant donne alors une réponse positive.

Théorème 2 L’algorithme 2 est correct pour l’accessibilité dans les automates temporisés sans garde diagonale.

Afin de compléter la description faite de la situation, voici un dernier théorème.

Théorème 3 L’algorithme 2 est correct pour l’accessibilité dans les automates temporisés avec gardes diagonales et ayant moins de trois horloges. Il faut pour cela choisir la constante k différemment.

Ces deux résultats nous montrent d’une part à quel point le contre-exemple présenté est mi- nimal du point de vue du nombre d’horloges mises en jeu, et d’autre part que le problème de correction auquel nous sommes confrontés provient de la présence des gardes diagonales.

(21)

3.3 Automates temporisés avec ou sans gardes diagonales...

Nous sommes donc amenés à présent à comparer la classe des automates temporisés sans garde diagonale, et celle des automates temporisés avec gardes diagonales. Nous avons tout d’abord un premier résultat du point de vue de l’expressivité : l’expressivité de ces deux mo- dèles est la même :

Théorème 4 [BDGP98] Pour tout automate temporisé avec gardes diagonalesAd, il existe un automate temporisé sans garde diagonaleAndtel queL(Ad

)=L(A

nd ).

Ce résultat peut paraître surprenant. Etant donné un automate temporisé avec gardes dia- goanles, il nous donne donc l’existence d’un automate temporisé sans garde diagonale accep- tant le même langage temporisé. Cette propriété est même effective.

Considérons un automate temporiséAcontenant la garde diagonaleg :x y. nous souhai- tons retirer cette garde. Pour cela nous considérons deux copies deA. La première correspondra intuitivement aux valuations respectant la gardeg, la seconde la garde:g. Nous passons d’une copie à l’autre lorsque la valeur de vérité de v j= g change, i.e. lors de remises à zéro des horlogesxety. Ceci est représenté sur la figure 7.

Remarqe :

nous supposonspositif

x y x:=0

y:=0

copie oùx y

x:=0

y:=0

x

x>

y:=0 x:=0

y:=0

copie oùx y>

FIG. 7 – Retrait de la garde diagonalex y

Du point de vue de la complexité, cette construction est malheureusement assez coûteuse.

Ainsi, pour enlever une garde diagonale, nous avons doublé la taille de la structure, pour n gardes diagonales, nous la multipierons par 2n. Cette construction nous donne donc un algo- rithme pour décider l’accessibilité dans les automates temporisés avec gardes diagonales qui consiste à faire un prétraitement pour transformer l’automate en un automate sans garde diago- nale, puis lui appliquer l’algorithme classique. Cependant cette méthode n’est pas satisfaisante du point de vue de la complexité puisque la phase de prétraitement est exponentielle.

(22)

Le but de ce stage consiste alors à chercher à mieux comprendre le rôle des gardes dia- gonales, et leur comportement vis-à-vis de l’algorithme 2 de sorte à proposer une alternative pour vérifier les automates temporisés avec gardes diagonales sans les éliminer toutes, et sans revenir aux régions. Nous allons voir dans la partie suivante quelle méthode nous avons adoptée pour approcher ce problème.

(23)

Deuxième partie

Quelle approche du problème ?

(24)

Chapitre 4

Choix de la méthode

Rappelons tout d’abord que nous avons vu que l’algorithme calcule une surapproximation de l’ensemble des états accessibles, et donc que ses seules erreurs sont des faux positifs, i.e.

qu’il peut déclarer accessibles des états qui ne le sont pas. Nous parlerons de contre-exemple erroné. Pour vérifier les réponses de l’algorithme, il suffit de lui demander de retourner la trace du chemin qui l’a mené à cet état, et de vérifier que ce chemin est correct. Cependant, nous allons voir que ce n’est pas forcément suffisant.

4.1 Premières pistes

Intuition 1. Un premier point de vue consiste à penser qu’il suffit de vérifier les réponses de l’algorithme 2. Ceci suppose que si l’algorithme 2 renvoie un contre-exemple qui s’avère être erroné, alors il n’existe pas de vrai contre-exemple dans l’automate temporisé étudié. C’est par exemple le cas dans le contre-exempleC prouvant la non-correction de l’algorithme. Cette intuition est en fait fausse. Pour le voir, il faut observer précisément le fonctionnement de l’algorithme 2.

En effet, cette affirmation est étroitement liée à l’ordre dans lequel l’algorithme parcourt le graphe de dépliage associé à l’automate temporisé. L’idée sous-jacente est que l’algorithme peut trouver un contre-exemple erroné avant d’avoir pu rencontrer un vrai contre-exemple.

Deux méthodes classiques de parcours existent : le parcours en largeur et le parcours en pro- fondeur, la plus naturelle étant la première. Notons d’ailleurs que dans notre cas, cela consiste en fait simplement à avoir une gestion FIFO (resp. LIFO) de la file “En_Attente” pour le par- cours en largeur (resp. en profondeur). Dans les deux cas, cette intuition peut facilement être niée à l’aide de contre-exemples adaptés. Nous présentons ici un contre-exemple dans le cas d’un parcours en largeur qui est celui le plus couramment implémenté.

i

0

i

q Erreur

A

0

x

4

>x

3 +2

^x

2

<x

1 +2

FIG. 8 – Contre-exemple pour le parcours en largeur

(25)

Fixonskla constante d’extrapolation choisie et notonsl(k)la longueur du contre-exemple erroné minimal associé à C. Le chemin du bas dans l’automate représenté en figure 8 est un chemin sans contrainte de longueur strictement plus grande quel(k). Ceci assure que la décou- verte du contre-exemple erroné du haut intervient avant celle du vrai contre-exemple du bas et permet de nier cette première intuition.

Remarque : Comme nous l’avons expliqué, l’automate proposé ici dépend de la constante k choisie pour l’extrapolation. Cela peut paraître insatisfaisant. Alors que l’automateC constitue un contre-exemple valable pour toute constante d’extrapolationk, il est dans notre cas impos- sible de trouver un tel automate, valable pour toutk. En effet, il s’agit de remarquer que si un automate possède un vrai contre-exemple, alors il existe une valeur dek qui permet d’obtenir un vrai contre-exemple en premier. Notonsl la longueur du plus court vrai contre-exemple et posonsE= fzonesZ obtenues selon un chemin de longueur lg. Il suffit de prendre pourk la plus grande constante apparaissant dans les zones appartenant àE. Nous sommes alors assu- rés que le calcul (approché) réalisé par l’algorithme 2 coincidera sur l’ensemble des chemins de longueur inférieure ou égale à l avec le calcul (exact) réalisé par l’algorithme 1, et donc qu’aucun contre-exemple erroné ne sera obtenu avant ce vrai contre-exemple.

Intuition 2. Un raffinement de l’idée précédente consiste alors à penser qu’il pourrait suf- fir, une fois un contre-exemple trouvé, de le tester et, s’il s’avère être erroné, de poursuivre le travail de l’algorithme. Malheureusement, l’algorithme, dans son comportement, tient compte du passé puisqu’il fait des comparaisons avec les éléments de ¨Visités” et il peut à cause de cela

“rater” un vrai contre-exemple. C’est ce que montre l’étude de l’automate suivant.

i

q

1

q

2 q

3

q

4

q

5

q

q

6

q

7

Erreur

x

3 3,

fx

3

;x

1 g:=0

x

2

=3

x

2 :=0

x

1

=2;

x

1 :=0 x

1

=2,

x

1 :=0

x

2

=2,

x

2 :=0

x

2

=2

x

2 :=0

x

1

=3,

x

1 :=0

x

2

>x

1 +2 x

4

<x

3 +2

1x

1 3,

fx

1

;x

2

;x

3 g:=0

x

1

=1,

fx

1

;x

2 g:=0

x

1

=0^x

3

>3

1x

1 3,

x

1 :=0

FIG. 9 – Contre-exempleA2 pour les problèmes de passé

Références

Documents relatifs

An optimal Wegner estimate and its application to the global continuity of the integrated density of states for random Schrödinger operators... ccsd-00067800, version 2 - 13

Nous présentons dans cet article l’extension de ce travail pour répondre à des requêtes dites proactives de type “Que faire pour ?”, et en particulier les requêtes dites de

Un mot temporisé fini (resp. Si cette somme est infinie, la durée du mot est ∞. La durée d’un mot infini n’est pas forcé- ment ∞ car il y a des mots zénon... La sémantique

Dans le contexte des systèmes modélisés en automates temporisés, l’espace d’états est représentés sur un graphe des régions dont le nombre d’états est ex- ponentiel au

ƒ Les modèles qui ne tiennent pas compte du comportement cyclique. Ces modèles sont essentiellement destinés à l’analyse statique des programmes. ƒ Les modèles qui ne prennent

• Les incertitudes : elles sont d´ efinies comme ´ etant la diff´ erence entre la quantit´ e d’information requise pour ex´ ecuter une tˆ ache et la quantit´ e d’information

La description de cas de progression de tumeurs fibreuses solitaires de grades 1-2 vers des tumeurs fibreuses solitaires de grade 3 est cohérente avec le regroupement nosologique de

Nous présentons deux approches pour étudier ce problème : l’une est basée sur une modélisation du programme s’exécutant sur la plate-forme, l’étude des propriétés se