Vous êtes sur la page 1sur 60

Recueil d’exercices et problèmes

partiellement solutionnés sur les méthodes de


spécification et de vérification formelles des
systèmes concurrents

Elaboré par

Pr. Djamel Eddine SAIDOUNI


Laboratoire MISC, Département IFA
Faculté des NTIC
Université Constantine 2 – Andelhamid Mehri

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.

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 1


Partie : Concepts généraux
Exercice
1. Qu’est-ce qu’un système réactif ? Donnez un exemple ?
2. Qu’est-ce qu’un système critique ? Si vous avez à choisir entre plusieurs modèles de
spécification pour spécifier ce genre de systèmes ; qu’elles sont les caractéristiques du
modèle de spécification que vous prendrez en considération ? (Argumentez vos choix).
3. Expliquez comment la sémantique d’un modèle de spécification peut influencer
l’approche de conception basée sur ce modèle ?
4. Quelles sont les approches de vérification de systèmes concurrents que vous
connaissez ? Montrez que ces approches sont complémentaires les unes par rapport aux
autres ?
Solution

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.

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 2


Solution
1. Quatre éléments principaux constituent le cahier des charges :
a. Les besoins utilisateur : Ils décrivent le comportement attendu du système
(comportement observable).
b. Composants constituant le système : Cette partie décrit tous les composants du
système. Un composant peut être élémentaire ou composé. Pour un composant
composé, sa description est faite par la donnée du schéma de composition de ses
composants.
c. Contraintes environnementales : Cette partie décrit l’environnement dans lequel
fonctionnera le système.
d. Propriétés du système : Cette partie se divise en deux grandes parties, à savoir les
propriétés de sûreté et les propriétés de vivacité.
2. La trajectoire de conception est composée de trois phases :
a. La phase architecturale : Dans cette phase le système est décrit selon son
comportement observable dans un modèle de spécification bien choisi. Cette
description pend en considération tous les besoins utilisateur. La validation de cette
première spécification est faite vis-à-vis des propriétés attendues du système. Chacune
des propriétés étant traduite dans une logique temporelle bien choisie et la vérification
est faite par un outil de vérification basée modèle (model checker). L’insatisfaction
d’une propriété peut engendrer deux alternatives :
i. Si l’erreur provient de la spécification, dans ce cas la spécification est corrigée
et le processus de conception est repris.
ii. Si l’erreur provient de la description du système dans le cahier des charges,
dans ce cas un rapport est établi. Ce dernier sera donné au propriétaire du
système.
Le résultat de cette phase est une spécification qui s’appelle l’architecture du système.

b. La phase d’implémentation du système : L’élément de départ de cette phase est


l’architecture du système ainsi que les contraintes environnementales et les
composants du système. Dans cette phase, à chaque étape de conception, une partie
des contraintes environnementales et/ou des composants du système sont pris en
considération. La nouvelle spécification est validée vis-à-vis de la précédente par
l’analyse de la bissimilarité entre elles. Ce processus se poirsuit jusqu’à sa fin.
c. La phase de réalisation du système : Nous distinguons deux cas :
i. Premier cas : Le système réel existe déjà. Dans ce cas la dernière spécification
est utilisée pour la génération des tests permettant l’analyse de la conformité
du système réel vis-à-vis de la spécification.
ii. Deuxième cas : Le système réel est à développer. Dans ce cas, à partir de la
spécification on génère le système réel, qui peut être un programme par
exemple. Cette opération n’est pas démunie d’erreur. De ce fait une analyse de
la conformité du système résultant est faite vis-à-vis la spécification finale
aussi.

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 3


Partie : Réseaux de Petri
Exercice : (Rdp, Basic LOTOS, Bissimulation)

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

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 4


Exercice: (Rdp)
1- En appliquant la sémantique d’entrelacement des réseaux de Petri, construisez le graphe
des marquages du réseau suivant :

2- Supposons que la place P2 contient N jetons. En exécutant ce nouveau réseau, donnez


tous les résultats possibles au niveau des places P5 et P6. Que déduisez-vous ?
3- Modifier ce réseau de Petri afin de modéliser la soustraction de deux nombres naturels en
précisant les places qui contiennent les opérandes et le résultat.
4- Quels sont les avantages et les inconvénients de la sémantique d’entrelacement ?
Solution

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 5


Exercice: (Rdp)
On considère 3 machines M1, M2 et M3. A chaque instant, chaque machine attend ou effectue une
opération. Le déroulement des différentes opérations est défini par les règles suivantes :
 Les machines M1, M2 et M3 peuvent fonctionner simultanément.
 Néanmoins, une opération sur la machine M2 ou une opération sur la machine M3 ne peut
démarrer qu’après la fin d’une opération sur la machine M1.
 Le nombre d’opérations effectuées sur la machine M1 doit toujours être supérieur ou égal à la
somme du nombre d’opérations exécutées sur la machine M2 et du nombre d’opérations exécutées
sur la machine M3. Au départ, la machine M1 effectue une opération alors que les machines M2
et M3 sont en attente.

Représenter le fonctionnement de ces 3 machines par un Réseau de Petri ordinaire.

Solution

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 6


