• Aucun résultat trouvé

2.3 Application des techniques formelles

2.3.2 La technique du model-checking

2.3.2.4 Processus stochastiques

Un processus stochastique permet de modéliser l’évolution de systèmes aléatoires en prenant en compte la survenance d’événements imprévisibles. Un processus stochastique

{Xt, t∈ T}est une collection de variables aléatoires indexées par un paramètre t et définies sur un même espace de probabilité. t dénote le temps et Xt représente l’état du processus à l’instant t.

Dans la plupart des travaux, la modélisation stochastique des systèmes auto- organisateurs se fait à l’aide d’un type bien particulier des processus stochastiques appelé chaînes de Markov. La particularité des chaînes de Markov réside dans la propriété d’"absence de mémoire" appelé propriété de Markov. Un processus stochastique vérifie cette propriété si et seulement si la loi de probabilité des états futurs du processus dépend uniquement de son état présent. Ceci se traduit par l’équation suivante :

Pr(Xn+1=x|X0, X1, X2, ...Xn) =Pr(Xn+1=x|Xn).

Une chaîne de Markov peut être à temps discret (Discrete-Time Markov Chain ou DTMC) ou à temps continu (Continuous-Time Markov Chain ou CTMC).

Pour les DTMC, si le processus est dans un état y à l’instant n, la probabilité qu’il passe à l’état x à l’instant n+1 est indépendant de n et dépend uniquement de son état courant y. Ainsi, à tout instant n, une chaîne de Markov peut être représentée par une matrice de probabilité dont l’élément(x, y)est indépendant de n et est donnée par l’équation :

Pr(Xn=x|Xn =y).

Pour les CTMC, le temps passé dans chacun des états est une variable aléatoire réelle positive suivant une loi exponentielle. Les valeurs contenues dans une matrice de transition d’une CTMC représentent les taux de transition d’un état à un autre.

Récemment, plusieurs langages et outils pour la modélisation et la vérification de systèmes stochastiques ont été proposés. Parmi lesquels on peut citer les langages Sto- chasticπ-Calculus [Priami, 1995] (extension du langage π Calculus [Milner et al., 1992]) et Bio-PEPA [Hillston, 2005c] (extension du langage PEPA (Performance Evaluation Pro- cess Algebra) [Hillston, 2005a]), [Hillston, 2005b] et les outils SPiM [Phillips et Cardelli, 2007] et PRISM8[Hinton et al., 2006], [Kwiatkowska et al., 2011].

Ces outils offrent le moyen de modéliser des systèmes stochastiques et de les analyser au moyen de techniques numériques tel que le model-checking probabiliste ou au moyen de techniques statistiques tel que le model-checking probabiliste approximatif appelé aussi Statistical model-checking.

Plus récemment, la technique du model-checking a été étendue pour prendre en compte les aspects quantitatifs liés à la performance des systèmes donnant lieu à la technique du model-checking probabiliste (appelée aussi model-checking stochastique dans [Ciocchetta et Hillston]). Par conséquent, des versions probabilistes de la logique temporelle ont été proposées pour la formulation de propriétés quantitatives.

Parmi ces extensions, on cite la logique stochastique continue (Continuous Stochastic Logic) [Aziz et al., 2000], la logique PCTL (Probabilistic Computation Tree Logic) [Hansson

2.3. Application des techniques formelles

et Jonsson, 1994] et PLTL (Probabilistic Linear Temporal Logic).

La méthode de vérification avec cette technique est basée sur des algorithmes numé- riques pour calculer de manière exacte les probabilités sur le passage entre les différents états ou les états stables. L’application de cette technique nécessite la construction de tout l’espace d’états que le système peut atteindre ce qui limite son utilisation aux modèles dont le nombre d’états est de l’ordre de 107[Ciocchetta et Hillston], [Nimal, 2010].

Pour pallier cet inconvénient, une solution possible consiste à utiliser des techniques d’approximation pour estimer la probabilité à calculer. Cette technique se compose de trois étapes :

3 générer plusieurs exécutions aléatoires du système,

3 vérifier la propriété considérée sur ces exécutions générées et

3 calculer la probabilité en faisant la moyenne des exécutions vérifiant la propriété consi- dérée.

Dans [Casadei et Viroli, 2009], une approche hybride pour la modélisation et la vérifi- cation de systèmes auto-organisateurs a été proposée. Cette approche utilise la simulation stochastique pour la modélisation du système dont l’évolution est capturée à l’aide des chaînes de Markov et la technique de model-checking probabiliste pour la vérification.

Pour éviter le problème d’explosion d’états, rencontré avec les model-checkers, l’ap- proche propose de faire recours au model-checking approximatif qui repose sur les simulations. En effet, pour vérifier une certaine propriété, le modèle du système sera exécuté plusieurs fois. Pour chaque exécution, le résultat est évalué. Le résultat final est la moyenne des résultats obtenus.

L’approche a été testée pour le problème de tri collectif qui consiste à ranger les éléments de même type dans le même groupe. Le tri collectif a été modélisé l’aide de l’outil PRISM ([Kwiatkowska et al., 2009]) en tant qu’une chaîne de Markov à temps discret en modélisant explicitement toutes les transitions possibles entre les différents groupes d’éléments.

Konur et al. [Konur et al., 2012] utilisent également l’outil PRISM et le model-checking probabiliste pour la vérification des comportements des essaims de robots et en particulier les robots fourrageurs. Pour éviter le problème d’explosion d’états, les auteurs optent pour une approche macroscopique au lieu d’une approche microscopique. Dans l’approche microscopique, chaque robot est représenté par une machine à états finis probabiliste et le système est généré en faisant le produit de toutes ces machines. Dans l’approche macroscopique, on considère uniquement le comportement de la population en sa globalité. Le système est alors modélisé par une seule machine à états dont chaque état contient une information sur le nombre total d’agents dans cet état ainsi qu’une description de l’évo-

lution de ce nombre dans le temps. Grâce à leur approche macroscopique, les auteurs ont réussi à vérifier certaines propriétés en utilisant aussi la logique PCTL et la simulation pour différents scénarios. Ces propriétés renseignent en particulier sur la probabilité que l’essaim acquière une certaine quantité d’énergie dans un délai et pour un nombre d’agents bien déterminé. Les simulations montrent la corrélation entre la densité des robots fourrageurs dans l’arène et la quantité d’énergie acquise.