• Aucun résultat trouvé

5.4 Génération symbolique traditionnelle

Avant de procéder plus avant, nous introduisons l’état de l’art en matière de génération symbolique d’espace d’états atteignables pour des modèles à états discrets généraux.

Définition 5.4.1. Un modèle discret est défini par le t-uple( ˆS,N,Sinit), où

est l’espace d’états produit (potentiels), i.e., l’ensemble d’états qui contient tous les états

potentiellementvalides pour le système modélisé ;

N est la fonction “next-state” (S →ˆ 2Sˆ), i.e., oùN(˜x)détermine l’ensemble des états qui peuvent être atteignables à partir de l’état global;

Sinitest l’ensemble d’états initiaux, oùSinit⊆Sˆ.

Un modèle à états discrets peut être vu comme ungraphe orienté, où lesnoeudsdu graphe sont les

étatsdu modèle et lesarcs sont lestransitionsentre les états. D’une façon générale, les modèles décrits par des formalismes structurés de haut niveau ne sont pas directement représentés par un graphe, et le graphe peut être calculé à partir de la structure de haut niveau de la description du système.

Typiquement, les modèles exprimés par un formalisme structuré de haut niveau sont divisés enN

sous-systèmes, où l’espace d’états produitSˆ= S(N)× · · · × S(1)etS(i) est l’espace d’états dui-ème sous-système. L’état (global)x˜du système modélisé peut être décrit par leN-uple(x(N), . . . , x(1))des étatslocauxde chaque sous-système.

La génération de l’espace d’états atteignablesSa comme objectif de trouver, à partir d’un ensemble d’états initiaux, les états globaux atteignables de l’espace d’états Sˆ, oùS ⊆ Sˆ. Le travail pour trou-ver l’espace d’états atteignables n’est pas vraiment difficile, vu qu’il correspond à l’obtention d’un état atteignable suivant à partir d’un état donné. La générationexplicitede l’espace d’états atteignables exa-mine pour chaque état atteignable initial quel est son ensemble d’états atteignables, donc le temps et la complexité d’exécution de ce travail est linéaire en fonction du nombre d’états atteignables du système modélisé [30].

Les modèles de systèmes informatiques ont généralement un très grand nombre d’états, par exemple des modèles avec des milliard d’états. Ces modèles décrits par des formalismes structurés de haut niveau, parfois, peuvent être apparemment simples,i.e., chaque sous-système a une structure simple et avec peu d’états. Cependant, la taille de l’espace d’états du système augmente exponentiellement en fonction du nombre de sous-systèmes du modèle. Un défi constant est d’élaborer des méthodes performantes capables de calculer l’espace d’états atteignables de modèles, de plus en plus rapidement et en utilisant le moins de mémoire.

Pour réaliser ce travail, on présente dans la section 5.4.2 (ALG. 5.5, page 81) l’algorithme de par-cours en largeur(BFS -Breadth-First Search) qui calcule, à partir d’un ensemble d’états initiaux, l’es-pace d’états atteignables du modèle comme une clôture réflexive et transitive de la fonction “next-state” du modèle :

S=Sinit∪ N(Sinit)∪ N2(Sinit)∪. . .=N(Sinit),

où la fonction “next-state” est étendue pour supporter comme paramètre des ensembles d’états, i.e.,