Exercice: (Rdp)
Soient P1 et P2 deux processus cycliques et soient R1 et R2 deux types de ressources. Pour un processus
P, L’opération Allouer(Ri) concerne l’allocation d’une instance de la ressource Ri et l’opération Libérer
libère toutes les ressources détenues par le processus P.

Première partie : Dans cette partie on admet les hypothèses suivantes :


H1) Le système dispose d’une seule instance pour chaque type de ressources.
H2) Dans son évolution, le processus P1 fait une requête d’allocation de R1 puis de R2 et les libère par la
suite, alors que le processus P2 fait une requête d’allocation de R2 puis de R1 puis les libère.

Q1) Proposer un réseau de Petri modélisant ce système.


Q2) Développer le graphe de marquage pour ce réseau de Petri.
Q3) A partir du graphe de marquage, montrer la trace menant à un état d’interblocage.
Q4) Montrer que le changement de l’ordre d’allocation des ressources pour P2 évitera l’occurrence de
l’interblocage.

Deuxième partie : Dans cette partie on conserve l’hypothèse H2 et on remplace l’hypothèse H1 par H1’
comme suit :

H1’) Le système dispose de deux instances de R1 et d’une seule instance de R2.

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

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 7


Exercice : (Rdp)

On considère que le processus d’intervention chirurgicale se décompose en 5 étapes distinctes:


 TR1 Transfert du patient de sa chambre vers le bloc.
 SUR Intervention dans une salle opératoire.
 REC Réveil dans un lit de réveil.
 TR2 Transfert du patient du bloc vers sa chambre.
 CL Nettoyage de la salle opératoire.

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:

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 8


Exercice : (Rdp)
On se propose de modéliser le processus de don du sang sur site fixe, i.e. dans les locaux de
l’EAS (Etablissement Algérien du Sang). Plusieurs types de donneurs peuvent se présenter à
l’EAS pour effectuer un don :
 Les donneurs de sang total arrivent sans rendez-vous. Le donneur doit tout d’abord
s’enregistrer auprès d’une secrétaire au comptoir d’accueil. Si le dossier du donneur n’est pas en
règle, il quitte le système. Dans le cas contraire, le donneur doit subir une consultation médicale
auprès d’un médecin de l’EAS. Si le patient n’est pas apte au don de sang, il quitte le système.
Dans le cas contraire, il se rend ensuite dans la salle de prélèvement, où il doit patienter jusqu’à
ce qu’un lit se libère. Dès qu’une place est libre, le patient s’installe. Un infirmier installe
l’équipement et le prélèvement peut commencer. A l’issu du prélèvement, le patient quitte le
système. On suppose que le nombre maximal des donneurs de sang total ne peut excéder 50.
 Les donneurs de plaquette et de plasma doivent avoir un rendez-vous et se présentent
donc à l’heure qui leur a été fixée. Il existe une probabilité pour que les donneurs ne se présentent
pas. Le processus est ensuite similaire à celui des donneurs de sang total. La seule différence
réside dans le fait que les donneurs de plaquette et de plasma doivent utiliser une machine dédiée
pour le prélèvement. On suppose que le nombre total des donneurs de plaquette et de plasma est
au maximum égal à 20.
 Les ressources suivantes sont considérées : 1 secrétaire pour l’accueil, 1 médecin pour la
consultation médicale, six machines de prélèvement de sang total, deux machines prélèvement de
plasma et deux machines de prélèvement de plaquettes, dix lits de prélèvement. Trois infirmiers
travaillent dans la salle de prélèvement. Ceux-ci interviennent uniquement au début et à la fin du
prélèvement (branchement et débranchement du matériel), ainsi qu’en cas de problème durant le
prélèvement.

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:

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 9


Exercice : (Rdp, Basic LOTOS, Bissimulation)
Considérons un système de gestion des ressources dans un petit aéroport. On dispose de 4 salles
d’embarquement et de 3 passerelles. Pour les vols au départ, il faut d’abord réserver une salle
d’embarquent libre (“e_libre”) pour exécuter l’´évènement “dEr” (“début d’enregistrement”) ce qui
permet d’exécuter l’activité “Er” (“enregistrement”). Ensuite, tout en maintenant la salle d’embarquement
réservée, pour réaliser l’évènement “dEb” (“début d’embarquement”) il faut réserver une passerelle libre
(“p_libre”). Cela permet d’exécuter l’activité “Eb” (“embarquement”). Enfin l’évènement “fEb” (“fin
d’embarquement”) entraine la libération de la salle d’embarquement et de la passerelle. Pour les vols à
l’arrivée, il faut réserver une passerelle disponible pour l’évènement “dD” (“début de débarquement”) ce
qui permet d’exécuter l’activité “D” (“débarquement”). L’évènement “fD” termine cette activité en
libérant la ressource passerelle.
1) Montrer que ce système peut être représenté par le réseau de Petri de la figure ci-dessous en associant
les états et les activités à des places et les évènements à des transitions.
2) Dans le cas d’un aéroport disposant de deux salles d’embarquement et d’une seule passerelle,
développer le graphe de marquage du réseau de Petri qui lui est associé (étiqueter les transitions).
3) Sur le graphe de marquage construit :
a. montrer la possibilité de famine pouvant affecter les départs ou les arrivées.
b. A cet effet, avec l’hypothèse qu’à tout instant il y a toujours des départs et des arrivées, proposer
une solution permettant l’allocation alternée de la passerelle aux embarquements et aux
débarquements. Justifier votre solution.
4) Sous les mêmes hypothèses que celles de la question 2 on se propose de modéliser le système par
l’algèbre de processus LOTOS. A cet effet :
a. Le système précédent est la composition de trois processus, le processus EM d’embarquement, le
processus DB de débarquement et le processus PR gérant la passerelle. En remarquant que les
deux processus EM et DB sont liés uniquement à travers le processus PR, donner une
spécification LOTOS pour ce système. (NB : Dans cette question il n’est pas demandé de spécifier
le comportement interne de EM).
b. La première spécification est raffinée à travers le raffinement du processus EM. Ce processus peut
être vu comme la composition parallèle de deux instances d’un processus d’embarquement IEM
qui se synchronisent avec un troisième processus SE qui gère les deux salles d’embarquement.
Les actions de réservation et de libération d’une salle d’embarquement sont notées respectivement
rSe et lSe. Proposer une spécification du nouveau processus EM (Remarque : Le raffinement de
EM doit laisser les deux spécifications faiblement bissimilaires).

