Académique Documents
Professionnel Documents
Culture Documents
Elaboré par
saidounid@hotmail.com
1 mai 2018
Résumé : Ce document regroupe plusieurs exercices et problèmes dont la plus
part ont été proposé dans les examens et concours d’accès aux études en post-
graduation en informatique à l’université de Constantine. Les exercices
proposés couvrent les principaux aspects de la spécification et la vérification
formelles des systèmes concurrents. Plus précisément, ils concernent la
spécification des systèmes par les réseaux de Petri et la technique de
description formelle LOTOS. Par ailleurs beaucoup d’exercices concernent les
trois approches de vérification formelle à savoir la vérification basée modèle, la
vérification basée sur les relations de bissimulation ainsi que l’approche de test
formel.
Exercice
1. Donnez une description de la trajectoire de conception d’un système concurrent.
2. Donnez une description de chaque étape de conception de la trajectoire de conception.
3. Sous quelle condition peut-on utiliser la technique de description formelle LOTOS pour
la spécification d’un système critique ? Argumentez votre réponse.
Solution
Exercice
1. Quelles sont les différentes classes des modèles de spécification des systèmes
concurrents ? Pour chacune de ces classes donnez des exemples de modèles.
2. Donnez la syntaxe et la sémantique opérationnelle de la technique de description
formelle LOTOS ?
3. Donnez la définition d’un système de transitions étiquetées ?
4. Donnez la définition d’une relation de bissimulation forte ?
5. Donnez la définition de l’équivalence de bissimulation ?
Solution
Exercice :
1. Donner les principaux éléments constituant un cahier des charges d’un système.
2. La trajectoire de conception formelle d’un système est composée de trois phases. Expliquer
chacune de ces phases en se référant au cahier des charges du système à concevoir.
a b
a b
a b
b a
M3
M1
M2
« a » et « b » désignent les étiquettes des transitions.
Première partie :
Soient les 3 réseaux de Petri ci-dessus et sui spécifient respectivement les machines M1, M2 et M3.
1. En se basant sur la sémantique des réseaux de Petri, construisez les graphes de marquages de
chacune de ces trois machines. Quels sont donc les STEs correspondants.
2. Etudiez les équivalences de comportement entre ces trois machines.
3. Dans le cas où les exécutions des actions a et b durent dans le temps, quelle différence peut on
observer dans les comportements de ces trois machines ? Quelle est la conséquence de cette
hypothèse sur les équivalences de comportement entre ces trois machines ?
4. Que peut-on conclure ?
Deuxième partie :
1. Pour chacune des machines précédentes, donnez une expression de comportement basic LOTOS
qui la spécifie.
2. Appliquez la sémantique opérationnelle de basic LOTOS pour la construction des STEs
correspondants.
3. Réduisez les STEs obtenus modulo la relation de bissimulation forte.
Solution
Solution
Deuxième partie : Dans cette partie on conserve l’hypothèse H2 et on remplace l’hypothèse H1 par H1’
comme suit :
Q5) Montrer que dans ce cas, l’interblocage ne se produira jamais. Justifiez votre réponse.
Q6) Proposer une spécification LOTOS de ce système.
Solution
Le nettoyage de la salle opératoire commence dès que le patient quitte la salle opératoire. On
considère 4 ressources : 10 chambres de malades, 4 salles opératoires ; 5 lits de réveils ; 2 équipes
de brancardiers.
Questions :
1- Proposer une modélisation du problème en prenant pour hypothèse que le patient est
susceptible d’attendre entre les tâches et qu’il n’est jamais laissé seul dans les couloirs.
2- Montrer que dans ce cas un interblocage peut se produire. Proposer une solution tout en
indiquant laquelle des conditions nécessaires pour l’occurrence de l’interblocage vous avez
éliminé.
3- Proposer une modélisation du problème dans le cas où le patient ne quitte sa chambre que si
une salle opératoire est disponible.
Solution:
Questions :
1. Modélisez le fonctionnement d’un tel système au moyen d’un réseau de Petri ordinaire tout
en justifiant vos choix.
2. Quelles sont les limites de ce modèle pour la spécification de certaines caractéristiques
fonctionnelles de ce système.
Solution:
T1
P2 P1
T2 T4
P4
P3 P5
T3 T5
T1
P2 P1
T2 T4
P4
P5
P3
T3
T5
<1,1,0,1,0> <2,0,0,0,1>
fEb
fEb
dEr dEb dD fD
dEr
dEr
dEb
fD dD <0,1,1,0,0>
dEr
<0,2,0,0,1>
3) Analyse du système
a) La famine peut concerner soit les départs ou les arrivées. Pour cela il suffit de trouver un circuit
qui exclut les arrivées et un autre qui exclut les départs.
i) Circuit excluant les arrivées :
<2,0,0,1,0> -- dEr <1,1,0,1,0> --dEb <1,0,1,0,0> ---fEb <2,0,0,1,0>
ii) Circuit excluant les départs :
<2,0,0,1,0> -- dD <2,0,0,1,0> ---fD <2,0,0,1,0>
La ressource commune non partageable étant la passerelle.
b) Solution
T1
P6
P2 P1
P7
T2 T4
P4
P5
P3
T3
T5
4. Spécification LOTOS :
a) Système Aeroport [dEb,fEb,dD,fD,rP,lP] :=
Begin
(EM [dEb,fEb,rP,lP] ||| DB[dD,fD,rP,lP] )
|[rP,lP]|
PR[rP,lP]
Where
Process EM [dEb,fEb,rP,lP] :=
rP ; dEb ; fEb ; EM [dEb,fEb,rP,lP]
Endprocess
Process DB [dD,fD,rP,lP] :=
rP ; dD ; fD ; lP ; DB [dD,fD,rP,lP]
Endprocess
Process PR [rP,lP] :=
rP ; lP ; PR [rP,lP]
Endprocess
End
b) Raffinement du processus d’embarquement
Process EM [dEb,fEb,rP,lP] :=
Hide rSe , lSe in
(IEM[dEb,fEb,rP,lP] ||| IEM[dEb,fEb,rP,lP]) |[ dEr, fEr]| SE[rSe,lSe]
Where
Process IEM[dEb,fEb,dEr,fEr] :=
rSe ; rP ; dEb ; fEb ; lSe ; lP ; IEM[dEb,fEb,rSe,lSe]
Endprocess
Process SE[rSe,lSe] :=
rSe ; SE1R[rSe,lSe]
Where
Process SE1R[rSe,lSe] :=
lSe ; SE[rSe,lSe]
[]
rSe ; SE2R[rSe,lSe]
Where
Process SE2R[rSe,lSe]
lSe ; SE1R[rSe,lSe]
Endprocess
Endprocess
Endprocess
Endprocess
Dans une usine, des pièces sont reçus à l’état brut et sont usinées puis livrées. Le réseau de Petri
ci-dessous modélise un tel processus de fabrication.
P0 : Panier des pièces brutes
P1 : Panier des pièces usinées
T0 T1 T2 P2 : Pièces des pièces à livrer
P0 P1 P2
T0 : Usinage
4 T1 : Transportation
T2 : Livraison d’une pièce et
alimentation du panier de pièces
RDP1 brutes
<4,0,0>
T0
T2
<3,1,0>
T0 T1
<2,2,0> T2 <3,0,1>
T0 T1 T0
<1,3,0> T2 <2,1,1> T2
T0
T1 T0 T1
T2 T2
<0,4,0> <1,2,1> <2,0,2>
T1 T0 T1 T0
<0,3,1> T2 <1,1,2> T2
T1 T0
T1
T2
<0,2,2> <1,0,3>
T1
T0
<0,1,3>
T2
T1
<0,0,4>
Graphe de marquages 1
Question 2)
P0 T0 T1 T2
P1 P2
2 2
4
RDP2
<4,0,0>
T0
T2
<3,1,0> T2
T0 T2
<3,0,1> T2
<2,2,0>
T0 T1 T0
T2
T2
<0,4,0>
<1,1,2> <1,2,1>
T1 T0 T1 T0
T2
<0,0,4> <0,1,3>
T2
T2
T2
Graphe de marquages 2
<4,0,0>
<3,1,0>
U i
<2,2,0> L <3,0,1>
U i U
<1,3,0> L <2,1,1> L
U
i U i
<0,3,1> L <1,1,2> L
U
i i
L
<0,2,2> <1,0,3>
i
U
<0,1,3> L
i
<0,0,4>
STE 1
U L
<3,1,0> L
U L
<3,0,1> L
<2,2,0>
U i U
L
L
<0,4,0>
<1,1,2> <1,2,1>
i U i U
L
<1,0,3> <0,3,1>
<0,2,2>
i U
i
<0,0,4> <0,1,3>
L
STE 2
b) Remarquons que la seule transition possible à partir des états initiaux est celle étiquetée par
U. Les deux états résultants sont identifiés par le marquage < 3,1,0 > . Cependant dans
𝐿
STE1 on a la transition < 3,1,0 > ⇒< 4,0,0 > alors qu’aucune transition d’étiquette L n’est
possible à partir du marquage < 3,1,0 > du STE2. De ce fait les deux STEs ne sont pas
faiblement bissimilaires.
c) 𝓡(𝑆𝑇𝐸1, 𝑈. 𝐿) = { ⊺ }, 𝓡(𝑆𝑇𝐸2, 𝑈. 𝐿) = {⊥}. Les deux systèmes sont distinguables aussi
bien avec le may test qu’avec le must test.
P P
2 2
RDP RDP2
1
1. Pour n = 2, calculez le graphe de marquages associé à chacun des deux réseaux de Petri.
2. Pour n quelconque, quel est le nombre de jetons dans la place P2 à l’état final (marquage
final) ?
3. Que modélisent ces réseaux de Petri ?
4. Quelle est la différence fonctionnelle entre les deux modèles ?
5. Peut-on observer cette différence dans les graphes de marquages correspondants ?
Argumentez votre réponse.
Solution:
1. Pour n = 2, les graphes de marquages associés aux réseaux de Petri sont comme suit :
t1 :plus1 t1 :plus1
t :plus1 t :plus1
<2,0> <1,1> <0,2> <2,0> <1,1> <0,2>
2. Pour n quelconque, le nombre de jetons dans la place P2 à l’état final (marquage final) est
égal à n?
3. Que modélisent ces réseaux de Petri ? Chacun des deux réseaux de Petri modélise un système
de transportation d’objets d’une localité (place P1) à une autre (place P2).
4. La différence fonctionnelle entre les deux modèles est la suivante :
Dans RDP1, la transportation est faite par un seul agent, donc le transfert des objets se fait
séquentiellement. Cependant, dans RDP2 la transportation des objets est réalisée par deux
agents qui travaillent en parallèle.
5. Par la construction des STE associés aux deux graphes de marquages, les transitions seront
étiquetées par le nom (le label) de la transition du réseau de Petri, cela conduira à
l’identification des transitions reliant deux états dans le deuxième STE. On obtient donc deux
Exercice: (Rdp)
Le but de cet exercice est d’étudier formellement le comportement d’un système de navigation
par GPS composé des trois processus cycliques : P1, P2 et P3. Le comportement de chacun des
processus est décrit ci-dessous.
Comportement du processus P1 : Ce processus calcule les informations de trafic entre deux
coordonnées GPS. Il commence son exécution par recevoir la requête textuelle du client.
Ensuite, il l’envoie en parallèle à chacun des processus P2 et P3. L’opération d’envoi de la
requête à un processus est suivie séquentiellement de la réception des coordonnées GPS si la
requête est envoyée à P2 ou de la réception du type de l’information de trafic si la requête est
envoyée à P3. Enfin, le processus P1 répond au client par l’envoi des informations de trafic.
Comportement du processus P2 : Ce processus calcule les coordonnées GPS à partir de la
requête textuelle. Au départ, il reçoit la requête textuelle, ensuite il envoie les coordonnées GPS
au processus P1.
Comportement du processus P3 : Ce processus calcule le type des informations de trafic. Il
reçoit la requête textuelle de la part du processus P1, ensuite, il répond par l’envoi du type de
l’information de trafic.
Questions :
1. Modélisez à l’aide de trois réseaux de Petri les processus P1, P2, P3.
2. Etudiez les propriétés de vivacité, quasi-vivacité et réversibilité des modèles à base de
réseaux de Petri des processus P1, P2 et P3.
3. Modélisez chacun des processus P1, P2 et P3 par un rectangle sur lequel sont reportés ses
points d’interaction avec son environnement.
4. Donnez la spécification formelle en basic lotos de chacun des processus ainsi que la
spécification du système global.
5. En appliquant la sémantique opérationnelle d’entrelacement de basic lotos, développez les
STEs de chacun des processus et du système global.
6. Supposant que le processus P2 peut perdre les requêtes reçues. Pour remédier à ce
problème, le processus P1 et retransmet toujours les messages après passage d’un délai
d’attente.
7. Donnez la nouvelle spécification lotos du système global.
8. Déduisez sont nouveau système de transitions étiqueté.
Solution:
Solution :
Solution :
Solution :
Solution :
Solution :
Etudiez la bisimularité forte et faible dans les cas suivants, en donnant la relation de
bissimulation dans le cas où les systèmes sont bisimilaires et un contre-exemple dans le cas
inverse.
a) entre STE1 et STE2
b) entre STE3 et STE4
c) entre STE1 et STE5
Question 5) Quand est-ce que les deux types d’équivalence de bisimulation forte et faible
coïncident elles ?
Question 6) Proposez les expressions de comportement LOTOS qui representent chacun des
comportemnts des STE1, STE3 et STE5.
Question 6) Proposez les réseaux de Petri qui spécifient les mêmes comportments que ceux des
STE2 et STE4.
Solution :
Solution :
1. Ecrire les expressions de comportement Basic LOTOS décrivant les machines M1 et M2.
2. Pour chacune des deux expressions développez le système de transitions étiquetées qui lui est
associé.
3. Etudiez l’équivalence de bissimulation ainsi que l’équivalence de test entre les machines M1
et M2.
4. En admettant que l’opération de livraison de café n’est pas instantanée (de durée non nulle),
que pouvez-vous conclure.
Solution :
WHERE
PROCESS Producteur[…..]:=
…..
ENDPROC
PROCESS Consommateur[…..]:=
…..
ENDPROC
PROCESS Buffer[in,out]:=
in; out; Buffer[in,out]
ENDPROC
Solution :
1. Spécification Basic LOTOS :
SYSTEM producteurconsommateur[produire,consommer,in,out] :=
( Producteur[produire,in] ||| Consommateur[consommer,out] )
|[in,out]|
Buffer[in,out]
WHERE
PROCESS Producteur[produire,in]:=
produire ; in ; Producteur[produire,in]
ENDPROC
PROCESS Consommateur[consommer,out]:=
out ; consommer ; Consommateur[consommer,out]
ENDPROC
PROCESS Buffer[in,out]:=
in; out; Buffer[in,out] produire
ENDPROC
2. Producteur[produire,in] In ; Producteur[produire,in]
in
Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 33
STE du Producteur
out
consommer
STE du Consommateur
in
out
STE du Buffer
S0
Consommer Produire
S3 S1
Consommer
In
Produire Out
S2
Produire
S5 S4
Out
In Consommer
Consommer
S6 S7
Schéma de coopération :
Le calcul global C étant l’exécution par les processus P0, P1 et P2 des calculs c0, c1 et c2
respectivement.
Trois ressources R0, R1 et R2 sont utilisées par les trois processus. Chaque ressource doit être utilisée
en exclusion mutuelle.
Un processus Pi n’utilise que les ressources Ri et R((i+1) mod 3).
Lorsqu’un processus Pi désire effectuer le calcul ci il doit acquérir les ressources Ri et R((i+1) mod 3)
dans cet ordre (acquérir Ri ensuite R((i+1) mod 3). Dans le cas où une ressource réclamée n’est pas
disponible, le processus Pi doit attendre sa libération par un autre processus.
Lorsqu’un processus Pi termine son calcul ci il libère immédiatement les ressources Ri et R((i+1) mod
3).
Schéma de la solution :
Un processus Pi peut être vu comme une boite noire dont les portes de synchronisation sont ci, ARi,
AR((i+1) mod 3), LRi, LR((i+1) mod 3) avec la signification suivante :
Ci : une interaction sur la porte Ci représente l’exécution du calcul ci.
ARi : allocation de la ressource Ri.
LRi : libération de la ressource Ri.
Une ressource Ri peut être vue comme une boite noire dont les portes de synchronisation sont ARi et LRi.
(dans ce cas on assimile une ressource au processus qui la gère).
Questions
1. Que représentent les propriétés de sûreté et de vivacité que doit vérifier le système ?
2. Quels sont les environnements respectifs des processus Pi et Ri. ?
3. Dans la phase architecturale on ne s’intéresse qu’au comportement observable du système.
1. Donnez la spécification formelle en LOTOS des processus Pi et Ri.
2. Donnez la spécification formelle en LOTOS du système global constitué des processus P0, P1, P2,
R0, R1 et R2.
4. Pour chacun des processus précédemment définis, construisez les STEs correspondant.
5. A présent on considère que l’allocation et la libération des ressources sont des opérations non
observables.
a) Donnez la spécification du système global.
b) Donnez le STE du système global.
c) Construisez un STE réduit par la relation de bissimulation faible.
d) Analysez les propriétés de sûreté et de vivacité.
e) Dans le cas où une des propriétés n’est pas vérifiée, indiquez la source du problème
(cahier de charge ou spécification) et proposez éventuellement une solution pour la
satisfiabilité des propriétés ?
Solution :
Dans l’énoncé de ce problème, on nous dit que P1passe cycliquement par les états suivants :
Pense, Prendre B1, Prendre B2, Mange, Rend B1, Rend B2. Cependant P2 passe cycliquement par les
états suivants : Pense, Prendre B2, Prendre B1, Mange, Rend B2, Rend B1.
Première partie :
1. Modélisez ce problème en LOTOS en respectant la décomposition suivante :
a. Chaque philosophe est assimilé à un processus ayant six points d’interaction et qui sont : P,
M, PB1, PB2, RB1 et RB2 dont les significations sont respectivement Pense, Mange, Prendre
B1, Prendre B2, Rendre B1 et Rendre B2.
b. Chaque baguette Bi est assimilée à un processus ayant deux portes d’interaction PBi et RBi.
2. Développez le système de transitions étiquetées de chaque processus ainsi que celui de la spécification
globale.
3. Rectifiez la spécification globale en intériorisant les portes PB1, PB2, RB1 et RB2.
4. Dessinez le système de transitions étiqueté résultant.
5. Appliquez l’algorithme MRCP pour réduire le STE résultant.
6. On utilisant le STE réduit, montrez que l’interblocage peut se produire. Analysez la source du
problème et proposez une solution.
Deuxième partie :
1. Proposez un réseau de Petri modélisant le problème précédent.
2. Discutez les avantages de chaque modèle selon le contexte de son application (vos réponses
doivent être argumentées).
Solution :
Solution :
1. Non, l’interblocage ne peut pas se produire dans cette solution car on a éliminé la condition d’attente
circulaire par l’utilisation d’un ordre d’allocation des ressources (les baguettes).
2.
SYSTE Phylosophe3[pb1ParPhy1,rb1ParPhy1,pb2ParPhy1,rb2ParPhy1,pense1,mange1,
pb2ParPhy2,rb2ParPhy2,pb3ParPhy2,rb3ParPhy2,pense2,mange2,
pb3ParPhy3,rb3ParPhy3,pb1ParPhy3,rb1ParPhy3,pense3,mange3] :=
(Phylosophe[pb1ParPhy1,rb1ParPhy1,pb2ParPhy1,rb2ParPhy1,pense1,mange1]
|||
Phylosophe[pb2ParPhy2,rb2ParPhy2,pb3ParPhy2,rb3ParPhy2,pense2,mange2]
|||
Phylosophe[pb1ParPhy3,rb1ParPhy3,pb3ParPhy3,rb3ParPhy3,pense3,mange3]
)
|[pb1ParPhy1,rb1ParPhy1,pb1ParPhy3,rb1ParPhy3,pb2ParPhy1,rb2ParPhy1,pb2ParPhy2,rb2Par
Phy2,pb3ParPhy2,rb3ParPhy2,pb3ParPhy3,rb3ParPhy3]|
( Baguette[pb1ParPhy1,rb1ParPhy1,pb1ParPhy3,rb1ParPhy3]
|||
Baguette[pb2ParPhy1,rb2ParPhy1,pb2ParPhy2,rb2ParPhy2]
|||
Baguette[pb3ParPhy2,rb3ParPhy2,pb3ParPhy3,rb3ParPhy3]
)
WHERE
PROCESS Phylosophe[pbg,rbg,pbd,rbd,pense,mange]:=
pense;pbg;pbd;mange;rbg;rbd;Phylosophe[pbg,rbg,pbd,rbd,pense,mange]
ENDPROC
PROCESS Baguette[pbParPhyG,rbParPhyG,pbParPhyD,rbParPhyD]:=
pbParPhyG;rbParPhyG;Baguette[pbParPhyG,rbParPhyG,pbParPhyD,rbParPhyD]
[]
pbParPhyD;rbParPhyD;Baguette[pbParPhyG,rbParPhyG,pbParPhyD,rbParPhyD]
ENDPROC
Solution :
M2 = P ; M2 [ ] C ; M2 [ ] T ; M2
A la réception des machines, le directeur de l’entreprise s’est rendu compte que certaines fiches
techniques n’indiquaient pas la catégorie des machines.
Pour assurer la bonne affectation des machines, le directeur de l’entreprise a fait appel à un
spécialiste des méthodes formelles pour analyser les comportements des machines vues comme
des boites noires. La démarche entreprise consiste à répondre aux questions suivantes :
1. Donnez une spécification LOTOS de la machine M1.
2. Par application de la sémantique opérationnelle de LOTOS, développez son STE.
3. Donnez le réseau de Petri relatif à M1. Développez son graphe de marquage et comparez-le
au STE de la spécification LOTOS.
4. Construisez le graphe de refus relatif au STE.
5. Par application de la sémantique opérationnelle de LOTOS, développez le STE de M2.
6. Donnez le réseau de Petri relatif à M2. Développez son graphe de marquage et comparez-le
au STE de la spécification LOTOS.
7. Construisez le graphe de refus relatif au STE de M2.
8. Quelles sont les tests qui permettent de distinguer les deux machines.
9. Donnez deux séquences de test qui montrent que la machine M2 peut offrir des boissons
gratuitement.
Solution :
Questions :
1. Modélisez chacun des processus de ce système par un rectangle sur lequel sont reportés ses
points d’interaction avec son environnement.
2. Donnez l’environnement de chacun de ces processus.
3. Modélisez sous forme graphique le système global.
4. Donnez la spécification formelle en basic lotos de chacun des processus ainsi que la
spécification du système global.
5. En appliquant la sémantique opérationnelle d’entrelacement de basic lotos, développez les
STEs de chacun des processus et du système global.
6. Dans une solution résolvant le problème de la section critique, les opérations de négociation
pour l’entrée en section critique ne devront pas être perceptibles par l’application (partie
transparente à l’application). Par la considération de cette remarque, donnez le système de
transitions étiqueté de l’architecture du système global.
7. Modélisez par un réseau de Petri cette architecture.
8. Donnez la nouvelle spécification lotos du système global.
9. Déduisez sont nouveau système de transitions étiqueté.
10. En appliquant l’algorithme MRCP, construisez le système de transitions étiqueté réduit
modulo la bissimulation faible.
11. Concluez.
Solution :
Afin d’optimiser le traitement des pièces, le gérant de l’usine décide de remplacer les deux
machines 𝑀1 et 𝑀2 par une seule machine 𝑀3 qui effectue les deux opérations 𝑜𝑝1 et 𝑜𝑝2 en
parallèle et de manière indépendante.
Question 3) Supposons que les durées d’exécution des opérations 𝑜𝑝1 et 𝑜𝑝2 sont
respectivement 𝑑(𝑜𝑝1 ) et 𝑑(𝑜𝑝2 ). Peut-on observer une différence entre les durées d’exécution
des comportements du System1 et System2 ? Que peut-on conclure ?
Question 4) Supposons que l’opération 𝑜𝑝2 est la succession de deux opérations partielles 𝑜𝑝3 et
𝑜𝑝4 . En remplaçant l’action op2 par op3;op4 dans les expressions de comportement
System1 et System2 :
a. Développez les STE1’ et STE2’ des expressions de comportement obtenues ?
b. Etudiez la bissimularité faible entre STE1’ et STE2’. Que peut-on conclure ?
Question 5) Donnez les réseaux de Petri R1 et R2 ayant respectivement le même comportement
que celui de STE1’ et de STE2’.
Solution :
Solution :
Solution :
1. La relation de bissimulation faible a deux intérêts, lesquels ?
a. Analyse de l’équivalence observationnelle entre les spécifications. Elle est utilisée
principalement pour vérifier cette équivalence entre les spécifications d’un même
système mais de niveaux d’abstractions différents.
b. Réduction du STE tout en préservant l’équivalence observationnelle. Cela
améliore les performances (temps et mémoire) des autres approches de
vérification (logique et test formel).
2. Quelles sont les approches pour remédier au problème de l’explosion combinatoire de
l’espace d’états ? On distingue cinq approches principales à savoir :
a. Utilisation d’algorithmes de réduction à la volée de l’espace d’états (réduction au
moment de la génération) modulo une relation préservant les propriétés requises
(Relation de bissimulation par exemple si on s’intéresse à la préservation du
comportement observable).
b. Utilisation de structures de codage symboliques, par exemple les BDDs (Binary
Decision Diagram).
c. Utilisation de modèles d’ordre partiel ou de vrai parallélisme. Cela permettra de
remplacer l’exécution entrelacée des actions parallèles par une seule transition
regroupant leur exécution simultanée.
d. Distribution du calcul de génération de l’espace d’états ainsi que la distribution de
l’espace d’états lui-même sur un ensemble de machines interconnectées.
a a a i
b c b c c
STE 1 STE 2
Etudiez l’équivalence de traces, de test et de bissimulation faible entre ces deux systèmes.
NB : Pour l’équivalence de test, il est indispensable de construire le graphe de refus de chaque système.
a a a
b c b c
STE 1 STE 2
1. Donnez la définition formelle de chaque système après avoir nommé les états de chacun.
2. Appliquez l’algorithme MRCP pour l’étude de la bissimilarité de ces deux systèmes.
a a a i
a a
b c b c
b c
STE 1 STE 2
Etudiez l’équivalence de traces, de test et de bissimulation faible entre ces deux systèmes.
NB : Pour l’équivalence de test, il est indispensable de construire le graphe de refus de
chaque système.
Solution :
1. Equivalence de traces : Pour les deux STE nous pouvons voir que l’ensemble des traces
est le même. Traces = {epsilon, a , a.b , a.c }. De ce fait, les deux STEs sont traces
équivalents.
2. Equivalence de test : Après calcul des deux graphes de refus, nous constatons qu’ils sont
isomorphes au graphe suivant. Cela implique que les deux STEs sont test équivalents.
{}
a
{ {b} {c} }
b c
{}
3. Equivalence de bissimulation : Remarquons que dans le STE2, si nous exécutons
l’action a de la partie gauche, les deux actions b et c reste possibles. A cette dérivation,
une a dérivation du STE1 mènera à un état qui n’offre qu’une seule action, b ou c. De ce
fait les deux STEs ne sont pas faiblement bissimilaires.
1
a a
b
2 3
b
d c d c
4 5
Solution:
q
P
a a a a
a
b c b b c
c c
Pour les tests de refus T1 et T2 analysez les équivalences entre p et q tels que :
Solution
Question 1 :
(a)
S = {S0,S1,S2,S3,S4,S5}
On ordonne les actions comme suit : i,a,b
Pi={S}
W={S}
B := S
W := W – B = { }
Pour l’action i:
Delta-moins1(i,B) = {S0,S3,S5}
S sera partitionné en B1={S0,S3,S5} et B2={S1,S2,S4}
Pi={B1,B2}
W={B1,B2}
Pour l’action a:
Delta-moins1(a,B) = {S1,S2}
Delta-moins1(a,B) ∩ B1 = Ø donc B1 ne sera pas partitionné
Delta-moins1(a,B) ∩ B2 = {S1,S2} d’où le nouveau découpage
Pi = {B1,B3,B4} avec B3={S1,S2} et B4 = {S4}
W = {B1,B3,B4}
Pour l’action b:
Delta-moins1(b,B) = {S4} = B4 donc pas de découpage
B= B1={S0,S3,S5}
Pi = {B1,B3,B4} avec B3={S1,S2} et B4 = {S4}
W = {B3,B4}
Pour l’action b:
Delta-moins1(b,B) = {S4}=B4 donc aucun effet
B := B3={S1,S2}
Pi = {B3,B4,B5,B6} avec B3={S1,S2}, B4 = {S4}, B5 ={S0,S3}, B6={S5}
W = {B4,B5,B6}
Pour l’action i:
Delta-moins1(i,B) = {S0} cela conduit au découpage de B5, d’où
Pi = {B3,B4,B6,B7,B8} avec B3={S1,S2}, B4 = {S4}, B6={S5}, B7 ={S0}, B8 ={S3}
W = {B4,B6,B7,B8}
Pour l’action a:
Delta-moins1(a,B) = {} donc pas d’effet
Pour l’action b:
Delta-moins1(b,B) = {} donc aucun effet
B := B4={S4}
Pi = {B3,B4,B6,B7,B8} avec B3={S1,S2}, B4 = {S4}, B6={S5}, B7 ={S0}, B8 ={S3}
W = {B6,B7,B8}
Pour l’action i:
Delta-moins1(i,B) = {S3}=B8 donc pas d’effet
Pour l’action a:
Delta-moins1(a,B) = {} donc pas d’effet
Pour l’action b:
Delta-moins1(b,B) = {} donc aucun effet
B := B6={S5}
Pi = {B3,B4,B6,B7,B8} avec B3={S1,S2}, B4 = {S4}, B6={S5}, B7 ={S0}, B8 ={S3}
W = {B7,B8}
Pour l’action i:
Delta-moins1(i,B) = {} donc pas d’effet
Pour l’action a:
Delta-moins1(a,B) = {} donc pas d’effet
Pour l’action b:
Delta-moins1(b,B) = {S4} = B4 donc aucun effet
Pour l’action i:
Delta-moins1(i,B) = {S5} = B6 donc pas d’effet
Pour l’action a:
Delta-moins1(a,B) = {} donc pas d’effet
Pour l’action b:
Delta-moins1(b,B) = {} donc aucun effet
B := B8={S3}
Pour l’action i: S0
Delta-moins1(i,B) = {} donc pas d’effet i
Pour l’action a: S1
Delta-moins1(a,B) = {S1,S2}=B3 donc pas d’effet a
Pour l’action b: S3
Delta-moins1(b,B) = {} donc aucun effet i
i
(b) le STE réduit est le suivant : S4
S5
Question 2 :
(a) Algorithme MRCP pour la bisimulation faible :
S = {S0,S1,S3,S4,S5}
On ordonne les actions comme suit : a,b
Pi={S}
W={S}
B := S
W := W – B = { }
Pour l’action a:
Weak-Delta-moins1(a,B) = {S0,S1,S5}, d’où le decoupage
B := B1 = {S0,S1,S5}
Pi={B1,B2} avec B1={S0,S1,S5}, B2={S3,S4}
W={B2}
Pour l’action a:
Weak-Delta-moins1(a,B) = {}, donc aucun effet
Pour l’action b:
Weak-Delta-moins1(b,B) = {S3,S4} = B2 donc aucun effet
B := B2 = {S3,S4}
Pi={B1,B2} avec B1={S0,S1,S5}, B2={S3,S4}
W={}
Pour l’action a:
Weak-Delta-moins1(a,B) = B1, donc aucun effet
Pour l’action b:
Weak-Delta-moins1(b,B) = {}, donc aucun effet S0
a a
S = {S0,S1,S2,S3,S4,S5} S3
On ordonne les actions comme suit : a,b i i
Pi={S}
S4
W={S}
b
B := S
W := W – B = { } S5
Pour l’action a:
Weak-Delta-moins1(a,B) = {S0,S1,S2,S5}, d’où le decoupage
Pour l’action b:
Weak-Delta-moins1(b,B) = {S3,S4} = B2 donc aucun effet
Pour l’action a:
Weak-Delta-moins1(a,B) = {}, donc aucun effet
Pour l’action b:
Weak-Delta-moins1(b,B) = {S3,S4} = B2 donc aucun effet
B := B2 = {S3,S4}
Pi={B1,B2} avec B1={S0,S1,S2,S5}, B2={S3,S4}
W={}
Pour l’action a:
Weak-Delta-moins1(a,B) = B1, donc aucun effet
Pour l’action b:
Weak-Delta-moins1(b,B) = {}, donc aucun effet
S0
a b
S4
Solution
Pour le STE à droite, calculez le graphe de refus
qui lui est associé selon l’hypothèse H2. S0
i
i
i
S1 S2
Les étapes de calcul sont à détailler. a a b
S4
S3
G1 a G2
{{c},{d} } {S3,S4} {S4} {}
d
d G3
{S6} {}
Solution :
1- Rappeler le sens des opérateurs suivants de la logique temporel CTL : AF, EG, EX, AG,
EF.
2- Indiquez pour chacune des formules CTL suivantes, si elle est vérifiée sur la structure de
Kripke (vérifiée sur son état initial) :
a. 𝐀 𝐅 𝜓
b. 𝐄 𝐆 ¬𝜓
c. 𝐄 𝐗 𝜙
d. 𝐀 𝐆 (𝜙 → 𝐄 𝐅 𝜓)
e. 𝐀 𝐆 (𝜙 → 𝐀 𝐅 𝜓)
Solution
1- Rappeler le sens des opérateurs suivants de la logique temporel CTL : AF, EG, EX, AG,
EF.
a. AF 𝜙 : Pour tout chemin, parfois 𝜙 est vraie.
b. EG 𝜙 : Il existe un chemin tel que tous ses états vérifient 𝜙.
c. EX 𝜙 : IL existe un chemin tel que le prochain état 𝜙 est vraie.
d. AG 𝜙 : Pour chaque chemin, tous ses états vérifient 𝜙.
e. EF 𝜙 : Il existe un chemin tel que parfois 𝜙 est vérifiée.
2- Indiquez pour chacune des formules CTL suivantes, si elle est vérifiée sur la structure de
Kripke (vérifiée sur son état initial) :
a. 𝐀 𝐅 𝜙 fausse
b. 𝐄 𝐆 ¬𝜓 vraie
c. 𝐄 𝐗 𝜙 vraie
d. 𝐀 𝐆 (𝜙 → 𝐄 𝐅 𝜓) vraie
Solution
1. Propositions atomiques :
Ph1pense, Ph1mange, Ph2pense, Ph2mange
Ph1pense
Ph2pense
Not Ph1mange
Not Ph2mange
Not Ph1pense
Not Ph2pense
Ph1pense Not Ph1mange Ph2pense
Not Ph1mange Not Ph2mange
Not Ph2mange
Not Ph2pense Not Ph1Pense
NotPh2mange Not Ph1mange
Ph1mange Ph2mange
Not Ph1pense Not Ph2pense
Not Ph2mange Not Ph1pense
Not Ph2pense Not Ph1mange
Not Ph1pense
Not Ph2pense
Not Ph1mange
Not Ph2mange