N(X) = [

˜ x∈X

5.4.1 MDD associés à des termes tensoriels

En pratique, pour utiliser l’algorithme BFS dans le contexte des SAN, il faut être capable de représen-ter la fonction “next-state” et des grands ensembles d’états d’une manière compacte dans la mémoire de l’ordinateur, de manipuler de façon performante les opérations (union et intersection) de ces structures, ainsi que d’appliquer directement la fonction “next-state” sur ces représentations.

D’abord, pour l’utilisation de l’algorithme BFS, il faut représenter les états de départ de transitions possibles représentées dans un terme tensoriel. Cet ensemble d’états dans un terme tensorielteest repré-senté par un MDD noté parEnableM ddte.

Définition 5.4.2. Soit un événement e∈ E d’un modèle SAN et un terme tensorielte ∈ T, on appelle

EnableM ddte le sous-espace desdepour lequel il y a une entrée différente de zéro sur la ligne correspondante àdans le termete. Ce sous-espace (représenté par un MDD) est l’ensemble des états de départ de transitions possibles représentées dans le terme tensorielte.

Définition 5.4.3. Soit un événemente∈ E d’un modèle SAN et un terme tensorielte ∈T, on définit le MDDT ensorM ddte :

teest um terme tensorielassimilé-constant:T ensorM ddte =EnableM ddte

teest um terme tensorielfonctionnel:T ensorM ddte =EnableM ddte ∩T F M ddte

Dans ALG. 5.4, on présente l’algorithme pour générer leT ensorM ddte de chaque terme tensoriel

tedu descripteur d’atteignabilité d’un modèle SAN.

ALG. 5.4TensorMdd()

1: for eache∈ E do

2: for eachte∈Tdo

3: EnableM ddte ←1; /* Initialisation du MDDEnableM ddte*/

4: forl= 1toN do

5: if(R˘(l)

te n’est pas une matrice identité)then

6: p←NewNode(l) ; /* Création d’un noeudpau niveaul*/

7: /* Parcours des éléments de la matriceR˘(l)

te du terme tensorielte*/

8: for allx(l)∈ S(l)do

9: for ally(l) ∈ S(l)do

10: if(R˘(l)

te(x(l), y(l))n’est pas nul)then

11: p[x(l)]←1;

12: end for

13: end for

14: EnableM ddte ←Intersect(EnableM ddte,p) ;

15: end for

16: if(teest un terme tensoriel fonctionnel)then

17: T ensorM ddte ←Intersect(EnableM ddte,T F M ddte) ;

18: else

19: T ensorM ddte ←EnableM ddte;

20: end for

5.4. GÉNÉRATION SYMBOLIQUE TRADITIONNELLE 81

5.4.2 Algorithme de Parcours en Largeur (BFS) pour le calcul du RSS

Dans ALG. 5.5, on présente l’algorithme BFS qui parcourt et manipule des ensembles d’états au lieu de manipuler le modèle état-par-état explicitement. Étant donné un état initial, l’idée de l’algorithme est de chercher de nouveaux états atteignables à partir des transitions représentées dans les matrices des termes tensoriels du descripteur d’atteignabilité du modèle. L’algorithme BFS calcule dansM ddS, l’espace d’états atteignables du modèle.

Soit

M ddS le MDD qui représente l’espace d’états atteignablesSdu modèle ;

Enabled le MDD qui représente l’ensemble d’états de départ de transitions possibles pour un terme tensoriel ;

Reached le MDD qui représente l’ensemble d’états qui sont atteignables à partir deEnabled

par l’occurrence des transitions représentées dans les matrices d’un terme tenso-riel ;

RootNode(M) la procédure qui rend le noeud racine d’un MDD.

ALG. 5.5BFS(ininit:state)

1: M ddS ←StateToMdd(x˜init) ; /* Initialisation deM ddSavec l’état initialx˜init*/

2: repeat

3: Old← M ddS; /* Conserve dansOldla valeur courant deM ddS*/

4: for eache∈ E do

5: for eachte∈Tdo

6: /*Enabledreprésente les états de départ qui se trouvent dansM ddS (l’espace d’états atteignables courant) des transitions représentées dans les matrices dete*/

7: Enabled←Intersect(M ddS,T ensorM ddte) ;

8: /* SiEnabled6=∅, alors il y a au moins un état dansM ddSqui est un état de départ des transitions représentées danste*/

9: if(Enabled6=∅)then

10: /*Reachedreprésente les états atteignables par l’occurrence des transitions deteà partir deEnabled*/

11: Reached←Fire(te, RootNode(Enabled)) ;

12: /* Ajoute les états atteignables (Reached) àM ddS*/

13: M ddS ←Union(M ddS,Reached) ;

14: end for

15: end for

16: until(Old=M ddS)

Dans ALG. 5.5, à partir de l’ensemble d’états courant (M ddS), on examine quels sont les états de T ensorM ddte qui permettent l’occurrence des transitions représentées dans le terme tensoriel te

provenant d’un événementedu modèle. En utilisant l’algorithmeFire(ALG. 5.6), on trouve les états qui sont atteignables à partir deEnabledpar l’occurrence des transitions représentées dans le termete.

On ajoute les états atteignables (Reached) à l’ensemble d’états atteignables courant (M ddS) afin de trouver ultérieurement d’autres nouveaux états atteignables. L’espace d’états atteignables d’un modèle est considéré dans son état final au moment où aucun autre état atteignable n’est trouvé à partir duM ddS

Dans ALG. 5.6, on présente l’algorithme pour la procédure Fire. Cet algorithme utilise deux para-mètres :tun terme tensoriel, et pun noeud du MDD qui représente les états de départ des transitions représentées danst, états qui se trouvent dansM ddS. L’idée de cet algorithme est de retourner le noeud “racine” du MDD qui représente l’ensemble d’états qui sont atteignables deppar l’occurrence des tran-sitions représentées danst.

Définition 5.4.4. Soit un événemente ∈ E d’un modèle SAN, on définitO(fte) l’ensemble des indices d’automates dont l’état est argument des fonctions qui apparaissent dans les matrices du terme tensoriel

te∈T.

Définition 5.4.5. Soit un terme tensorielte associé à un événemente ∈ E d’un modèle SAN. L’indice

l∈[1..N]d’un automate (A(l))est concerné par le termetesi et seulement sil∈ O(e)∪ O(fte).

Définition 5.4.6. Bot(te) est défini comme l’indice minimum de l’ensembleO(e)∪ O(fte), i.e., l’indice le plus bas des automates concernés par le terme tensorielteprovenant d’un événemente∈ E.

Définition 5.4.7. Top(te) est défini comme l’indice maximum de l’ensembleO(e)∪ O(fte), i.e., l’indice le plus élevé des automates concernés par le terme tensorielteprovenant d’un événemente∈ E.

Remarque :Soit un noeudpau niveauld’un MDD, les arcs sortants du noeud indiquent quels sont les états représentés par ce noeud,i.e., six(l) ∈ S(l)est représenté par le noeudp, alorsp[x(l)]6=∅.

La procédureFire, présentée dans ALG. 5.6, est un algorithme récursif qui examine l’occurrence des transitions possibles représentées dans le termetà partir des états de départ représentés dans le noeudp. On examine quels sont les états (locaux) de départ (qui sont représentés par le noeudp) et les transitions représentées dans les matrices det.

Dans cet algorithme, chaque fois qu’un noeudpest exploré, on crée un noeudrrésultant (ligne 7) afin de stocker les états d’arrivée des transitions représentées danstà partir d’états de départ représentés par

p. Pour chaque état (de départ)x(l)non-nul dep, on examinelocalementles transitions représentées dans les matrices detafin d’obtenir les états (d’arrivée)y(l). Grâce à la décomposition des matrices proposée dans le chapitre 4 du descripteur d’atteignabilité, on peut assurer, en utilisant la propriété 5.2.1, que si

x(l)est un état de départ d’une transition dans la matriceR˘(l)

t d’un terme tensorielt, alors tous éléments (assimilé-constants ou fonctionnels) qui se trouvent dans la lignex(l)deR˘(l)

t sont états d’arrivée de ces transitions (lignes 16 - 20).

La conditionl < Bot(t)est la condition de terminaison de l’algorithme récursif Fire, sachant que pour tout automate d’indicel, oùBot(t)> l≥1, la matrice d’atteignabilitéR˘(l)

t est une matrice identité. Ensuite, on note les variables les plus significatives utilisées dans la procédureFire(ALG. 5.6).

Notation

t un terme tensoriel du descripteur d’atteignabilité ;

p le noeud du MDD courant de l’espace d’états atteignables, dont les étiquettes (valeurs) d’arcs sont analysées. Au premier appel le noeudpest le noeud racine du MDDEnabledetl=N;

5.4. GÉNÉRATION SYMBOLIQUE TRADITIONNELLE 83 On rappelle que ALG. 5.6 va créer un MDD qui est l’ensemble des états atteignables par des transi-tions d’un terme tensorieltà partir des états atteignables courants que l’on a restreint aux états de départ des transitions det.

ALG. 5.6Fire(int:tensor term,inp:node) :node

1: /* Conserve danslla valeur courant dep.lvl. Au premier appell=N*/

2: l←p.lvl;

3: /* Les états des automates d’indicel < Bot(t)(i.e., qui ne sont pas concernés par le termet) ne sont pas modifiés par l’occurrence des transitions det. C’est la condition de terminaison de l’algorithme récursif */

4: if(l <Bot(t))then

5: return p;

6: /* Création d’un noeudrau niveaulqui va stocker les nouveaux états atteignables */

7: r←NewNode(l) ;

8: for allx(l)∈ S(l)do

9: /* Six(l)est un état local courant à considérer */

10: if(p[x(l)]6=∅)then

11: /* Le noeudqsera le noeud du sous-arbre des états atteignables au niveaul−1*/

12: q←Fire(t,p[x(l)]) ;

13: /* Six(l)est un état de départ, alors touty(l)∈ S(l), tel queR˘(l)

t (x(l), y(l))est non-nul

14: est un état d’arrivée (Propriété 5.2.1) */

15: /* Construction du noeudrau niveaul*/

16: for ally(l)∈ S(l)do

17: if(R˘(l)

t (x(l), y(l))n’est pas nul)then

18: /* On construit les sous-arbres des états atteignables du noeudrau niveaul*/

19: r[y(l)]←Union(q,r[y(l)]) ;

20: end for

21: end for

22: return r;

En utilisant l’algorithme BFS avec des espaces d’états représentés par des MDD, il est possible d’obtenir des résultats très probants en ce qui concerne l’utilisation de la mémoire, ainsi que le temps d’exécution pour la génération de l’espace d’états [94]. Toutefois, bien que l’espace d’états représenté par un MDD utilise très peu de mémoire, la quantité de mémoire utilisée par les ensembles d’états pendant l’exécution de l’algorithme peut augmenter très vite. Ce problème provient du résultat des opérations sur les noeuds des MDD,i.e., chaque fois que l’ensemble d’états est actualisé, des nouveaux noeuds du MDD sont ajoutés par l’opération union, plutôt que modifier les noeuds existants.

5.4.3 Bilan de la génération symbolique traditionnelle

L’utilisation de l’algorithme BFS pour le calcul du RSS de modèles qui utilisent des fonctions de-mande la génération des MDD T ensorM dd(ALG. 5.4) associés aux termes tensoriels du descripteur d’atteignabilité du modèle.

Pour les modèles qui n’utilisent pas de fonctions - ou qui utilisent des fonctions dont les arguments de ces fonctions sont limités à l’espace d’états local d’un sous-système, e.g., des modèles décrits par le formalisme des Réseaux de Petri Stochastiques (SPN -Stochastic Petri Nets) - la génération d’un MDD

T ensorM dddu terme tensoriel est égal au MDDEnableM ddde ce terme. Toutefois, pour les modèles qui utilisent des fonctions sans restriction sur les arguments, il faut tenir compte de l’utilisation du MDD

T F M dd (ALG. 5.3), i.e., du MDD associé à des fonctions du terme tensoriel. Dans ce cas, le MDD pertinent,T ensorM ddest l’intersection des MDDT F M ddetEnableM dd.

En comparant les algorithmes ALG. 5.5 et ALG. 5.6 de cette thèse et les algorithmes pour la géné-ration du RSS de modèles décrits par le formalisme SPN [94], le principe général des algorithmes est le même. Par rapport à la génération du RSS présentée dans [94], l’élément nouveau estl’ajustement des sous-espaces (modélisé par les MDDT F M ddetEnableM dd) qu’il faut ajouter à chaque étape de la construction du RSS. Cette génération des MDDT F M dd(ALG. 5.3), ainsi que la génération des MDDF uncM dd(ALG. 5.1) est l’idée originale pour la génération du RSS des modèles qui utilisent des fonctions de cette thèse.