T1

P2 P1

T2 T4

P4
P3 P5

T3 T5

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 10


Solution :
1) On peut en effet faire les associations suivantes :
a) la place p1 représente l’état “e_libre”, M0(p1) = 4 car il y a 4 salles d’embarquement,
b) la place p2 représente l’activité “Er”,
c) la place p3 représente l’activité “Eb”,
d) la place p4 représente l’état “p libre”, M0(p4) = 3 car il y a 3 passerelles,
e) la place p5 représente l’activité “D”,
f) la transition T1 représente l’évènement “dEr” comprenant l’action de réservation d’une salle
d’embarquement
g) la transition T2 représente l’évènement “dEb”,
h) la transition T3 représente l’évènement “fEb”,
i) la transition T4 représente l’évènement “dD”,
j) la transition T5 représente l’évènement “fD”.
2) Soit le réseau marqué

T1

P2 P1

T2 T4

P4
P5
P3

T3
T5

Le marquage initial est donc M0 = <2,0,0,1,0>

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 11


<2,0,0,1,0> fD
dEr
dD

<1,1,0,1,0> <2,0,0,0,1>
fEb
fEb
dEr dEb dD fD
dEr

<0,2,0,1,0> <1,0,1,0,0> <1,1,0,0,1>

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

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 12


L’ajout des places P6 et P7 résout ce problème, en effet un jeton dans P6 signifie que l’opération de
débarquement s’est produite déjà une fois alors qu’un jeton dans P7 signifie qu’une opération
d’embarquement s’est produite une fois. A l’état initial nous avons donné la priorité aux embarquements
(P7 est vide) et T4 ne peut pas s’exécuter. Remarquons que lorsque T2 est franchise le jeton de P6 est
consommé alors qu’un jeton est mis dans P7, ce qui donnera prochainement la priorité aux débarquements
dès que la passerelle devienne libre.

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

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 13


Exercice (Rdp, bissimulation, test formel)

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

Question 1) Calculez le graphe des marquages de RDP1.


Question 2) Le propriétaire de l’usine s’est rendu compte que l’agent qui s’occupe de la
transportation des pièces reste oisif une bonne partie du temps. Afin d’améliorer le rendement de
cet agent on lui demande de transporter deux pièces à la fois. Durant le temps d’usinage de deux
pièces l’agent est affecté à d’autres tâches. La livraison des pièces se fait toujours une par une.
a) Apportez les modifications nécessaires à RDP1 pour répondre au nouvel énoncé (le
réseau résultant s'appellera RDP2).
b) Calculez son graphe de marquage.
Question 3) A présent, on veut faire abstraction de l’opération de transportation des pièces. Le
comportement du système est défini par les opérations d’usinage et l’opération de livraison des
pièces.
a) Afin d’étudier la bissimilarité faible entre les deux modèles, on vous demande de reproduire
les deux STEs en nommant T0 par U, T1 par l’action interne i et T2 par L. Les états des
STEs restent identifiés par les marquages des réseaux de Petri respectifs.
b) Montrez que les deux états initiaux ne sont pas faiblement bissimilaires.
c) Sans passer par les graphes de refus, quels sont les résultats des tests 𝓡(𝑆𝑇𝐸1, 𝑼. 𝑳) et
𝓡(𝑆𝑇𝐸2, 𝑼. 𝑳) ? Que peut-on conclure ?

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 14


Solution
Question 1) Graphe des marquages de RDP1.

<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)

a) Réseau de Petri RDP2 résultant de la modification de RDP1.

P0 T0 T1 T2
P1 P2
2 2
4

RDP2

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 15


b) Graphe des marquages de RDP2.

<4,0,0>

T0
T2

<3,1,0> T2

T0 T2

<3,0,1> T2
<2,2,0>
T0 T1 T0
T2

<1,3,0> <2,0,2> <2,1,1>


T0 T1 T0
T0

T2
<0,4,0>
<1,1,2> <1,2,1>
T1 T0 T1 T0
T2

<0,2,2> <1,0,3> <0,3,1>


T1 T0 T1

<0,0,4> <0,1,3>
T2

