SlideShare une entreprise Scribd logo
1  sur  105
Télécharger pour lire hors ligne
Ingénierie des
protocoles
Université Montpellier II
Faculté des Sciences
Département Informatique
Master
Richard G. TERRAT
Objectif
Présentation de méthodes et d’outils de
spécification, description et validation formelle
de protocoles dans les réseaux, principalement
par les Réseaux de Petri
Sommaire
I. Modèles d’ingénierie p. 3
II. Réseaux de Petri p. 14
Bibliographie
• Les réseaux de PETRI - Annie Choquet-Geniet -
Dunod - 2006
• Les réseaux de PETRI - Michel Diaz - Hermès - 2001
• A Primer in Petri Net Design - W. Reisig - Springer Verlag
- 1992
• Réseaux de Petri et systèmes parallèles - Guy Vidal-
Naquet, Annie Choquet-Geniet - Armand Colin - 1992
• The Logic of Time - Johan van Benthem - Kluwer
Academic Publishers - 1991
• Petri Net Theory and the Modelling of Systems - James L.
Peterson - Prentice Hall Inc. - 1981
I
Modèles d’ingénierie
Sommaire
1. Protocoles : définition,
spécification, validation
2. Les modèles
Entité
A
Entité
B
Canal
Règles de dialogue entre entités pour
réaliser une tâche donnée
1 Protocoles
• Définition
• Spécifier
– la (ou les) tâches à réaliser
– le comportement du canal de communication
– les règles de
• Fonctionnement
• Dialogue
– Actions spécifiques (ex : erreurs de protocole)
• Implémenter
– code des entités
– dialogue
• Valider
– conformité spécification vs implémentation
– conformité comportement vs tâche(s) à réaliser
– comportement d’une entité valide face à une
entité non valide
• Tester
– cas de comportement
CanalEntité Entité
Canal
Niveau i
Niveau i-1
réalisé par
• Modèle en couches
• Protocoles et Programmes
– Entité
• ne s’arrête pas
– sauf cas particuliers (ex: panne)
• n’entre pas de données
• ne fournit pas de résultat
– Protocole
• entités parallèles asynchrones
• non déterminisme
2 Les Modèles
2.1 Un exemple
2.2 Automates d’états finis
2.3 Langages de spécification
2.4 Logiques temporelles
2.5 Réseaux de PETRI
2.1 Un exemple
• Un site émetteur E
• Un site récepteur R
• Un canal de communication C
• Le protocole de communication :
– E envoie un message M à R
– Si R reçoit M sans erreur il envoie ACK à E
– Si R reçoit M avec erreur il envoie NAK à E
2.2 Automates d’états finis
Envoi de M
Réception de ACK
Réception de NAK
Réception de M
Envoi de NAKEnvoi de ACK
?
?
?
2.3 Un langage de spécification
C.S.P.
Cooperating Sequential Processes
C.A.R. HOARE
–  ne pas confondre avec la programmation par
contraintes !
• Instructions de base simplifiées
– Entrée de valeur dans x ? x
– Sortie de la valeur x ! x
• Commande gardée
A → B
– A est une expression booléenne ou une entrée
– B est une commande
– Sémantique : quand A faire B
• Équivalent à : tant que ¬A faire ; B
• On « attend » que A soit vrai pour faire B
– Si A est une entrée on attend sa valeur
• Commande alternative
[ C1 | C2 | … Cn ]
– Ci sont des commandes gardées : Ai → Bi
– Sémantique
• Les Ai sont évaluées
• Si toutes les Ai sont fausses⇒ ABORT !
– Les Ai d’entrée sont toujours vraies
• Sinon on exécute au hasard une Bi dont l’Ai est
vraie
– Si l’Ai choisie est une entrée on attend la donnée
–  CSP est un langage non déterministe
• Commande répétitive
* [ C1 | C2 | … Cn ]
– Ci sont des commandes gardées : Ai → Bi
– Sémantique
• Les Ai sont évaluées
• Si toutes les Ai sont fausses⇒ EXIT de l’itération
– Les Ai d’entrée sont toujours vraies
• Sinon on exécute au hasard une Bi dont l’Ai est
vraie
– Si l’Ai choisie est une entrée on attend la donnée
Et on réitère ….
• Un exemple
Processus Emetteur
* [ → !M ; → ?x ; [x = ACK → ok | x = NAK → erreur ] ]
Processus Récepteur
* [ ? x → [ x sans erreur → ! ACK | x avec erreur → ! NAK ] ]
 proche de l’implémentation mais
 propriétés difficiles à établir
 nécessité d’une sémantique formelle
2.4 Logiques temporelles
• Ce sont des logiques modales
• Logique L0 minimale
– Logique propositionnelle +
– Fonctions et Prédicats +
– Deux opérateurs d’arité 1
P dorénavant P henceforth P
P ultérieurement P eventually P
 P est un prédicat
• Sémantique simplifiée
P signifie que dans tous les instants du futur P
sera toujours vrai
analogie avec ∀
P signifie que dans au moins un des instants du
futur P sera vrai
analogie avec ∃
• Plusieurs logiques possibles selon la
modélisation du temps
• Principalement
– LTL Logique en temps linéaire
• Un seul futur (non déterministe) possible
– BTL Logique en temps arborescent
• Plusieurs futurs (déterministes) possibles
•  LTL et BTL ne sont pas comparables
aucune n’est incluse dans l’autre !
2.5 Réseaux de Petri
• Origine : Carl Adam Petri
« Kommunikation mit Automaten »1962
• Idée
Carl Adam Petri
(1926)
!M ?M
M
A1 A2
• Les s’appellent des places
• Les s’appellent des transitions
Les places préfigurent des états
Les transitions préfigurent des actions
L’état d’une place est repérée par un marquage
représenté par des jetons
 
place vide place marquée
(2 jetons)
place marquée
(1 jeton)
 
M
ACK NAK
• Un exemple
II
Réseaux de Petri
Sommaire
1. Définitions et Propriétés p. 15
2. Marquages accessibles p. 28
3. Algèbre linéaire p. 43
4. Langages engendrés p. 55
5. Problèmes et extensions p. 66
6. Calcul des semi-flots p. 78
II.1
Définitions et
Fonctionnement
RdP R = < P, T ; Pre, Post >
• P Ensemble fini de Places
• T Ensemble fini de Transitions
• Pre : P x T → N incidence avant
• Post : P x T → N incidence arrière
RdP marqué R(M) = < P, T ; Pre, Post, M >
• M : P → N marquage
Définition algébrique
Pre
Post


Jeton (token)
 par convention,
un arc non valué possède
implicitement la valeur 1
(cas fréquent en pratique)
Graphe associé
• Graphe biparti
Places
– Nœuds
Transitions
– Arcs valués
– Marquage
Jamais …
ceci
ni
cela
Franchissabilité
• Une transition t ∈ T est franchissable pour un
marquage M ssi
∀p∈P M(p) ≥ Pre (p,t)
 chaque place p entrée de t doit être marquée d’une
