Petri Nets


Original:  http://staff.um.edu.mt/jskl1/petri.html


Définition et idées de base

Définition

Le réseau de Petri marquée (P-net) est un 5-uplet (P, T, I, O, M) où P et T sont des ensembles finis non vides de places et de transitions respectivement. (Les ensembles P et T ont pas d’éléments communs.)
I est la fonction dite d’entrée: I: PxT-> N, où N est l’ensemble des nombres entiers non négatifs. La valeur I (p, t) est le nombre de (ARC) dirigés de la place p à la transition t.
O est la fonction de sortie dite: O: TxP-> N, où la valeur O (t, p) est le nombre d’arcs de la transition T à la place p.
Ainsi, le 4-tuple (P, T, I, O) est un bipartite (dirigé) multigraphe dont les arcs connecter des nœuds de deux ensembles distincts (P et T).
M est le marquage des lieux initial: M: P -> N, où la valeur M (p) est le nombre de jetons dits qui sont situés dans la place p.

Interprétation

Une transition est activé si tous les lieux contiennent au moins autant de jetons comme ce est le nombre d’arcs de la place pour la transition. Une transition qui ne est pas activé est désactivé. Une transition permis peut être tiré. Pendant la cuisson chaque arc dont le critère est la transition retire un jeton de son départ (entrée) le lieu et chaque arc à partir de la transition ajoute un jeton à sa fin (sortie) lieu.
Du point de vue des lieux de modélisation représentent certaines conditions qui doivent être remplies pour certaines activités (tirs de transition) pour commencer. La cuisson modifie les marques de l’entrée et des lieux de sortie. Cela peut activer ou désactiver d’autres transitions, etc. Toutes les transitions permis qui ne sont pas mutuellement exclusifs peut être tiré en parallèle.
Il existe de nombreuses extensions à la théorie améliorer la puissance de modélisation de base de P-net de modèles de réseau. Réseaux de Petri ont deux (modélisation) capacités analytiques et descriptives. Pour plus de détails et pour la classification des différents types de Petri et les filets, visitez le monde de réseaux de Petri – voir la référence.

Dessin

Les places sont dessinés comme des cercles qui sont vides ou qui contiennent un certain nombre de jetons. Pour des raisons pratiques PetriSim ne tire pas de jetons de petits cercles remplis, mais chaque endroit contient un entier numéro (non négatif) de jetons. Nom du lieu se affiche en bas à droite de l’endroit.
Transitions sont dessinées comme des lignes courtes et épaisses. PetriSim affiche également le nom sur le côté inférieur droit de la transition. PetriSim permet soit horizontale (par défaut) ou direction verticale d’une transition. Transitions activés sont affichés avec une marque.
Arcs sont des lignes finis par une flèche. Points où les arcs de début / fin sont définis par l’utilisateur. PetriSim permet ne importe quelle longueur et la forme des arcs.


Exemple

L’image suivante (créé par PetriSim) est un exemple que les modèles d’une coopération entre les deux processus appelé producteurs et consommateurs:

 

Le producteur prépare les données et les écrit dans des tampons. Se il n’y a pas de tampon vide, le producteur doit attendre. Le consommateur lit les données fournies par le producteur. Le marquage de la place Empty_buffers initial est le nombre total de tampons disponibles (initialement tous les tampons sont vides). L’endroit Sémaphore assure que seul un processus peut travailler avec les données à la fois. Après la lecture des données du consommateur renvoie le tampon vide.
La photo ci-dessus montre le P-net à l’état initial, lorsque le producteur est prêt à commencer l’écriture de données, tous les tampons sont vides, le consommateur est prêt à accepter des données. Notez que la transition Producer_works est activé en raison de la jeton dans la place Producer_starts.

Image suivante montre le P-net après cuisson les Producer_works de transition. Cette image a été prise en mode PetriSim Simulation.

 

Notez comment tir déplacé le jeton de la place Producer_starts à l’endroit DONNÉES_PRÊTES. Cela a permis la transition Writing_data. Son tir à l’étape suivante déplace le jeton retour à placer Producer_starts, afin Producteur sera à nouveau dans son état initial. Tirs de Writing_data déplace également un jeton de Empty_buffers à Data_in_buffer. Un jeton de la place Sémaphore est prise seulement pour cette mise à feu (voir image suivante).

L’image suivante montre un raffinement du modèle ci-dessus. Voici les données à la fois d’écriture et de lecture peuvent prendre un certain temps, qui est représenté par deux autres endroits. Il ya maintenant deux transitions par opération représentant début et la fin de l’opération:

 

Dans ce modèle l’utilisation de Semaphore est évident. Soit lecture ou l’écriture prend le jeton de Semaphore, l’autre opération doit attendre jusqu’à ce que celui succès est terminée. Notez qu’il existe deux permis transition. L’une à cuire dans l’étape suivante est soit sélectionnée par l’utilisateur ou PetriSim sélectionne au hasard. Ce est une façon comment P-filets face à parallélisme. Dans la situation réelle les deux opérations (préparation des données par le producteur et la lecture des données par des consommateurs) sont indépendants et peuvent être effectuées en parallèle.

PetriSim manuel contient d’autres exemples.


Référence

Cette page contient un extrait de la notice PetriSim. Pour plus d’informations, visitez le monde de la page de Petri Nets qui contient de nombreux liens utiles et des références. Il vous pouvez vous abonner à la newsletter de Petri, vous pouvez obtenir une bibliographie complète et à jour, des informations sur de nombreux outils existants sur le Web, les réseaux de Petri standard, les réseaux de Petri gens, les événements, etc.

Comments are closed.