Le "model checking" stochastique est un moyen de vérification des performances des systèmes probabilistes spécifiés à l'aide des chaînes de Markov (discrètes ou continues) et des logiques temporelles comme PCTL (Probabilistic Computational Tree Logic) dans le cas des chaînes discrètes , CSL (Continuous Stochastic Logic) dans le cas des chaînes continues et PRCTL (Probabilistic Reward Computational Tree Logic) dans les chaînes associées à des récompenses.
Le modèle checking stochastique de sûreté
de fonctionnement repose sur la
vérification de la validité de
formules spécifiant des mesures de récompenses à l'état
stationnaire et transitoire. On a donc les mêmes problèmes
d'explosion combinatoire des espaces d'état lors des vérifications.
Actuellement les "model checkers" probabilistes se contentent de calculer
exactement les probabilités du modèle et de vérifier ensuite la
contrainte spécifiée par la formule.
Il est clair que l'utilisation des concepts
des bornes stochastiques simplifie dans certains cas, la vérification.
Nous avons proposé, dans le cadre de nos travaux,
une approche de vérification de ces formules se basant sur les techniques
d'encadrement stochastiques. Cette approche réduit la taille de
l'espace des états et la complexité de la
résolution numérique.
Elle permet la vérification des
formules spécifiant des mesures de
récompenses désignés par les opérateurs suivants :
.
Illustrons ceci sur un exemple. On considère un système de file d'attente Geo/D/1/B avec une gestion d'accès de type RED (Random Early Detection). On modélisé par une chaîne de Markov discrète où on ne présente que le nombre de paquets en attente. Ceci est un modèle approché car le mécanisme RED repose sur une destruction probabiliste des paquets entrant avec un seuil qui dépent de la moyenne mobile de la file et non pas de sa valeur instantanée. Néanmoins, on ne représente ici que la valeur actuelle de la taille de la file et on suppose que le taux de rejet du paquet dépend de cette taille. Lorsque la taille de la file dépasse la moitié du buffer, RED commence à rejeter aléatoirement des paquets lors de leur admission. Pour évaluer les pertes des paquets dans la chaîne, on désigne comme fonction de récompense le nombre moyen de paquets perdus par slot. A chaque état est associé sa valeur de récompense et des formules (appelées propositions atomiques) spécifiant l'état.
On associe aux états de la chaîne où il y a
des pertes de paquets la formule
et à l'état où le buffer est plein
la formule
.
peut aussi
s'exprimer suivant les logiques temporelles PCTL ou CSL, exemple
spécifiant les états pour
lesquels on atteint l'état du système plein dans au plus
étapes. S'intéréssant à mesurer des récompenses
pour les états qui vérifient la formule
, le "model
checking" possède des opérateurs qui expriment les
mesures de récompense du système et en particulier dans
les états qui vérifient
. Dans le cas
de la file exemple,
pour évaluer le taux de rejet des paquets depuis l'instant
jusqu'à l'instant
et
voir s'il dépasse ou pas un certain seuil
, il suffit
de vérifier
l'opérateur
avec
dans le "model
checker".
En utilisant des récompense qui sont croissantes, on peut employer des
bornes "st" sur la chaine pour obtenir une borne sup ou inf des
récompenses et il est possible d'éviter de calculer les distributions
de la chaîne
d'origine.
La vérification des formules s'effectue en comparant les
récompenses des bornes
inférieures et supérieures avec les seuils de l'intervalle
.
Soit min et max les bornes inf et sup calculées, on a quatre cas en
général:
La stratégie de constructon des partitions pour l'algorithme LIMSUB
repose d'abord sur la division de l'espace d'états
en deux sous-ensembles : le premier, ,
contient les états qui satisfont
la formule
et le
deuxième,
, contient les états qui ne la satisfont pas.
On réduit avec cette décomposition le travail uniquement sur
l'espace d'état
. De plus, on agrège les états de
qui ont des
valeurs de récompense proches pour obtenir un espace d'état
plus petit et on
calcule les bornes (supérieures et inférieures) sur les chaînes
bornantes de
taille inférieure à celle des chaînes de Markov d'origine.