valeur supérieure à la valeur de l’arc p → t
la relation est trivialement vraie pour toute place p non
entrée de t (Pre (p,t) = 0)
• Notation M(t>
Franchissement
• Une transition t ∈ T est franchie pour un marquage M,
donnant un marquage M’ ssi
M(t> t est franchissable pour M
∀ p∈P M’(p) = M(p) - Pre (p,t) + Post (p,t)
le franchissement de t
– retire de chaque place p entrée de t un nombre de jetons égal à la
valeur de l’arc p → t
– ajoute à chaque place p sortie de t un nombre de jetons égal à la
valeur de l’arc t → p
• Notation M(t>M’
Etats observables
• L’état d’un réseau de Petri marqué est défini
par son marquage M
• Cet état est algébriquement observable
• En général il n’est pas physiquement
observable
– Les places peuvent être situées sur des sites différents
– Il n’existe pas de site observateur
Chronologie
• Un marquage définit un état et un instant
• Le franchissement d’une transition définit un
changement d’état et aboutit à un nouvel
instant
• Les changements d’état définissent la
chronologie du fonctionnement
• Le temps est défini comme une succession
d’instants
Simultanéité
• Dans un état donné, plusieurs transitions
peuvent être franchissables
• Cependant, plusieurs transitions ne peuvent
pas être simultanément franchies
 c’est une sorte d’axiome de la notion de simultanéité
qui est n’est pas observable
 similitude avec la simultanéité physique non
observable en général (théorie de la relativité
restreinte - Albert Einstein -)
Albert Einstein
(1879-1955)
Atomicité & Granularité
• Le franchissement d’une transition est
– unique (non simultanéité)
– atomique (ou indivisible)
– non observable (entre 2 instants observables)
– instantané
• La transition définit la granularité du modèle
– Seuls les instants sont observables
– Les propriétés observables dépendent de la granularité
choisie
Non déterminisme
• Lorsque plusieurs transitions sont
franchissables, une seule peut être franchie à
un instant donné
• Le non déterminisme vient du choix de la
transition qui sera franchie
• Le non déterminisme peut avoir 2 origines :
– Le parallélisme
– Le conflit effectif
Parallélisme
• Deux transitions t1 et t2 sont parallèles pour
un marquage M ssi
∀p∈P M(p) ≥ Pre(p,t1) + Pre(p,t2)
ce qui implique M(t1> et M(t2> et
– ou bien ∀ p∈P Pre(p,t1) x Pre(p,t2) = 0
aucune place n’est entrée de t1 et t2
– ou bien ∃ p∈P Pre(p,t1) x Pre(p,t2) ≠ 0
les places entrées de t1 et t2 ont suffisamment de jetons
pour permettre le franchissement de t1 et t2
Conflit structurel
• Deux transitions t1, t2 sont en conflit
structurel ssi
∃ p ∈ P Pre (p,t1) x Pre (p,t2) > 0
 la place p est entrée commune de t1 et t2
 le conflit structurel est indépendant du marquage ; il
indique un conflit potentiel
Conflit effectif
• Deux transitions t1, t2 sont en conflit effectif
pour un marquage M ssi
– t1 et t2 sont en conflit structurel
– M(t1> et M(t2>
– M(p) < Pre(p,t1) + Pre(p,t2)
 p n’a pas assez de jetons pour que t1 et t2 puissent être
franchies
Non déterminisme
• Issu du parallélisme
– Il est dû à l’impossibilité d’observation de la
simultanéité : à un instant deux (ou plus) transitions
peuvent être franchies ; on choisit d’en franchir une
seule à cet instant
• Issu du conflit effectif
– Il est dû à l’impossibilité de franchir à un instant deux
(ou plus) transitions franchissables à cet instant
Exemple 1 : Communication
 
 
CR
M
E0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
Exemple 1 : Communication



CR
M
E0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
Exemple 1 : Communication




CR
M
E0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
Exemple 1 : Communication



CR
M
E0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2

et cætera ….
transitions parallèles
Exemple 2 : Partage conflictuel


ex mutE0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2

conflit effectif
Exemple 2 : Partage conflictuel

ex mutE0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2

Exemple 2 : Partage conflictuel

ex mutE0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2


parallélisme
conflit structurel
pas de conflit effectil
pas de parallélisme
Exemple 2 : Partage conflictuel

ex mutE0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2


Exemple 3 : Partage sans
conflit

PE0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2


conflit structurel
parallélisme
pas de conflit effectif
Exemple 3 : Partage sans
conflit

PE0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2


Exemple 3 : Partage sans
conflit

PE0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2

et cætera ….
II.2
Marquages accessibles
Un protocole de connexion-
déconnexion
Phase de connexion
– A l’état initial les 2 sites sont au repos
– Le site A est l’appelant, le site B l’appelé
– Le site A envoie un message de demande de connexion
DC au site B puis attend sa réponse
– Le site B, sur réception du message DC envoie un
message de confirmation de connexion CC puis passe
directement dans l’état connecté
– Le site A, sur réception du message CC passe dans
l’état connecté
Un protocole de connexion-
déconnexion
Phase de déconnexion
– La déconnexion peut être initiée aussi bien par le site A
que par le site B
– Le site initiateur connecté envoie à l’autre site un
message de demande de déconnexion DD puis attend sa
réponse
– Lorsqu’un site connecté reçoit un message DD, il
répond par un message de confirmation de déconnexion
CD puis retourne à l’état de repos
– Lorsqu’un site en attente de déconnexion reçoit un
message CD il retourne à l’état de repos
Un protocole de connexion-
déconnexion
 
DC
CC
A1
A2
A3
A4
B1
B2
B3
DDA
DDB
CDA CDB
Un protocole de connexion-
déconnexion



DC
CC
A1
A2
A3
A4
B1
B2
B3
DDA
DDB
CDA CDB
Un protocole de connexion-
déconnexion



DC
CC
A1
A2
A3
A4
B1
B2
B3
DDA
DDB
CDA CDB
Un protocole de connexion-
déconnexion


DC
CC
A1
A2
A3
A4
B1
B2
B3
DDA
DDB
CDA CDB
Un protocole de connexion-
déconnexion



DC
CC
A1
A2
A3
A4
B1
B2
B3
DDA
DDB
CDA CDB
Un protocole de connexion-
déconnexion


 
DC
CC
A1
A2
A3
A4
B1
B2
B3
DDA
DDB
CDA CDB
INTERBLOCAGE !
Un protocole de connexion-
déconnexion


 
DC
CC
A1
A2
A3
A4
B1
B2
B3
DDA
DDB
CDA CDB
SOLUTION
a b
Un protocole de connexion-
déconnexion
Modification du protocole
– Lorsqu’un site en attente de déconnexion reçoit un
message DD il retourne à l’état de repos
 ceci permet de résoudre le conflit de déconnexion
qui conduisait à un interblocage (deadlock)
Ensemble des marquages
accessibles
• Soit < P, T ; Pre, Post, M0 > un réseau de Petri
marqué
• M0 est considéré comme le marquage initial
origine des instants
• L’ensemble des marquages accessibles à partir de
M0, noté [M0] est le plus petit ensemble contenant
M0 et fermé pour la relation de franchissement
M0∈ [M 0]
M ∈ [M 0] et M(t>M’ ⇒ M’∈ [M 0]
Ensemble des marquages
accessibles
• Un marquage M : P → N est noté entre < et >
par les noms des places pi
µ de marquage
M(pi) = µ > 0
• Exemple < p2 , p5
2, p6 > représente le
marquage
– M(p2) = M(p6) = 1 M(p5) = 2 et
– M( pj ) = 0 pour j ≠ 2, 5, 6
Graphe des marquages
accessibles
• G = < [M0] ; R>
– [M0] Ensemble des marquages accessibles
– R Ensemble des relations de franchissement
défini par
∀ M, M’ ∈ [M0] ∃ t M(t>M’ ⇒ M(t>M’ ∈ R
G est connexe
Les éléments de R sont en général étiquetés par les
transitions t de la relation
• Ge = < [M0] ; R ; E > graphe étiqueté
– E : R  T Etiquetage de R par T
Graphe des marquages
accessibles étiqueté
• Construction G = < [M0] ; R ; E >
EMA = Ø ; EMT = {M0} ;
tant que EMT ≠ Ø faire
{ EMA = EMA ∪ EMT ; ENM = Ø ;
pour tout M ∈ EMT faire
{ pour tout t, M’ tels que M(t>M’ faire
{ si ∃ M’’ ∈ EMA tel que M’ > M’’ alors ALERTE ;
si M’ ∉EMA alors ENM = ENM ∪ {M’} ;
R = R ∪ (M, M’) ; E (M, M’) = t } }
EMT = ENM }
Graphe des marquages
accessibles
<A1,B1> <A2,DC,B1> <A2,CC,B2>
<A3,B2>
<A2,CC,DDB,B3>
<A4,DDA,B2>
<A3,DDB,B3>
<A4,CDA,B1>
<A1,CDB,B3>
<A4,DDA,DDB,B3>
<A1,DDA,B3>
<A4,DDB,B1>
<A2,DC,DDA,B3>
Graphe des marquages
accessibles
• Propriétés
– Il permet de voir toute la chronologie du
fonctionnement du réseau de Petri
 les interblocages (deadlocks)
 tous les états accessibles
 toutes les transitions franchissables
 tous les chemins partant de l’état initial
et cætera …
 oui … mais …
Graphe des marquages
accessibles
• Il peut être infini
– Exemple 
P
Q
R
t
< P >
u
Graphe des marquages
accessibles
• Il peut être infini
– Exemple


P
R
t
< P >
< Q, R >
u
t
Q
Graphe des marquages
accessibles
• Il peut être infini
– Exemple 

P
R
t
< P >
< Q, R >
u
< P, R >
t u
Q
Graphe des marquages
accessibles
• Il peut être infini
– Exemple


P
R
t
< P >
< Q, R >
u
< P, R >
< Q, R2 >t
u t
Q
Graphe des marquages
accessibles
• Il peut être infini
– Exemple 

P
R
t
< P >
< Q, R >
u
< P, R >
< Q, R2 >t
u t
Q
<P,R2>
u <Q,Rn>
<P,Rn>
Graphe des marquages
accessibles
• Complexité
– Quand ce graphe est fini, la complexité de sa
construction est non primitive récursive
Un problème est primitif récursif s’il peut être résolu
par un algorithme ne comportant que des itérations
bornées (boucles for )
Un problème non primitif récursif est de complexité
inconnue, non bornée !
Graphe des marquages
accessibles
• Scénario de la preuve
– On définit une fonction f par
f0 (x) = 2 . x
fi+1 (x) = fi
x (x) composition x fois de fi
f : x → fx (x)
– On montre que f est non primitive récursive
– On construit une suite de réseaux de Petri Ri dont un
marquage peut prendre la valeur fi (i)
 Il est déraisonnable de vouloir construire
systématiquement le graphe des marquages accessibles
Analyse du fonctionnement des
réseaux de Petri
• Diagnostic
– Le graphe des marquages accessibles donne toutes les
propriétés du fonctionnement d’un réseau de Petri
– Le graphe des marquages accessibles est en général
trop complexe pour pouvoir être construit
• Pronostic
– Développement d’outils d’analyse évitant d’avoir à
construire le graphe des marquages accessibles
Réseaux bornés
• Une place p ∈ P est bornée ssi
∃ b ∈ N M(p) ≤ b
• Un réseau de Petri est borné ssi
∀ p ∈ P p est bornée
 pour b = 1 le réseau est dit sain
• Théorème : un réseau de Petri est borné ssi
son graphe de marquages accessibles est fini
Réseaux vivants
• Quasi-vivacité
– Une transition t d’un réseau de Petri marqué R(M0)
est quasi vivante ssi
∃ M ∈ [M0] M(t>
on peut trouver un marquage accessible à partir duquel
t est franchissable
– Un réseau de Petri R(M0) est quasi vivant ssi
∀ t ∈ T t est quasi vivante
Réseaux vivants
• Pseudo vivacité
– Un marquage M est pseudo vivant ssi
∃ t ∈ T M(t>
 On peut trouver une transition franchissable à partir de
ce marquage
– Un réseau de Petri R(M0) est pseudo vivant ssi
∀ M ∈ [M0] M est pseudo vivant
Réseaux vivants
• Vivacité
– Une transition t est vivante pour un marquage M ssi
∀ M’ ∈ [M] ∃ M’’ ∈ [M’] M’’(t>
 Pour tout marquage accessible à partir de M t est quasi
vivante
– Un réseau de Petri R(M0) est vivant ssi
∀ t ∈ T t est vivante pour M0
 Un réseau de Petri R(M0) est vivant ssi
∀ M ∈ [M0] R(M) est quasi vivant
Etat d’accueil &
réinitialisabilité
• M est un état d’accueil pour M0 ssi
∀ M’ ∈ [M0] M ∈ [M’]
 il est toujours possible d’atteindre l’état
d’accueil de tout état accessible à partir de
l’état initial
• Un réseau de Petri est ré-initialisable ssi M0 est
un état d’accueil
II.3
Algèbre linéaire
Séquence de franchissements
• s = ti1, ti2,…tiq ∈ T* est une séquence de
franchissements pour un marquage M0 donnant
Mq noté M0 (s> Mq ssi
Définition récursive
• s = λ (mot vide) et Mq = M0
• s = s’t s’ ∈ T* t ∈ T M0 (s’> Mq-1 et Mq-1 (t> Mq
Définition itérative
• M0 (ti1> M1 (ti2> M2 … Mq-1 (tiq> Mq
Séquence de franchissements
• Relations entre marquages
s = ti1, ti2,…tiq franchissable pour M0 ⇒ ∀p ∈ P
M1(p) = M0(p) - Pre(p,ti1) + Post(p,ti1)
M2(p) = M1(p) - Pre(p,ti2) + Post(p,ti2)
……
Mq(p) = Mq-1(p) - Pre(p,tiq) + Post(p,tiq)
en appelant σi le nombre d’occurrences de ti dans s
Mq (p) = M0(p) + !i (Post(p,ti ) " Pre(p,ti))
i=1
m
#
Séquence de franchissements
• ATTENTION !
 L’équation précédente, qui a l’avantage important
d’exprimer le marquage final d’une séquence de
franchissements s en fonction de son marquage initial
n’a de sens que si s est franchissable
 Il faut donc que ∀ k = 0, 2, …q-1 toutes les relations
Mk (ti(k+1)> soient vraies
Représentation matricielle
• < P, T ; Pre, Post, M >
|P| = n
|T| = m
Pre : P x T → N
Post : P x T → N
M : P → N
peuvent être représentées
par des matrices
peut être représenté par un vecteur
Représentation matricielle
 
 
CR
M
E0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
Pre a0 a1 a2 b2 b1 b0
E0
E1
E2
CR
M
R2
R1
R0
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
1 0 0 0 0 0
0 0 0 0 0 1
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
!
"
#
#
#
#
#
#
#
#
#
#
$
%
&
&
&
&
&
&
&
&
&
&
Représentation matricielle
 
 
CR
M
E0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
Post a0 a1 a2 b2 b1 b0
E0
E1
E2
CR
M
R2
R1
R0
0 0 1 0 0 0
1 0 0 0 0 0
0 1 0 0 0 0
0 0 0 0 1 0
0 1 0 0 0 0
0 0 0 0 1 0
0 0 0 0 0 1
0 0 0 1 0 0
!
"
#
#
#
#
#
#
#
#
#
#
$
%
&
&
&
&
&
&
&
&
&
&
Représentation matricielle
 
 
CR
M
E0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
M0
E0
E1
E2
CR
M
R2
R1
R0
1
0
0
2
0
0
0
1
!
"
#
#
#
#
#
#
#
#
#
#
$
%
&
&
&
&
&
&
&
&
&
&
Représentation matricielle
• Réseau pur
∀p ∈ P ∀ t ∈ T Pre (p,t) x Post (p,t) = 0
 aucune place ne peut être entrée et sortie d’une transition
 indépendance de l’ajout et du retrait de jetons lors des
franchissements
Représentation matricielle
• Matrice d’incidence ou de connexion
C (p,t) = Post (p,t) - Pre (p,t)
 pour un réseau pur, la matrice C permet de construire
de façon unique les matrices Post et Pre
Pre (p,t) = max (0, - C(p,t) )
Post (p,t) = max (0, C(p,t) )
un réseau de Petri pur est totalement défini par C
Représentation matricielle
 
 
CR
M
E0
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
C a0 a1 a2 b2 b1 b0
E0
E1
E2
CR
M
R2
R1
R0
!1 0 1 0 0 0
1 !1 0 0 0 0
0 1 !1 0 0 0
!1 0 0 0 1 0
0 1 0 0 0 !1
0 0 0 !1 1 0
0 0 0 0 !1 1
0 0 0 1 0 !1
"
#
$
$
$
$
$
$
$
$
$
$
%
&
'
'
'
'
'
'
'
'
'
'
Equation fondamentale
∀ M ∈ [M0] ∀ s ∈ T * telle que M0 (s> M
M(p) = M0(p) + C (p,ti) • !i
i=1
m
"
σ= (σ1, σ2,… σm) peut être représenté par un vecteur
appelé vecteur caractéristique de s
M = M0 + C • !
est appelée équation fondamentale
σi = nombre d’occurrences de ti dans s ⇒
∀p ∈ P
Semi flots de transitions
• Séquence répétitive
s répétitive pour M ssi M (s> M
 les marquages initial et final de s sont identiques
σ vecteur caractéristique de s
M = M + C σ ⇒ C σ = 0
Toute séquence répétitive s a son vecteur caractéristique σ
solution de C σ = 0
Semi flots de transitions
• La réciproque est fausse : toute solution de C σ
= 0 n’est pas le vecteur caractéristique d’une
séquence répétitive
 il faut que ∀i σi ∈ N
 il faut que s soit franchissable pour M
• Les solutions de C σ = 0 pour σi ∈ N sont
appelées des semi flots de transitions
 les flots (plus difficiles à interpréter) sont les solutions
de C σ = 0 pour σi ∈ Z
Semi flots de transitions
• L’équation C σ = 0 pour σi ∈ N est une
équation linéaire homogène en nombres entiers
– hormis la solution triviale sans intérêt σ = 0 toute
combinaison linéaire de solutions est aussi une solution
– une famille génératrice {σ, σ’, σ’’, …}est un ensemble
de solutions tel que toute solution peut s’exprimer
comme une combinaison linéaire de cette famille
– une plus petite famille génératrice ppfg est une famille
de cardinal minimal
– il est donc nécessaire et suffisant de trouver une ppfg
 Analogie avec une base en algèbre linéaire
Semi flots de transitions
• Utilisation des semi flots de transitions :
– on calcule une ppfg de solutions de C σ = 0 pour
σi ∈ N
 les méthodes de résolution sont inspirées de l’algèbre
linéaire, de la programmation en nombres entiers et des
méthodes d’élimination de Gauss et Farkas
– on recherche dans ces solutions les séquences
répétitives s pour un marquage M (en général
M0), dont les vecteurs caractéristiques sont les
solutions trouvées
Gyula Farkas
(1847-1930)
Carl Friedrich Gauss
(1777-1855)
Semi flots de places


E1
a0
a1
partie du réseau de Petri issu de l’exemple
la transition a0 absorbe 2 jetons et n’en
restitue qu’un seul dans la place E1
Semi flots de places

E1
a0
a1
la transition a1 absorbe 1 jeton de la
place E1 et restitue 2 jetons
Semi flots de places


E1
a0
a1
pour que les jetons se « conservent »
tout se passe comme si le jeton de la
place E1 « pesait » 2 fois plus
« lourd » que les autres
Semi flots de places
• On définit une application ϕ : P → N exprimant l’idée
de « poids » d’un jeton dans une place
• On peut exprimer l’idée de « conservation » de jetons
ainsi pondérés, par l’invariance du produit scalaire
ϕ . M = ϕ . M0 ∀ M ∈ [M0]
• Dans l’exemple précédent, pour ϕ (E1) = 2 et ϕ (p) = 1
pour p ≠ E1, le franchissement de la transition a0 ou
a1 conserve la quantité ϕ . M = 2
Semi flots de places
• Calcul des valeurs de ϕ :
∀ M ∈ [M0] ∀ s ∈ T* M0 (s> M
σ vecteur caractéristique de s
M = M0 + C • !
ϕ . M = ϕ . M0 ⇔ ϕ . C = 0
 pour qu’une pondération ϕ permette une
conservation pondérée de tout marquage accessible M
il faut et il suffit que ϕ soit solution dans N de ϕ . C = 0
Semi flots de places
• Les solutions de ϕ C = 0 pour ϕi ∈ N sont
appelées des semi flots de places
 les flots (plus difficiles à interpréter) sont les solutions
de ϕ C = 0 pour ϕi ∈ Z
• Comme pour les semi flots de transitions,
l’équation ϕ C = 0 pour ϕi ∈ N est une équation
linéaire homogène en nombres entiers
 Il est donc nécessaire et suffisant de trouver une plus
ppfm de solutions
Semi flots de places
• Invariants
– les quantités ϕ M = ϕ M0 pour ϕi ∈ N sont appelés des
invariants
• Supports
– un support de ϕ, noté ||ϕ|| = { p∈ P | ϕ (p) > 0 }
• Couvertures
– les solutions strictement positives ϕ telles que ∀ p ∈ P
ϕ(p) > 0 sont appelées des couvertures
Semi flots de places
• Théorème
– Un réseau de Petri admettant une couverture ϕ est
structurellement borné
• Preuve
ϕ Couverture ⇒ ∀ M ∈ [M0] ϕ.M = ϕ.M0
et ∀ p ∈ P ϕ(p) > 0
⇒ ∀ p ∈ P ϕ(p).M(p) ≤ ϕ.M0
⇒ ∀ p ∈ P M(p) ≤ (ϕ.M0) / ϕ(p)
II.4
Langages engendrés
Normes de Keller
• ν : M → N
• Propriétés
∃ Ma ∈ [M0] ν (M) = 0 ⇔ M = Ma
∀ M ∈ [M0] M ≠ Ma ∃ M’ ∈ [M0] s ∈ T* M (s> M’
ν (M’) < ν (M)
• Théorème de Keller
s’il existe une norme de Keller, Ma est un état d’accueil
Robert M. Keller
Normes de Keller
• Preuve
– Lemme de Fermat
• Toute suite décroissante d’entiers est finie
∀ M ∈ [M0] ∃ M1, M2, … ∈ [M0]
∃ s1, s2, … ∈ T* M (s1> M1(s2> M2 …
ν (M) > ν (M1) > ν (M2) …
cette suite est finie ⇒ son dernier terme est tel que
ν (Mf) = 0 ⇒ Mf = Ma
⇒ Ma est un état d’accueil
Pierre Simon de Fermat
(1601 - 1665)
Normes de Keller
• Théorème
Si le marquage initial est un marquage d’accueil et
si le réseau est quasi-vivant
alors le réseau est vivant
– Preuve
∀ M ∈[M0] M0 ∈[M] et ∀ t ∈ T M0(t>
donc
∀ t ∈ T ∀ M ∈[M0] M0(t>
Langage de places
• Vocabulaire P
• Verbalisation µ : M → P*
µ (M) = p1
M(p1) p2
M(p2) …pn
M(pn)
Exemple M = < u , v2, w > µ (M) = u v2 w
• Grammaire < P ; Q >
Q : ensemble de m règles de réécriture
ti : µ (Pre (.,ti) → µ (Post (.,ti))
réécriture du sous mot µ (Pre (.,ti) par µ (Post (.,ti))
• Axiome µ(M0)
Langage de places
• Exemple
 

 
x
y
a b c

2
5
2 5
3
3 1
5
P = { x, y }
a : x5 → x2 y3
Q b : x2y → y3
c : y5 → x5
A x5 y
Langage de places
• Exemple
 
x
y
a b c
 
 
2
5
2 5
3
3 1
5
P = { x, y }
a : x5 → x2 y3
Q b : x2y → y3
c : y5 → x5
A x5 y
x2y4
L x5y
a
Langage de places
• Exemple
x
y
a b c
 
 
 
2
5
2 5
3
3 1
5
P = { x, y }
a : x5 → x2 y3
Q b : x2y → y3
c : y5 → x5
A x5 y
x2y4 y6
L x5y
a
b
Langage de places
• Exemple
 

 
x
y
a b c

2
5
2 5
3
3 1
5
P = { x, y }
a : x5 → x2 y3
Q b : x2y → y3
c : y5 → x5
A x5 y
x2y4 y6
L x5y
a
b
a
c
Langage de places
• Exemple
 

x
y
a b c

 
2
5
2 5
3
3 1
5
P = { x, y }
a : x5 → x2 y3
Q b : x2y → y3
c : y5 → x5
A x5 y
x2y4 y6
L x5y
x3y3
a
b
b
a
c
Langage de places
• Exemple

x
y
a b c
 
  
2
5
2 5
3
3 1
5
P = { x, y }
a : x5 → x2 y3
Q b : x2y → y3
c : y5 → x5
A x5 y
x2y4 y6
L x5y
x3y3 xy5
a
b
b b
a
c
Langage de places
• Exemple
 
 
 
x
y
a b c
2
5
2 5
3
3 1
5
P = { x, y }
a : x5 → x2 y3
Q b : x2y → y3
c : y5 → x5
A x5 y
x2y4 y6
L x5y
x3y3 xy5 x6
a
b
c
b b c
Langage de places
• Exemple
 

x
y
a b c

 
5
2
2 5
3
3 1
5
P = { x, y }
a : x5 → x2 y3
Q b : x2y → y3
c : y5 → x5
A x5 y
x2y4 y6
L x5y
x3y3 xy5 x6
a
b
b b c
a
c
Langage de places
• Propriété
– Le langage de places d’un réseau de Petri est isomorphe
à l’ensemble des marquages accessibles
Langages de transitions
• Vocabulaire T
• Langages possibles
L (M0, M) = { s ∈ T* | M0 (s> M }
 ensemble de toutes les séquences franchissables de M0
à M
L (M0, Mf) = { s ∈ T* ∀ M ∈ Mf | M0 (s> M }
 ensemble de toutes les séquences franchissables de M0
à tout marquage de l’ensemble terminal Mf
Langages de transitions
étiquetées
• Vocabulaire V
• Etiquetage e : T → V*
extension « naturelle » e : T* → V*
s ∈ T* si s = λ ⇒ e(s) = λ
t ∈ T sinon s = s’t ⇒ e(s) = e(s’) e(t)
• Langage de transitions étiquetées
L (M0, M, e) = e ( L (M0, M) )
Langages de transitions
 

 
x
y
a b c

2
5
2 5
3
3 1
5
Exemples
L (M0, M0) = (a b c)*
L (M0, [M0]) = λ + a + a b +
(a b c)* + b (b + b c + (b c a)*)
Ces langages caractérisent toutes les
suites d’actions possibles (transitions) du
système que le réseau de Petri modélise
Langages de transitions
• Propriétés
[M0] est fini ⇒ ∀ M ∈ [M0] ou ∀ M ⊆ [M0] L(M0, M) sont des
langages réguliers
Preuve
G = < [M0] , R>
le graphe des marquages accessibles peut être considéré comme
un automate d’états finis
Le langage L(M0, M0) d’un réseau de Petri est constitué de toutes les
séquences répétitives s telles que M0 (s> M0
Puissance des langages de
transitions étiquetées
a
a
b
b
P Q
Le (<P>,<Q>) = { anbn | n>0 }
Le est un langage algébrique
ce n’est pas un langage régulier
a
a
b
b
P R
c
c
Le’ (<P>,<R>) = { anbncn | n>0 }
Le’ est un langage contextuel
ce n’est pas un langage algébrique
Puissance des langages de
transitions étiquetées
• Limite
w wR (palindrome) n’est pas un langage de transition
étiquetée
• Preuve principe
w ∈ V* r = |w| ⇒ kr marquages accessibles distincts
on montre qu’il est impossible de générer kr marquages
distincts pour une séquence de franchissements de
longueur r
 on montre aussi que tout langage de transitions
étiquetées est contextuel
Puissance des langages de
transitions étiquetées
Hierarchie de Chomsky
réguliers
récursifs
contextuels
algébriques transitions
étiquetées
Langages de Réseaux de Petri
wwR
anbn
anbncn
Noam Chomsky
(1926)
II.5
Problèmes et
extensions
Problèmes indécidables
• Egalité ou inclusion d’ensembles des
marquages accessibles
R1 = < P, T1 ; Pre1, Post1 ; M01 >
R2 = < P, T2 ; Pre2, Post2 ; M02 >
[M02] = [M01] et [M02] ⊆ [M01]
– Preuve
• Le 10ième problème de Hilbert (solution des équations
diophantiennes) est réductible à chacun de ces problèmes.
• Il a été montré indécidable par Матиясевич en 1970
David Hilbert
(1862 - 1943)
Матиясевич Юрий
Владимирович
(1947)
Problèmes indécidables
• Retrait d’une transition
R = < P, T ; Pre, Post ; M0 > t ∈ T
R’ = < P, T{t} ; Pre’, Post’ ; M0 >
 R’ est construit à partir de R en retirant une transition t
et les arcs Pre et Post de t
[M0] de R’≠ [M0] de R
 aucun algorithme ne peut tester si une modification des
transitions modifie l’ensemble des marquages
accessibles
Problèmes indécidables
• Sous ensemble de transitions non franchissables
R = < P, T ; Pre, Post ; M0 > T’ ⊆ T
M0 (u> ∀ v ⊆ u M0(v> M ⇒ ∀ t ∈ T’ ¬ M(t>
– Preuve
• L’arrêt de la machine de Minsky est réductible au problème
précédent
• Minsky a démontré que l’arrêt de sa machine est indécidable
Marvin Minsky
(1927)
Problèmes décidables
• Accessibilité de M à M’
∃ s ∈ T* M (s> M’
• Bornage
< P, T ; Pre, Post ; M0 > borné
• Vivacité
< P, T ; Pre, Post ; M0 > vivant
• Etat d’accueil
Ma état d’accueil pour < P, T ; Pre, Post ; M0 >
Complexité
• Les problèmes décidables précédents sont de grande
complexité *
• Il est donc nécessaire de développer des heuristiques
• Les méthodes usuelles utilisent des conditions
suffisantes (mais en général non nécessaires) pour
établir certaines propriétés
• La recherche d’invariants permet de restreindre
l’ensemble des possibilités
* Le problème de l’accessibilité a été démontré primitif récursif en
Avril 1998 par Zakariae Bouziane
ftp://ftp.inria.fr/INRIA/publication/publi-pdf/RR/RR-3404.pdf
Techniques d’analyse
• Principe
pour montrer que ∀ M ∈ [M0] P (M) sans construire [M0] :
on recherche les semi flots de places et de transitions
on en déduit des invariants linéaires qui sont des propriétés Q vraies
pour [M0]
∀ M ∈ [M0] Q (M)
il reste à montrer que ∀ M ∈ [M0] Q(M) ⇒ P(M)
on déduit que ∀ M ∈ [M0] P (M)
Techniques d’analyse
• si les invariants linéaires sont insuffisants on
cherche d’autres invariants par induction
• pour montrer que ∀ M ∈ [M0] P (M) on
montre que :
P (M0)
∀ M, M’ ∈ [M0] ∀ t ∈ T M (t> M’ P (M) ⇒ P (M’)
on induit que ∀ M ∈ [M0] P (M)
Techniques d’analyse
• Il est souvent difficile de démontrer
directement que ∀ M ∈ [M0] P (M)
• On procède alors par étapes
si l’on sait que ∀ M ∈ [M0] Q (M)
on définit [M0]Q = { M | M0 ∈ [M0]Q Q(M) }
on déduit que [M0] ⊆ [M0]Q
on montre que ∀ M ∈ [M0]Q P (M)
on déduit que ∀ M ∈ [M0] P (M)
Techniques d’analyse
M0 x
[M0] [M0]Q = { M | M0 ∈ [M0]Q Q(M) }
P
Q
[M0]Q est plus « facile » à caractériser que [M0]
Techniques d’analyse
• Bornage
– on recherche une couverture de semi flots de places
– on en déduit directement que le réseau de Petri est
borné
– on déduit aussi une borne pour chaque place
– on déduit aussi des invariants linéaires Q
– on déduit [M0]Q
Techniques d’analyse
• Etat d’accueil Ma
on recherche une norme de Keller pour Ma dans [M0]Q
• Vivacité d’une transition t
on recherche M et s tels que Ma (s> M (t>
• Vivacité du réseau de Petri
on montre la vivacité de chaque transition t
Monotonie
• P monotone ssi ∀ M, M’ ∈ [M0] M ≤ M’ ⇒
( P (M) ⇒ P (M’) )
une propriété monotone reste vraie quand le marquage
croit
– La franchissabilité et le franchissement sont
monotones
∀ M1, M’1 ∈ [M0] M1 ≤ M’1 ⇒ ( M1 (s> ⇒ M’1 (s> et
M1 (s> M2 ⇒ M’1 (s> M’2 avec M2 ≤ M’2
Monotonie
• La pseudo vivacité n’est pas monotone
• La quasi vivacité est monotone
• La vivacite n’est pas monotone
• L’existence d’un état d’accueil n’est pas
monotone
• Le bornage est monotone
Limites
Un réseau de Petri n’est pas un modèle de calcul
• Preuve
– on peut simuler le fonctionnement d’un réseau de Petri
par une machine de Minsky
– la machine de Minsky est un modèle de calcul
– pour la machine de Minsky l’accessibilité est
indécidable
– pour un réseau de Petri l’accessibilité est décidable
Limites
• Conséquences
– Il n’est pas possible de « tester » que M(p) = 0 pour une
place p ∈ P
• Preuve
si on pouvait le faire, on pourrait simuler une machine de Minsky
par un réseau de Petri
– Il n’est pas possible de définir des « priorités » entre
transitions franchissables
• Preuve
si on pouvait le faire on pourrait faire le test à 0
Constructions
• Union de réseaux de Petri
R1 = < P1 , T1 ; Pre1 , Post1 ; M10 >
R2 = < P2 , T2 ; Pre2 , Post2 ; M20 >
R = < P , T ; Pre , Post ; M0 >
P = P1 ∪ P2 T = T1 ∪ T2 M0 = M01 ∪ M02
Pre = Pre1 ∪ Pre2 Post = Post1 ∪ Post2
– mise en commun de transitions T1 ∩ T2 ≠ ∅
– mise en commun de places P1 ∩ P2 ≠ ∅
 en général R n’hérite d’aucune propriété (bornage,
vivacité, …) de R1 ou de R2
Constructions
• Réductions
– Il est possible de définir des règles de suppression de
places ou de transitions qui conservent certaines
propriétés telles que bornage ou vivacité
Extensions
• Deux types
– il est possible de définir un isomorphisme entre un
réseau de Petri étendu et un réseau de Petri
 l’extension est en général une abréviation
 tout résultat (propriété, théorème ou décidabilité ) est conservé
– il est impossible de définir un isomorphisme
 l’extension a pour objectif d’augmenter la puissance du
modèle, éventuellement vers un modèle de calcul
 l’extension diminue les possibilités de preuve
 aucun résultat n’est conservé
Extensions
• isomorphes à un réseau de Petri
– Réseaux de Petri colorés
C = {c1, c2,…ck } ensemble de couleurs
M : P → { C → N } chaque place contient des jetons
colorés
• Exemple



les fonctions Pre et
Post doivent aussi
être « colorées »
C = {r, v, b }
M(p) (r) = 3
M(p) (v) = 2
M(p) (b) = 2
Extensions
– Réseaux de Petri à prédicats
P = { π1, π2, …πn } πi = { pi1, pi2,…pin }
T = { τ1, τ2, … τn } τi = { ti1, ti2,…tim }
 chaque place πi est un ensemble de places
 chaque transition ti est un ensemble des transitions
 les fonctions Pre et Post sont étiquetées par des prédicats
portant sur les ensembles P et T
Extensions
• Non isomorphes à un réseau de Petri
– Arcs inhibiteurs
t est franchissable
ssi M (p) = 0
un réseau de Petri avec arcs inhibiteurs est un modèle de
calcul
– Numériques
M : P → Z  un jeton peut être négatif
un réseau de Petri numérique est un modèle de calcul
p t
Extensions
– Réseaux de Petri temporisés
• transitions temporisées
– on associe à chaque transition une durée définie par un intervalle
de temps
• places temporisées
– on associe à chaque place une durée définie par un intervalle de
temps
– Réseaux de Petri à files
• une place est une file (en général FIFO)
Extensions
– Réseaux de Petri interprétés
• on associe à chaque transition t un prédicat P(t)
• une transition est franchissable si et seulement si
M(t> et P(t)
• Exemple : Grafcet
II.6
Calcul des semi-flots
Équations linéaires homogènes
Calcul de X . A = 0 X ∈Nn A ∈Znxm
 calcul du noyau de A
– Propriété
 toute combinaison linéaire à coefficients dans N d’un
ensemble de solutions est une solution
!Xi "!n
!| Xi .A = 0!et!!#i "!!X = #i Xi !=!0
i
$ !
Notations
N+ = N  {0}
 ensemble des entiers strictement positifs
Q+ = {x ∈ Q | x ≥ 0}
 ensemble des rationnels non négatifs
S = {X ∈ (N+)n | X . A = 0}
 Noyau de l’application
 S est soit vide, soit infini
Famille génératrice
Ensemble de solutions tel que toute solution est une combinaison
linéaire des éléments de cet ensemble
 les coefficients λ peuvent être fractionnaires, mais les solutions X
doivent toujours être entières
• Support
Ensemble des coordonnées positives d’un vecteur
! = {X1, X2,!Xp |!"X #!S!$%1,%2,!%p #"+
!X = %i Xi !}!
i=1
p
&
X = (x1,x2,!xn )!! X = {xi | xi > 0}!
Propriété d’une FG
– Théorème
• Preuve
– condition suffisante P ⇒ Q
!!est!une!FG!ssi!"X #S!$X ' #!!|! X ' % X !
!!!FG!"!#X $S!X = %i Xi !"!#i X & Xi !
i
'
– condition nécessaire Q ⇒ P
pour cela il faut que λ.X ≥ λ’X’ et que ∃ xk | λxk = λ’x’k
ce qui permet d’annuler la coordonnée x’’k de X’’
les valeurs de λ et λ’ s’écrivent alors
et
X !S! peut!s'écrire!"X = "'X '+ X ''!
avec!X ' !#!,!X '' !S!et X '' $ X !
! = x'i
x 'i " X '
# ! !' = min
xi " X
!(xi . x'j
x 'j " X ' {x 'i }
# !)!
=
λX = λ’X’ + X’’
preuve
∃k λxk = λ’x’k
∀h λxh ≥ λ’x’h
soit!k!|!!' = xk . x'j
x 'j " X ' {x 'k }
# !alors!
!xk = x'i
x 'i " X '
# .!xk !=!xk . x'j
x 'j " X ' {x 'k }
# .!x'k !=!!'x'k !
!xh = x'i
x 'i " X '
# .!xh != xh. x'j
x 'j " X ' {x 'h }
# .!x'h !$ !'x'h !
λ’
≥λ’
en itérant le processus :
on obtient la suite :
qui est finie puisque les supports des Xi sont décroissants
donc en itérant jusqu’à ||Xn+1|| = ∅
C.Q.F.D.
!0 X0 = !'0 X '0 + X1 !avec!X '0 "#!,!X1 "S!et X1 $ X0 !
!i Xi = !'i X 'i + Xi+1 !avec!X 'i "#!,!Xi+1 "S!et Xi+1 $ Xi !
X0 = !j Xj !
j=1
n
" ,!!j #!+
!,!Xj #$!
Plus petite famille génératrice
– Définition
 une PPFG est une FG de cardinal minimum
– Propriété
 aucun élément d’une PPFG n’est une combinaison
linéaire des autres éléments
• Preuve : si on retire un élément Xi on n’a plus une FG
! = {X1, X2,!Xp}!FG!telle!que!"Xi #!!!  {Xi }!n'est! pas!une!FG!
!!PPFG!ssi!!!FG!et!"Xi #!!et!"$j #!+
!Xi % $i Xj !
j%i
&
– Théorème
 Les supports des éléments de Ξ ne sont pas comparables
• preuve (ad absurdum)
• condition suffisante ¬Q ⇒ ¬P
• condition nécessaire ¬P ⇒ ¬Q
!!est!une!PPFG!ssi!!!est!une!FG!et!
!!!!"Xi , Xj #!!i $ j! Xi % Xj !!et! Xi $ Xj !
!Xi , Xj "#!i $ j! Xi % Xj & #  {Xj }!est!une!FG & #!n'est! pas!une!PPFG!
!!n'est! pas!une!PPFG " #X $!!X = %i Xi !et!&i! Xi
i
' ( X !
PPFG du Noyau de A
• Propriétés de A
– l’ensemble des lignes de A est une FG de l’image de A
 il est donc possible d’ajouter à A une ligne combinaison linéaire
des autres lignes
– l’ensemble des lignes de non nulles de A est une FG de
l’image non nulle de A
 l’ensemble Ξ des combinaisons linéaires conduisant à des lignes
nulles de A est une FG du noyau de A
 le sous-ensemble Ξ’ de Ξ ne contenant que les
combinaisons linéaires de support minimal est une PPFG du
noyau de A
Algorithme de Farkas
La PPFG est construite pas à pas, par colonnes de A (c.à.d. par
équation linéaire homogène, ou par coordonnée)
1. On cherche toutes les combinaisons linéaires de A telles que les
lignes de A soient nulles
2. On retire de A toutes les lignes non nulles
 Les combinaisons linéaires restantes sont une FG du noyau de A
3. On retire de A toutes les lignes dont les combinaisons linéaires ont
un support inclus dans le support d’une autre combinaison linéaire
de A
 Les combinaisons linéaires restantes sont une PPFG du noyau de A
Gyula Farkas
(1847-1930)
Recherche de X tel que X.A = 0
F = In ; -- In est la matrice unité de même dimension que X --
tant que A ≠∅ faire
{ choisir une colonne k de A ;
pour tout i,j tels que Aik > 0 et Ajk < 0 ajouter à A et à F la ligne
p telle que
{ Ap. = (Aik . Aj. - Ajk . Ai. ) / pgcd (Aik , - Ajk ) ;
Fp. = (Aik . Fj. - Ajk . Fi. ) / pgcd (Aik , - Ajk ) }
pour tout i tel que Aik ≠ 0 supprimer de A et F la ligne i ;
pour tout i,j tels que ||Fi.|| ⊆ ||Fj.|| supprimer de A et F la ligne j ;
supprimer de A toutes les colonnes nulles }
Les lignes de F sont une ppfg de semi-flots
Exemple : semi-flots de places
C !!!a0 a1 a2 b2 b1 b0
E0
E1
E2
CR
M
R2
R1
R0
!1 0 1 0 0 0
1 !1 0 0 0 0
0 1 !1 0 0 0
!1 0 0 0 1 0
0 1 0 0 0 !1
0 0 0 !1 1 0
0 0 0 0 !1 1
0 0 0 1 0 !1
"
#
$
$
$
$
$
$
$
$
$
$
%
&
'
'
'
'
'
'
'
'
'
'
CR
M
E1
E2
R0
R1
R2
a0
a1
a2
b0
b1
b2
!!!!!!! a0 a1 a2 b2 b1 b0
E0
E1
E2
CR
M
R2
R1
R0
!1 0 1 0 0 0
1 !1 0 0 0 0
0 1 !1 0 0 0
!1 0 0 0 1 0
0 1 0 0 0 !1
0 0 0 !1 1 0
0 0 0 0 !1 1
0 0 0 1 0 !1
"
#
$
$
$
$
$
$
$
$
$
$
%
&
'
'
'
'
'
'
'
'
'
'
!!E0 E1 E2 CR M R2 R1 R0
1 !!0 !!0 !!0 !!0 !!0 !!0 !!0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
!
"
#
#
#
#
#
#
#
#
#
#
$
%
&
&
&
&
&
&
&
&
&
&



E0 + E1 ! !0 !!1 !!1 !!0 !!0 !!0!( )! 
E1 + CR! !0 !!1 !!0 !!0 !!1 !!0!( )! 
!1 !!1 !!0 !!0 !!0 !!0 !!0 !!0!( )!
!0 !!1 !!0 !!1 !!0 !!0 !!0 !!0!( )!
!!!! !!!!!!!!!!! a1 a2 b2 b1 b0
E2
M
R2
R1
R0
E0 + E1
E1 + CR
1 !1 0 0 0
1 0 0 0 !1
0 0 !1 1 0
0 0 0 !1 1
0 0 1 0 !1
!1 1 0 0 0
!1 0 0 1 0
"
#
$
$
$
$
$
$
$
$
$
%
&
'
'
'
'
'
'
'
'
'
!E0 E1 E2 CR M R2 R1 R0
0 !!0 !!1 !!0 !!0 !!0 !!0 !!0
0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
1 1 0 0 0 0 0 0
0 1 0 1 0 0 0 0
!
"
#
#
#
#
#
#
#
#
#
$
%
&
&
&
&
&
&
&
&
&








E0 + E1 + E2 ! !!0 !!0 !!0 !!0 !!0!( )! 
E1 + E2 + CR! !!0 !!1 !!0 !!1 !!0!( )! 
E0 + E1 + M ! !!0 !!1 !!0 !!0 !!1!( )! 
E1 + CR + M ! !!0 !!0 !!0 !!1 !!1!( )! 
!1 !!1 !!1 !!0 !!0 !!0 !!0 !!0!( )!
!0 !!1 !!1 !!1 !!0 !!0 !!0 !!0!( )!
!1 !!1 !!0 !!0 !!1 !!0 !!0 !!0!( )!
!0 !!1 !!0 !!1 !!1 !!0 !!0 !!0!( )!
!! !!!!!!!!!!! !!!!!!!a2 b2 b1 b0
R2
R1
R0
E0 + E1 + E2
E1 + E2 + CR
E0 + E1 + M
E1 + CR + M
0 !1 1 0
0 0 !1 1
0 1 0 !1
0 0 0 0
!1 0 1 0
1 0 0 !1
0 0 1 !1
"
#
$
$
$
$
$
$
$
$
$
%
&
'
'
'
'
'
'
'
'
'
!E0 E1 E2 CR M R2 R1 R0
0 !!0 !!0 !!0 !!0 !!1 !!0 !!0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
1 1 1 0 0 0 0 0
0 1 1 1 0 0 0 0
1 1 0 0 1 0 0 0
0 1 0 1 1 0 0 0
!
"
#
#
#
#
#
#
#
#
#
$
%
&
&
&
&
&
&
&
&
&


E0 + 2E1 + E2 + CR + M ! !0 !!0 !!1! !!1!( )!
!1 !!2 !!1 !!1 !!1 !!0 !!0 !!0!( )!




!! !!!!!!!!!!! !!!!!!!b2 b1 b0
R2
R1
R0
E0 + E1 + E2
E1 + CR + M
!1 1 0
0 !1 1
1 0 !1
0 0 0
0 1 !1
"
#
$
$
$
$
$
$
%
&
'
'
'
'
'
'
E0 E1 E2 CR M R2 R1 R0
0 !0 !!0 !!0 !!0 !!1 !!0 !!0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
1 1 1 0 0 0 0 0
0 1 0 1 1 0 0 0
!
"
#
#
#
#
#
#
$
%
&
&
&
&
&
&


R0 + R2 !! !!0 !!1 !!1!( )! !0 !!0 !!0 !!0 !!0 !!1 !!0 !!1!( )!
!! !!!!!!!!!!! !!!!!!!b1 b0
R1
E0 + E1 + E2
E1 + CR + M
R0 + R2
!1 1
0 0
1 !1
1 !1
"
#
$
$
$
$
%
&
'
'
'
'
E0 E1 E2 CR M R2 R1 R0
0 !!0 !!0 !!0 !!0 !!0 !!1 !!0
1 1 1 0 0 0 0 0
0 1 0 1 1 0 0 0
0 0 0 0 0 1 0 1
!
"
#
#
#
#
$
%
&
&
&
&




E1 + CR + M + R1 !! !!0 !!0!( )! 
R0 + R1 + R2 !! !!0 !!0!( )! 
!0 !!1 !!0 !!1 !!1 !!0 !!1 !!0!( )!
!0 !!0 !!0 !!0 !!0 !!1 !!1 !!1!( )!
E0 E1 E2 CR M R2 R1 R0
1 !!1 !!1 !!0 !!0 !!0 !!0 !!0
0 1 0 1 1 0 1 0
0 0 0 0 0 1 1 1
!
"
#
#
$
%
&
&
 ces trois vecteurs sont une ppfg des solutions
Vérification
E0 E1 E2 CR M R2 R1 R0
1 !!1 !!1 !!0 !!0 !!0 !!0 !!0
0 1 0 1 1 0 1 0
0 0 0 0 0 1 1 1
!
"
#
#
$
%
&
&
C !!!a0 a1 a2 b2 b1 b0
E0
E1
E2
CR
M
R2
R1
R0
!1 0 1 0 0 0
1 !1 0 0 0 0
0 1 !1 0 0 0
!1 0 0 0 1 0
0 1 0 0 0 !1
0 0 0 !1 1 0
0 0 0 0 !1 1
0 0 0 1 0 !1
"
#
$
$
$
$
$
$
$
$
$
$
%
&
'
'
'
'
'
'
'
'
'
'
!!! !!! !!! !!! !!! !!!
!!! !!! !!! !!! !!! !!!
!!! !!! !!! !!! !!! !!!
!
"
#
#
$
%
&
&
0 0 0 0 0 0
0 0 0 0 0
000000
0
Ingénierie des
protocoles
TD & Annales d’examens
Université Montpellier II
Faculté des Sciences
Département Informatique
Master
Richard G. TERRAT
TD N° 1
Philosophie et Gastronomie

Edsger Wybe Dijkstra
(1930-2002)
Cinq amis, philosophes et gastronomes, se réunissent dans une trattoria napolitaine.
L’établissement ne propose que des spaghetti.
Ils s’installent autour d’une table ronde de 5 places où sont déposés 5 assiettes et 5 fourchettes,
situées chacune entre chaque assiette.
On sait bien que pour déguster des spaghetti, deux fourchettes sont nécessaires.
Les philosophes-gastronomes vont donc se les partager ainsi :
Chacun alternera des phases de
- pensée pendant laquelle il ne se servira pas de ses fourchettes
- restauration pendant laquelle il mangera ses spaghetti en se servant des
fourchettes situées de part et d’autre de son assiette.
Question
Modéliser par un réseau de Petri le comportement des philosophes-gastronomes

N.B. Il s’agit évidemment d’une allégorie, proposée en 1971 par E.W. Dijstra, dans laquelle
les philosophes sont la métaphore de processus et les fourchettes celle de ressources.
Le problème est celui de partage de ressources par des processus.
Un protocole de transfert de données
Description du protocole
On se propose d’étudier la phase de transfert de données d’un protocole de transmission sur
une liaison bidirectionnelle alternée (half-duplex). On fait l’hypothèse que cette liaison est
sans pertes, mais avec possibilité d’erreurs détectables grâce à un code détecteur mais non
correcteur d’erreurs.
L’objectif de ce protocole est d’assurer la transmission correcte de données entre un
émetteur E et un récepteur R via une liaison L d’une suite de messages Mk (k ∈ N) sans
perte ni duplication. La valeur de k ne fait pas partie du message transmis (à cause du fait
qu’elle n’est pas bornée).
L’émetteur E émet des messages qui peuvent être soit :
reconnus et acceptés par le récepteur R
perturbés et transformés en messages d’erreur X reconnus comme tels par le récepteur R
Le récepteur R émet, sur réception d’un message valide M, un accusé de réception positif
ACK et sur réception d’un message invalide X un accusé de réception négatif NAK
ACK ou NAK peuvent être soit :
reconnus et reçus par l’émetteur E
perturbés et transformés en messages d’erreur Y reconnus comme tels par l’émetteur E
Fonctionnement du protocole
Émetteur E
À l’instant initial E est à l’état repos
Dans l’état repos E peut envoyer un nouveau message M
Il passe alors dans l’état attente
Dans l’état attente, si E reçoit :
ACK il retourne à l’état repos
NAK ou Y il passe dans l’état réémission
Dans l’état réémission E peut réémettre le message M
Il retourne alors à l’état attente
Récepteur R
À l’instant initial R est à l’état repos
Dans l’état repos si R reçoit :
un message valide M, il accepte le message et passe dans l’état accepté
un message invalide X, il passe dans l’état refusé
Dans l’état accepté, R peut envoyer un ACK
Il retourne alors à l’état repos
Dans l’état refusé, R peut envoyer un NAK
Il retourne alors à l’état repos
Ligne L
L peut, à tout instant, perturber un message M en le transformant en X ou perturber un
ACK ou NAK en le transformant en Y
TD N°2
1. Modéliser ce protocole par un réseau de Petri
2. Tracer le graphe des marquages accessibles
3. Soit a la transition correspondant à l’envoi d’un nouveau message M et b celle
correspondant à la réception d’un message correct. Montrer que
∃ w ∈ L tel que |a|w  |b|w
où |u|w désigne le nombre d’occurrences de la lettre u dans le mot w.
4. Ajouter au réseau de Petri précédent 2 places I et J telles que :
Post (I,a) = 1 ∀ t ∈ T t ≠ a, Post (I,t) = 0 et ∀ t ∈ T Pre (I,t) = 0
Post (J,b) = 1 ∀ t ∈ T t ≠ b, Post (J,t) = 0 et ∀ t ∈ T Pre (J,t) = 0
Montrer que l’on peut avoir m(J)  m(I)
En déduire que le protocole est incorrect.
TD N°3
5. Construire la matrice de connexion C de ce réseau
6. Trouver les semi-flots de transitions. En déduire toutes les séquences répétitives issues
du marquage initial.
7. Trouver les semi-flots de places. En déduire que le réseau de Petri est borné. Compte
tenu de son marquage initial, quelles sont les bornes de chacune des places ?
8. En étiquetant toutes les transitions, donner une expression régulière du langage
L(M0,,M0) engendré par le réseau de Petri.
TD N° 4
9. Trouver une norme permettant de prouver que le réseau est réinitialisable.
10. Monter que le réseau est sans blocage.
11. Montrer que le réseau est vivant.
12. Vérifier tous les résultats trouvés sur le graphe des marquages accessibles
TD N°5
Une tentative d’amélioration du protocole « naïf » de transfert de données
Description
On se propose d’améliorer le protocole précédent ainsi :
On ajoute à chaque message transmis un bit ainsi défini :
0 : il s’agit de la première émission de ce message (envoi initial)
1 : il s’agit d’une réémission de ce message
Étude
Établir un nouveau protocole sur cette base.
Faire un modèle de ce protocole par un réseau de Petri .
En déduire les propriétés de ce nouveau protocole.
TD N°6
Le protocole du bit alterné
Description
On se propose d’améliorer le protocole « naïf »
On ajoute à chaque message à transmettre un bit ainsi défini :
0 : émission (ou réémission) d’un message de rang pair
1 : émission (ou réémission) d’un message de rang impair
! ce bit alterne à chaque réception d’un ACK dont le bit est différent de celui du dernier
message envoyé ; il y a ensuite émission initiale d’un nouveau message
! ce bit reste inchangé sur réception d’un ACK dont le bit est identique à celui du dernier
message envoyé ou sur réception d’un ACK en erreur ; il y a ensuite réémission du même
message
☞ il peut être vu comme une numérotation modulo 2 des messages émis
On modifie les accusés de réception ainsi :
On supprime le « NAK »
On ajoute un bit ainsi défini au « ACK » :
0   : invite à émettre (ou réémettre) un message de rang pair (donc accuse
implicitement réception du message précédemment correctement reçu de rang impair)
1 : invite à émettre (ou réémettre) un message de rang impair (donc accuse
implicitement réception du message précédemment correctement reçu de rang pair).
! ce bit alterne sur réception initiale correcte d’un nouveau message de la parité attendue
! ce bit reste inchangé sur réception d’un message de parité inverse de celle attendue ou
d’un message en erreur 
☞ il peut être vu comme une numérotation modulo 2 des accusés de réception émis
A l’état initial les bits à ajouter aux messages ou aux « ACK » sont à 0.
L’initiateur de la communication peut aussi bien être l’émetteur que le récepteur ; s’il s’agit
du récepteur, le premier « ACK » envoyé est une simple invitation à émettre et n’accuse
évidemment réception d’aucun message.
Étude
Établir un nouveau protocole sur cette base.
Faire un modèle de ce protocole par un réseau de Petri .
En déduire les propriétés de ce nouveau protocole.
Université Montpellier 2 Ingénierie des Protocoles
UFR des Sciences Mars 2006
Master Informatique Tous documents autorisés
Allocation de Circuits Virtuels
Sujet
On s’intéresse à un pico-réseau ayant l’architecture suivante :

A, B, D, E sont des sites terminaux
C1 et C2 sont des sites commutateurs
Les liaisons physiques sont représentées par les 6 arcs sur le schéma ci-dessus
On souhaite établir un maximum de 3 circuits virtuels CV entre
A et B (1 CV)
A et D (1 CV)
A et E (1 CV)
Pour ce faire il faut allouer une suite de voies logiques VL pour chaque CV
Or les commutateurs sont très frustes. Ils ne peuvent gérer qu’une seule VL par liaison
physique.
On ne peut donc établir à un instant donné que 2 CV au plus sur les 3 possibles.
On suppose que le site A est Maître de la gestion des VL , donc des CV
A
C
1
C
2
B D E
Questions
1. Représenter par un Réseau de PETRI simple et pur l’allocation et la libération de CV par le
site A
2. Représenter la matrice de Connexion C de ce Réseau de PETRI. Permet-elle de reconstituer
de façon unique le réseau de PETRI initial ? Expliquer pourquoi.
3. Rechercher les semi-flots et les invariants de places. En déduire que le réseau de PETRI est
sain .
Montrer que seuls 2 CV sur 3 peuvent être alloués.
4. Rechercher les invariants de transitions. En déduire quelles sont les séquences répétitives
possibles.
5. Rechercher une norme permettant de prouver que le marquage initial correspond à un état
d’accueil.
Directives
Il est (fortement) conseillé d’utiliser les éléments suivants :
Places Transitions
BL site B Libre ab Allocation du CV AB
DL site D Libre ad1 Allocation du CV AD via C1
EL site E Libre ad2 Allocation du CV AD via C2
C1L site C1 Libre ae Allocation du CV AE
C2L site C2 Libre
Ces places étant marquées quand les sites sont libres (« idle »)
AB CV AB alloué lb Libération du CV AB
AD1 CV AD alloué via C1 ld1 Libération du CV AD via C1
AD2 CV AD alloué via C2 ld2 Libération du CV AD via C2
AE CV AE alloué le Libération du CV AE
Ces places étant marquées quand les CV sont alloués
Université Montpellier 2 Ingénierie des Protocoles
UFR des Sciences Mars 2007
Master Informatique Tous documents autorisés
Un protocole de connexion-déconnexion
On se propose d’étudier un protocole (bien connu) de connexion-déconnexion décrit ci-après.
Pour ce protocole, on demande d’établir :
1. la matrice de connexion
2. les semi-flots de places
3. les semi-flots de transitions
4. une norme de Keller prouvant que l’état initial est un état d’accueil
et
5. d’en déduire que le réseau est borné et vivant
Description
Phase de connexion :
A l’état initial les 2 sites sont au repos
Le site A est l’appelant, le site B l’appelé
Le site A envoie un message de demande de connexion DC au site B puis attend sa réponse
Le site B, sur réception du message DC envoie un message de confirmation de connexion
CC puis passe directement dans l’état connecté
Le site A, sur réception du message CC passe dans l’état connecté
Phase de déconnexion :
La déconnexion peut être initiée aussi bien par le site A que par le site B
Le site initiateur connecté envoie à l’autre site un message de demande de déconnexion
DD puis attend sa réponse
Lorsqu’un site connecté reçoit un message DD, il répond par un message de
confirmation de déconnexion CD puis retourne à l’état de repos
Lorsqu’un site en attente de déconnexion reçoit un message CD ou DD il retourne à
l’état de repos


° °
DC
CC
A0
A1
A2
A3
B1
B2
B3
DDA
DDB
CDA CDB
a5
b5
a1
a0
a4
a2 a3
b1
b2
b3
b4
Université Montpellier 2 Ingénierie des Protocoles
UFR des Sciences Mars 2008
Master Informatique Tous documents autorisés
Validation à 2 Phases
Sujet
Le texte ci-dessous décrit le fonctionnement du protocole de validation à deux phases (two-step
commitment) utilisé pour maintenir la cohérence en tout-ou-rien d'un ensemble de transactions
réparties.
Une entité, appelée Maître gère un certain nombre de transactions interdépendantes, avec
d'autres entités appelées Esclaves. Lors de ces transactions, les modifications sont consignées
dans des journaux inaltérables, gérés sur chacune des entités.
A l'issue de la suite de transactions gérée sur l'entité Maître, celle-ci décide de valider les mises
à jour, c'est à dire de provoquer les écritures effectives sur les bases de données de chaque entité
(y compris elle-même). Si une seule entité (Maître ou Esclave) ne peut faire ces mises à jour,
pour cause de panne, toutes les entités doivent aussi renoncer à leurs propres mises à jour. La
suite de transactions est donc validée pour toutes les entités ou aucune (tout ou rien). Le but de
ce protocole est d'assurer cette propriété.
Le protocole simplifié
Dans une première phase, l'entité Maître diffuse à toutes les entités esclaves un message D de
demande de verrouillage. Elle attend alors les réponses de toutes les entités esclaves.
Sur réception de D, une entité esclave en fonctionnement normal :
1. Écrit sur son journal un message : W (Attente)
2. Envoie une reponse positive : R+
Sur réception de D, une entité esclave en panne, éventuellement via son entité de transport,
envoie une réponse négative : R-
Dans les deux cas, l'entité esclave attend ensuite un nouveau message de l'entité Maître.
Sur réception des réponses R de toutes les entités esclaves, l'entité Maître entre dans sa seconde
phase.
Si elle reçoit toutes les réponses R+ des entités esclaves, l'entité Maître :
1. Écrit sur son journal un message S (Succès)
2. Diffuse à toutes les entités esclaves un message C (Consolidation)
3. Effectue ses mises à jour et termine dans l'état Consolidé
Si elle reçoit au moins une réponse R- d'une entité esclave, l'entité Maître :
1. Écrit sur son journal un message P (Panne)
2. Diffuse à toutes les entités esclaves un message A (Abandon)
3. Renonce à ses mises à jour et termine dans l'état Abandon
Sur réception d'un message C, une entité esclave effectue ses mises à jour et termine dans l'état
Consolidé
Sur réception d'un message A, une entité esclave renonce à ses mises à jour et termine dans l'état
Abandon
 Les états Consolide et Abandon des entités Maître et Esclave sont des états terminaux. Il n’y
donc pas à « boucler » les processus pour revenir à l’état initial.
 afin de modéliser l’existence d’autres entités esclaves (non représentées dans ce modèle et
qui peuvent éventuellement tomber en panne), on considèrera que lors de la transmission du
message R+ celui-ci peut se transformer en message R- (transition tr)
Questions
1. Construire la matrice de Connexion de ce modèle
2. Calculer les semi-flots de places et les invariants qui en découlent. En déduire que le réseau
est borné. Donner la borne de chaque place.
3. Montrer qu’il existe deux flots de places dont les supports contiennent les places
correspondant aux états Consolidé et Abandon des entités Maître et Esclave. En déduire deux
nouveaux invariants.
4. A partir des invariants issus des semi-flots et des flots de places, montrer que l’entité Esclave
ne peut terminer dans l’état Consolidé alors que l’entité Maître termine dans l’état Abandon de
même que l’entité Maître ne peut terminer dans l’état Consolidé alors que l’entité Esclave
termine dans l’état Abandon.
5. En s’inspirant de la norme de Keller, montrer que l’ensemble des 2 seuls états terminaux
possibles constitue un ensemble d’états d’accueil, c’est-à-dire que l’un ou l’autre de ces états
peut être atteint à partir de tout marquage extérieur à cet ensemble.
N.B. Sur le Réseau de Petri ci-joint :
les places
M4 et M5 représentent les états Consolidé et Abandon du Maître
E3 et E4 représentent les états Consolidé et Abandon de l’Esclave
les transitions
t4 représente l’écriture du message S et l’envoi du message C
t5 représente l’écriture du message P et l’envoi du message A
t7 représente l’écriture du message W et l’envoi du message R+
• •
M0
M1
M2 M3
M4 M5
D
R+
R-
C
A
E0
E1
E2
E3 E4
t1
t2
t3
t4
t5
t6
t7
t8
t9
tr

Contenu connexe

Tendances

conception et création une base de donnée de réservation de vol
conception et création une base de donnée de réservation de vol conception et création une base de donnée de réservation de vol
conception et création une base de donnée de réservation de vol sara bada
 
Présentation projet de fin d'étude
Présentation projet de fin d'étudePrésentation projet de fin d'étude
Présentation projet de fin d'étudeDonia Hammami
 
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI Mansouri Khalifa
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correctionInes Ouaz
 
Cour simulation ns2
Cour simulation ns2Cour simulation ns2
Cour simulation ns2Gilles Samba
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Ilyas CHAOUA
 
Chapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiquesChapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiquesSana Aroussi
 
Analyse de l'existant // Etat de l'art // Positionnement
Analyse de l'existant // Etat de l'art // PositionnementAnalyse de l'existant // Etat de l'art // Positionnement
Analyse de l'existant // Etat de l'art // PositionnementVirginie Colombel
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMajid CHADAD
 
Le problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétiqueLe problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétiqueRima Lassoued
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfMbarkiIsraa
 
Conception robot mobile
Conception robot mobile Conception robot mobile
Conception robot mobile Mouna Souissi
 
Résumé javascript bac info
Résumé javascript bac infoRésumé javascript bac info
Résumé javascript bac infoborhen boukthir
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexitéSana Aroussi
 
Audition petit cnam_v1
Audition petit cnam_v1Audition petit cnam_v1
Audition petit cnam_v1Mathieu Petit
 
Chp6 - De UML vers C++
Chp6 - De UML vers C++Chp6 - De UML vers C++
Chp6 - De UML vers C++Lilia Sfaxi
 
Rapport pfe BABAOUI MOHAMED
Rapport pfe BABAOUI MOHAMEDRapport pfe BABAOUI MOHAMED
Rapport pfe BABAOUI MOHAMEDbabaoui mohamed
 

Tendances (20)

conception et création une base de donnée de réservation de vol
conception et création une base de donnée de réservation de vol conception et création une base de donnée de réservation de vol
conception et création une base de donnée de réservation de vol
 
Chapitre 1 rappel
Chapitre 1   rappelChapitre 1   rappel
Chapitre 1 rappel
 
Présentation projet de fin d'étude
Présentation projet de fin d'étudePrésentation projet de fin d'étude
Présentation projet de fin d'étude
 
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correction
 
Cour simulation ns2
Cour simulation ns2Cour simulation ns2
Cour simulation ns2
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...
 
Chapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiquesChapitre 4 heuristiques et méta heuristiques
Chapitre 4 heuristiques et méta heuristiques
 
Analyse de l'existant // Etat de l'art // Positionnement
Analyse de l'existant // Etat de l'art // PositionnementAnalyse de l'existant // Etat de l'art // Positionnement
Analyse de l'existant // Etat de l'art // Positionnement
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigés
 
Le problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétiqueLe problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétique
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdf
 
Conception robot mobile
Conception robot mobile Conception robot mobile
Conception robot mobile
 
Résumé javascript bac info
Résumé javascript bac infoRésumé javascript bac info
Résumé javascript bac info
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexité
 
Audition petit cnam_v1
Audition petit cnam_v1Audition petit cnam_v1
Audition petit cnam_v1
 
Chp6 - De UML vers C++
Chp6 - De UML vers C++Chp6 - De UML vers C++
Chp6 - De UML vers C++
 
Traitement du signal
Traitement du signalTraitement du signal
Traitement du signal
 
Rapport pfe BABAOUI MOHAMED
Rapport pfe BABAOUI MOHAMEDRapport pfe BABAOUI MOHAMED
Rapport pfe BABAOUI MOHAMED
 

Similaire à Ingénierie des protocoles

Similaire à Ingénierie des protocoles (14)

Cours3.pptx
Cours3.pptxCours3.pptx
Cours3.pptx
 
Réseaux partie 2.ppt
Réseaux partie 2.pptRéseaux partie 2.ppt
Réseaux partie 2.ppt
 
Inf_theory_lect4.pdf
Inf_theory_lect4.pdfInf_theory_lect4.pdf
Inf_theory_lect4.pdf
 
Video
VideoVideo
Video
 
6gei500_cours1.pdf
6gei500_cours1.pdf6gei500_cours1.pdf
6gei500_cours1.pdf
 
Localisation d’une source émettrice par un réseau d’antennes
Localisation d’une source émettrice par un réseau d’antennesLocalisation d’une source émettrice par un réseau d’antennes
Localisation d’une source émettrice par un réseau d’antennes
 
Cours_3_0910_2.pdf
Cours_3_0910_2.pdfCours_3_0910_2.pdf
Cours_3_0910_2.pdf
 
Cours_3_0910.pdf
Cours_3_0910.pdfCours_3_0910.pdf
Cours_3_0910.pdf
 
Chapitre3_Partie1.pdf
Chapitre3_Partie1.pdfChapitre3_Partie1.pdf
Chapitre3_Partie1.pdf
 
Exposé avril2012
Exposé avril2012Exposé avril2012
Exposé avril2012
 
Chap2 physique
Chap2 physiqueChap2 physique
Chap2 physique
 
Ch1 circuits logiques_p1_combinatoire-v3
Ch1 circuits logiques_p1_combinatoire-v3Ch1 circuits logiques_p1_combinatoire-v3
Ch1 circuits logiques_p1_combinatoire-v3
 
3-Codage_Canal.ppt
3-Codage_Canal.ppt3-Codage_Canal.ppt
3-Codage_Canal.ppt
 
Chaînes de Markov et files d'attente
Chaînes de Markov et files d'attenteChaînes de Markov et files d'attente
Chaînes de Markov et files d'attente
 

Plus de RichardTerrat1

Le planimetre d'Amsler
Le planimetre d'AmslerLe planimetre d'Amsler
Le planimetre d'AmslerRichardTerrat1
 
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...RichardTerrat1
 
Systèmes de Gestion des Fichiers
Systèmes de Gestion des FichiersSystèmes de Gestion des Fichiers
Systèmes de Gestion des FichiersRichardTerrat1
 
La contribution et le tribut des femmes dans le développement des mathématiqu...
La contribution et le tribut des femmes dans le développement des mathématiqu...La contribution et le tribut des femmes dans le développement des mathématiqu...
La contribution et le tribut des femmes dans le développement des mathématiqu...RichardTerrat1
 
L'informatique de Ramsès II au web 2
L'informatique de Ramsès II au web 2L'informatique de Ramsès II au web 2
L'informatique de Ramsès II au web 2RichardTerrat1
 
Épistemologie de l'informatique
Épistemologie de l'informatiqueÉpistemologie de l'informatique
Épistemologie de l'informatiqueRichardTerrat1
 
Mathématiques pour l'informatique
Mathématiques pour l'informatiqueMathématiques pour l'informatique
Mathématiques pour l'informatiqueRichardTerrat1
 
Histoire des ordinateurs et du calcul
Histoire des ordinateurs et du calculHistoire des ordinateurs et du calcul
Histoire des ordinateurs et du calculRichardTerrat1
 
Informatique des sons et de la musique
Informatique des sons et de la musiqueInformatique des sons et de la musique
Informatique des sons et de la musiqueRichardTerrat1
 
Théorie de l'information
Théorie de l'informationThéorie de l'information
Théorie de l'informationRichardTerrat1
 
Sécurité des réseaux informatiques
Sécurité des réseaux informatiquesSécurité des réseaux informatiques
Sécurité des réseaux informatiquesRichardTerrat1
 

Plus de RichardTerrat1 (18)

Le planimetre d'Amsler
Le planimetre d'AmslerLe planimetre d'Amsler
Le planimetre d'Amsler
 
Regle a-calcul
Regle a-calculRegle a-calcul
Regle a-calcul
 
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
Algorithmes récursifs : une introduction pragmatique pour un enseignement au ...
 
Processus
ProcessusProcessus
Processus
 
Systèmes de Gestion des Fichiers
Systèmes de Gestion des FichiersSystèmes de Gestion des Fichiers
Systèmes de Gestion des Fichiers
 
Systemes
SystemesSystemes
Systemes
 
Exclusion mutuelle
Exclusion mutuelleExclusion mutuelle
Exclusion mutuelle
 
Publications
PublicationsPublications
Publications
 
Le pendule
Le penduleLe pendule
Le pendule
 
La contribution et le tribut des femmes dans le développement des mathématiqu...
La contribution et le tribut des femmes dans le développement des mathématiqu...La contribution et le tribut des femmes dans le développement des mathématiqu...
La contribution et le tribut des femmes dans le développement des mathématiqu...
 
Steganographie
SteganographieSteganographie
Steganographie
 
L'informatique de Ramsès II au web 2
L'informatique de Ramsès II au web 2L'informatique de Ramsès II au web 2
L'informatique de Ramsès II au web 2
 
Épistemologie de l'informatique
Épistemologie de l'informatiqueÉpistemologie de l'informatique
Épistemologie de l'informatique
 
Mathématiques pour l'informatique
Mathématiques pour l'informatiqueMathématiques pour l'informatique
Mathématiques pour l'informatique
 
Histoire des ordinateurs et du calcul
Histoire des ordinateurs et du calculHistoire des ordinateurs et du calcul
Histoire des ordinateurs et du calcul
 
Informatique des sons et de la musique
Informatique des sons et de la musiqueInformatique des sons et de la musique
Informatique des sons et de la musique
 
Théorie de l'information
Théorie de l'informationThéorie de l'information
Théorie de l'information
 
Sécurité des réseaux informatiques
Sécurité des réseaux informatiquesSécurité des réseaux informatiques
Sécurité des réseaux informatiques
 

Ingénierie des protocoles

  • 1. Ingénierie des protocoles Université Montpellier II Faculté des Sciences Département Informatique Master Richard G. TERRAT
  • 2.
  • 3. Objectif Présentation de méthodes et d’outils de spécification, description et validation formelle de protocoles dans les réseaux, principalement par les Réseaux de Petri Sommaire I. Modèles d’ingénierie p. 3 II. Réseaux de Petri p. 14
  • 4. Bibliographie • Les réseaux de PETRI - Annie Choquet-Geniet - Dunod - 2006 • Les réseaux de PETRI - Michel Diaz - Hermès - 2001 • A Primer in Petri Net Design - W. Reisig - Springer Verlag - 1992 • Réseaux de Petri et systèmes parallèles - Guy Vidal- Naquet, Annie Choquet-Geniet - Armand Colin - 1992 • The Logic of Time - Johan van Benthem - Kluwer Academic Publishers - 1991 • Petri Net Theory and the Modelling of Systems - James L. Peterson - Prentice Hall Inc. - 1981
  • 5. I Modèles d’ingénierie Sommaire 1. Protocoles : définition, spécification, validation 2. Les modèles
  • 6. Entité A Entité B Canal Règles de dialogue entre entités pour réaliser une tâche donnée 1 Protocoles • Définition • Spécifier – la (ou les) tâches à réaliser – le comportement du canal de communication – les règles de • Fonctionnement • Dialogue – Actions spécifiques (ex : erreurs de protocole) • Implémenter – code des entités – dialogue
  • 7. • Valider – conformité spécification vs implémentation – conformité comportement vs tâche(s) à réaliser – comportement d’une entité valide face à une entité non valide • Tester – cas de comportement CanalEntité Entité Canal Niveau i Niveau i-1 réalisé par • Modèle en couches
  • 8. • Protocoles et Programmes – Entité • ne s’arrête pas – sauf cas particuliers (ex: panne) • n’entre pas de données • ne fournit pas de résultat – Protocole • entités parallèles asynchrones • non déterminisme 2 Les Modèles 2.1 Un exemple 2.2 Automates d’états finis 2.3 Langages de spécification 2.4 Logiques temporelles 2.5 Réseaux de PETRI
  • 9. 2.1 Un exemple • Un site émetteur E • Un site récepteur R • Un canal de communication C • Le protocole de communication : – E envoie un message M à R – Si R reçoit M sans erreur il envoie ACK à E – Si R reçoit M avec erreur il envoie NAK à E 2.2 Automates d’états finis Envoi de M Réception de ACK Réception de NAK Réception de M Envoi de NAKEnvoi de ACK ? ? ?
  • 10. 2.3 Un langage de spécification C.S.P. Cooperating Sequential Processes C.A.R. HOARE –  ne pas confondre avec la programmation par contraintes ! • Instructions de base simplifiées – Entrée de valeur dans x ? x – Sortie de la valeur x ! x • Commande gardée A → B – A est une expression booléenne ou une entrée – B est une commande – Sémantique : quand A faire B • Équivalent à : tant que ¬A faire ; B • On « attend » que A soit vrai pour faire B – Si A est une entrée on attend sa valeur
  • 11. • Commande alternative [ C1 | C2 | … Cn ] – Ci sont des commandes gardées : Ai → Bi – Sémantique • Les Ai sont évaluées • Si toutes les Ai sont fausses⇒ ABORT ! – Les Ai d’entrée sont toujours vraies • Sinon on exécute au hasard une Bi dont l’Ai est vraie – Si l’Ai choisie est une entrée on attend la donnée –  CSP est un langage non déterministe • Commande répétitive * [ C1 | C2 | … Cn ] – Ci sont des commandes gardées : Ai → Bi – Sémantique • Les Ai sont évaluées • Si toutes les Ai sont fausses⇒ EXIT de l’itération – Les Ai d’entrée sont toujours vraies • Sinon on exécute au hasard une Bi dont l’Ai est vraie – Si l’Ai choisie est une entrée on attend la donnée Et on réitère ….
  • 12. • Un exemple Processus Emetteur * [ → !M ; → ?x ; [x = ACK → ok | x = NAK → erreur ] ] Processus Récepteur * [ ? x → [ x sans erreur → ! ACK | x avec erreur → ! NAK ] ]  proche de l’implémentation mais  propriétés difficiles à établir  nécessité d’une sémantique formelle 2.4 Logiques temporelles • Ce sont des logiques modales • Logique L0 minimale – Logique propositionnelle + – Fonctions et Prédicats + – Deux opérateurs d’arité 1 P dorénavant P henceforth P P ultérieurement P eventually P  P est un prédicat
  • 13. • Sémantique simplifiée P signifie que dans tous les instants du futur P sera toujours vrai analogie avec ∀ P signifie que dans au moins un des instants du futur P sera vrai analogie avec ∃ • Plusieurs logiques possibles selon la modélisation du temps • Principalement – LTL Logique en temps linéaire • Un seul futur (non déterministe) possible – BTL Logique en temps arborescent • Plusieurs futurs (déterministes) possibles •  LTL et BTL ne sont pas comparables aucune n’est incluse dans l’autre !
  • 14. 2.5 Réseaux de Petri • Origine : Carl Adam Petri « Kommunikation mit Automaten »1962 • Idée Carl Adam Petri (1926) !M ?M M A1 A2 • Les s’appellent des places • Les s’appellent des transitions Les places préfigurent des états Les transitions préfigurent des actions L’état d’une place est repérée par un marquage représenté par des jetons   place vide place marquée (2 jetons) place marquée (1 jeton)
  • 15.   M ACK NAK • Un exemple
  • 16. II Réseaux de Petri Sommaire 1. Définitions et Propriétés p. 15 2. Marquages accessibles p. 28 3. Algèbre linéaire p. 43 4. Langages engendrés p. 55 5. Problèmes et extensions p. 66 6. Calcul des semi-flots p. 78
  • 17. II.1 Définitions et Fonctionnement RdP R = < P, T ; Pre, Post > • P Ensemble fini de Places • T Ensemble fini de Transitions • Pre : P x T → N incidence avant • Post : P x T → N incidence arrière RdP marqué R(M) = < P, T ; Pre, Post, M > • M : P → N marquage Définition algébrique
  • 18. Pre Post   Jeton (token)  par convention, un arc non valué possède implicitement la valeur 1 (cas fréquent en pratique) Graphe associé • Graphe biparti Places – Nœuds Transitions – Arcs valués – Marquage Jamais … ceci ni cela
  • 19. Franchissabilité • Une transition t ∈ T est franchissable pour un marquage M ssi ∀p∈P M(p) ≥ Pre (p,t)  chaque place p entrée de t doit être marquée d’une valeur supérieure à la valeur de l’arc p → t la relation est trivialement vraie pour toute place p non entrée de t (Pre (p,t) = 0) • Notation M(t> Franchissement • Une transition t ∈ T est franchie pour un marquage M, donnant un marquage M’ ssi M(t> t est franchissable pour M ∀ p∈P M’(p) = M(p) - Pre (p,t) + Post (p,t) le franchissement de t – retire de chaque place p entrée de t un nombre de jetons égal à la valeur de l’arc p → t – ajoute à chaque place p sortie de t un nombre de jetons égal à la valeur de l’arc t → p • Notation M(t>M’
  • 20. Etats observables • L’état d’un réseau de Petri marqué est défini par son marquage M • Cet état est algébriquement observable • En général il n’est pas physiquement observable – Les places peuvent être situées sur des sites différents – Il n’existe pas de site observateur Chronologie • Un marquage définit un état et un instant • Le franchissement d’une transition définit un changement d’état et aboutit à un nouvel instant • Les changements d’état définissent la chronologie du fonctionnement • Le temps est défini comme une succession d’instants
  • 21. Simultanéité • Dans un état donné, plusieurs transitions peuvent être franchissables • Cependant, plusieurs transitions ne peuvent pas être simultanément franchies  c’est une sorte d’axiome de la notion de simultanéité qui est n’est pas observable  similitude avec la simultanéité physique non observable en général (théorie de la relativité restreinte - Albert Einstein -) Albert Einstein (1879-1955) Atomicité & Granularité • Le franchissement d’une transition est – unique (non simultanéité) – atomique (ou indivisible) – non observable (entre 2 instants observables) – instantané • La transition définit la granularité du modèle – Seuls les instants sont observables – Les propriétés observables dépendent de la granularité choisie
  • 22. Non déterminisme • Lorsque plusieurs transitions sont franchissables, une seule peut être franchie à un instant donné • Le non déterminisme vient du choix de la transition qui sera franchie • Le non déterminisme peut avoir 2 origines : – Le parallélisme – Le conflit effectif Parallélisme • Deux transitions t1 et t2 sont parallèles pour un marquage M ssi ∀p∈P M(p) ≥ Pre(p,t1) + Pre(p,t2) ce qui implique M(t1> et M(t2> et – ou bien ∀ p∈P Pre(p,t1) x Pre(p,t2) = 0 aucune place n’est entrée de t1 et t2 – ou bien ∃ p∈P Pre(p,t1) x Pre(p,t2) ≠ 0 les places entrées de t1 et t2 ont suffisamment de jetons pour permettre le franchissement de t1 et t2
  • 23. Conflit structurel • Deux transitions t1, t2 sont en conflit structurel ssi ∃ p ∈ P Pre (p,t1) x Pre (p,t2) > 0  la place p est entrée commune de t1 et t2  le conflit structurel est indépendant du marquage ; il indique un conflit potentiel Conflit effectif • Deux transitions t1, t2 sont en conflit effectif pour un marquage M ssi – t1 et t2 sont en conflit structurel – M(t1> et M(t2> – M(p) < Pre(p,t1) + Pre(p,t2)  p n’a pas assez de jetons pour que t1 et t2 puissent être franchies
  • 24. Non déterminisme • Issu du parallélisme – Il est dû à l’impossibilité d’observation de la simultanéité : à un instant deux (ou plus) transitions peuvent être franchies ; on choisit d’en franchir une seule à cet instant • Issu du conflit effectif – Il est dû à l’impossibilité de franchir à un instant deux (ou plus) transitions franchissables à cet instant Exemple 1 : Communication     CR M E0 E1 E2 R0 R1 R2 a0 a1 a2 b0 b1 b2
  • 25. Exemple 1 : Communication    CR M E0 E1 E2 R0 R1 R2 a0 a1 a2 b0 b1 b2 Exemple 1 : Communication     CR M E0 E1 E2 R0 R1 R2 a0 a1 a2 b0 b1 b2
  • 26. Exemple 1 : Communication    CR M E0 E1 E2 R0 R1 R2 a0 a1 a2 b0 b1 b2  et cætera …. transitions parallèles Exemple 2 : Partage conflictuel   ex mutE0 E1 E2 R0 R1 R2 a0 a1 a2 b0 b1 b2  conflit effectif
  • 27. Exemple 2 : Partage conflictuel  ex mutE0 E1 E2 R0 R1 R2 a0 a1 a2 b0 b1 b2  Exemple 2 : Partage conflictuel  ex mutE0 E1 E2 R0 R1 R2 a0 a1 a2 b0 b1 b2   parallélisme conflit structurel pas de conflit effectil pas de parallélisme
  • 28. Exemple 2 : Partage conflictuel  ex mutE0 E1 E2 R0 R1 R2 a0 a1 a2 b0 b1 b2   Exemple 3 : Partage sans conflit  PE0 E1 E2 R0 R1 R2 a0 a1 a2 b0 b1 b2   conflit structurel parallélisme pas de conflit effectif
  • 29. Exemple 3 : Partage sans conflit  PE0 E1 E2 R0 R1 R2 a0 a1 a2 b0 b1 b2   Exemple 3 : Partage sans conflit  PE0 E1 E2 R0 R1 R2 a0 a1 a2 b0 b1 b2  et cætera ….
  • 30. II.2 Marquages accessibles Un protocole de connexion- déconnexion Phase de connexion – A l’état initial les 2 sites sont au repos – Le site A est l’appelant, le site B l’appelé – Le site A envoie un message de demande de connexion DC au site B puis attend sa réponse – Le site B, sur réception du message DC envoie un message de confirmation de connexion CC puis passe directement dans l’état connecté – Le site A, sur réception du message CC passe dans l’état connecté
  • 31. Un protocole de connexion- déconnexion Phase de déconnexion – La déconnexion peut être initiée aussi bien par le site A que par le site B – Le site initiateur connecté envoie à l’autre site un message de demande de déconnexion DD puis attend sa réponse – Lorsqu’un site connecté reçoit un message DD, il répond par un message de confirmation de déconnexion CD puis retourne à l’état de repos – Lorsqu’un site en attente de déconnexion reçoit un message CD il retourne à l’état de repos Un protocole de connexion- déconnexion   DC CC A1 A2 A3 A4 B1 B2 B3 DDA DDB CDA CDB
  • 32. Un protocole de connexion- déconnexion    DC CC A1 A2 A3 A4 B1 B2 B3 DDA DDB CDA CDB Un protocole de connexion- déconnexion    DC CC A1 A2 A3 A4 B1 B2 B3 DDA DDB CDA CDB
  • 33. Un protocole de connexion- déconnexion   DC CC A1 A2 A3 A4 B1 B2 B3 DDA DDB CDA CDB Un protocole de connexion- déconnexion    DC CC A1 A2 A3 A4 B1 B2 B3 DDA DDB CDA CDB
  • 34. Un protocole de connexion- déconnexion     DC CC A1 A2 A3 A4 B1 B2 B3 DDA DDB CDA CDB INTERBLOCAGE ! Un protocole de connexion- déconnexion     DC CC A1 A2 A3 A4 B1 B2 B3 DDA DDB CDA CDB SOLUTION a b
  • 35. Un protocole de connexion- déconnexion Modification du protocole – Lorsqu’un site en attente de déconnexion reçoit un message DD il retourne à l’état de repos  ceci permet de résoudre le conflit de déconnexion qui conduisait à un interblocage (deadlock) Ensemble des marquages accessibles • Soit < P, T ; Pre, Post, M0 > un réseau de Petri marqué • M0 est considéré comme le marquage initial origine des instants • L’ensemble des marquages accessibles à partir de M0, noté [M0] est le plus petit ensemble contenant M0 et fermé pour la relation de franchissement M0∈ [M 0] M ∈ [M 0] et M(t>M’ ⇒ M’∈ [M 0]
  • 36. Ensemble des marquages accessibles • Un marquage M : P → N est noté entre < et > par les noms des places pi µ de marquage M(pi) = µ > 0 • Exemple < p2 , p5 2, p6 > représente le marquage – M(p2) = M(p6) = 1 M(p5) = 2 et – M( pj ) = 0 pour j ≠ 2, 5, 6 Graphe des marquages accessibles • G = < [M0] ; R> – [M0] Ensemble des marquages accessibles – R Ensemble des relations de franchissement défini par ∀ M, M’ ∈ [M0] ∃ t M(t>M’ ⇒ M(t>M’ ∈ R G est connexe Les éléments de R sont en général étiquetés par les transitions t de la relation • Ge = < [M0] ; R ; E > graphe étiqueté – E : R  T Etiquetage de R par T
  • 37. Graphe des marquages accessibles étiqueté • Construction G = < [M0] ; R ; E > EMA = Ø ; EMT = {M0} ; tant que EMT ≠ Ø faire { EMA = EMA ∪ EMT ; ENM = Ø ; pour tout M ∈ EMT faire { pour tout t, M’ tels que M(t>M’ faire { si ∃ M’’ ∈ EMA tel que M’ > M’’ alors ALERTE ; si M’ ∉EMA alors ENM = ENM ∪ {M’} ; R = R ∪ (M, M’) ; E (M, M’) = t } } EMT = ENM } Graphe des marquages accessibles <A1,B1> <A2,DC,B1> <A2,CC,B2> <A3,B2> <A2,CC,DDB,B3> <A4,DDA,B2> <A3,DDB,B3> <A4,CDA,B1> <A1,CDB,B3> <A4,DDA,DDB,B3> <A1,DDA,B3> <A4,DDB,B1> <A2,DC,DDA,B3>
  • 38. Graphe des marquages accessibles • Propriétés – Il permet de voir toute la chronologie du fonctionnement du réseau de Petri  les interblocages (deadlocks)  tous les états accessibles  toutes les transitions franchissables  tous les chemins partant de l’état initial et cætera …  oui … mais … Graphe des marquages accessibles • Il peut être infini – Exemple  P Q R t < P > u
  • 39. Graphe des marquages accessibles • Il peut être infini – Exemple   P R t < P > < Q, R > u t Q Graphe des marquages accessibles • Il peut être infini – Exemple   P R t < P > < Q, R > u < P, R > t u Q
  • 40. Graphe des marquages accessibles • Il peut être infini – Exemple   P R t < P > < Q, R > u < P, R > < Q, R2 >t u t Q Graphe des marquages accessibles • Il peut être infini – Exemple   P R t < P > < Q, R > u < P, R > < Q, R2 >t u t Q <P,R2> u <Q,Rn> <P,Rn>
  • 41. Graphe des marquages accessibles • Complexité – Quand ce graphe est fini, la complexité de sa construction est non primitive récursive Un problème est primitif récursif s’il peut être résolu par un algorithme ne comportant que des itérations bornées (boucles for ) Un problème non primitif récursif est de complexité inconnue, non bornée ! Graphe des marquages accessibles • Scénario de la preuve – On définit une fonction f par f0 (x) = 2 . x fi+1 (x) = fi x (x) composition x fois de fi f : x → fx (x) – On montre que f est non primitive récursive – On construit une suite de réseaux de Petri Ri dont un marquage peut prendre la valeur fi (i)  Il est déraisonnable de vouloir construire systématiquement le graphe des marquages accessibles
  • 42. Analyse du fonctionnement des réseaux de Petri • Diagnostic – Le graphe des marquages accessibles donne toutes les propriétés du fonctionnement d’un réseau de Petri – Le graphe des marquages accessibles est en général trop complexe pour pouvoir être construit • Pronostic – Développement d’outils d’analyse évitant d’avoir à construire le graphe des marquages accessibles Réseaux bornés • Une place p ∈ P est bornée ssi ∃ b ∈ N M(p) ≤ b • Un réseau de Petri est borné ssi ∀ p ∈ P p est bornée  pour b = 1 le réseau est dit sain • Théorème : un réseau de Petri est borné ssi son graphe de marquages accessibles est fini
  • 43. Réseaux vivants • Quasi-vivacité – Une transition t d’un réseau de Petri marqué R(M0) est quasi vivante ssi ∃ M ∈ [M0] M(t> on peut trouver un marquage accessible à partir duquel t est franchissable – Un réseau de Petri R(M0) est quasi vivant ssi ∀ t ∈ T t est quasi vivante Réseaux vivants • Pseudo vivacité – Un marquage M est pseudo vivant ssi ∃ t ∈ T M(t>  On peut trouver une transition franchissable à partir de ce marquage – Un réseau de Petri R(M0) est pseudo vivant ssi ∀ M ∈ [M0] M est pseudo vivant
  • 44. Réseaux vivants • Vivacité – Une transition t est vivante pour un marquage M ssi ∀ M’ ∈ [M] ∃ M’’ ∈ [M’] M’’(t>  Pour tout marquage accessible à partir de M t est quasi vivante – Un réseau de Petri R(M0) est vivant ssi ∀ t ∈ T t est vivante pour M0  Un réseau de Petri R(M0) est vivant ssi ∀ M ∈ [M0] R(M) est quasi vivant Etat d’accueil & réinitialisabilité • M est un état d’accueil pour M0 ssi ∀ M’ ∈ [M0] M ∈ [M’]  il est toujours possible d’atteindre l’état d’accueil de tout état accessible à partir de l’état initial • Un réseau de Petri est ré-initialisable ssi M0 est un état d’accueil
  • 45. II.3 Algèbre linéaire Séquence de franchissements • s = ti1, ti2,…tiq ∈ T* est une séquence de franchissements pour un marquage M0 donnant Mq noté M0 (s> Mq ssi Définition récursive • s = λ (mot vide) et Mq = M0 • s = s’t s’ ∈ T* t ∈ T M0 (s’> Mq-1 et Mq-1 (t> Mq Définition itérative • M0 (ti1> M1 (ti2> M2 … Mq-1 (tiq> Mq
  • 46. Séquence de franchissements • Relations entre marquages s = ti1, ti2,…tiq franchissable pour M0 ⇒ ∀p ∈ P M1(p) = M0(p) - Pre(p,ti1) + Post(p,ti1) M2(p) = M1(p) - Pre(p,ti2) + Post(p,ti2) …… Mq(p) = Mq-1(p) - Pre(p,tiq) + Post(p,tiq) en appelant σi le nombre d’occurrences de ti dans s Mq (p) = M0(p) + !i (Post(p,ti ) " Pre(p,ti)) i=1 m # Séquence de franchissements • ATTENTION !  L’équation précédente, qui a l’avantage important d’exprimer le marquage final d’une séquence de franchissements s en fonction de son marquage initial n’a de sens que si s est franchissable  Il faut donc que ∀ k = 0, 2, …q-1 toutes les relations Mk (ti(k+1)> soient vraies
  • 47. Représentation matricielle • < P, T ; Pre, Post, M > |P| = n |T| = m Pre : P x T → N Post : P x T → N M : P → N peuvent être représentées par des matrices peut être représenté par un vecteur Représentation matricielle     CR M E0 E1 E2 R0 R1 R2 a0 a1 a2 b0 b1 b2 Pre a0 a1 a2 b2 b1 b0 E0 E1 E2 CR M R2 R1 R0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 ! " # # # # # # # # # # $ % & & & & & & & & & &
  • 48. Représentation matricielle     CR M E0 E1 E2 R0 R1 R2 a0 a1 a2 b0 b1 b2 Post a0 a1 a2 b2 b1 b0 E0 E1 E2 CR M R2 R1 R0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 ! " # # # # # # # # # # $ % & & & & & & & & & & Représentation matricielle     CR M E0 E1 E2 R0 R1 R2 a0 a1 a2 b0 b1 b2 M0 E0 E1 E2 CR M R2 R1 R0 1 0 0 2 0 0 0 1 ! " # # # # # # # # # # $ % & & & & & & & & & &
  • 49. Représentation matricielle • Réseau pur ∀p ∈ P ∀ t ∈ T Pre (p,t) x Post (p,t) = 0  aucune place ne peut être entrée et sortie d’une transition  indépendance de l’ajout et du retrait de jetons lors des franchissements Représentation matricielle • Matrice d’incidence ou de connexion C (p,t) = Post (p,t) - Pre (p,t)  pour un réseau pur, la matrice C permet de construire de façon unique les matrices Post et Pre Pre (p,t) = max (0, - C(p,t) ) Post (p,t) = max (0, C(p,t) ) un réseau de Petri pur est totalement défini par C
  • 50. Représentation matricielle     CR M E0 E1 E2 R0 R1 R2 a0 a1 a2 b0 b1 b2 C a0 a1 a2 b2 b1 b0 E0 E1 E2 CR M R2 R1 R0 !1 0 1 0 0 0 1 !1 0 0 0 0 0 1 !1 0 0 0 !1 0 0 0 1 0 0 1 0 0 0 !1 0 0 0 !1 1 0 0 0 0 0 !1 1 0 0 0 1 0 !1 " # $ $ $ $ $ $ $ $ $ $ % & ' ' ' ' ' ' ' ' ' ' Equation fondamentale ∀ M ∈ [M0] ∀ s ∈ T * telle que M0 (s> M M(p) = M0(p) + C (p,ti) • !i i=1 m " σ= (σ1, σ2,… σm) peut être représenté par un vecteur appelé vecteur caractéristique de s M = M0 + C • ! est appelée équation fondamentale σi = nombre d’occurrences de ti dans s ⇒ ∀p ∈ P
  • 51. Semi flots de transitions • Séquence répétitive s répétitive pour M ssi M (s> M  les marquages initial et final de s sont identiques σ vecteur caractéristique de s M = M + C σ ⇒ C σ = 0 Toute séquence répétitive s a son vecteur caractéristique σ solution de C σ = 0 Semi flots de transitions • La réciproque est fausse : toute solution de C σ = 0 n’est pas le vecteur caractéristique d’une séquence répétitive  il faut que ∀i σi ∈ N  il faut que s soit franchissable pour M • Les solutions de C σ = 0 pour σi ∈ N sont appelées des semi flots de transitions  les flots (plus difficiles à interpréter) sont les solutions de C σ = 0 pour σi ∈ Z
  • 52. Semi flots de transitions • L’équation C σ = 0 pour σi ∈ N est une équation linéaire homogène en nombres entiers – hormis la solution triviale sans intérêt σ = 0 toute combinaison linéaire de solutions est aussi une solution – une famille génératrice {σ, σ’, σ’’, …}est un ensemble de solutions tel que toute solution peut s’exprimer comme une combinaison linéaire de cette famille – une plus petite famille génératrice ppfg est une famille de cardinal minimal – il est donc nécessaire et suffisant de trouver une ppfg  Analogie avec une base en algèbre linéaire Semi flots de transitions • Utilisation des semi flots de transitions : – on calcule une ppfg de solutions de C σ = 0 pour σi ∈ N  les méthodes de résolution sont inspirées de l’algèbre linéaire, de la programmation en nombres entiers et des méthodes d’élimination de Gauss et Farkas – on recherche dans ces solutions les séquences répétitives s pour un marquage M (en général M0), dont les vecteurs caractéristiques sont les solutions trouvées Gyula Farkas (1847-1930) Carl Friedrich Gauss (1777-1855)
  • 53. Semi flots de places   E1 a0 a1 partie du réseau de Petri issu de l’exemple la transition a0 absorbe 2 jetons et n’en restitue qu’un seul dans la place E1 Semi flots de places  E1 a0 a1 la transition a1 absorbe 1 jeton de la place E1 et restitue 2 jetons
  • 54. Semi flots de places   E1 a0 a1 pour que les jetons se « conservent » tout se passe comme si le jeton de la place E1 « pesait » 2 fois plus « lourd » que les autres Semi flots de places • On définit une application ϕ : P → N exprimant l’idée de « poids » d’un jeton dans une place • On peut exprimer l’idée de « conservation » de jetons ainsi pondérés, par l’invariance du produit scalaire ϕ . M = ϕ . M0 ∀ M ∈ [M0] • Dans l’exemple précédent, pour ϕ (E1) = 2 et ϕ (p) = 1 pour p ≠ E1, le franchissement de la transition a0 ou a1 conserve la quantité ϕ . M = 2
  • 55. Semi flots de places • Calcul des valeurs de ϕ : ∀ M ∈ [M0] ∀ s ∈ T* M0 (s> M σ vecteur caractéristique de s M = M0 + C • ! ϕ . M = ϕ . M0 ⇔ ϕ . C = 0  pour qu’une pondération ϕ permette une conservation pondérée de tout marquage accessible M il faut et il suffit que ϕ soit solution dans N de ϕ . C = 0 Semi flots de places • Les solutions de ϕ C = 0 pour ϕi ∈ N sont appelées des semi flots de places  les flots (plus difficiles à interpréter) sont les solutions de ϕ C = 0 pour ϕi ∈ Z • Comme pour les semi flots de transitions, l’équation ϕ C = 0 pour ϕi ∈ N est une équation linéaire homogène en nombres entiers  Il est donc nécessaire et suffisant de trouver une plus ppfm de solutions
  • 56. Semi flots de places • Invariants – les quantités ϕ M = ϕ M0 pour ϕi ∈ N sont appelés des invariants • Supports – un support de ϕ, noté ||ϕ|| = { p∈ P | ϕ (p) > 0 } • Couvertures – les solutions strictement positives ϕ telles que ∀ p ∈ P ϕ(p) > 0 sont appelées des couvertures Semi flots de places • Théorème – Un réseau de Petri admettant une couverture ϕ est structurellement borné • Preuve ϕ Couverture ⇒ ∀ M ∈ [M0] ϕ.M = ϕ.M0 et ∀ p ∈ P ϕ(p) > 0 ⇒ ∀ p ∈ P ϕ(p).M(p) ≤ ϕ.M0 ⇒ ∀ p ∈ P M(p) ≤ (ϕ.M0) / ϕ(p)
  • 57. II.4 Langages engendrés Normes de Keller • ν : M → N • Propriétés ∃ Ma ∈ [M0] ν (M) = 0 ⇔ M = Ma ∀ M ∈ [M0] M ≠ Ma ∃ M’ ∈ [M0] s ∈ T* M (s> M’ ν (M’) < ν (M) • Théorème de Keller s’il existe une norme de Keller, Ma est un état d’accueil Robert M. Keller
  • 58. Normes de Keller • Preuve – Lemme de Fermat • Toute suite décroissante d’entiers est finie ∀ M ∈ [M0] ∃ M1, M2, … ∈ [M0] ∃ s1, s2, … ∈ T* M (s1> M1(s2> M2 … ν (M) > ν (M1) > ν (M2) … cette suite est finie ⇒ son dernier terme est tel que ν (Mf) = 0 ⇒ Mf = Ma ⇒ Ma est un état d’accueil Pierre Simon de Fermat (1601 - 1665) Normes de Keller • Théorème Si le marquage initial est un marquage d’accueil et si le réseau est quasi-vivant alors le réseau est vivant – Preuve ∀ M ∈[M0] M0 ∈[M] et ∀ t ∈ T M0(t> donc ∀ t ∈ T ∀ M ∈[M0] M0(t>
  • 59. Langage de places • Vocabulaire P • Verbalisation µ : M → P* µ (M) = p1 M(p1) p2 M(p2) …pn M(pn) Exemple M = < u , v2, w > µ (M) = u v2 w • Grammaire < P ; Q > Q : ensemble de m règles de réécriture ti : µ (Pre (.,ti) → µ (Post (.,ti)) réécriture du sous mot µ (Pre (.,ti) par µ (Post (.,ti)) • Axiome µ(M0) Langage de places • Exemple      x y a b c  2 5 2 5 3 3 1 5 P = { x, y } a : x5 → x2 y3 Q b : x2y → y3 c : y5 → x5 A x5 y
  • 60. Langage de places • Exemple   x y a b c     2 5 2 5 3 3 1 5 P = { x, y } a : x5 → x2 y3 Q b : x2y → y3 c : y5 → x5 A x5 y x2y4 L x5y a Langage de places • Exemple x y a b c       2 5 2 5 3 3 1 5 P = { x, y } a : x5 → x2 y3 Q b : x2y → y3 c : y5 → x5 A x5 y x2y4 y6 L x5y a b
  • 61. Langage de places • Exemple      x y a b c  2 5 2 5 3 3 1 5 P = { x, y } a : x5 → x2 y3 Q b : x2y → y3 c : y5 → x5 A x5 y x2y4 y6 L x5y a b a c Langage de places • Exemple    x y a b c    2 5 2 5 3 3 1 5 P = { x, y } a : x5 → x2 y3 Q b : x2y → y3 c : y5 → x5 A x5 y x2y4 y6 L x5y x3y3 a b b a c
  • 62. Langage de places • Exemple  x y a b c      2 5 2 5 3 3 1 5 P = { x, y } a : x5 → x2 y3 Q b : x2y → y3 c : y5 → x5 A x5 y x2y4 y6 L x5y x3y3 xy5 a b b b a c Langage de places • Exemple       x y a b c 2 5 2 5 3 3 1 5 P = { x, y } a : x5 → x2 y3 Q b : x2y → y3 c : y5 → x5 A x5 y x2y4 y6 L x5y x3y3 xy5 x6 a b c b b c
  • 63. Langage de places • Exemple    x y a b c    5 2 2 5 3 3 1 5 P = { x, y } a : x5 → x2 y3 Q b : x2y → y3 c : y5 → x5 A x5 y x2y4 y6 L x5y x3y3 xy5 x6 a b b b c a c Langage de places • Propriété – Le langage de places d’un réseau de Petri est isomorphe à l’ensemble des marquages accessibles
  • 64. Langages de transitions • Vocabulaire T • Langages possibles L (M0, M) = { s ∈ T* | M0 (s> M }  ensemble de toutes les séquences franchissables de M0 à M L (M0, Mf) = { s ∈ T* ∀ M ∈ Mf | M0 (s> M }  ensemble de toutes les séquences franchissables de M0 à tout marquage de l’ensemble terminal Mf Langages de transitions étiquetées • Vocabulaire V • Etiquetage e : T → V* extension « naturelle » e : T* → V* s ∈ T* si s = λ ⇒ e(s) = λ t ∈ T sinon s = s’t ⇒ e(s) = e(s’) e(t) • Langage de transitions étiquetées L (M0, M, e) = e ( L (M0, M) )
  • 65. Langages de transitions      x y a b c  2 5 2 5 3 3 1 5 Exemples L (M0, M0) = (a b c)* L (M0, [M0]) = λ + a + a b + (a b c)* + b (b + b c + (b c a)*) Ces langages caractérisent toutes les suites d’actions possibles (transitions) du système que le réseau de Petri modélise Langages de transitions • Propriétés [M0] est fini ⇒ ∀ M ∈ [M0] ou ∀ M ⊆ [M0] L(M0, M) sont des langages réguliers Preuve G = < [M0] , R> le graphe des marquages accessibles peut être considéré comme un automate d’états finis Le langage L(M0, M0) d’un réseau de Petri est constitué de toutes les séquences répétitives s telles que M0 (s> M0
  • 66. Puissance des langages de transitions étiquetées a a b b P Q Le (<P>,<Q>) = { anbn | n>0 } Le est un langage algébrique ce n’est pas un langage régulier a a b b P R c c Le’ (<P>,<R>) = { anbncn | n>0 } Le’ est un langage contextuel ce n’est pas un langage algébrique Puissance des langages de transitions étiquetées • Limite w wR (palindrome) n’est pas un langage de transition étiquetée • Preuve principe w ∈ V* r = |w| ⇒ kr marquages accessibles distincts on montre qu’il est impossible de générer kr marquages distincts pour une séquence de franchissements de longueur r  on montre aussi que tout langage de transitions étiquetées est contextuel
  • 67. Puissance des langages de transitions étiquetées Hierarchie de Chomsky réguliers récursifs contextuels algébriques transitions étiquetées Langages de Réseaux de Petri wwR anbn anbncn Noam Chomsky (1926)
  • 68. II.5 Problèmes et extensions Problèmes indécidables • Egalité ou inclusion d’ensembles des marquages accessibles R1 = < P, T1 ; Pre1, Post1 ; M01 > R2 = < P, T2 ; Pre2, Post2 ; M02 > [M02] = [M01] et [M02] ⊆ [M01] – Preuve • Le 10ième problème de Hilbert (solution des équations diophantiennes) est réductible à chacun de ces problèmes. • Il a été montré indécidable par Матиясевич en 1970 David Hilbert (1862 - 1943) Матиясевич Юрий Владимирович (1947)
  • 69. Problèmes indécidables • Retrait d’une transition R = < P, T ; Pre, Post ; M0 > t ∈ T R’ = < P, T{t} ; Pre’, Post’ ; M0 >  R’ est construit à partir de R en retirant une transition t et les arcs Pre et Post de t [M0] de R’≠ [M0] de R  aucun algorithme ne peut tester si une modification des transitions modifie l’ensemble des marquages accessibles Problèmes indécidables • Sous ensemble de transitions non franchissables R = < P, T ; Pre, Post ; M0 > T’ ⊆ T M0 (u> ∀ v ⊆ u M0(v> M ⇒ ∀ t ∈ T’ ¬ M(t> – Preuve • L’arrêt de la machine de Minsky est réductible au problème précédent • Minsky a démontré que l’arrêt de sa machine est indécidable Marvin Minsky (1927)
  • 70. Problèmes décidables • Accessibilité de M à M’ ∃ s ∈ T* M (s> M’ • Bornage < P, T ; Pre, Post ; M0 > borné • Vivacité < P, T ; Pre, Post ; M0 > vivant • Etat d’accueil Ma état d’accueil pour < P, T ; Pre, Post ; M0 > Complexité • Les problèmes décidables précédents sont de grande complexité * • Il est donc nécessaire de développer des heuristiques • Les méthodes usuelles utilisent des conditions suffisantes (mais en général non nécessaires) pour établir certaines propriétés • La recherche d’invariants permet de restreindre l’ensemble des possibilités * Le problème de l’accessibilité a été démontré primitif récursif en Avril 1998 par Zakariae Bouziane ftp://ftp.inria.fr/INRIA/publication/publi-pdf/RR/RR-3404.pdf
  • 71. Techniques d’analyse • Principe pour montrer que ∀ M ∈ [M0] P (M) sans construire [M0] : on recherche les semi flots de places et de transitions on en déduit des invariants linéaires qui sont des propriétés Q vraies pour [M0] ∀ M ∈ [M0] Q (M) il reste à montrer que ∀ M ∈ [M0] Q(M) ⇒ P(M) on déduit que ∀ M ∈ [M0] P (M) Techniques d’analyse • si les invariants linéaires sont insuffisants on cherche d’autres invariants par induction • pour montrer que ∀ M ∈ [M0] P (M) on montre que : P (M0) ∀ M, M’ ∈ [M0] ∀ t ∈ T M (t> M’ P (M) ⇒ P (M’) on induit que ∀ M ∈ [M0] P (M)
  • 72. Techniques d’analyse • Il est souvent difficile de démontrer directement que ∀ M ∈ [M0] P (M) • On procède alors par étapes si l’on sait que ∀ M ∈ [M0] Q (M) on définit [M0]Q = { M | M0 ∈ [M0]Q Q(M) } on déduit que [M0] ⊆ [M0]Q on montre que ∀ M ∈ [M0]Q P (M) on déduit que ∀ M ∈ [M0] P (M) Techniques d’analyse M0 x [M0] [M0]Q = { M | M0 ∈ [M0]Q Q(M) } P Q [M0]Q est plus « facile » à caractériser que [M0]
  • 73. Techniques d’analyse • Bornage – on recherche une couverture de semi flots de places – on en déduit directement que le réseau de Petri est borné – on déduit aussi une borne pour chaque place – on déduit aussi des invariants linéaires Q – on déduit [M0]Q Techniques d’analyse • Etat d’accueil Ma on recherche une norme de Keller pour Ma dans [M0]Q • Vivacité d’une transition t on recherche M et s tels que Ma (s> M (t> • Vivacité du réseau de Petri on montre la vivacité de chaque transition t
  • 74. Monotonie • P monotone ssi ∀ M, M’ ∈ [M0] M ≤ M’ ⇒ ( P (M) ⇒ P (M’) ) une propriété monotone reste vraie quand le marquage croit – La franchissabilité et le franchissement sont monotones ∀ M1, M’1 ∈ [M0] M1 ≤ M’1 ⇒ ( M1 (s> ⇒ M’1 (s> et M1 (s> M2 ⇒ M’1 (s> M’2 avec M2 ≤ M’2 Monotonie • La pseudo vivacité n’est pas monotone • La quasi vivacité est monotone • La vivacite n’est pas monotone • L’existence d’un état d’accueil n’est pas monotone • Le bornage est monotone
  • 75. Limites Un réseau de Petri n’est pas un modèle de calcul • Preuve – on peut simuler le fonctionnement d’un réseau de Petri par une machine de Minsky – la machine de Minsky est un modèle de calcul – pour la machine de Minsky l’accessibilité est indécidable – pour un réseau de Petri l’accessibilité est décidable Limites • Conséquences – Il n’est pas possible de « tester » que M(p) = 0 pour une place p ∈ P • Preuve si on pouvait le faire, on pourrait simuler une machine de Minsky par un réseau de Petri – Il n’est pas possible de définir des « priorités » entre transitions franchissables • Preuve si on pouvait le faire on pourrait faire le test à 0
  • 76. Constructions • Union de réseaux de Petri R1 = < P1 , T1 ; Pre1 , Post1 ; M10 > R2 = < P2 , T2 ; Pre2 , Post2 ; M20 > R = < P , T ; Pre , Post ; M0 > P = P1 ∪ P2 T = T1 ∪ T2 M0 = M01 ∪ M02 Pre = Pre1 ∪ Pre2 Post = Post1 ∪ Post2 – mise en commun de transitions T1 ∩ T2 ≠ ∅ – mise en commun de places P1 ∩ P2 ≠ ∅  en général R n’hérite d’aucune propriété (bornage, vivacité, …) de R1 ou de R2 Constructions • Réductions – Il est possible de définir des règles de suppression de places ou de transitions qui conservent certaines propriétés telles que bornage ou vivacité
  • 77. Extensions • Deux types – il est possible de définir un isomorphisme entre un réseau de Petri étendu et un réseau de Petri  l’extension est en général une abréviation  tout résultat (propriété, théorème ou décidabilité ) est conservé – il est impossible de définir un isomorphisme  l’extension a pour objectif d’augmenter la puissance du modèle, éventuellement vers un modèle de calcul  l’extension diminue les possibilités de preuve  aucun résultat n’est conservé Extensions • isomorphes à un réseau de Petri – Réseaux de Petri colorés C = {c1, c2,…ck } ensemble de couleurs M : P → { C → N } chaque place contient des jetons colorés • Exemple    les fonctions Pre et Post doivent aussi être « colorées » C = {r, v, b } M(p) (r) = 3 M(p) (v) = 2 M(p) (b) = 2
  • 78. Extensions – Réseaux de Petri à prédicats P = { π1, π2, …πn } πi = { pi1, pi2,…pin } T = { τ1, τ2, … τn } τi = { ti1, ti2,…tim }  chaque place πi est un ensemble de places  chaque transition ti est un ensemble des transitions  les fonctions Pre et Post sont étiquetées par des prédicats portant sur les ensembles P et T Extensions • Non isomorphes à un réseau de Petri – Arcs inhibiteurs t est franchissable ssi M (p) = 0 un réseau de Petri avec arcs inhibiteurs est un modèle de calcul – Numériques M : P → Z  un jeton peut être négatif un réseau de Petri numérique est un modèle de calcul p t
  • 79. Extensions – Réseaux de Petri temporisés • transitions temporisées – on associe à chaque transition une durée définie par un intervalle de temps • places temporisées – on associe à chaque place une durée définie par un intervalle de temps – Réseaux de Petri à files • une place est une file (en général FIFO) Extensions – Réseaux de Petri interprétés • on associe à chaque transition t un prédicat P(t) • une transition est franchissable si et seulement si M(t> et P(t) • Exemple : Grafcet
  • 80. II.6 Calcul des semi-flots Équations linéaires homogènes Calcul de X . A = 0 X ∈Nn A ∈Znxm  calcul du noyau de A – Propriété  toute combinaison linéaire à coefficients dans N d’un ensemble de solutions est une solution !Xi "!n !| Xi .A = 0!et!!#i "!!X = #i Xi !=!0 i $ !
  • 81. Notations N+ = N {0}  ensemble des entiers strictement positifs Q+ = {x ∈ Q | x ≥ 0}  ensemble des rationnels non négatifs S = {X ∈ (N+)n | X . A = 0}  Noyau de l’application  S est soit vide, soit infini Famille génératrice Ensemble de solutions tel que toute solution est une combinaison linéaire des éléments de cet ensemble  les coefficients λ peuvent être fractionnaires, mais les solutions X doivent toujours être entières • Support Ensemble des coordonnées positives d’un vecteur ! = {X1, X2,!Xp |!"X #!S!$%1,%2,!%p #"+ !X = %i Xi !}! i=1 p & X = (x1,x2,!xn )!! X = {xi | xi > 0}!
  • 82. Propriété d’une FG – Théorème • Preuve – condition suffisante P ⇒ Q !!est!une!FG!ssi!"X #S!$X ' #!!|! X ' % X ! !!!FG!"!#X $S!X = %i Xi !"!#i X & Xi ! i ' – condition nécessaire Q ⇒ P pour cela il faut que λ.X ≥ λ’X’ et que ∃ xk | λxk = λ’x’k ce qui permet d’annuler la coordonnée x’’k de X’’ les valeurs de λ et λ’ s’écrivent alors et X !S! peut!s'écrire!"X = "'X '+ X ''! avec!X ' !#!,!X '' !S!et X '' $ X ! ! = x'i x 'i " X ' # ! !' = min xi " X !(xi . x'j x 'j " X ' {x 'i } # !)! = λX = λ’X’ + X’’
  • 83. preuve ∃k λxk = λ’x’k ∀h λxh ≥ λ’x’h soit!k!|!!' = xk . x'j x 'j " X ' {x 'k } # !alors! !xk = x'i x 'i " X ' # .!xk !=!xk . x'j x 'j " X ' {x 'k } # .!x'k !=!!'x'k ! !xh = x'i x 'i " X ' # .!xh != xh. x'j x 'j " X ' {x 'h } # .!x'h !$ !'x'h ! λ’ ≥λ’ en itérant le processus : on obtient la suite : qui est finie puisque les supports des Xi sont décroissants donc en itérant jusqu’à ||Xn+1|| = ∅ C.Q.F.D. !0 X0 = !'0 X '0 + X1 !avec!X '0 "#!,!X1 "S!et X1 $ X0 ! !i Xi = !'i X 'i + Xi+1 !avec!X 'i "#!,!Xi+1 "S!et Xi+1 $ Xi ! X0 = !j Xj ! j=1 n " ,!!j #!+ !,!Xj #$!
  • 84. Plus petite famille génératrice – Définition  une PPFG est une FG de cardinal minimum – Propriété  aucun élément d’une PPFG n’est une combinaison linéaire des autres éléments • Preuve : si on retire un élément Xi on n’a plus une FG ! = {X1, X2,!Xp}!FG!telle!que!"Xi #!!! {Xi }!n'est! pas!une!FG! !!PPFG!ssi!!!FG!et!"Xi #!!et!"$j #!+ !Xi % $i Xj ! j%i & – Théorème  Les supports des éléments de Ξ ne sont pas comparables • preuve (ad absurdum) • condition suffisante ¬Q ⇒ ¬P • condition nécessaire ¬P ⇒ ¬Q !!est!une!PPFG!ssi!!!est!une!FG!et! !!!!"Xi , Xj #!!i $ j! Xi % Xj !!et! Xi $ Xj ! !Xi , Xj "#!i $ j! Xi % Xj & # {Xj }!est!une!FG & #!n'est! pas!une!PPFG! !!n'est! pas!une!PPFG " #X $!!X = %i Xi !et!&i! Xi i ' ( X !
  • 85. PPFG du Noyau de A • Propriétés de A – l’ensemble des lignes de A est une FG de l’image de A  il est donc possible d’ajouter à A une ligne combinaison linéaire des autres lignes – l’ensemble des lignes de non nulles de A est une FG de l’image non nulle de A  l’ensemble Ξ des combinaisons linéaires conduisant à des lignes nulles de A est une FG du noyau de A  le sous-ensemble Ξ’ de Ξ ne contenant que les combinaisons linéaires de support minimal est une PPFG du noyau de A Algorithme de Farkas La PPFG est construite pas à pas, par colonnes de A (c.à.d. par équation linéaire homogène, ou par coordonnée) 1. On cherche toutes les combinaisons linéaires de A telles que les lignes de A soient nulles 2. On retire de A toutes les lignes non nulles  Les combinaisons linéaires restantes sont une FG du noyau de A 3. On retire de A toutes les lignes dont les combinaisons linéaires ont un support inclus dans le support d’une autre combinaison linéaire de A  Les combinaisons linéaires restantes sont une PPFG du noyau de A Gyula Farkas (1847-1930)
  • 86. Recherche de X tel que X.A = 0 F = In ; -- In est la matrice unité de même dimension que X -- tant que A ≠∅ faire { choisir une colonne k de A ; pour tout i,j tels que Aik > 0 et Ajk < 0 ajouter à A et à F la ligne p telle que { Ap. = (Aik . Aj. - Ajk . Ai. ) / pgcd (Aik , - Ajk ) ; Fp. = (Aik . Fj. - Ajk . Fi. ) / pgcd (Aik , - Ajk ) } pour tout i tel que Aik ≠ 0 supprimer de A et F la ligne i ; pour tout i,j tels que ||Fi.|| ⊆ ||Fj.|| supprimer de A et F la ligne j ; supprimer de A toutes les colonnes nulles } Les lignes de F sont une ppfg de semi-flots Exemple : semi-flots de places C !!!a0 a1 a2 b2 b1 b0 E0 E1 E2 CR M R2 R1 R0 !1 0 1 0 0 0 1 !1 0 0 0 0 0 1 !1 0 0 0 !1 0 0 0 1 0 0 1 0 0 0 !1 0 0 0 !1 1 0 0 0 0 0 !1 1 0 0 0 1 0 !1 " # $ $ $ $ $ $ $ $ $ $ % & ' ' ' ' ' ' ' ' ' ' CR M E1 E2 R0 R1 R2 a0 a1 a2 b0 b1 b2
  • 87. !!!!!!! a0 a1 a2 b2 b1 b0 E0 E1 E2 CR M R2 R1 R0 !1 0 1 0 0 0 1 !1 0 0 0 0 0 1 !1 0 0 0 !1 0 0 0 1 0 0 1 0 0 0 !1 0 0 0 !1 1 0 0 0 0 0 !1 1 0 0 0 1 0 !1 " # $ $ $ $ $ $ $ $ $ $ % & ' ' ' ' ' ' ' ' ' ' !!E0 E1 E2 CR M R2 R1 R0 1 !!0 !!0 !!0 !!0 !!0 !!0 !!0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 ! " # # # # # # # # # # $ % & & & & & & & & & &    E0 + E1 ! !0 !!1 !!1 !!0 !!0 !!0!( )!  E1 + CR! !0 !!1 !!0 !!0 !!1 !!0!( )!  !1 !!1 !!0 !!0 !!0 !!0 !!0 !!0!( )! !0 !!1 !!0 !!1 !!0 !!0 !!0 !!0!( )! !!!! !!!!!!!!!!! a1 a2 b2 b1 b0 E2 M R2 R1 R0 E0 + E1 E1 + CR 1 !1 0 0 0 1 0 0 0 !1 0 0 !1 1 0 0 0 0 !1 1 0 0 1 0 !1 !1 1 0 0 0 !1 0 0 1 0 " # $ $ $ $ $ $ $ $ $ % & ' ' ' ' ' ' ' ' ' !E0 E1 E2 CR M R2 R1 R0 0 !!0 !!1 !!0 !!0 !!0 !!0 !!0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 ! " # # # # # # # # # $ % & & & & & & & & &         E0 + E1 + E2 ! !!0 !!0 !!0 !!0 !!0!( )!  E1 + E2 + CR! !!0 !!1 !!0 !!1 !!0!( )!  E0 + E1 + M ! !!0 !!1 !!0 !!0 !!1!( )!  E1 + CR + M ! !!0 !!0 !!0 !!1 !!1!( )!  !1 !!1 !!1 !!0 !!0 !!0 !!0 !!0!( )! !0 !!1 !!1 !!1 !!0 !!0 !!0 !!0!( )! !1 !!1 !!0 !!0 !!1 !!0 !!0 !!0!( )! !0 !!1 !!0 !!1 !!1 !!0 !!0 !!0!( )!
  • 88. !! !!!!!!!!!!! !!!!!!!a2 b2 b1 b0 R2 R1 R0 E0 + E1 + E2 E1 + E2 + CR E0 + E1 + M E1 + CR + M 0 !1 1 0 0 0 !1 1 0 1 0 !1 0 0 0 0 !1 0 1 0 1 0 0 !1 0 0 1 !1 " # $ $ $ $ $ $ $ $ $ % & ' ' ' ' ' ' ' ' ' !E0 E1 E2 CR M R2 R1 R0 0 !!0 !!0 !!0 !!0 !!1 !!0 !!0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 0 0 ! " # # # # # # # # # $ % & & & & & & & & &   E0 + 2E1 + E2 + CR + M ! !0 !!0 !!1! !!1!( )! !1 !!2 !!1 !!1 !!1 !!0 !!0 !!0!( )!     !! !!!!!!!!!!! !!!!!!!b2 b1 b0 R2 R1 R0 E0 + E1 + E2 E1 + CR + M !1 1 0 0 !1 1 1 0 !1 0 0 0 0 1 !1 " # $ $ $ $ $ $ % & ' ' ' ' ' ' E0 E1 E2 CR M R2 R1 R0 0 !0 !!0 !!0 !!0 !!1 !!0 !!0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 0 ! " # # # # # # $ % & & & & & &   R0 + R2 !! !!0 !!1 !!1!( )! !0 !!0 !!0 !!0 !!0 !!1 !!0 !!1!( )!
  • 89. !! !!!!!!!!!!! !!!!!!!b1 b0 R1 E0 + E1 + E2 E1 + CR + M R0 + R2 !1 1 0 0 1 !1 1 !1 " # $ $ $ $ % & ' ' ' ' E0 E1 E2 CR M R2 R1 R0 0 !!0 !!0 !!0 !!0 !!0 !!1 !!0 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 ! " # # # # $ % & & & &     E1 + CR + M + R1 !! !!0 !!0!( )!  R0 + R1 + R2 !! !!0 !!0!( )!  !0 !!1 !!0 !!1 !!1 !!0 !!1 !!0!( )! !0 !!0 !!0 !!0 !!0 !!1 !!1 !!1!( )! E0 E1 E2 CR M R2 R1 R0 1 !!1 !!1 !!0 !!0 !!0 !!0 !!0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 1 ! " # # $ % & &  ces trois vecteurs sont une ppfg des solutions
  • 90. Vérification E0 E1 E2 CR M R2 R1 R0 1 !!1 !!1 !!0 !!0 !!0 !!0 !!0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 1 ! " # # $ % & & C !!!a0 a1 a2 b2 b1 b0 E0 E1 E2 CR M R2 R1 R0 !1 0 1 0 0 0 1 !1 0 0 0 0 0 1 !1 0 0 0 !1 0 0 0 1 0 0 1 0 0 0 !1 0 0 0 !1 1 0 0 0 0 0 !1 1 0 0 0 1 0 !1 " # $ $ $ $ $ $ $ $ $ $ % & ' ' ' ' ' ' ' ' ' ' !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! ! " # # $ % & & 0 0 0 0 0 0 0 0 0 0 0 000000 0
  • 91. Ingénierie des protocoles TD & Annales d’examens Université Montpellier II Faculté des Sciences Département Informatique Master Richard G. TERRAT
  • 92.
  • 93. TD N° 1 Philosophie et Gastronomie Edsger Wybe Dijkstra (1930-2002) Cinq amis, philosophes et gastronomes, se réunissent dans une trattoria napolitaine. L’établissement ne propose que des spaghetti. Ils s’installent autour d’une table ronde de 5 places où sont déposés 5 assiettes et 5 fourchettes, situées chacune entre chaque assiette. On sait bien que pour déguster des spaghetti, deux fourchettes sont nécessaires. Les philosophes-gastronomes vont donc se les partager ainsi : Chacun alternera des phases de - pensée pendant laquelle il ne se servira pas de ses fourchettes - restauration pendant laquelle il mangera ses spaghetti en se servant des fourchettes situées de part et d’autre de son assiette. Question Modéliser par un réseau de Petri le comportement des philosophes-gastronomes N.B. Il s’agit évidemment d’une allégorie, proposée en 1971 par E.W. Dijstra, dans laquelle les philosophes sont la métaphore de processus et les fourchettes celle de ressources. Le problème est celui de partage de ressources par des processus.
  • 94. Un protocole de transfert de données Description du protocole On se propose d’étudier la phase de transfert de données d’un protocole de transmission sur une liaison bidirectionnelle alternée (half-duplex). On fait l’hypothèse que cette liaison est sans pertes, mais avec possibilité d’erreurs détectables grâce à un code détecteur mais non correcteur d’erreurs. L’objectif de ce protocole est d’assurer la transmission correcte de données entre un émetteur E et un récepteur R via une liaison L d’une suite de messages Mk (k ∈ N) sans perte ni duplication. La valeur de k ne fait pas partie du message transmis (à cause du fait qu’elle n’est pas bornée). L’émetteur E émet des messages qui peuvent être soit : reconnus et acceptés par le récepteur R perturbés et transformés en messages d’erreur X reconnus comme tels par le récepteur R Le récepteur R émet, sur réception d’un message valide M, un accusé de réception positif ACK et sur réception d’un message invalide X un accusé de réception négatif NAK ACK ou NAK peuvent être soit : reconnus et reçus par l’émetteur E perturbés et transformés en messages d’erreur Y reconnus comme tels par l’émetteur E Fonctionnement du protocole Émetteur E À l’instant initial E est à l’état repos Dans l’état repos E peut envoyer un nouveau message M Il passe alors dans l’état attente Dans l’état attente, si E reçoit : ACK il retourne à l’état repos NAK ou Y il passe dans l’état réémission Dans l’état réémission E peut réémettre le message M Il retourne alors à l’état attente Récepteur R À l’instant initial R est à l’état repos Dans l’état repos si R reçoit : un message valide M, il accepte le message et passe dans l’état accepté un message invalide X, il passe dans l’état refusé Dans l’état accepté, R peut envoyer un ACK Il retourne alors à l’état repos Dans l’état refusé, R peut envoyer un NAK Il retourne alors à l’état repos Ligne L L peut, à tout instant, perturber un message M en le transformant en X ou perturber un ACK ou NAK en le transformant en Y
  • 95. TD N°2 1. Modéliser ce protocole par un réseau de Petri 2. Tracer le graphe des marquages accessibles 3. Soit a la transition correspondant à l’envoi d’un nouveau message M et b celle correspondant à la réception d’un message correct. Montrer que ∃ w ∈ L tel que |a|w |b|w où |u|w désigne le nombre d’occurrences de la lettre u dans le mot w. 4. Ajouter au réseau de Petri précédent 2 places I et J telles que : Post (I,a) = 1 ∀ t ∈ T t ≠ a, Post (I,t) = 0 et ∀ t ∈ T Pre (I,t) = 0 Post (J,b) = 1 ∀ t ∈ T t ≠ b, Post (J,t) = 0 et ∀ t ∈ T Pre (J,t) = 0 Montrer que l’on peut avoir m(J) m(I) En déduire que le protocole est incorrect. TD N°3 5. Construire la matrice de connexion C de ce réseau 6. Trouver les semi-flots de transitions. En déduire toutes les séquences répétitives issues du marquage initial. 7. Trouver les semi-flots de places. En déduire que le réseau de Petri est borné. Compte tenu de son marquage initial, quelles sont les bornes de chacune des places ? 8. En étiquetant toutes les transitions, donner une expression régulière du langage L(M0,,M0) engendré par le réseau de Petri. TD N° 4 9. Trouver une norme permettant de prouver que le réseau est réinitialisable. 10. Monter que le réseau est sans blocage. 11. Montrer que le réseau est vivant. 12. Vérifier tous les résultats trouvés sur le graphe des marquages accessibles
  • 96. TD N°5 Une tentative d’amélioration du protocole « naïf » de transfert de données Description On se propose d’améliorer le protocole précédent ainsi : On ajoute à chaque message transmis un bit ainsi défini : 0 : il s’agit de la première émission de ce message (envoi initial) 1 : il s’agit d’une réémission de ce message Étude Établir un nouveau protocole sur cette base. Faire un modèle de ce protocole par un réseau de Petri . En déduire les propriétés de ce nouveau protocole.
  • 97. TD N°6 Le protocole du bit alterné Description On se propose d’améliorer le protocole « naïf » On ajoute à chaque message à transmettre un bit ainsi défini : 0 : émission (ou réémission) d’un message de rang pair 1 : émission (ou réémission) d’un message de rang impair ! ce bit alterne à chaque réception d’un ACK dont le bit est différent de celui du dernier message envoyé ; il y a ensuite émission initiale d’un nouveau message ! ce bit reste inchangé sur réception d’un ACK dont le bit est identique à celui du dernier message envoyé ou sur réception d’un ACK en erreur ; il y a ensuite réémission du même message ☞ il peut être vu comme une numérotation modulo 2 des messages émis On modifie les accusés de réception ainsi : On supprime le « NAK » On ajoute un bit ainsi défini au « ACK » : 0   : invite à émettre (ou réémettre) un message de rang pair (donc accuse implicitement réception du message précédemment correctement reçu de rang impair) 1 : invite à émettre (ou réémettre) un message de rang impair (donc accuse implicitement réception du message précédemment correctement reçu de rang pair). ! ce bit alterne sur réception initiale correcte d’un nouveau message de la parité attendue ! ce bit reste inchangé sur réception d’un message de parité inverse de celle attendue ou d’un message en erreur  ☞ il peut être vu comme une numérotation modulo 2 des accusés de réception émis A l’état initial les bits à ajouter aux messages ou aux « ACK » sont à 0. L’initiateur de la communication peut aussi bien être l’émetteur que le récepteur ; s’il s’agit du récepteur, le premier « ACK » envoyé est une simple invitation à émettre et n’accuse évidemment réception d’aucun message. Étude Établir un nouveau protocole sur cette base. Faire un modèle de ce protocole par un réseau de Petri . En déduire les propriétés de ce nouveau protocole.
  • 98.
  • 99. Université Montpellier 2 Ingénierie des Protocoles UFR des Sciences Mars 2006 Master Informatique Tous documents autorisés Allocation de Circuits Virtuels Sujet On s’intéresse à un pico-réseau ayant l’architecture suivante : A, B, D, E sont des sites terminaux C1 et C2 sont des sites commutateurs Les liaisons physiques sont représentées par les 6 arcs sur le schéma ci-dessus On souhaite établir un maximum de 3 circuits virtuels CV entre A et B (1 CV) A et D (1 CV) A et E (1 CV) Pour ce faire il faut allouer une suite de voies logiques VL pour chaque CV Or les commutateurs sont très frustes. Ils ne peuvent gérer qu’une seule VL par liaison physique. On ne peut donc établir à un instant donné que 2 CV au plus sur les 3 possibles. On suppose que le site A est Maître de la gestion des VL , donc des CV A C 1 C 2 B D E
  • 100. Questions 1. Représenter par un Réseau de PETRI simple et pur l’allocation et la libération de CV par le site A 2. Représenter la matrice de Connexion C de ce Réseau de PETRI. Permet-elle de reconstituer de façon unique le réseau de PETRI initial ? Expliquer pourquoi. 3. Rechercher les semi-flots et les invariants de places. En déduire que le réseau de PETRI est sain . Montrer que seuls 2 CV sur 3 peuvent être alloués. 4. Rechercher les invariants de transitions. En déduire quelles sont les séquences répétitives possibles. 5. Rechercher une norme permettant de prouver que le marquage initial correspond à un état d’accueil. Directives Il est (fortement) conseillé d’utiliser les éléments suivants : Places Transitions BL site B Libre ab Allocation du CV AB DL site D Libre ad1 Allocation du CV AD via C1 EL site E Libre ad2 Allocation du CV AD via C2 C1L site C1 Libre ae Allocation du CV AE C2L site C2 Libre Ces places étant marquées quand les sites sont libres (« idle ») AB CV AB alloué lb Libération du CV AB AD1 CV AD alloué via C1 ld1 Libération du CV AD via C1 AD2 CV AD alloué via C2 ld2 Libération du CV AD via C2 AE CV AE alloué le Libération du CV AE Ces places étant marquées quand les CV sont alloués
  • 101. Université Montpellier 2 Ingénierie des Protocoles UFR des Sciences Mars 2007 Master Informatique Tous documents autorisés Un protocole de connexion-déconnexion On se propose d’étudier un protocole (bien connu) de connexion-déconnexion décrit ci-après. Pour ce protocole, on demande d’établir : 1. la matrice de connexion 2. les semi-flots de places 3. les semi-flots de transitions 4. une norme de Keller prouvant que l’état initial est un état d’accueil et 5. d’en déduire que le réseau est borné et vivant Description Phase de connexion : A l’état initial les 2 sites sont au repos Le site A est l’appelant, le site B l’appelé Le site A envoie un message de demande de connexion DC au site B puis attend sa réponse Le site B, sur réception du message DC envoie un message de confirmation de connexion CC puis passe directement dans l’état connecté Le site A, sur réception du message CC passe dans l’état connecté Phase de déconnexion : La déconnexion peut être initiée aussi bien par le site A que par le site B Le site initiateur connecté envoie à l’autre site un message de demande de déconnexion DD puis attend sa réponse Lorsqu’un site connecté reçoit un message DD, il répond par un message de confirmation de déconnexion CD puis retourne à l’état de repos Lorsqu’un site en attente de déconnexion reçoit un message CD ou DD il retourne à l’état de repos
  • 103. Université Montpellier 2 Ingénierie des Protocoles UFR des Sciences Mars 2008 Master Informatique Tous documents autorisés Validation à 2 Phases Sujet Le texte ci-dessous décrit le fonctionnement du protocole de validation à deux phases (two-step commitment) utilisé pour maintenir la cohérence en tout-ou-rien d'un ensemble de transactions réparties. Une entité, appelée Maître gère un certain nombre de transactions interdépendantes, avec d'autres entités appelées Esclaves. Lors de ces transactions, les modifications sont consignées dans des journaux inaltérables, gérés sur chacune des entités. A l'issue de la suite de transactions gérée sur l'entité Maître, celle-ci décide de valider les mises à jour, c'est à dire de provoquer les écritures effectives sur les bases de données de chaque entité (y compris elle-même). Si une seule entité (Maître ou Esclave) ne peut faire ces mises à jour, pour cause de panne, toutes les entités doivent aussi renoncer à leurs propres mises à jour. La suite de transactions est donc validée pour toutes les entités ou aucune (tout ou rien). Le but de ce protocole est d'assurer cette propriété. Le protocole simplifié Dans une première phase, l'entité Maître diffuse à toutes les entités esclaves un message D de demande de verrouillage. Elle attend alors les réponses de toutes les entités esclaves. Sur réception de D, une entité esclave en fonctionnement normal : 1. Écrit sur son journal un message : W (Attente) 2. Envoie une reponse positive : R+ Sur réception de D, une entité esclave en panne, éventuellement via son entité de transport, envoie une réponse négative : R- Dans les deux cas, l'entité esclave attend ensuite un nouveau message de l'entité Maître. Sur réception des réponses R de toutes les entités esclaves, l'entité Maître entre dans sa seconde phase. Si elle reçoit toutes les réponses R+ des entités esclaves, l'entité Maître : 1. Écrit sur son journal un message S (Succès) 2. Diffuse à toutes les entités esclaves un message C (Consolidation) 3. Effectue ses mises à jour et termine dans l'état Consolidé Si elle reçoit au moins une réponse R- d'une entité esclave, l'entité Maître : 1. Écrit sur son journal un message P (Panne) 2. Diffuse à toutes les entités esclaves un message A (Abandon)
  • 104. 3. Renonce à ses mises à jour et termine dans l'état Abandon Sur réception d'un message C, une entité esclave effectue ses mises à jour et termine dans l'état Consolidé Sur réception d'un message A, une entité esclave renonce à ses mises à jour et termine dans l'état Abandon Les états Consolide et Abandon des entités Maître et Esclave sont des états terminaux. Il n’y donc pas à « boucler » les processus pour revenir à l’état initial. afin de modéliser l’existence d’autres entités esclaves (non représentées dans ce modèle et qui peuvent éventuellement tomber en panne), on considèrera que lors de la transmission du message R+ celui-ci peut se transformer en message R- (transition tr) Questions 1. Construire la matrice de Connexion de ce modèle 2. Calculer les semi-flots de places et les invariants qui en découlent. En déduire que le réseau est borné. Donner la borne de chaque place. 3. Montrer qu’il existe deux flots de places dont les supports contiennent les places correspondant aux états Consolidé et Abandon des entités Maître et Esclave. En déduire deux nouveaux invariants. 4. A partir des invariants issus des semi-flots et des flots de places, montrer que l’entité Esclave ne peut terminer dans l’état Consolidé alors que l’entité Maître termine dans l’état Abandon de même que l’entité Maître ne peut terminer dans l’état Consolidé alors que l’entité Esclave termine dans l’état Abandon. 5. En s’inspirant de la norme de Keller, montrer que l’ensemble des 2 seuls états terminaux possibles constitue un ensemble d’états d’accueil, c’est-à-dire que l’un ou l’autre de ces états peut être atteint à partir de tout marquage extérieur à cet ensemble. N.B. Sur le Réseau de Petri ci-joint : les places M4 et M5 représentent les états Consolidé et Abandon du Maître E3 et E4 représentent les états Consolidé et Abandon de l’Esclave les transitions t4 représente l’écriture du message S et l’envoi du message C t5 représente l’écriture du message P et l’envoi du message A t7 représente l’écriture du message W et l’envoi du message R+
  • 105. • • M0 M1 M2 M3 M4 M5 D R+ R- C A E0 E1 E2 E3 E4 t1 t2 t3 t4 t5 t6 t7 t8 t9 tr