Nous présentons un outil développé pour la localisation des erreurs qui apparaissent lors de la vérification des systèmes stochastiques en utilisant la technique du model checking probabiliste avec l’outil PRISM. Le model checking probabiliste est une technique de vérification qui consiste à déterminer si un modèle probabiliste écrit avec le langage PRISM, satisfait une propriété stochastique écrite avec la logicque PCTL ou CSL. La localisation des erreurs est par le raisonnoment par abduction probabiliste sur des modèles ICL (Independent Choice Logic) qui sont des modèles des programmes méta-Prolog permettant de réaliser des méta-inférences. Ces modèles ICL sont générés automatiquement à partir des contre-exemples probabilistes donnés par l'outil DiPro dans le cas où le modèle PRISM ne satisfait pas la propriété stochastique. Une étude de cas est réalisée sur un réseau véhiculaire ad hoc (VANET).
1. D´ebogage des Programmes Probabilistes PRISM
D´ebogage des Programmes
Probabilistes PRISM
Larbaoui Lotfi et Mustapha Bourahla
Universit´e de M’sila Alg´erie
8 novembre 2016
2. D´ebogage des Programmes Probabilistes PRISM
Introduction
Le Model-Checking Probabiliste
Localisation des erreurs dans les programmes PRISM
Etude de cas : Les VANETs
Conclusion & perspectives
3. D´ebogage des Programmes Probabilistes PRISM
Introduction
Introduction
Le Model-Checking Probabiliste
Localisation des erreurs dans les programmes PRISM
Etude de cas : Les VANETs
Conclusion & perspectives
4. D´ebogage des Programmes Probabilistes PRISM
Introduction
Le probl`eme :
→ Dans le cas o`u l’une de ces propri´et´es n’est pas satisfaite :
Les contre-exemples probabilistes sont tr`es difficiles `a
comprendre .
La localisation l’origine de l’erreur du mod`ele peut prendre
beaucoup de temps .
Aper¸cu de notre solution : Les id´ees
1. Un programme XSL : transformer les contre-exemples vers des
programmes m´eta-Prolog) .
2. La logique ICL pour le raisonnement par abduction
probabiliste .
3. L’outil ELPMC : l’int´egration de (PRISM ,DiPro et Prolog ) .
5. D´ebogage des Programmes Probabilistes PRISM
Le Model-Checking Probabiliste
Introduction
Le Model-Checking Probabiliste
Localisation des erreurs dans les programmes PRISM
Etude de cas : Les VANETs
Conclusion & perspectives
6. D´ebogage des Programmes Probabilistes PRISM
Le Model-Checking Probabiliste
Probabilistic model checking
7. D´ebogage des Programmes Probabilistes PRISM
Le Model-Checking Probabiliste
PRISM
PRISM est un outil de v´erification automatique de propri´et´es des
mod`eles stochastiques (probabilistic model checker) .
PRISM supporte plusieurs types de mod`eles stochastiques :
les (DTMCs), les (CTMCs) , (MDPs) et les (PTAs).
et une liste de sp´ecification du mod`ele soit :
en PCTL (pour les DTMC et MDP),
soit en CSL (pour les CTMC).
8. D´ebogage des Programmes Probabilistes PRISM
Le Model-Checking Probabiliste
PRISM
PRISM est un outil de v´erification automatique de propri´et´es des
mod`eles stochastiques (probabilistic model checker) .
PRISM supporte plusieurs types de mod`eles stochastiques :
les (DTMCs), les (CTMCs) , (MDPs) et les (PTAs).
et une liste de sp´ecification du mod`ele soit :
en PCTL (pour les DTMC et MDP),
soit en CSL (pour les CTMC).
→ Une propri´et´e PCTL dont la forme est :
P∼p[ϕ] o`u ϕ = ϕ1Uϕ2
P=?[ϕ]
9. D´ebogage des Programmes Probabilistes PRISM
Le Model-Checking Probabiliste
Un simple programme PRISM
Une propri´et´e PCTL
10. D´ebogage des Programmes Probabilistes PRISM
Le Model-Checking Probabiliste
Contre-exemples Probabilistes
Un contre-exemple probabiliste est un ensemble de chemins
representant des comportments dans le mod`ele qui satisfont la
propri´et´e ϕ
12. D´ebogage des Programmes Probabilistes PRISM
Localisation des erreurs dans les programmes PRISM
Introduction
Le Model-Checking Probabiliste
Localisation des erreurs dans les programmes PRISM
Etude de cas : Les VANETs
Conclusion & perspectives
13. D´ebogage des Programmes Probabilistes PRISM
Localisation des erreurs dans les programmes PRISM
G´en´eration des programmes ICL
La logique du choix ind´ependant (Independet Choice Logic) a ´et´e
d´evelopp´ee pour raisoner sur les syst`emes multi-agents.
Un progamme ICL repr´esentant un contre-exemple probabiliste est
compos´e de :
1. Faits de la forme d(s, L) = D indiquant le degr´e de
responsabilit´e de chaque sous formule simple extraite de la
formule de propri´et´e.
2. Clauses repr´esentant les transitions dans le contre exemple
probabiliste et qui ont la forme
s < −s & d(s, X) = D & c(D).
3. la distribution de probabilit´es sur les choix de transitions
prob c(D) = D ∗ p
14. D´ebogage des Programmes Probabilistes PRISM
Localisation des erreurs dans les programmes PRISM
Le programme ICL
propertyProb(0.25). lastStates([s([f0=false, f1=false, f2=true],0)]) .
% Responsability Degrees :
d([f 0 = true, f 1 = true, f 2 = false], [[f 0 = true, f 1 = true]]) = 1.
d([f 0 = true, f 1 = false, f 2 = false], [[f 0 = true]]) = 1.
d([f 0 = false, f 1 = true, f 2 = false], [[f 1 = true]]) = 1.
d([f 0 = false, f 1 = false, f 2 = true], [[f 2 = true]]) = 1.
% Transitions :
s([f 0 = true, f 1 = true, f 2 = false], 0) < −s([f 0 = true, f 1 = false, f 2 = false], 0) &
d([f 0 = true, f 1 = false, f 2 = false], X) = D & c0(D).
s([f 0 = false, f 1 = true, f 2 = false], 0) < −s([f 0 = true, f 1 = true, f 2 = false], 0) &
d([f 0 = true, f 1 = true, f 2 = false], X) = D&c1(D).
s([f 0 = false, f 1 = true, f 2 = false], 0) < −s([f 0 = true, f 1 = true, f 2 = false], 1) &
d([f 0 = true, f 1 = true, f 2 = false], X) = D & c1(D).
s([f 0 = false, f 1 = false, f 2 = true], 0) < −s([f 0 = false, f 1 = true, f 2 = false], 0) &
d([f 0 = false, f 1 = true, f 2 = false], X) = D & c2(D).
s([f 0 = true, f 1 = true, f 2 = false], 1) < −s([f 0 = true, f 1 = true, f 2 = false], 0) &
d([f 0 = true, f 1 = true, f 2 = false], X) = D & c3(D).
% Probabity distribution :
prob s([f 0 = true, f 1 = false, f 2 = false], 0) : 1.0. prob c0(D) : D ∗ 0.6.
prob c1(D) : D ∗ 0.4. probc2(D) : D ∗ 0.7. prob c3(D) : D ∗ 0.6.
16. D´ebogage des Programmes Probabilistes PRISM
Localisation des erreurs dans les programmes PRISM
R´esultat de raisonnement par abduction probabiliste
17. D´ebogage des Programmes Probabilistes PRISM
Localisation des erreurs dans les programmes PRISM
R´esultat de raisonnement par abduction probabiliste
Ce r´esultat indique que les gardes des transitions impliqu´es dans le
contre exemple devront ˆetre raffin´ees par des expressions propos´ees
par le raisonneur.
18. D´ebogage des Programmes Probabilistes PRISM
Etude de cas : Les VANETs
Introduction
Le Model-Checking Probabiliste
Localisation des erreurs dans les programmes PRISM
Etude de cas : Les VANETs
Conclusion & perspectives
19. D´ebogage des Programmes Probabilistes PRISM
Etude de cas : Les VANETs
Etude de cas : Les VANETs
Un r´eseau ad hoc de v´ehicules ou VANET est constitu´e de
v´ehicules capables de s’´echanger des informations par voie radio
dans le but d’am´eliorer la s´ecurit´e routi`ere .
c1 d´epasse le leader, tandis que c2 vient dans la direction oppos´ee.
20. D´ebogage des Programmes Probabilistes PRISM
Etude de cas : Les VANETs
Etude de cas : Les VANETs
Propri´et´e :
Fragement du model :
21. D´ebogage des Programmes Probabilistes PRISM
Conclusion & perspectives
Introduction
Le Model-Checking Probabiliste
Localisation des erreurs dans les programmes PRISM
Etude de cas : Les VANETs
Conclusion & perspectives
22. D´ebogage des Programmes Probabilistes PRISM
Conclusion & perspectives
Conclusion & perspectives
Notre technique de localisation des erreurs permet en effet de
faire le lien entre la v´erification, diagnostique des
contre-exemples et la correction des erreurs de mani`ere
automatique .
Nous pr´evoyons :
D´eveloppement d’une version interactive de notre outil :
Fournir les localisations l’une apr`es les autres (plusieurs
propri´et´es)
Construction un syst`eme de marquage pour s´electionner les
gardes des transitions concern´ees par le raffinement.
23. D´ebogage des Programmes Probabilistes PRISM
Conclusion & perspectives
Bibliographie
Husain Aljazzar,Florian Leitner,Stefan Leue and Dimitar
DiPro - A Tool for Probabilistic Counterexample Generation
Model Checking Software - 18th International SPIN Workshop,
Snowbird, UT, USA, July 14-15, 2011. Proceedings
Mustapha Bourahla
Repairing Errors in PRISM Programs Using Probabilistic
Abduction Reasoning
Model and Data Engineering - 5th International Conference,
MEDI 2015, Rhodes, Greece, September 26-28, 2015,
Proceedings
M. Kwiatkowska , G. Norman and D. Parker
PRISM 4.0 : Verification of Probabilistic Real-time Systems
Proc. 23rd International Conference on Computer Aided
Verification (CAV’11)