T2

T2

Graphe de marquages 2

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 16


Question 3)
a) Calcul des STEs.

<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,4,0> L <1,2,1> L <2,0,2>


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

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 17


<4,0,0>

U L

<3,1,0> L

U L

<3,0,1> L
<2,2,0>
U i U
L

<1,3,0> <2,0,2> <2,1,1>


U i U
U

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.

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 18


Exercice: (Réseaux de Petri)
Soient les deux réseaux de Petri RDP1 et RDP2 suivants dans lesquelles plus1 est l’étiquette
associée aux transitions t, t1 et t2:
P
P
1n
1n

t :plus1 t1 :plus1 t2 :plus1

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>

Graphe de marquages de RDP1 t2 :plus1 t2 :plus1


Graphe de marquages de RDP2

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

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 19


STEs identiques. Ce résultat est la conséquence de l’utilisation de la sémantique
d’entrelacement qui dans laquelle l’exécution de deux actions parallèle est interprétée par
leurs exécutions entrelacées dans le temps. La différence fonctionnelle entre les deux modèles
est donc cachée dans le modèle sémantique.

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:

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 20


Partie : La technique de description formelle LOTOS
Exercice (Basic LOTOS, bissimulation, test formel)
Soient les expressions de comportement suivantes :
E := (( a; stop [] b; stop) ||| c; stop)
F:= (a ; stop ||| c; stop) [] (b; stop ||| c; stop)
1. Développez les STEs respectifs des expressions E et F.
2. Analysez les équivalences de comportement de E et F (équivalence de traces,
bissimulation forte, équivalence de test).
3. Peut-on dire que l’opérateur de composition parallèle est distributif par rapport à
l’opérateur de choix ?

Solution :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 21


Exercice (Basic LOTOS, bissimulation, test formel)
Soient les expressions de comportement suivantes :
E := hide a in (( a; stop [] b; stop) ||| c; stop)
F:= hide a in (a ; stop ||| c; stop) [] (b; stop ||| c; stop)
1. Développez les STEs respectifs des expressions E et F.
2. Analysez les équivalences de comportement de E et F (équivalence de traces,
bissimulation forte, équivalence de test).

Solution :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 22


Exercice (Basic LOTOS, bissimulation, test formel)
Soient les deux expressions de comportement Basic LOTOS M1 et M2 décrivant deux machines
à café tel que :
 M1 = p ;c ;c ; M1 et
 M2 = p ; (c ;exit ||| c ;exit) >> M2

1. Développez les STEs des expressions de comportement M1 et M2.


2. Etudiez les équivalences comportementales entre M1 et M2 selon :
a. L’équivalence de traces.
b. L’équivalence de bissimulation forte.
c. L’équivalence de bissimulation faible.
3. Les résultats obtenus sont-ils en adéquation avec le monde réel ? Justifiez votre réponse ?
4. Sous quelles conditions peut-on faire confiance dans les approches formelles pour la
conception des systèmes réels ?

Solution :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 23


Exercice: (Basic LOTOS, Rdp, Bissimulation, Test formel)
Soit le système suivant, spécifié dans le modèle de spécification Basic LOTOS :
system S[a,b,c,d] :=
P[a,b,c] |[b,d]| P[b,c,d]
where
process P[x,y,z] :=
x;y;z;stop
endproc
endsys

1- Donnez le système de transitions étiquetées STE correspondant en appliquant les règles


de la sémantique opérationnelle d’entrelacement de Basic LOTOS.
2- Comparez le système de transitions étiquetées STE avec le système de transition suivant
selon :
a. L’équivalence de trace, et
b. L’équivalence observationnelle

3- Donner l’algorithme calculant le graphe de refus à partir d’un STE.


4- Calculer les graphes de refus relatifs aux deux STEs et analysez l’équivalence de test
entre eux.
5- Peut-on prédire les ensembles de refus sans l’application de l’algorithme précédent ?
Argumentez votre réponse.
6- Donnez le réseau de Petri ayant le même comportement que celui du système S.
7- Faites une comparaison entre les deux modèles de spécifications Basic LOTOS et les
réseaux de Petri. Argumentez votre réponse.
Solution :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 24


Exercice (Basic LOTOS, bissimulation)
Soient les deux expressions de comportement E1 et E2 suivantes :
 E1 = (a ; b ; exit [ ] b ; a ; exit) >> E1
 E2 = (a ; exit ||| b ; exit) >> E2

1. Développez les STEs des expressions de comportement E1 et E2.


2. Etudiez les équivalences comportementales entre M1 et M2 selon :
a. L’équivalence de traces.
b. L’équivalence de bissimulation forte.
c. L’équivalence de bissimulation faible.
3. On suppose maintenant que les actions a et b sont de durées non nulles égales
respectivement à d(a) et d(b).
a. Sur une machine monoprocesseur, peut-on observer une différence entre les
performances de E1 et E2 ? Justifiez votre réponse.
b. Même question en considérant que la machine est biprocesseurs ?
c. Que peut-on conclure ?
4. On suppose que l’action a est en fait la succession de deux actions a1 et a2. En remplaçant
l’action a par a1 ; a2 dans les expressions de comportement E1 et E2 :
a. Développez les STEs des expressions de comportement obtenues ?
b. Etudiez la bissimilarité faible entre les STEs ainsi construits ?
c. Concluez ?
Solution :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 25


