Académique Documents
Professionnel Documents
Culture Documents
RESEAUX DE PETRI
a- Principe
b- Exemple
6) Extension des RDP: ( colorés….)
LES RESEAUX DE PETRI
I- PREAMBULE ET GENERALITE
Les réseaux de Petri sont un modèle pour les systèmes dans lesquels il existe des
flots contrôlés. Ces flots peuvent concerner des objets concrets (par exemple :
pièces détachées, périphériques,..) ou abstraits (messages, entiers,...). Dans le
cas le plus général nous parlerons de flots d’information.
Les réseaux de Petri, inventés par Carl Adam Petri en 1962, suscitent toujours
aujo urd‘hui de nombreux travaux de recherche dans beaucoup de pays.
Rappel Grafcet:
En 1975, le groupe Systèmes logiques de L‘AFCET (Association française
pour la cybernétique économique et technique) décide de créer une commission
de normalisation de la représentation du cahier des charges d‘un automatisme
logique du fait de la complexité future de ces automatismes. L‘outil de
représentation retenu s‘inspire des réseaux de Petri et propose une interprétation
unique des entrées/sorties du système
- Les réseaux de Petri sont donc l‘ancêtre de cet outil industriel Grafcet. Ils
ne sont toutefois pas comparables, dans la mesure où les réseaux de Petri servent
à la modélisation, tandis que le GRAFCET est orienté programmation. On peut
néanmoins considérer ce dernier comme un Réseau de Petri interprété. Retirant
les spécifications de réceptivité, d‘action et de temps, on retrouve effectivement
la structure sous-jacente des réseaux de Petri.
Les transitions des réseaux de Petri sont des compteurs, tandis que celles des
GRAFCET sont des bascules (des interrupteurs à signal).
Autre particularité proche de l‘électronique, l‘état d‘un GRAFCET est ou actif,
ou inactif, un réseau de Petri possède, quant à lui, plusieurs niveaux d‘activités
(plusieurs jetons).
Les GRAFCET sont aussi dits systèmes synchrones, contrairement aux réseaux
de Petri, dits asynchrones. Précisons qu‘un système est dit synchrone s‘il est
réglé sur une horloge de base.
Ces notions des réseaux de Petri font du GRAFCET un outil bien adapté à la
modélisation d‘automates utilisant capteurs et actionneurs. Les réseaux de Petri
sont, quant à eux, plus adaptés à la modélisation, à la supervision (notion de
stocks)
Remarque :
CPN Tools (un des logiciels les plus utilisés, simulation de réseaux de
Pétri de haut niveau)
MISS-RdP© : Interactive Modelling and System Simulation(outil
permettant de simuler et de modéliser des RdP de haut niveau)
Un système est une portion de la réalité définie par une frontière organisée en
fonction d‘un but. En général, un système est constitué par un ensemble
d‘éléments en interaction dynamique.
Il possède donc des entrées et des sorties. Elles sont caractérisées par des
variables de flux.
Les variables varient en fonction du temps : ce sont donc des signaux. On peut
définir différents types de signaux, signaux en temps continu et discret.
Continu ; Discret
Signal
• Systèmes continus
– variables d'état continues et temps continu
• Systèmes échantillonnés
– variables d'état continues et temps discret
• Systèmes discrets
– variables d'état discrètes et temps continu
Remarques
- Les RDP sont aussi un outil de modélisation pour les systèmes à variables
logiques puisque ceux-ci sont un cas particulier des systèmes à variables
discrètes.
Définition
- Un système est décrit par un modèle à état s‘il existe plusieurs signaux
appelés chacun « état » tels que l'ensemble des valeurs de ces états à un instant
donné décrit de manière nécessaire et suffisante ce système. L'ensemble de ces
états est appelé « espace d'état ».
RAPPELS
Par un exemple, un moteur peut être décrit par deux variables d‘états : sa
position angulaire et sa vitesse angulaire. Le changement de ces états est
considéré de manière continue (v, v+dv). Un état peut prendre une infinité de
valeurs. La vitesse et la position décrivent entièrement le comportement du
moteur. Les outils formels utilisés sont les transformées de Laplace, en Z, les
bonds-graphs, etc.
Exemple de SED
Une machine de production est décrit par deux états : un premier état x 1(t)
appelé « mode de fonctionnement » dont l'espace des valeurs est {arrêt,
marche, panne, reconfiguration, maintenance} et un second état x2(t) appelé
« cadence » dont l'espace des valeurs est {0, c1, c2, c3}. On remarque que x2(t)=0
quand x1(t)≠marche. Le vecteur [x1(t), x2(t)] décrit entièrement les
comportements possibles pour cette machine. Dans ce cas, on considère que le
changement de valeur pour un état est provoqué par des événements de nature
discrète, à occurrence instantanée et à intervalle de temps non nécessairement
réguliers. D'où la terminologie d'un « SED ».
Les outils formels utilisés dans la modélisation des SED sont les réseaux de
Petri, les chaînes de Markov, le grafcet, etc. Le graphe orienté est le modèle
fondamental commun à tous ces outils.
L‘utilisation de modèles prend une part de plus en plus importante dans les
projets technologiques menés par les ingénieurs, que ce soit pour la définition de
systèmes, leur conception, leur réalisation et même leur intégration (mise en
œuvre), leur maintenance et leur exploitation.
Par définition, un modèle est une représentation d’un système: il peut ainsi
permettre de décrire de façon non équivoque un système technologique. De sa
définition à son exploitation, un système technologique va être appréhendé par
différentes personnes (ingénieurs, etc..) sous des points de vue différents
(conception, réalisation, maintenance, exploitation, etc..). Le passage d‘une
personne à l‘autre doit alors se faire sans perte d‘information, ce que permet
l‘utilisation d‘un modèle.
Conclusion
Niveau 1: Les réseaux caractérisés par les places qui peuvent représenter
des valeurs booléennes. Un exemple de ce type est les Réseaux de
Condition/Evénement ;
Niveau 2: Les réseaux sont caractérisés par les places qui peuvent représenter
des valeurs de nombre entier. Un exemple de ce type est les Réseaux
de Place/Transition ;
Niveau 3: Les réseaux sont caractérisés par les places qui peuvent représenter
des valeurs à niveau élevé, c-à-d, une place est marquée par un multi-ensemble
de jetons structurés. Un exemple de ce type est les Réseaux
colorés.
Généralités
Ces deux façons de définir un réseau de Petri sont équivalentes, mais il est
intéressant de toutes les présenter. En effet, elles donnent une vision chaque fois
différente des réseaux de Petri, et l‘un des intérêts des réseaux de Petri est
précisément de pouvoir passer d‘une vision à une autre suivant ce que l‘on veut
faire.
La première vision relie bien entendu les réseaux de Petri à la théorie des
graphes, la seconde permet de travailler dans le cadre du calcul matriciel et de
l‘algèbre linéaire.
Introduction
Système événement-condition :
Cette approche permet d‘introduire un modèle plus général qui travaille sur les
entiers.
– places (places) → marques (tokens)
– transitions (transitions) → franchissement (firing)
Système de production :
• un ensemble fini de places, P= {P1, P2, P3, ..., Pm}, symbolisées par des
cercles et représentant des conditions qui traduit l‘état d‘une ressource du
système (machine libre, stock vide, convoyeur à l‘arrêt, …).
• un ensemble fini de transitions, T= {T1, T2, T3, ..., Tn}, symbolisées par
des tirets et représentant l'ensemble des événements (les actions se déroulant
dans le système) dont l'occurrence provoque la modification de l'état du système
• un ensemble fini d'arcs orientés qui assurent la liaison d'une place vers
une transition ou d'une transition vers une place.
Un graphe orienté est dit biparti, c'est-à-dire qu'un arc relie alternativement une
place à une transition et une transition à une place. Ainsi les situations suivantes
sont interdites.
PRESENTATION INFORMELLE
P1 est relié T2 par un arc oriente de P1 vers T2 : on dit que T2 est en sortie de
P1. De même, on peut dire que P1 est en entrée ou en amont de T2. La place P3
est en entrée de T1.
- Une transition sans place d'entrée est toujours franchissable car c'est une
propriété concernant la transition source
Le franchissement d'une transition source consiste à rajouter un jeton à chacune
de ces places de sortie
T0
NOTION DE SYSTEMES AVEC RESSOURCES
Une condition est soit vraie, soit fausse. Un état du système peut être décrit
comme un ensemble de conditions.
Principes:
Comment ?
✄ On décrira par des règles strictes comment les composants actifs peuvent
faire transiter des objets de composants passifs en composants passsifs.
Principe 5: On obtient une description plus détaillée d‘un système
Conclusion
Une place correspond à une variable d’état du système qui va être modélisé et
une transition à un événement et/ou une action qui va entraîner l‘évolution des
variables d‘état du système. A un instant donné, une place contient un certain
nombre de marques ou jetons qui va évoluer en fonction du temps: il indique la
valeur de la variable d‘état à cet instant.
Quand un arc relie une place à une transition, cela indique que la valeur de la
variable d‘état associée à la place influence l‘occurrence de l‘événement associé
à la transition. Quand un arc relie une transition à une place, cela veut dire que
l‘occurrence de l‘événement associé à la transition influence la valeur de la
variable d‘état associée à la place.
(Fin 2eme seance)
Exemple 1
Nous allons partir d‘un exemple simple de système à modéliser (dans une
bibliothèque, les utilisateurs peuvent poser ou prendre des livres sur une
étagère).
Exemple 2
Transitions (2 évènements) :
Exemple 3
Ingrédients :
• 3 kg de pommes
• 1 kg de sucre
Donne :
• 2 pots de compote
• 1 pot de gelée de pomme
Exemple 4
Exemple « Service »
• Modélisation d’un service (imprimante,
coiffeur) … Service
Demande Service fait
En_cours
Libre
En_cours
Exemple 5
Exemple 5
Exemple 6
Des cubes arrivent sur un tapis, un robot les saisit et les dépose dans un
emplacement, proposer une modélisation de ce fonctionnement dans le cas
suivant :
Solution
Exemple 7
Les places :
Les transitions :
• T3 : fin de la découpe.
Exemple 8
Un atelier est constitue d‘une machine de coupe et d‘un stock. Quand une
commande arrive et que la machine de coupe est disponible, la commande peut
être traitée. Une fois le traitement terminé, la commande qui à été traitée est
stockée. Sinon, la commande doit attendre que la machine de coupe se libère
avant de pouvoir être traitée.
Par exemple, dans la place P1, une marque indique qu‘une machine est
disponible, pas de marque indique que la machine n‘est pas disponible. Ces
ressources sont consommées ou/et produites au cours du temps.
Une marque dans la place P3 indique qu‘une commande est en train d‘être
traitée par la machine de coupe.
– Les marques d‘une même place n‘ont pas d’identité individuelle: elles sont
indiscernables.
Par exemple, chaque commande en attente dans la place P2 est traitée de la
même façon que les autres.
Exemple 9
Les 5 philosophes
Méthode de modélisation
Selon le cahier de charges (ici les exercices) à traiter,
— identifiez les ressources et par conséquent les modes d‘accès ; chaque ressource sera
systématiquement modélisée par au moins une place ;
— identifiez les processus, et par conséquent leurs comportements (suites d‘actions) ; précisez pour
chaque processus, quelles ressources il utilise.
De façon générale une action est modélisée par une transition ; cependant pour certaines actions il
faut une autorisation (représentée par une transition) quand les conditions pour effectuer l‘action sont
remplies. Ces conditions sont représentées par des places. Ainsi chaque action (du comportement)
d‘un processus est précédée d‘une transition qui l‘autorise et éventuellement suivie par une transition.
— réutilisez les techniques de base (pour l‘accès à une ressource : demander, utiliser, libérer),
synchronisation, exclusion mutuelle.
L‘appellation autonome de ces réseaux de Petri vient du fait qu‘on n‘associe pas
de condition, d‘événement, ni de temps aux transitions.
Un RdP autonome décrit donc le fonctionnement d'un système dont les instants
de franchissement ne sont pas connus ou indiqués.
Exemple:
RdP autonome
Un RdP autonome décrit le fonctionnement d’un système qui évolue de façon
autonome, c-à-d dont les instants de franchissement ne sont pas connus, ou pas
indiqués. (Exemple : Le cycle des saisons).
- Un RdP non autonome décrit le fonctionnement d’un système dont l’évolution est
conditionnée par des événements externes ou par le temps (Exemple : Démarrage
d’un moteur).
Exemple 1
Exemple 2
Définitions Informelles
Une place correspond à une variable d’état du système qui va être modélisé et
une transition à un événement et/ou une action qui va entraîner l‘évolution des
variables d‘état du système. A un instant donné, une place contient un certain
nombre de marques ou jetons qui va évoluer en fonction du temps: il indique la
valeur de la variable d‘état à cet instant.
• Le graphe est orienté: Des arcs vont d'une sorte de nœuds à l'autre (jamais de
places à places, ou de transitions à transitions directement).
• Graphe formé de :
- ensemble de places P = {P1, P2, P3,….}
Les places (Pi) permettent de décrire les états du système modélisé
A chaque arc, on attribut un poids (nombre entier). Par défaut ce nombre est égal
à 1.
Pour le RdP ci-dessus, le poids de l'arc reliant P1 à T1 est égal à 1, alors que
celui reliant T1 à P2 est égal à 5.
MARQUAGE
- Les jetons d‘une place n‘ont pas d‘identité individuelle, autrement dit, ils
sont indiscernables.
Vraie Fausse
La valuation des arcs permet d'exprimer que l'on consomme/produit plus d'une
ressource :
Exemple
Remarque
Nota 1 : le nombre de marques (ou jetons) d’un réseau de Petri n’est donc pas
nécessairement constant.
Séquence de tir
Soit T= {t1,t2,t3,…,te} l’ensemble des transitions d’un réseau de Petri muni d’un marquage
initial M0.
On appelle T* le monoïde libre sur T et un mot de longueur s de T*.
Il faut distinguer parmi les mots de T* ceux qui sont des séquences de tir admissibles
(c'est à dire respectant la règle fondamentale d’évolution). Dans la pratique des
réseaux de Petri, seules ces séquences ont un intérêt et implicitement lorsqu'on parlera
de séquence de tir, celles-ci seront admissibles.
DEFINITION DES RDP ET FORMALISME
Remarque
On définit l‘application incidence avant et après comme suit sachant que k1, k2,
i1, i2 représentent le poids des arcs.
Remarque
Exemple 1
On demande de déterminer :
Solution
Exemple 3
M0 est :
Définition
Exemple
Déterminer la matrice d’incidence du RDP suivant :
Exemple
suivante :
D‘après W+, le tir de la transition T1 ajoute un jeton dans la place P2. Le tir de
la transition T2 ajoute un jeton dans chacune des places P1 et P3.
Cette matrice fait le bilan de l‘action de toutes les liaisons du RdP sur le
marquage. Il faut cependant noter que les termes issus des matrices d'incidence
avant et arrière ne doivent pas se compenser par soustraction. Si tel est le cas, il
y a perte d'information lors de la transcription du modèle sous la forme
matricielle.
Exemple
- La matrice définissant les arcs entrants des transitions est nommée matrice
PRE (précédent).
- La matrice définissant les arcs sortants des transitions est nommée matrice
POST.
PRE POST
t1 t2 t3 t4 t1 t2 t3 t4
p1 1 0 0 0 p1 0 1 0 0
p2 2 0 0 1 p2 0 0 1 0
p3 0 1 0 0 p3 1 0 0 0
p4 0 0 1 0 p4 3 0 0 1
p5 0 0 0 2 p5 0 0 1 0
Notations :
M - PRE(t) = M"
POST( t ) - PRE( t )
C = POST - PRE
M(k+1) = M(k) + C( ti )
Nota-Bene :
Définition
Exemple
Exemple
Le système modélisé « vit » ainsi par à-coups, selon un algorithme assez simple :
Le moniteur d‘exécution travaille donc en pas-à-pas, une transition après l‘autre. Ce travail
séquentiel n‘empêche bien entendu pas des choix. A certains moments, en effet, plusieurs
transitions sont déclenchables.
- première trouvée,
- plus proche du but,
- plus forte priorité,
- ...
V : l‘ensemble des valuations des arcs du graphe définie par Pré et Post
Graphe = (P, T, Γ, V)
R est défini par :
Γ (1) = {a} ; Γ (2) = {b} ; Γ (3) = {c} ; Γ (4) = {d} ; Γ (5) = {d, e} ;
Γ (a) = {2, 3} ; Γ (b) = {4} ; Γ (c) = {5} ; Γ (d) = {1} ; Γ (e) = {5}
Exemple
Soit le réseau de Petri suivant, on demande de déterminer
Les matrices d‘incidences avant et après
P = {x, y} et T = {a, b, c}
R = <P, T, Pré, Post>
Pré a B c
x 5 2 0
y 0 1 5
Post a B c
X 2 0 5
y 3 3 0
Exemple
Une matrice Pré qui représente les arcs allant d‘une place à une transition.
L‘élément (i; j) de la matrice Pré est différent de 0 s‘il y a un arc de la place i
vers la transition j.
Une matrice Post qui représente les arcs allant d‘une transition à une place.
L‘élément (i; j) de la matrice Post est différent de 0 s‘il y a un arc de la transition
i vers la place j.
C = Post t – Pre
Exemple
Solution
Les matrices Pré et Post
La matrice C est :
Nouvelle séance
Autre définition
Exemple 1:
Exemple2 :
On dit que la place P2 est en amont ou est une entrée de la transition T2
On dira que la place P7 est en aval ou est une sortie de la transition T5
Franchissement :
Soit le réseau suivant avec un marquage M1, quelles sont les transitions
franchissables.
Exemple
A partir du marquage M‘, le tir de T1, donne le nouveau marquage M‘‘ dont la
valeur est :
Exemple
Soit un atelier de coupe de bois, cet atelier est constitué d‘une machine de
coupe et d‘un stock. Quand une commande arrive et que la machine de coupe est
disponible, la commande peut être traitée (découpe). Une fois le traitement
terminé, la commande qui a été traitée est stockée. Sinon, la commande doit
attendre que la machine de coupe se libère avant de pouvoir être traitée.
Exemple
Proposer une solution dans laquelle on trouve les utilisateurs, le comptoir, les
employés et les étagères.
Les flèches représentent les flots d‘objets ou d‘informations entre les
composants. Il est bien sur possible de compliquer les choses en intégrant
davantage de données.
Proposer donc une solution en ajoutant des employés de retour et des employés
pour le prêt des livres
Les passagers ne peuvent rentrer dans la cabine que si l‘ascenseur est au 1er et ne
peuvent sortir que si la cabine est au 2ème
L‘ascenseur peut se déplacer entre les étages librement.
Solution
Déterminer le modèle RDP pour une file d'attente simple, on dispose pour
cela du cahier de charge suivant: (Les Ci représentent les places et les Ei les
transitions)
P accomplit un travail à la fois jusqu'à son achèvement, puis, si la file F est non
vide il commence à traiter un travail de la file, sinon il reste inoccupé.
Evénements - transitions :
Pour E2 :
- le processeur est inoccupé (C2)
- la file d'entrée contient au moins un travail (C1)
Résultat de E2 :
- un travail est en cours d'exécution (C3)
- la file d'entrée contient un travail en moins
Pour E3 :
- un travail est en cours d'exécution (C3)
Résultat de E3 :
- un travail est dans la file de sortie (C4)
- le processeur est inoccupé (C2)
Pour E4 :
- un travail est dans la file de sortie (C4)
Résultat de E4 :
- la file des sorties contient un travail en moins
Remarque
On peut ajouter un sommet "condition" (C0) avant l'entrée et contenant une
indication du nombre de travaux à traiter (N)
Exemple
suivante :
Sachant que
M2= (0,0,1,1,0)t
Donner le nouveau marquage à partir de M0, si la séquence de franchissement
est :
Remarques importantes :
<T1, T2, T3, T2>, <T3, T1, T2, T2>, <T3, T2, T2, T1>,
<T1, T3, T2, T2>, <T1, T2, T2, T3>, …
Elles ont pourtant même vecteur de comptage. L'équation d'état donnera donc le
même résultat pour les quatre.
– Exemple :
=> Calcul de M2
Solution
– Autre Exemple :
Quel est le marquage initial à prévoir pour avoir le marquage final Mf= [2, 5, 1, 4, 5]
selon la séquence <T1, T2, T2>
Solution
–
L'équation d'état peut également déterminer le marquage initial minimal pour
franchir une séquence donnée, sans se préoccuper du marquage final.
T
M0 + C . Vs > 0
– Exemple :
Quel marquage initial minimal permettant le franchissement de la séquence <T1, T2, T2>
Solution
Graphe fini: le RdP est borné et toutes les propriétés du RdP peuvent être
déduites de la lecture du graphe des marquages accessibles
Exemple
Figure 2
Figure 1
L'évolution temporelle d'un RdP peut être décrite par un graphe de marquage
représentant l'ensemble des marquages accessibles et d'arcs correspondant aux
franchissements des transitions faisant passer d'un marquage à l'autre pour un
marquage initial M0.
Exemples :
- Exemple 1
- Exemple 2
- Exemple 3
Remarque : cette représentation permet de déterminer certaines propriétés d'un
graphe.
Par exemple si le graphe présente une zone non bouclé, cette partie du marquage
une fois atteinte constitue un arrêt de l'évolution du RdP et celui-ci sera déclaré
avec blocage.
Exemple
Exemple
Figure 3
Figure 4
ARBORESCENCE DE COUVERTURE
Un graphe de marquage ne peut plus être construit quand le réseau est non borné
c-à-d quand le nombre de marquages accessibles est infini. D'où le recourt au
graphe dit de couverture. C‘est un graphe à nombre de marquages fini.
Pas 1 :
A partir du marquage initial M0, il faut indiquer toutes les transitions validées et
les marquages accessibles successeurs correspondants.
Si un des marquages est strictement supérieur à M0, on met la variable "" pour
chacune des composantes supérieures aux composantes de M0.
Pas 2 :
Pour chaque nouveau marquage Mi, on fait soit le pas 2.1 soit le pas 2.2
suivants:
Pas 2.1 :
S‘il existe sur le chemin de M0 jusqu‘à Mi (ce dernier exclut) un marquage Mj =
Mi alors Mi n‘a pas de successeurs.
Pas 2.2 :
Sinon, on prolonge le graphe avec les successeurs Mk (Mi): Une composante
" " de Mi reste une composante " " de Mk . S‘il existe un marquage Mj sur
le chemin de M0 à Mk tel que Mk > Mj, alors on met " " pour chacune des
composantes supérieures aux composantes de Mi.
Remarques
- Le marquage symbolique " " désigne un nombre de jetons dans une place Pi
qui peut atteindre un nombre très grand (l'infinie). Il représente en effet une
infinité de marquages possibles.
GRAPHE DE COUVERTURE
Exemple
. M0(T1> M1=(0,1,1)
· M3(T1> M4=(0,1,)
Exemple
Début novembre
Exemple
Soit le réseau suivant :
suivant :
Conclusion
A partir des graphes de marquage et de couverture, il est possible d'identifier
certaines propriétés de base. Le RdP de l'exemple précédent "Arbre et graphe de
marquage" est ainsi non borné, non-vivant, non ré-initialisable, etc.
Il est possible d'identifier dans le cas des RdP non bornés les places dont le
marquage va croître indéfiniment ou les réseaux dont certaines transitions non
vivantes (qui ne seront jamais franchissables pour un Mo donné).
Ces graphes servent enfin à identifier l'ensemble des marquages admissibles et
les chemins qui permettent de les atteindre.
Ceci est utile dans le cadre de l'analyse des systèmes de production (stock qui
croit indéfiniment, machine peu ou pas utilisée, cheminement des produits, etc.).
PROPRIETES DES RDP
A-Propriétés structurelles
Dans une seconde partie, nous considérons les propriétés dépendantes, c'est à
dire les propriétés qui sont dépendantes du marquage initial Mo.
Conflits et parallélisme
- Conflit effectif: Deux transitions t1 et t2 sont en conflit effectif pour un marquage M ssi
elles sont en conflit structurel et sont franchissables de façon exclusive i.e.
In(t1) In(t2)
p P, M(p) ≥ Pre(p,t1) et M(p) ≥ Pre(p,t2) et
p P, M(p) < Pre(p,t1) + Pre(p,t2)
Situation de Famine :
« Famine (starvation) : Un processus (une partie du réseau) est en situation de famine s‘il se
voit refuser l‘accès à une ressource pendant un temps indéfini. »
Le modèle des RDP de base n‘impose pas de politique pour résoudre les conflits et
ordonnancer le franchissement des transitions.
Il se peut donc qu‘un processus soit privé, pendant une période indéfinie d‘une
ressource, car la séquence des transitions franchies ne lui permet jamais de consommer cette
ressource.
RESEAUX DE PETRI REMARQUABLES
Convergence, Divergence
Graphe d’états
Un RdP est un graphe d‘états si est seulement si toute transition a exactement
une place d‘entrée et une place de sortie.
Réseau pur: C‘est un Réseau de Pétri qui ne contient pas de transition ayant la même place
en Entrée et en Sortie, c‘est à dire sans boucle élémentaire.
Exemple de conflit
t1 ou t2 et t2 ou t3 ← Dépendance entre les conflits.
Réseaux de Pétri Purs
Un RdP pur est un réseau dans lequel il n‘existe pas de transition ayant une
place d‘entrée qui soit à la fois place de sortie de cette transition.
Figure 1 et 2
Exemple
Soit le réseau de Petri suivant, étudier l‘évolution :
M0 = 1 1 0 0
M1 = 0 0 1 1
M2 = 0 1 2 0 blocage !
Transition 1 fois vivante pour M0
Une transition t est dite une fois vivante pour M0 si et seulement si elle est
franchissable (tirable) une fois à partir de M0.
Transition vivante
Une transition Tj est vivante pour un marquage initial Mo, si pour tout marquage
accessible, il existe une séquence de franchissement qui contienne Tj à partir de
ce marquage accessible :
Cela signifie que quelle que soit l'évolution, il subsistera toujours une possibilité
de franchir Tj.
Transition quasi-vivante
Une transition Tj est quasi-vivante pour un marquage initial Mo s‘il existe une
séquence de franchissement qui contienne Tj à partir de Mo :
RdP vivant
un RdP est vivant pour un marquage initial Mo si toutes ses transitions sont
vivantes pour Mo.
RdP quasi-vivant
un RdP est quasi-vivant pour un marquage initial Mo si toutes ses transitions
sont quasi-vivantes pour Mo. un RdP vivant est quasi-vivant.
En résumé :
Un réseau de Petri exempt de blocage peut être vivant ou pseudo-vivant.
Un réseau de Petri qui possède un marquage atteignable bloquant n'est ni
vivant, ni pseudo-vivant.
Définition: une place Pi est bornée pour un marquage initial Mo, si pour tout
marquage accessible à partir de Mo, le nombre de jetons dans Pi est fini, soit :
- Un RdP est borné pour un marquage initial Mo, si toutes ses places sont
bornées pour Mo.
Figure 2.1
Remarque:
Borné: est une propriété dépendant du marquage initial. Pour un RdP borné, on
dira également que le nombre d'états accessibles à partir de l'état initial est fini,
le graphe d'états équivalent peut donc être construit. Lorsque la borne est égale à
1, le RdP est dit Sauf ou binaire
Exemple
Remarque
Intérêt physique de la notion de bornage: la notion de réseau borné et de places
bornées pour un marquage initial M0 assure au concepteur la ―non explosion‖
des marques dans une ou plusieurs places. Dans le monde de la Productique, une
place non bornée peut correspondre à un stock qui, du fait d‘un fonctionnement
de l‘atelier différent du fonctionnement nominal (cas très fréquent dans la réalité
industrielle), ne cesse d‘augmenter.
Exemple
Enoncé : Soit une machine dont les états sont soit en marche soit en arrêt (son
état initial). Proposez un RdP qui compte le nombre de passage de cet état dans
la valeur marche. Est-il borné ?
Réponse :
• Un Réseau de Pétri est dit borné ssi toutes les places sont bornées
5- RdP à capacités
Un RdP à capacités est un RdP dans lequel des capacités (nombres entiers
strictement positifs) sont associées aux places. Le franchissement d‘une
transition d‘entrée d‘une place Pi dont la capacité est cap(Pi) n‘est possible que
si le franchissement ne conduit pas à un nombre de jetons dans Pi qui est plus
grand que Cap(Pi).
Le franchissement de T1 conduit à 2 jetons dans P2 d'où T1 ne peut plus être
franchie.
Remarque
Si une transition Tj est vivante alors, à tout instant, on sait que Tj peut être
franchie dans le futur. Dans le cas d‘un RdP modélisant un système fonctionnant
en permanence, si une transition n‘est pas vivante et si une fonction du système
est associée au franchissement de cette transition, cela veut dire qu‘à partir d‘un
certain instant, cette fonction ne sera plus disponible dans le futur, ce qui peut
traduire une erreur ou une panne.
RDP non vivant
Exemple
,
La transition T2 n‘est plus vivante et le marquage
Solution : Cet RdP est borné (Sauf), avec blocage, donc il est non vivant et non
propre. Cependant il est quasi- vivant.
Type de structure Ce que l'on peut trouver... Ce que l'on ne trouvera pas...
Graphe d'état :
Toute transition a une place en
amont et une place en aval
Graphe d'événement :
Toute place a une transition en
amont et une transition en aval
Solution
Quasi - vivant
Blocage
Ré-initialisable
Exemple
Problèmes pratiques
Les protocoles de franchissement et les conditions de franchissabilité
décrites précédemment ne prennent pas en compte la notion de temps. En effet,
on fait évoluer le marquage d'un RdP sans prendre en compte ni la chronologie
ni la durée des événements. Il est donc indispensable, pour l‘application, de fixer
un certain nombre de règles qui vont être décrites plus loin. Ces règles sont
issues des contraintes temporelles imposées par les systèmes physiques. Elles
sont issues des deux considérations suivantes :
- Tout événement a une durée non nulle.
- Deux événements indépendants ne peuvent être simultanés.
L‘évolution du marquage dans un RdP, peut alors dépendre du temps de séjour
dans une place ou du temps de franchissement d‘une transition donnés.
Règles complémentaires
Les règles suivantes sont issues des remarques précédemment faites,
regardant l‘aspect temporel. Les propositions essentielles concernant ces points
sont abordées ici, laissant délibérément de côté les définitions plus spécifiques
qui seraient utiles pour des applications bien particulières.
Occurrences externes
La possibilité est offerte de conditionner le franchissement d'une transition à un
événement externe (occurrence). Le nom de l'occurrence est alors spécifié en
regard de la transition considérée. Il est alors nécessaire de proposer un
chronogramme sur lequel figurent toutes les occurrences en fonction du temps
RdP P-temporisé
Soit le RdP P-temporisé de la figure suivante. Ce réseau a été choisi
suffisamment simple pour fournir un exemple clair mais cependant significatif.
Les places P1, P2, P3 sont respectivement temporisées à 2, 3 et 1 unités de
temps, comme il est indiqué sur le modèle.
Au début de la séquence, le jeton situé dans la place P3 y séjourne 1 unité de
temps. T2 est franchie, distribuant un jeton dans chacune des places P1 et P2.
Deux unités de temps plus tard, le jeton de P1 est disponible, mais ne peut
franchir la transition T1 avant que le jeton de P2 soit disponible à son tour. T1
est alors franchie et l‘on retrouve la situation initiale.
L‘ordre des marquages est ici rigoureusement le même que celui qui serait
obtenu sans temporisation.
Cependant, une différence de comportement apparaît si l‘état de disponibilité
des jetons est considéré ici, les jetons des places P1 et P2 ne sont pas tout le
temps disponibles : le jeton de P1 est rendu disponible avant le jeton de P2.
Ainsi, si ce réseau est intégré dans un modèle plus important, les comportements
globaux peuvent différer (figure suivante).
Dans l‘exemple précédent, le jeton qui apparaît dans la place P1 est capté par la
transition T3 deux unités de temps après son arrivée dans cette place. Dans ce
même réseau qui serait démuni de toute temporisation, la situation serait
conflictuelle (ainsi que cela va être présenté plus loin), et le marquage pourrait
alors prendre deux évolutions différentes en fonction de la levée proposée pour
ce conflit.
RdP T-temporisé
De manière similaire, voici un RdP T-temporisé permettant de présenter le
principe de cette structure. Le réseau a été choisi suffisamment simple pour
fournir un exemple clair mais cependant significatif
Au début de la séquence, la transition T1 n‘est pas validée (pas de jeton dans
P1). La transition T2 est validée, mais temporisée à 3 unités. Lorsque les trois
unités sont écoulées, T2 est franchie et restitue immédiatement le jeton à la place
P2, tout en donnant un jeton à la place P1. Les transitions T1 et T2 sont alors
validées, mais cette fois, T1 est prioritaire puisque sa temporisation n‘est que de
2 unités de temps. T1 est alors franchie, fournissant un jeton à la place P3, jeton
qui y séjourne une unité de temps. T3 est alors franchie et fournit un jeton en P2.
Le cycle recommence.
Remarque :
- L‘ensemble des RdP simples inclut l‘ensemble des RdP à choix libre, qui
inclut l‘ensemble des RdP sans conflit, qui inclut lui-même l‘ensemble des
graphes d‘événements
- L‘ensemble des graphes d‘états est inclus dans l‘ensemble des RdP à choix
libre.
RdP pur
C‘est un RdP dans lequel il n‘existe pas de transition ayant une place d‘entrée
qui soit également place de sortie de cette transition.
Bornitude du réseau
Un RdP est dit borné si le nombre de marques de toutes ses places a une limite
finie. Ceci confirme par exemple qu'il n'y a pas accroissement pléthorique du
nombre de pièces dans un stock. Cette étude est abordée lors de la détermination
du P-invariant ou invariant lié aux places
K- borné: Un RdP est k-borné si le marquage de chaque place est toujours
inférieur ou égal à k, quelle que soit la séquence de franchissement réalisée.
Vivacité du réseau
A partir du marquage initial, qui modélise l'état initial d'un processus, il doit être
observé que toutes les transitions du réseau sont toujours franchissables, quelle
que soit l'évolution du système. Si tel n'est pas le cas, cela signifie qu'un sous-
ensemble du modèle proposé est inaccessible au marquage à partir d'un certain
point d'évolution du système, donc non vivant. Dans la majeure partie des cas, il
est alors estimé que le modèle a été mal conçu, puisqu'il devient en partie inutile
à partir d'un certain stade. Seule une réinitialisation de ce système permet alors
d'alimenter éventuellement ce sous-RdP. Tout concepteur de réseau aura à cœur
d‘en assurer la vivacité.
Vivant: Un RdP est vivant si pour toute transition et pour tout marquage
accessible, il existe une séquence de franchissement permettant de franchir cette
transition.
N.B. Un RP vivant ne peut pas se retrouvé en situation d‘interblocage.
Exclusion mutuelle
Les systèmes physiques présentent souvent une exclusion mutuelle des
situations (position marche/arrêt) ou une exclusion de l‘existence ou la non
existence d‘un objet sur un site. Ce principe de l‘exclusion mutuelle se traduit
dans le modèle réseau de Petri par la présence exclusive d‘un jeton dans une
place au détriment d‘une ou de plusieurs autres places. Ainsi, le modèle peut
gérer à l‘aide d‘un jeton, la disponibilité d‘une ressource (machine, robot,
stock). Un jeton peut également gérer le partage d‘une ressource (jeton tournant
dans le modèle).
Réinitialisation
La réinitialisation est le fait de s'assurer que le système est apte à retrouver son
état initial. Cette caractéristique est très souvent essentielle, puisqu'elle garantit
la possibilité de retour aux conditions initiales d'un équipement, quelle que soit
l'évolution de l'état de celui-ci. Au niveau du modèle qui représente ce système,
ce problème est abordé grâce à l'étude des T-invariants ou invariants de
transitions.
Les réseaux de Petri, appuyés sur une solide théorie mathématique, permettent
de vérifier de nombreuses propriétés fortes utiles. Je fais grâce des notations
mathématiques, elles se retrouvent facilement.
Le caractère k-borne (on dit binaire ou sauf, lorsque k = 1) : il permet d‘assurer
que jamais le marquage ne dépassera la valeur k (la décidabilité de cette
propriété est une conséquence du lemme de Karp et Miller) ;
Remarque :
- Un réseau de Petri binaire (conçu pour être binaire, ce qui arrive lorsqu‘on
simule des variables booléennes) présente un critère supplémentaire de
cohérence : si une place acquière plus d‘un jeton, le réseau est mal conçu.
INCONVENIENTS :
• dépend du marquage initial,
• difficile à réaliser quand le graphe des marquages accessibles est de grande
taille.
Les méthodes d’analyse des RdP peuvent être classées en trois groupes:
- Méthode d‘arbre de couverture
Introduction
Les techniques d‘analyse présentées ici se basent sur l‘équation fondamentale
du franchissement que nous avons vue au début de ce cours. L‘analyse par
équations matriciel (algèbre linéaire) permet d‘étudier des propriétés d‘un réseau
(caractère borné, vivacité) indépendamment d‘un marquage initial.
Techniques algébriques
Pour l‘analyse des réseaux de Petri, il est utile de préciser que l‘équation d‘état
x = x0 + vW déterminée au paravent peut être exploitée pour résoudre des
problèmes d‘accessibilité et de conservation, notamment. Elle constitue une
alternative algébrique à la méthode graphique basée sur l‘arbre de recouvrement,
et elle peut s‘avérer très puissante pour identifier des propriétés structurelles qui
dépendent principalement de la topologie du graphe du réseau de Petri traduite
par la matrice d‘incidence W.
Par exemple, en ce qui concerne l‘accessibilité, si l‘on regarde l‘équation d‘état
x0 = x + vW, on peut voir qu‘une condition nécessaire pour que l‘état x soit
accessible depuis l‘état initial x0 est que l‘équation vW = x − x0 possède un
vecteur v solution dont toutes les coordonnées sont des entiers naturels. Ce
vecteur est le vecteur caractéristique déjà évoqué avant, dont les coordonnées
précisent le nombre de fois que chaque transition est franchie pour « tenter »
d‘atteindre l‘état x depuis l‘état x0.
Étant donné que cette dernière égalité est vraie pour tout état x accessible depuis
x0, cela signifie que le réseau de Petri est conservatif par rapport au vecteur de
pondération γ = lT.
Composante conservative
Chaque p-invariant minimal donne lieu à un invariant de marquage. Cette
relation s‘interprète par rapport au système physique comme la
conservation d‘une quantité (nombre de ressources, …).
Exemple 1
Invariants de places : le jeton est soit dans p1, soit dans p2, ce qui permet
d‘écrire M(p1) + M(p2) = 1. Ce qui veut dire que la machine est soit libre soit
occupée.
Composantes conservatives, invariants de places On cherche des propriétés
indépendantes du marquage initial, donc découlant directement de la structure
du réseau. Un invariant linéaire de places est une fonction linéaire du marquage
des places, ne dépendant pas du marquage initial du réseau et dont la valeur est
une constante. Il correspond à une contrainte sur les états du système qui sera
toujours vérifiée, quelles que soient ses évolutions.
Exemple 2
Lorsqu‘on considère l‘exemple des 4 saisons, modélisé par le RdP représenté sur
la figure suivante, on peut noter que la somme du nombre de marques présentes
dans le RdP à un instant donné est toujours égal à un (conservation du nombre
de marques): M(P1) + M(P2) + M(P3) + M(P4) = 1.
Cette égalité exprime qu‘on ne peut avoir qu‘une saison à la fois. D‘autre part,
elle implique que ∀i ∈ {1, 2, 3, 4}, M(Pi) ≤ 1. Le RdP est donc sauf.
Sur l‘exemple ci‐contre, on voit bien que, quelle que soit l‘évolution, il y aura
toujours une et une seule marque pour l‘ensemble des 4 places. Donc, à tout
instant, on a m1 + m2 + m3 + m4 = 1. Cet invariant a une signification
évidente : à tout instant, on est dans une et une seule saison
En effet, soit X ∈ ZP un vecteur entier sur les places. Si W(t) désigne la teme
colonne de la matrice d‘incidence W, alors l‘équation de changement d‘état peut
s‘écrire :
Autre définition
Soit un vecteur colonne Q = [q1 q2.. qn]' où qi, positif ou nul, correspond à la
pondération du marquage de Pi (le marquage mi est donné par M). Q est un P-
invariant ⇔ Q'.W=[0].
À partir d‘un marquage initial, le marquage d‘un RdP peut évoluer par
franchissement de transitions, et, s‘il n‘y a pas de blocage, le nombre de
franchissements de transition est illimité.
Néanmoins, on ne pourra pas atteindre n‘importe quel marquage et on ne pourra
pas franchir n‘importe quelle séquence de transitions. Des INVARIANTS
permettent de caractériser certaines propriétés des marquages accessibles et des
transitions franchissables, quelle que soit l‘évolution.
Exemple
A partir des relations précédentes, déterminer les composantes conservatives et
les invariants linéaires de places
Solution
Enoncé : Donner W de l'exemple suivant. Trouver un P-invariant à partir des
équations linéaires.
Matrices d'incidence
P-invariant : En formant Q'.W = 0, on obtient 5 équations. Les trois premières
sont liées (C1+C2+C3=0), les deux dernières également (C4+C5=0). En
supprimant C3 et C5, il reste alors 3 équations où q1 = q2 = q3 = q4.
Un P-invariant est : Q = [1 1 1 1]'. ||Q|| = {P1, P2, P3, P4}.
Typiquement, le RdP de l'image de cet exemple peut modéliser les changements
d'états d'une machine sous la forme d'un graphe d'état : P1 = en attente, P2 = en
production, P3 = en déchargement, P4 = en panne. Le P-invariant décrit le fait
que cette machine est dans un état et un seul à chaque moment.
Exemple introductif
En reprenant le RdP de la partie précédente, on constate que la séquence de
franchissement T1T2 réinitialise le réseau. On appelle cette propriété un invariant
de franchissement.
Exemple
Solution
Exemple
Soit le réseau R3
{p1, p2, p3} et {p1, p2} sont des exemples de composantes conservatives.
Définition
Exemple
Solution
On conçoit qu'un RdP puisse avoir plusieurs P-invariants, d'où:
Tout P-invariant est une combinaison linéaire de P-invariants minimaux
Exemple
Propriétés
-Si un RdP possède un p-invariant alors une combinaison linéaire des nombres
de marques dans ses places est constante.
- Si un RdP possède un p-invariant dont toutes les composantes sont strictement
positives alors il est borné.
- Si un RdP possède un p-invariant dont toutes les composantes sont égales à 1,
alors le nombre de marques dans ce réseau est constant.
Théorème : un RdP est répétitif si et seulement si:
Remarque
X est un de ces p-invariants. Soit le réseau marqué N3 = < R3; M0> avec :
T-invariant
Définition
T-invariant
Soit S est un vecteur caractéristique d'une séquence de
franchissement σ possible. S est un T-invariant ⇔ W.S = [0].
Solution
Il y a un seul t-invariant :
Deux séquences de tir sont associées à cet unique t-invariant: t1t2 et t2t1, mais à
partir de M0 seule t1t2 est réalisable (franchissable).
Réponse:
Exemples
Soient à nouveau les deux modèles des figures 1.1 et 1.2 : où les poids sont
indiqués en regard des arcs lorsqu‘ils ne sont pas égaux à 1.
Les T-invariants :
- Pour le RdP de la figure 1.1 :
Le vecteur Sa1 =(1,1) répond au problème car Wa*Sa1 = 0. Ceci signifie que le
tir successif de T1, puis T2 (séquence <S1,S2)>, replace le système dans sa
configuration initiale.
Cette fois, le tir des transitions T2 et T4 peut se faire selon les deux ordres.
Ainsi, deux séquences répondant au vecteur Sb1 sont possibles : S =<
T1T3T2T4>, S = < T1T3T4T2>.
Remarque
m1, m 2 , m3 sont les marquages des places P1 ,P2, P3 et K1, K2 sont des
constantes dépendantes du marquage initial.
D‘après le marquage initial proposé, ces constantes sont égales à 2.
Exemple
Figure 1 Figure 2
Exemple
Le produit C* X‘ a la forme :
s1 = (t1 ; t2 ; t3) et s2 = (t4 ; t5 ; t6) sont deux invariants de transitions pour le réseau marqué
de la figure précédente.
Propriétés
- Propriété 1 (Bornitude) :
Le RdP est structurellement borné si et seulement si
- Propriété 2 (vivacité)
Il n‘existe pas de marquage M0 tel que le réseau de Petri < R;M0 > soit vivant si
Tous les éléments de fTC sont négatifs ou nuls avec au moins un qui est
strictement négatif).
- Soit R un RdP : R est conservatif SSI il existe un P-semi-flot f tel que ||f|| = P
(On dit autrement, il existe un vecteur non nul « f » de N P qui vérifie f T C = 0.).
- R est consistant SSI il existe un T-semi-flot v tel que ||v|| =T (on dit autrement,
il existe un vecteur non nul « v » de N T qui vérifie C. v = 0 )
- R est répétitif SSI il existe un vecteur non nul « v » de N T qui vérifie C. v ≥ 0 .
Abréviations et extensions :
Abréviations : Des représentations simplifiées utiles pour alléger le graphisme
mais auxquelles on peut toujours faire correspondre un RdP ordinaire (c.-à-d. un
RdP autonome marqué fonctionnant selon les règles prédéfinies).
Remarque : Toutes les propriétés des RdP ordinaires se conservent pour les
abréviations moyennant quelques adaptations, tandis que ces propriétés ne se
conservent pas toutes pour les extensions.
a. RdP généralisé
Un RdP dans lequel des poids (nombres entiers strictement positifs) sont
associés aux arcs.
b. RdP à capacité
Un RdP dans lequel des capacités (nombres entiers strictement positifs) sont
associés aux places. Le franchissement d‘une transition d‘entrée d‘une place Pi
dont la capacité est cap(Pi) n‘est possible que si le franchissement ne conduit
pas à un nombre de jetons dans Pi qui dépasse cette capacité.
c. RdP coloré
Un RdP coloré comporte des jetons auxquelles on attribue des couleurs
(possibilité de représenter des processus parallèles)
f. RdP continu
Leur particularité est que le marquage d‘une place est un nombre réel (positif) et
non plus un nombre entier.
Remarque :
- Les RdP généralisés, à capacité, coloré sont des abréviations des RdP
ordinaires. Toutes les propriétés que nous allons voir dans ce qui suit peuvent
donc être adaptées à ces modèles.
- Les RdP à arcs inhibiteurs, les RdP à priorités, les RdP non autonomes et les
RdP continus sont des extensions des RdP ordinaires. Certaines propriétés des
RdP ordinaires leur sont applicables mais pas toutes.
Vivacité :
Une transition Tj est vivante pour un marquage initial M0 si pour tout marquage
accessible Mi *M0, il existe une séquence de franchissement S qui contient Tj
à partir de Mi (c-à-d il subsistera toujours une possibilité de franchir Tj).
Un RdP est vivant pour un marquage initial M0 si toutes ses transitions sont
vivantes pour M0 (c-à-d aucune transition ne sera jamais définitivement
infranchissable)
Une transition source ts d‘un réseau de Petri (R,M0) est une transition de
T telle que
Une transition puits tp d‘un réseau de Petri (R,M0) est une transition de T
telle que
Communication asynchrone
Section critique
Deux processus concurrents demandent l‘accès à une section critique en
exclusion mutuelle. La procédure d‘accès se décompose de la manière suivante :
- Demander l‘accès à la section critique ;
- Utiliser la ressource en section critique ;
- Libérer l‘accès à la section critique.
VI. METHODES DE REDUCTION
1) Introduction :
Pour faciliter les algorithmes dont la complexité est fonction du nombre d‘états
et de transitions, on peut effectuer une simplification du réseau en supprimant
des états tout en conservant ses propriétés. Les états dits « substituables »
peuvent être retirés. Dans un cadre physique, il s‘agit de réduire le degré
d‘abstraction du modèle.
La construction du graphe des marquages est certes une méthode efficace pour
trouver les propriétés d‘un RdP de taille modeste, mais cela peut être très long et
fastidieux pour un RdP qui a de nombreux marquages accessibles. Pour cela,
nous proposons dans cette section d‘utiliser quelques méthodes de réduction qui
permettent d‘obtenir à partir du RdP initial un autre RdP plus simple mais qui
possède certaines propriétés identiques à celle du RdP initial.
Les transitions peuvent à leur tour faire l‘objet d‘une réduction. L‘exemple est
celui d‘une transition neutre, c‘est-à-dire qui ne modifie pas le marquage. Dans
ce cas nous avons la disposition Pre(.,t) = Post(.,t). Retirer une pareille transition
est susceptible d‘altérer le caractère vivant du réseau. En effet, si la transition
n‘était pas franchissable, en la retirant on peut retirer la seule partie morte du
réseau.
Deux transitions vérifiant Pre(.,t1) = Pre(.,t2) et Post(.,t1) = Post(.,t2) sont
identiques. L‘une d‘elles peut être supprimée.
Attention :
Le RdP obtenu après simplification n‘est pas équivalent du point de vu
fonctionnel au RdP initial, c-à-d qu‘il ne représente plus le système modélisé au
départ.
Les règles de simplification ne permettent pas de préserver toutes les propriétés,
donc un soin particulier doit être accordé à l‘application de ces réductions et à
l‘élaboration des propriétés
a- Principe :
Une place Pi peut être substituée si elle remplit les 3 conditions suivantes :
- les transitions de sortie de Pi n‘ont pas d‘autres places d‘entrées que Pi ;
- il n‘existe pas de transition Tj qui soit à la fois transition d‘entrée et de
sortie de Pi ;
- au moins une transition de sortie de Pi n‘est pas une transition puit.
Méthode
• on supprime la place
• on supprime les transitions en sortie
• on crée une transition ti,j par couple ti , tj des transitions en entrée et sortie de
P
Exemple :
La place P2 du RdP ci-contre remplit ces conditions, donc elle peut être
substituée.
Elles sont : borné (mais pas la valeur de la borne), sauf, vivant, quasi-vivant,
sans blocage, …
Exemple 1:
Sur le RdP ci-contre (a), on voit que si la transition T1 est franchie, alors la
transition T2 le sera tôt ou tard parce qu‘il n‘y a aucun autre arc arrivant sur T2
que celui qui vient de P2. On peut alors substituer à la place P2 et aux deux
transitions (d‘entrée et de sortie) une seule transition appelée T12 (b).
Exemple 2:
Nous avons ici un cas similaire montrant qu‘il n‘y a pas de restriction sur
la transition T1. En effet, les places d‘entrée de T1 sont les places d‘entrée de
T12 et si T1 a d‘autres places de sortie que P2, ce sont également des places de
sortie de T12. On notera également que la place P2 est marquée. Comme cette
marque doit nécessairement arriver dans P3, on la met dans cette place après la
substitution.
Exemple 3 :
Toute marque arrivant en P3 doit passer dans P4, qu‘elle vienne de P1 ou
de P2. La substitution consiste à mettre une transition T13 qui correspond à la
séquence de franchissement T1T3 et la transition T23 qui correspond à la
séquence de franchissement T2T3.
Exemple 4 :
Une marque arrivant dans P2 passera tôt ou tard soit dans P3, soit dans
P4. L‘application de la réduction conserve cette propriété, d‘où la substitution
par les deux transitions T12 et T13 qui correspondent respectivement aux
séquences de franchissement T1T2 et T1T3.
Exemple 5 :
Une marque dans P3 peut provenir soit de P1, soit de P2 et aboutir soit
dans P4, soit dans P5. Tous ces cas de figures seront conservés après
substitution en utilisant les transitions T13, T23, T14 et T24.
Remarque :
Dans le cas où la place à substituer est marquée:
- si elle a une seule transition de sortie alors le marquage passe à la place
suivante;
- si elle en a plusieurs, alors il faut considérer tous les cas de figures. Chaque cas
est obtenu en passant le marquage à travers une de ces transitions de sortie.
Exercice
Réduire le RDP suivant :
Exemple
a- Principe :
Une place Pi est implicite si elle remplit les conditions suivantes :
Les propriétés conservées par la réduction sont : borné (mais pas la valeur de la
borne), vivant, quasi-vivant, sans blocage. Cependant, si le RdP est sauf après
réduction, le RdP initial peut ne pas l‘être.
b- Exemple :
Condition 1 : cette place n‘est place d‘entrée que de T3. Pour franchir T3, il
faut une marque dans P3, donc il a fallu franchir T2 avant de pouvoir franchir
T3. Pour franchir T2, il fallait une marque dans P1 et cette marque ne pouvait
provenir que du franchissement de T1. Or, le franchissement de T1 met une
marque dans P2 et il n‘y a aucune autre sortie de P2 que la transition T3. Donc,
s‘il y a une marque dans P3, il y en a aussi dans P2.
Exercice :
Pour chacun des RdP suivants, déterminer si P2 satisfait les conditions d‘une
place implicite et éventuellement donner le RdP obtenu après la réduction R2.
Réponse :
La place P2 du RdP A satisfait la condition 2 mais pas la condition 1 parce qu‘il
n‘y a pas de marque dans P2 alors que P3 contient une marque. La place P2 ne
peut pas être supprimée, sous peine de ne pas conserver certaines propriétés du
réseau initial.
La place P2 du RdP C n‘est pas une place implicite. En effet, bien que la
condition 1 soit satisfaite, la condition 2 ne l‘est pas puisque la transition T4 est
une transition source.
Exemple
Réduire ce RDP
4) Réduction R3 : Transition neutre :
a- Principe :
Une transition Tj est neutre si et seulement si l‘ensemble de ses places d‘entrée
est identique à l‘ensemble de ses places de sorties. Nous pouvons supprimer une
transition neutre Tj et ses arcs entrants et sortants, si et seulement s‘il existe une
transition Tk différente de Tj, telle que Post(Pi, Tk) = Pré(Pi, Tj) pour toute
place Pi d‘entrée de Tj.
Exemple :
Exemple :
Les transitions T1 et T2 sont identiques !
Les propriétés conservées par la réduction sont : borné (mais pas la valeur de la
borne), sauf, vivant, quasi- vivant, sans blocage, …
b- Exemple :
Exemple
Réduire ce RDP
Exercice :
Méthode
• Suppression des arcs Pi → tj et tj → Pi où Pi est la place impure
• Suppression de la transition si elle est isolée
Exemple
Exemple
Réduction de ce RDP
On peut réduire tj si :
Méthode
• Supprime de la transition tj
• Les transitions en entrée de Pi + k sont celles de Pi et Pk. Idem pour les transitions en sortie.
Exemples
Exemple 1 de réduction Rb
Exemple 2 de réduction Rb
Exercice
Réduire ce réseau
Exercice
Remarque:
Conclusion
Introduction
Du point de vue de la modélisation, les réseaux de Petri, s'ils modélisent
aisément les synchronisations, le partage de ressources et d'autres mécanismes
similaires, ils présentent toutefois deux limitations importantes. Il est impossible
de transporter une information structurée car les places ne contiennent que des
jetons uniformes et il faut définir de manière explicite le comportement d'objets
différents mais qui se comportent de manière identique. Pour pallier à ces
limitations différentes extensions ont été proposées, dont les deux plus
importantes sont les réseaux à prédicats et les réseaux colorés (ces deux modèles
étant par ailleurs très proches l'un de l'autre) [Gen81] , [Jen81b].
Dans le cas des réseaux colorés les idées de base sont les suivantes :
- on attache à chaque place et à chaque transition un domaine de couleurs.
Chaque jeton contenu dans une place est coloré par l'une des couleurs du
domaine de la place. Chaque couleur d'une transition représente une manière
différente de franchir la transition. Si l'on fait le rapprochement (approximatif)
avec un langage de programmation dans lequel les places symbolisent des
variables et les transitions des procédures, le domaine d'une place est le type de
la variable et le domaine de la transition est le type de l'unique paramètre de la
procédure.
Remarque :
Dans cette extension, une information est associée aux jetons. Cette information
est appelée couleur. Cette information supplémentaire permet de modéliser des
comportements plus complexes ou de simplifier fortement la structure de RdP
non colorés en « mettant en facteur » des parties de graphe similaires.
Définition
Couleur
Une couleur est un n-uplet d'un ensemble donné Cn, éventuellement indicé, que
l'on associe à un jeton et que l'on note <ci,cj,..ck,..>.
FIFO, capacités 4
Exemple
Notation :
- Couleur neutre notée < ● >
- Fonction identité Id : Id(Ci) = Ci
- Cela génère un jeton de couleur fjk(Cx) (ici, Cb) dans la place aval Pk et
un jeton de couleur fjk'(Cx) (ici, Cb') dans la place aval Pk'.
P : ensemble de places
T : ensemble de transitions
C : ensemble fini de couleurs
ω : fonction associant à chaque place et à chaque transition un ensemble de
couleurs possibles Pré et Post : fonctions des arcs. !! Chaque arc porte une
fonction f(C).
M0 : marquage initial
Remarques:
Exemple
Exemple
Dans ce nouveau type de réseau de Petri, les jetons sont dits colorés de par le
fait qu‘ils ont maintenant chacun une identité propre. Chaque jeton de ce modèle
représente à présent une machine spécifique. Les deuxpremières machines,
symbolisés par les couleurs <1> et <2>, sont entrain de traiter des pièces de type
C1 . La machine 3 traite une pièce de type C2. Les jetons <1>, <2> et <3> sont
alors respectivement situés dans les places PC1, PC1 et PC2.
Les transitions représentent, pour chaque machine le passage d'un type d'usinage
à l'autre. Ces franchissements sont indépendants pour chaque couleur. Le RdPC
est plus synthétique, mais les marques contiennent plus d'information
puisqu'elles possèdent une identité. Les couleurs sont dites ici, à une dimension,
couleur de chaque machine.
Il faut noter que, pour cet exemple de coloration, les couleurs restent toujours
identiques à elles-mêmes. Autrement dit, elles ne sont pas amenées à être
transformées, elles sont simplement déplacées dans le modèle, occupant tour à
tour, soit la place PC1 ou la place PC2 selon leur état de travail.
Il sera vu plus loin que des fonctions peuvent être attribuées aux arcs d‘un
réseau coloré. Ces fonctions ont pour rôle de transformer les couleurs des jetons
et sont indiquées en regard de l‘arc concerné. En l‘occurrence, pour cet exemple,
les jetons n‘étant donc pas transformés, les fonctions appliquées sur ces arcs
seront les fonctions dites Identité. Par défaut, la mention Identité (Id), pourra
être éludée.
Dans ce réseau, les jetons <1>, <2>, <3> circulent indépendamment les uns des
autres, transcrivant bien ainsi le cahier des charges initial. Il est encore possible
de colorer à un niveau supérieur ce RdPC, en redonnant une dimension
supplémentaire à l‘espace des couleurs. Ce RdPC est à nouveau coloré en le
repliant et obtenant le RdPC de la figure suivante :
Pour toute représentation par RdPC, il convient de définir les fonctions attachées
aux arcs, en précisant quelles transformations impliquent chaque fonction vis-à-
vis de chaque couleur.
Exemple
Exemple
Une première solution est illustrée sur la figure suivante. Elle consiste à
dupliquer toutes les places et les transitions à l‘exception de la place initialement
marquée du serveur.
Une seconde solution est la solution des réseaux de Petri colorés permettant de
définir un modèle générique du clients-serveurs valide pour tout nombre (fini)
de clients et de serveurs.
Le passage du RdP (Figure droite) au RdP coloré (Figure gauche) est appelé
pliage, le passage du RdP colore au RdPest appelé dépliage.
Exemple
Les quatre marquages accessibles par le franchissement de t sont M′1, M2′, M3′,
M4′ avec :
– M′2 se diffère que M1′ que par le marquage de la place p6 qui devient
M′2(p6) =< 0, 0, 0, 1 > ;
– pour obtenir M3′ il suffit de changer dans M1′ le marquage de p2, M′(p2) =<1,
2, 0, 0 > ;
– quant au marquage M4′ il est identique à M3′ sauf pour la place p6, nous avons
alors M′ 3(p) = M2′(p6) =< 0, 0, 0, 1 >.
Dans le second RdP, une marque fait référence à la pièce b. Si on superpose les
deux RdPs, il est donc nécessaire de différencier deux types de marque: une
première que l‘on baptise <a> qui correspond au marquage du premier RdP et
une seconde baptisée <b> correspondant au marquage du second RdP.
On parle alors de couleur1. L‘ensemble des couleurs est note C = {< a >, < b
>}. On obtient alors le RdP coloré représenté sur la figure suivante. Chaque
transition est alors validée pour une couleur.
– La transition T1 est validée pour la couleur <a> mais pas pour la couleur <b>:
le franchissement de T1 pour la couleur <a> consiste a enlever une marque <a>
dans la place P3 et à ajouter une marque <a> dans la place P1;
– La transition T2 est validée pour la couleur <b> mais pas pour la couleur <a>:
le franchissement de T2 pour la couleur <b> consiste à enlever une marque <b>
dans les places P1 et P4 et à ajouter une marque <b> dans les places P2 et P3;
– La transition T3 est validée pour les couleurs <a> et <b> : le franchissement
de T3 pour la couleur <a> (respectivement <b>) consiste à enlever une marque
<a> (resp. <b>) dans la place P2 et à ajouter une marque <a> (resp. <b>) dans
la place P4.
Le marquage d‘un RdP coloré est maintenant défini pour chaque couleur. Par
exemple, sur le RdP coloré représenté sur la figure précédente, le marquage
Le marquage peut être ainsi défini par une matrice où chaque colonne
correspond à une couleur :
Il peut être aussi défini comme une application qui à une couleur donnée associe
un marquage:
Le marquage est donc une application de C → N4. Pour ne pas alourdir
l‘écriture, cette application est définie en utilisant des notations formelles:
Le marquage d‘un RdP coloré est défini pour chaque couleur et p eut être
représenté sous la forme :
- d‘une matrice à une seule colonne dont les éléments sont des combinaisons
linéaires des couleurs de chaque place.