Exercice (Basic LOTOS, bissimulation, test formel)
Soient les expressions de comportements suivantes décrivant le comportement de deux
distributeurs automatiques d’argent :
D1 = (code ; autre ; D1) [ ] ( code ; (autre ; D1 [ ] retrait ; D1) )
D2 = code ; ( (i ; autre ; D2) [ ] ( (autre ; D2) [ ] (retrait ; D2)) )
1. Développez les STEs respectifs des deux expressions D1 et D2.
a. D1 et D2 sont-elles traces équivalentes ?
b. D1 et D2 sont-elles fortement bissimilaires ?
c. D1 et D2 sont-elles faiblement bissimilaires ?
2. Développez les graphes de refus relatifs aux expressions de comportements D1 et D2.
3. Analysez l’équivalence de test entre les deux expressions de comportement.

Solution :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 26


Exercice (Basic LOTOS, bissimulation)
Soient les expressions de comportements LOTOS suivantes :
 E0 = stop
 E1 = exit
 E2 = (a ; b ; exit |[a,b]| b ; a ; exit) [] exit
 E3 = (hide a,b in a; b; exit) |[a,b]| (hide a,b in b;a; exit))
1. Pour chacune des expressions de comportement, développez le système de
transitions étiquetées en indiquant dans chaque état l’expression de comportement
correspondante.
2. Etudiez la bissimilarité forte est faible entre les systèmes de transitions ainsi
développés.
Solution :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 27


Exercice: (Basic LOTOS)
Soient les expressions de comportement Basic LOTOS suivantes :
a. E := a; exit ||| b; exit ||| c; exit
b. F:= e;exit [] f;stop
c. G := g;exit
d. H := hide h in (i; exit ||| h ; exit)
Développez les STEs respectifs des expressions
 E
 F
 G
 H
 F [>G
 E >> ( F [> G)
 ( E >> ( F [> G) ) [> H

Solution :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 28


Exercice : (Bissimulation, Basic LOTOS)
Question 1) Donnez la définition de la relation de bisimulation forte
Question 2) Donnez la définition de l’équivalence de bisimulation forte, notée ~.
Question 3) Quel est l’intérêt de l’utilisation de l’équivalence de bisimulation faible des
systèmes ?
Question 4) Soient les systèmes de transitions étiquetées suivants :

STE1 STE2 STE3 STE4 STE5

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 :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 29


Exercice (Basic LOTOS, bissimulation)
Soient les expressions de comportements LOTOS suivantes :
 E0 = i; E0
 E1 = i; E1 [] E1
 E2 = (a ; b ; E2 |[a,b]| b ; a ; E2) [] i; E2
 E3 = (hide a,b in a; b; E3) |[a,b]| (hide a,b in b;a; E3)) [] i ; E3
1. Pour chacune des expressions de comportement, développez le système de transitions
étiquetées en indiquant dans chaque état l’expression de comportement correspondante.
2. Etudiez la bissimilarité forte est faible entre les systèmes de transitions ainsi
développés.

Solution :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 30


Exercice (Basic LOTOS, bissimulation)
Soient deux machines M1 et M2 pouvant offrir deux tasses de café après l'introduction d'une
pièce de monnaie et dont les comportements sont les suivants : La machine M1 possède un seul
dispositif délivrant le café, alors que la machine M2 en dispose deux. Que ce soit la machine M1
ou la machine M2, un client doit introduire une pièce de monnaie p et interagir deux fois sur le
bouton c de demande de café. Après la livraison des deux tasses de café, chacune des deux
machines revient à son état initial.

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 :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 31


Exercice (Basic LOTOS)
1. Donnez une spécification LOTOS du problème du producteur et du consommateur. Il
est demandé d'écrire la spécification globale du système ainsi que ceux du processus
Producteur, du processus Consommateur et du processus Buffer à une case puis à
deux cases ?
2. Développez le système de transitions étiquetées du système global ?
Solution :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 32


Exercice (Basic LOTOS)
Dans cet exercice nous voulons spécifier le problème du producteur et du consommateur qui se
partagent un buffer de taille 1. Pour se faire, le producteur et le consommateur sont deux
processus à priori cycliques et indépendants qui se synchronisent via le processus buffer.

1. Complétez la spécification Basic LOTOS suivante :


SYSTEM producteurconsommateur[produire,consommer,in,out] :=
( Producteur[ …..] ….. Consommateur[…..] )
|[…..]|
Buffer[in,out]

WHERE

PROCESS Producteur[…..]:=
…..
ENDPROC

PROCESS Consommateur[…..]:=
…..
ENDPROC

PROCESS Buffer[in,out]:=
in; out; Buffer[in,out]
ENDPROC

2. Par l’application de la sémantique opérationnelle de Basic LOTOS, développez les STEs de


chaque processus ainsi que celui du système global.

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

Consommateur[consommer,out] consommer ; Consommateur[consommer,out]

consommer

STE du Consommateur

in

Buffer[in,out] out ; Buffer[in,out]

out
STE du Buffer

S0
Consommer Produire

S3 S1
Consommer

In
Produire Out
S2
Produire

S5 S4

Out

In Consommer
Consommer

S6 S7

STE du système global


Produire

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 34


Exercice : (Basic LOTOS, Bissimulation)
Soit un système constitué de trois processus parallèles coopératifs P0, P1 et P2. Les trois processus
coopèrent selon le schéma ci-dessous à fin de réaliser un calcul global.

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 :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 35


Exercice : (Basic LOTOS, Rdp)
On se propose d’étudier le problème classique des philosophes. Dans cette étude on considère le cas de
deux philosophes P1 et P2 assis autour d’une table disposant de deux baguettes B1 et B2.

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 :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 36


Exercice (Basic LOTOS)
Le paradigme d’allocation de ressources peut être étudié à travers le problème des
philosophes.
1. Donnez l’énoncé du problème des philosophes ?
2. Concevez une spécification en Basic LOTOS de ce problème ?
Solution :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 37


Exercice (Basic LOTOS)
Soit le problème classique des philosophes dans lequel on considère 3 philosophes Ph1, Ph2 et
Ph3 assis autour d’une table dans cet ordre. Que ce soit Ph1 et Ph2, chacun prend la baguette qui
est sur sa gauche puis celle qui est sur sa droite, cependant le philosophe Ph3 prend la baguette
qui est sur sa droite puis celle qui est sur sa gauche.
Questions :
1. Peut-il y avoir un interblocage dans le fonctionnement de ce système ? Justifiez votre réponse
2. Donner une spécification en Basic LOTOS modélisant ce système.

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

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 38


ENDSYS
Exercice (Full LOTOS)
Soit le processus LOTOS suivant :
Process proc1[a,b] :=
Begin
a?d1 :donnée ; proc2[a,b]
End
Where
Process proc2[a,b] :=
Begin
(b!d1 ; proc1[a,b])
[]
(a?d2:donnée; b!d1 ; (b!d2; proc1[a,b]
[]
a ?d1 :donnée ; b ! d2 ; proc2[a,b]))
End

Développez le système de transitions étiquetées du processus proc1 ?

Solution :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 39


Exercise: (Basic LOTOS, Rdp, Bissimulation, Test formel)
On se propose d’étudier une entreprise spécialisée dans l’installation des distributeurs de boissons
dans des endroits publiques. Les machines commandées sont de deux catégories. Les machines
de la première catégorie sont destinées à être installées dans les stations de voyage alors que
celles de la deuxième catégorie sont destinées à être installées dans les mosquées et les lieux des
œuvres de charité.
 Cahier des charges de la catégorie 1 (Machine M1) :
o A l’état initial la machine accepte l’insertion d’une pièce de monnaie sur la porte P.
o Après l’insertion de la pièce de monnaie, la machine passe dans un état où le client
peut :
 se faire rembourser (porte R) et la machine revient à l’état initial ou
 demander une tasse de café (porte C) et la machine revient à l’état initial ou
 Insérer une deuxième pièce de monnaie
o Après l’insertion de la deuxième pièce, le client a le choix de demander un thé (porte
T) ou de se faire rembourser. Dans les deux cas la machine revient à son état initial.
 Cahier des charges de la catégorie 2 : Le comportement est défini par la spécification LOTOS
suivante :

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.

Première partie : (Caractérisation 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.

Deuxième partie : (Disfonctionnement des machines)

9. Donnez deux séquences de test qui montrent que la machine M2 peut offrir des boissons
gratuitement.

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 40


10. Un jour, l’entreprise a reçu un appel téléphonique anonyme l’informant qu’une des machines
de la catégorie 1 peut offrir des boissons gratuitement. Donnez une séquence de test qui
exprime l’interdiction de cette possibilité. Expliquez votre proposition.
11. Des plaintes arrivent à l’entreprise et concernent des machines de la première catégorie qui
volaient de l’argent (un client peut insérer des pièces de monnaie sans que la machine
l’autorise à prendre une boisson), proposez une séquence de test permettant la détection de
ces machines défectueuses.
12. Peut-on conclure que la démarche entreprise par le spécialiste est suffisante ? Justifiez votre
réponse.

Troisième partie : (Amélioration des machines)

13. Calculez le STE réduit par bissimulation du STE de la machine M2.


14. Proposez un réseau de Petri pour ce STE réduit.
15. L’entreprise s’est rendu compte que le nombre de personnes qui prenaient gratuitement des
boissons est très élevé en le comparant au nombre de personnes qui donnaient de l’argent. De
ce fait, l’entreprise a commandé des machines de catégorie 3 qui donnent gratuitement des
boissons seulement si d’autres personnes aient donné de l’argent pour cet effet. Spécifiez par
un réseau de Petri cette machine M3. Ce réseau de Petri est-il borné ? Justifiez votre réponse.

Solution :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 41


Exercice : (Basic LOTOS, Bissimulation)
Dans cet exercice on se propose d’étudiez formellement le comportement d’un système composé
de trois processus coopératifs P1, P2 et P3 dont le comportement de chacun est décrit ci-dessous.
 Comportement du processus P1 : P1 est un processus cyclique qui exécute une action a1 et
déclenche l’exécution d’un processus « EnvoyerRequêtes ». Ce dernier se charge de l’envoie
en parallèle d’une requête à chacun des processus P2 et P3. L’action d’envoie d’une requête
de P1 à un processus Pi est modélisée par Req1i. Dès que le processus d’envoie des requêtes
se termine, le processus P1 déclenche l’exécution d’un processus « RecevoirPermissions ».
Ce dernier attend la réception des permissions en provenance de P2 et P3. Ces permissions
peuvent arrivées dans n’importe quel ordre. La réception de la permission de Pi par P1 est
modélisée par l’action Perm1i. Une fois les permissions requises sont reçues, le processus P1
exécute sa section critique, modélisée par l’action Sc, puis il exécute une action a2 et revient
à son état initial.
 Comportement du processus P2 : P2 est un processus cyclique qui attend la requête de P1, lui
envoie sa permission et revient à son état initial.
 Comportement du processus P3 : P3 est un processus cyclique qui attend la requête de P1, lui
envoie sa permission et revient à son état initial.

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 :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 42


Exercice : (Basic LOTOS, Rdp, Bissimulation)
Soit une usine de fabrication de pièces industrielles basée sur deux machines 𝑀1 et 𝑀2 effectuant
respectivement 2 opérations 𝑜𝑝1 et 𝑜𝑝2 . Ces opérations sont réalisées séquentiellement et l’ordre
de leur exécution n’est pas important. L’expression LOTOS du comportement de ce système est
définie comme suit :

System1[op1,op2]::=(op1;op2;exit [] op2;op1;exit) >> System1[op1,op2]

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 1) Développez l’expression LOTOS nommée System2 du comportement de la


machine 𝑀3 .

Question 2) Développez les systèmes de transitions étiquetées STE1 et STE2 représentant


respectivement les comportements de System1 et System2.

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 :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 43


Partie : Vérification comportementale par
bissimulation
Exercice
2. A travers un exemple, montrez qu’une relation de bissimulation forte n’est pas forcément une
relation d’équivalence ?
3. Montrez que la relation ~ est une relation d’équivalence ?
4. Montrez que la relation  est égale à l’union de toutes les relations de bissimulation forte.

Solution :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 44


Exercice
1. La relation de bissimulation faible a deux intérêts, lesquels ?
2. Quelles sont les approches pour remédier au problème de l’explosion combinatoire de
l’espace d’états.

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.

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 45


Exercice : ( Bissimulation )
Soient les deux systèmes de transitions étiquetées suivants :

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.

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 46


Exercice : (Bissimulation)
Soient les deux systèmes de transitions étiquetées suivants :

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.

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 47


Exercice (Bissimulation)
Soient les deux systèmes de transitions étiquetées suivants :

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.

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 48


Exercice : (Bissimulation)
Soient le système de transitions étiquetées ci-dessous. Construisez le système de transitions
étiquetées le plus réduit qui lui est faiblement bissimilaire.

1
 a a 
b
2 3
b
d c d c

4 5
 

Solution:

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 49


Exercice: (Test formel)
Soient les deux STEs suivants.

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 :

𝑇1 = 𝑎; (𝑏̃; 𝑐; 𝑠𝑢𝑐𝑐 ∨ 𝑏; 𝑐; 𝑠𝑢𝑐𝑐)

𝑇2 = 𝑎; (𝑏̃; 𝑐; 𝑠𝑢𝑐𝑐 ∨ 𝑏; 𝑐̃ ; 𝑠𝑢𝑐𝑐)


Solution:

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 50


Exercice (Bissimulation)

1. Soit le STE à droite, par l’application de l’algorithme MRCP pour la S0


bisimulation forte : i i
a) Calculez la partition la plus large résultante. S1 S2
b) Calculez le STE réduit résultant.
a
2. Dans cette question on considère le STE réduit calculé précédemment, a S3
a) Appliquez l’algorithme MRCP pour la bisimulation faible pour le calcul i
i
de la partition la plus large.
b) Calculez le STE réduit résultant. S4
3. On considère maintenant le STE initial (le STE à droite).
b
a) Appliquez l’algorithme MRCP pour la bisimulation faible pour le calcul
de la partition la plus large. S5
b) Calculez le STE réduit résultant.
c) Concluez.

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}

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 51


Pour l’action i:
Delta-moins1(i,B) = {S5} cela conduit au découpage de B1 et on obtient
Pi = {B3,B4,B5,B6} avec B3={S1,S2}, B4 = {S4}, B5 ={S0,S3}, B6={S5}
W = {B3,B4,B5,B6}
Pour l’action a:
Delta-moins1(a,B) = {S1,S2} =B3 donc aucun effet

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

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 52


B := B7={S0}
Pi = {B3,B4,B6,B7,B8} avec B3={S1,S2}, B4 = {S4}, B6={S5}, B7 ={S0}, B8 ={S3}
W = {B8}

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}

Pi = {B3,B4,B6,B7,B8} avec B3={S1,S2}, B4 = {S4}, B6={S5}, B7 ={S0}, B8 ={S3}


W = {}

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

Pi={B1,B2} avec B1={S0,S1,S5}, B2={S3,S4}


W={B1,B2}

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 53


Pour l’action b:
Weak-Delta-moins1(b,B) = {S3,S4} = B2 donc aucun effet

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

(b) Le STE réduit est le suivant : a b S0


Question 3 : i i
S4
(a) Algorithme MRCP pour la bisimulation faible : S1 S2

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

Pi={B1,B2} avec B1={S0,S1,S2,S5}, B2={S3,S4}


W={B1,B2}

Pour l’action b:
Weak-Delta-moins1(b,B) = {S3,S4} = B2 donc aucun effet

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 54


B := B1 = {S0,S1,S2,S5}
Pi={B1,B2} avec B1={S0,S1,S2,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,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

(b) Le STE réduit est le suivant :

S0

a b
S4

(c) Conclusion : On Constate que le ste réduit est le même


que celui de la question précédente, cela n’est pas surprenant
car la bissimulation faible est plus large que la bisimulation forte.
D’autre part, nous pouvons remarquer que le taux de réduction par bisimulation faible
dépasse de loin le taux de réduction par bisimulation forte tout en préservant le
comportement observable du système spécifié, d’où son utilisation dans la pratique.

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 55


Exercice S0
i i
Pour le STE à droite, calculez le graphe de refus i
S1 S2
qui lui est associé selon l’hypothèse H2. a a b
NB : Mettre d’abord les résultats de calcul dans S4
S3
Un tableau de la forme

Trace minimale Etats du STE Out ref c d


G0 vide
G1 a S5 S6

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

Calcul des états du STE correspondant aux état du GR : c d


Chaque état du GR correspond à une trace du système.
S5 S6

Trace Etats du STE Out ref


minimale
G0 vide {S0,S1,S2,S5} {a,b} { {a},{b} }
G1 a {S3,S4} {c,d} { {c},{d} }
G2 b {S4} {d} {}
G3 a.d et b.d {S6} {} {}

 Pour la trace a.c on revient à l’état G0.

Le graphe de refus résultant est le suivant :


G0
c {S0,S1,S2,S5} { {a},{b} }
b

G1 a G2
{{c},{d} } {S3,S4} {S4} {}
d
d G3
{S6} {}

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 56


Exercice :
Donner un algorithme qui génère un graphe de refus à partir d’un système de transitions étiquetées.

Solution :

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 57


Partie : Model checking
Exercice
On rappelle qu’une structure de Kripke est un système de transitions dont les états sont étiquetés
par des propriétés logiques. Un état 𝑠 étiqueté par une propriété 𝜙 signifie que la propriété 𝜙 est
vérifiée dans cet état. Soit la structure de Kripke suivante, 𝜙 et 𝜓 désignent deux propriétés.

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

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 58


e. 𝐀 𝐆 (𝜙 → 𝐀 𝐅 𝜓) fausse
Exercice
Un étudiant de master M2 RSD a proposé une solution au problème des philosophes (dans notre
cas on considère 2 philosophes ph1 et ph2). La structure de Kripke pour la solution proposée est
donnée par la figure suivante dans laquelle seules les propositions atomiques relatives aux
opérations « penser » et « manger » des deux philosophes sont reportées
1. Donnez l’ensemble des propositions atomiques.
2. Complétez la structure de Kripke par les négations
Ph1pense
des propositions atomiques. Ph2pense
3. Rappeler le sens des opérateurs suivants de la
logique temporel CTL: AF, EG, EX, AG, EF.
Ph1pense Ph2pense
4. Donnez le sens et vérifiez la satisfiabilité
des propriétés suivantes : Ph1mange Ph2mange
a) A G not (Ph1mange and Ph2mange
b) A G ( Ph1pense => A F ph1mange)
c) A G ( Ph2pense => A F ph2mange)
d) A G (E X true)

Solution
1. Propositions atomiques :
Ph1pense, Ph1mange, Ph2pense, Ph2mange

2. Complétez la structure de Kripke par les négations


des propositions atomiques.

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

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 59


3. 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. (0,5 pts)
b. EG 𝜙 : Il existe un chemin tel que tous ses états vérifient 𝜙. (0,5 pts)
c. EX 𝜙 : IL existe un chemin tel que le prochain état 𝜙 est vraie. (0,5 pts)
d. AG 𝜙 : Pour chaque chemin, tous ses états vérifient 𝜙. (0,5 pts)
e. EF 𝜙 : Il existe un chemin tel que parfois 𝜙 est vérifiée. (0,5 pts)

4. Donnez le sens et vérifiez la satisfiabilité des propriétés suivantes :


a) A G not (Ph1mange and Ph2mange): True, car pour tout chemin à partir de l’état initial on
ne rencontre jamais un état dans lequel on a les deux propositions atomiques Ph1mange
et Ph2mange. (Impossibilité que les deux philosophes mangent en même temps)
b) A G ( Ph1pense => A F ph1mange) : False. Remarquons que à partir de tout état dans
lequel on Ph1pense on assure pas de rencontrer un état dans lequel on Ph1mange (famine
pour le philosophe 1). En effet l’état puit est accessible à partir de tout état dans lequel on
a Ph1pense.
c) A G ( Ph2pense => A F ph2mange) : False. Même raisonnement que dans la question
précédente.
d) A G (E X true) : False. Car présence d’un état puit (il n’a pas de successeurs).

Djamel Eddine SAIDOUNI, Laboratoire MISC, UC2-Abdelhamid Mehri, Constantine Page 60

Vous aimerez peut-être aussi