A Petri net (also known as a place/transition net or P/T net) is one of several mathematical modeling languages for the description of distributed systems. A Petri net is a directed bipartite graph, in which the nodes represent transitions (i.e. events that may occur, signified by bars) and places (i.e. conditions, signified by circles). The directed arcs describe which places are pre and/or postconditions for which transitions (signified by arrows). Some sources^{[1]} state that Petri nets were invented in August 1939 by Carl Adam Petri — at the age of 13 — for the purpose of describing chemical processes.
Like industry standards such as UML activity diagrams, BPMN and EPCs, Petri nets offer a graphical notation for stepwise processes that include choice, iteration, and concurrent execution. Unlike these standards, Petri nets have an exact mathematical definition of their execution semantics, with a welldeveloped mathematical theory for process analysis.
(a) Petri net trajectory example
Contents

Petri net basics 1

Formal definition and basic terminology 2

Syntax 2.1

Execution semantics 2.2

Variations on the definition 3

Formulation in terms of vectors and matrices 4

Mathematical properties of Petri nets 5

Reachability 5.1

Liveness 5.2

Boundedness 5.3

Discrete, continuous, and hybrid Petri nets 6

Extensions 7

Restrictions 8

Workflow nets 9

Other models of concurrency 10

Application areas 11

See also 12

References 13

Further reading 14

External links 15
Petri net basics
A Petri net consists of places, transitions, and arcs. Arcs run from a place to a transition or vice versa, never between places or between transitions. The places from which an arc runs to a transition are called the input places of the transition; the places to which arcs run from a transition are called the output places of the transition.
Graphically, places in a Petri net may contain a discrete number of marks called tokens. Any distribution of tokens over the places will represent a configuration of the net called a marking. In an abstract sense relating to a Petri net diagram, a transition of a Petri net may fire if it is enabled, i.e. there are sufficient tokens in all of its input places; when the transition fires, it consumes the required input tokens, and creates tokens in its output places. A firing is atomic, i.e., a single noninterruptible step.
Unless an execution policy is defined, the execution of Petri nets is nondeterministic: when multiple transitions are enabled at the same time, any one of them may fire.
Since firing is nondeterministic, and multiple tokens may be present anywhere in the net (even in the same place), Petri nets are well suited for modeling the concurrent behavior of distributed systems.
Formal definition and basic terminology
Petri nets are statetransition systems that extend a class of nets called elementary nets.^{[2]}
Definition 1. A net is a triple N = (P, T, F) where:

P and T are disjoint finite sets of places and transitions, respectively.

F \subset (P \times T) \cup (T \times P) is a set of arcs (or flow relations).
Definition 2. Given a net N = (P, T, F ), a configuration is a set C so that C ⊆ P.
A Petri net with an enabled transition.
The Petri net that follows after the transition fires (Initial Petri net in the figure above).
Definition 3. An elementary net is a net of the form EN = (N, C ) where:

N = (P, T, F ) is a net.

C is such that C ⊆ P is a configuration.
Definition 4. A Petri net is a net of the form PN = (N, M, W ), which extends the elementary net so that:

N = (P, T, F ) is a net.

M : P → Z is a place multiset, where Z is a countable set. M extends the concept of configuration and is commonly described with reference to Petri net diagrams as a marking.

W : F → Z is an arc multiset, so that the count (or weight) for each arc is a measure of the arc multiplicity.
If a Petri net is equivalent to an elementary net, then Z can be the countable set {0,1} and those elements in P that map to 1 under M form a configuration. Similarly, if a Petri net is not an elementary net, then the multiset M can be interpreted as representing a nonsingleton set of configurations. In this respect, M extends the concept of configuration for elementary nets to Petri nets.
In the diagram of a Petri net (see top figure right), places are conventionally depicted with circles, transitions with long narrow rectangles and arcs as oneway arrows that show connections of places to transitions or transitions to places. If the diagram were of an elementary net, then those places in a configuration would be conventionally depicted as circles, where each circle encompasses a single dot called a token. In the given diagram of a Petri net (see right), the place circles may encompass more than one token to show the number of times a place appears in a configuration. The configuration of tokens distributed over an entire Petri net diagram is called a marking.
In the top figure (see right), the place p_{1} is an input place of transition t; whereas, the place p_{2} is an output place to the same transition. Let PN_{0} (Fig. top) be a Petri net with a marking configured M_{0} and PN_{1} (Fig. bottom) be a Petri net with a marking configured M_{1}. The configuration of PN_{0} enable transition t through the property that all input places have sufficient number of tokens (shown in the figures as dots) "equal to or greater" than the multiplicities on their respective arcs to t. Once and only once a transition is enabled will the transition fire. In this example, the firing of transition t generates a map that has the marking configured M_{1} in the image of M_{0} and results in Petri net PN_{1}, seen in the bottom figure. In the diagram, the firing rule for a transition can be characterised by subtracting a number of tokens from its input places equal to the multiplicity of the respective input arcs and accumulating a new number of tokens at the output places equal to the multiplicity of the respective output arcs.
Remark 1. The precise meaning of "equal to or greater" will depend on the precise algebraic properties of addition being applied on Z in the firing rule, where subtle variations on the algebraic properties can lead to other classes of Petri nets; for example, Algebraic Petri nets.^{[3]}
The following formal definition is loosely based on (Peterson 1981). Many alternative definitions exist.
Syntax
A Petri net graph (called Petri net by some, but see below) is a 3tuple (S,T,W)\!, where

S is a finite set of places

T is a finite set of transitions

S and T are disjoint, i.e. no object can be both a place and a transition

W: (S \times T) \cup (T \times S) \to \mathbb{N} is a multiset of arcs, i.e. it assigns to each arc a nonnegative integer arc multiplicity (or weight); note that no arc may connect two places or two transitions.
The flow relation is the set of arcs: F = \{ (x,y) \mid W(x,y) > 0 \}. In many textbooks, arcs can only have multiplicity 1. These texts often define Petri nets using F instead of W. When using this convention, a Petri net graph is a bipartite multigraph (S \cup T, F) with node partitions S and T.
The preset of a transition t is the set of its input places: {}^{\bullet}t = \{ s \in S \mid W(s,t) > 0 \}; its postset is the set of its output places: t^{\bullet} = \{ s \in S \mid W(t,s) > 0 \}. Definitions of pre and postsets of places are analogous.
A marking of a Petri net (graph) is a multiset of its places, i.e., a mapping M: S \to \mathbb{N}. We say the marking assigns to each place a number of tokens.
A Petri net (called marked Petri net by some, see above) is a 4tuple (S,T,W,M_0)\!, where

(S,T,W) is a Petri net graph;

M_0 is the initial marking, a marking of the Petri net graph.
Execution semantics
In words:

firing a transition t in a marking M consumes W(s,t) tokens from each of its input places s, and produces W(t,s) tokens in each of its output places s

a transition is enabled (it may fire) in M if there are enough tokens in its input places for the consumptions to be possible, i.e. iff \forall s: M(s) \geq W(s,t).
We are generally interested in what may happen when transitions may continually fire in arbitrary order.
We say that a marking M' is reachable from a marking M in one step if M \to_G M'; we say that it is reachable from M if M {\to_G}^* M', where {\to_G}^* is the reflexive transitive closure of \to_G; that is, if it is reachable in 0 or more steps.
For a (marked) Petri net N=(S,T,W,M_0)\!, we are interested in the firings that can be performed starting with the initial marking M_0. Its set of reachable markings is the set R(N) \ \stackrel{D}{=}\ \{ M' \mid M_0 {\to_{(S,T,W)}}^* M' \}
The reachability graph of N is the transition relation \to_G restricted to its reachable markings R(N). It is the state space of the net.
A firing sequence for a Petri net with graph G and initial marking M_0 is a sequence of transitions \vec \sigma = \langle t_{i_1} \ldots t_{i_n} \rangle such that M_0 \to_{G,t_{i_1}} M_1 \wedge \ldots \wedge M_{n1} \to_{G,t_{i_n}} M_n. The set of firing sequences is denoted as L(N).
Variations on the definition
As already remarked, a common variation is to disallow arc multiplicities and replace the bag of arcs W with a simple set, called the flow relation, F \subseteq (S \times T) \cup (T \times S). This doesn't limit expressive power as both can represent each other.
Another common variation, e.g. in, Desel and Juhás (2001),^{[4]} is to allow capacities to be defined on places. This is discussed under extensions below.
Formulation in terms of vectors and matrices
The markings of a Petri net (S,T,W,M_0)\! can be regarded as vectors of nonnegative integers of length S.
Its transition relation can be described as a pair of S by T matrices:

W^, defined by \forall s,t: W^[s,t] = W(s,t)

W^+, defined by \forall s,t: W^+[s,t] = W(t,s).
Then their difference
can be used to describe the reachable markings in terms of matrix multiplication, as follows. For any sequence of transitions w, write o(w) for the vector that maps every transition to its number of occurrences in w. Then, we have

R(N) = \{ M \mid \exists w: M = M_0 + W^T \cdot o(w) \wedge w \! is a firing sequence of N \}\!.
Note that it must be required that w is a firing sequence; allowing arbitrary sequences of transitions will generally produce a larger set.
(b) Petri net Example
W^{+}=\begin{bmatrix} * & t1 & t2 \\ p1 & 0 & 1 \\ p2 & 1 & 0 \\ p3 & 1& 0 \\ p4 & 0 & 1 \end{bmatrix}
W^{}=\begin{bmatrix} * & t1 & t2 \\ p1 & 1 & 0 \\ p2 & 0 & 1 \\ p3 & 0 & 1 \\ p4 & 0 & 0 \end{bmatrix}
W^T=\begin{bmatrix} * & t1 & t2 \\ p1 & 1 & 1 \\ p2 & 1 & 1 \\ p3 & 1 & 1 \\ p4 & 0 & 1 \end{bmatrix}
M_{0}=\begin{bmatrix} 1 & 0 & 2 & 1 \end{bmatrix}
Mathematical properties of Petri nets
One thing that makes Petri nets interesting is that they provide a balance between modeling power and analyzability: many things one would like to know about concurrent systems can be automatically determined for Petri nets, although some of those things are very expensive to determine in the general case. Several subclasses of Petri nets have been studied that can still model interesting classes of concurrent systems, while these problems become easier.
An overview of such decision problems, with decidability and complexity results for Petri nets and some subclasses, can be found in Esparza and Nielsen (1995).^{[5]}
Reachability
The reachability problem for Petri nets is to decide, given a Petri net N and a marking M, whether M \in R(N).
Clearly, this is a matter of walking the reachability graph defined above, until either we reach the requested marking or we know it can no longer be found. This is harder than it may seem at first: the reachability graph is generally infinite, and it is not easy to determine when it is safe to stop.
In fact, this problem was shown to be EXPSPACEhard^{[6]} years before it was shown to be decidable at all (Mayr, 1981). Papers continue to be published on how to do it efficiently.^{[7]}
While reachability seems to be a good tool to find erroneous states, for practical problems the constructed graph usually has far too many states to calculate. To alleviate this problem, linear temporal logic is usually used in conjunction with the tableau method to prove that such states cannot be reached. LTL uses the semidecision technique to find if indeed a state can be reached, by finding a set of necessary conditions for the state to be reached then proving that those conditions cannot be satisfied.
Liveness
A Petri net in which transition t_0 is dead, while for all j>0, t_j is L_jlive
Petri nets can be described as having different degrees of liveness L_1  L_4. A Petri net (N, M_0) is called L_klive iff all of its transitions are L_klive, where a transition is

dead, if it can never fire, i.e. it is not in any firing sequence in L(N,M_0)

L_1live (potentially fireable), iff it may fire, i.e. it is in some firing sequence in L(N,M_0)

L_2live iff it can fire arbitrarily often, i.e. if for every positive integer k, it occurs at least k times in some firing sequence in L(N,M_0)

L_3live iff it can fire infinitely often, i.e. if for every positive integer k, it occurs at least k times in V, for some prefixclosed set of firing sequences {}_{V \subseteq L(N,M_0)}

L_4live (live) iff it may always fire, i.e., it is L_1live in every reachable marking in R(N,M_0)
Note that these are increasingly stringent requirements: L_{j+1}liveness implies L_jliveness, for {}_{j \in {1,2,3}}.
These definitions are in accordance with Murata's overview,^{[8]} which additionally uses L_0live as a term for dead.
Boundedness
The reachability graph of N2.
A place in a Petri net is called kbounded if it does not contain more than k tokens in all reachable markings, including the initial marking; it is said to be safe if it is 1bounded; it is bounded if it is kbounded for some k.
A (marked) Petri net is called kbounded, safe, or bounded when all of its places are. A Petri net (graph) is called (structurally) bounded if it is bounded for every possible initial marking.
Note that a Petri net is bounded if and only if its reachability graph is finite.
Boundedness is decidable by looking at covering, by constructing the Karp–Miller Tree.
It can be useful to explicitly impose a bound on places in a given net. This can be used to model limited system resources.
Some definitions of Petri nets explicitly allow this as a syntactic feature.^{[9]} Formally, Petri nets with place capacities can be defined as tuples (S,T,W,C,M_0), where (S,T,W,M_0) is a Petri net, C: P \rightarrow\!\!\!\shortmid I\!N an assignment of capacities to (some or all) places, and the transition relation is the usual one restricted to the markings in which each place with a capacity has at most that many tokens.
An unbounded Petri net, N.
For example, if in the net N, both places are assigned capacity 2, we obtain a Petri net with place capacities, say N2; its reachability graph is displayed on the right.
A twobounded Petri net, obtained by extending N with "counterplaces".
Alternatively, places can be made bounded by extending the net. To be exact, a place can be made kbounded by adding a "counterplace" with flow opposite to that of the place, and adding tokens to make the total in both places k.
Discrete, continuous, and hybrid Petri nets
As well as for discrete events, there are Petri nets for continuous and hybrid discretecontinuous processes that are useful in discrete, continuous and hybrid control theory,^{[10]} and related to discrete, continuous and hybrid automata.
Extensions
There are many extensions to Petri nets. Some of them are completely backwardscompatible (e.g. coloured Petri nets) with the original Petri net, some add properties that cannot be modelled in the original Petri net formalism (e.g. timed Petri nets). Although backwardscompatible models do not extend the computational power of Petri nets, they may have more succinct representations and may be more convenient for modeling.^{[11]} Extensions that cannot be transformed into Petri nets are sometimes very powerful, but usually lack the full range of mathematical tools available to analyse ordinary Petri nets.
The term highlevel Petri net is used for many Petri net formalisms that extend the basic P/T net formalism; this includes coloured Petri nets, hierarchical Petri nets such as Nets within Nets, and all other extensions sketched in this section. The term is also used specifically for the type of coloured nets supported by CPN Tools.
A short list of possible extensions:

Additional types of arcs; two common types are:

a reset arc does not impose a precondition on firing, and empties the place when the transition fires; this makes reachability undecidable,^{[12]} while some other properties, such as termination, remain decidable;^{[13]}

an inhibitor arc imposes the precondition that the transition may only fire when the place is empty; this allows arbitrary computations on numbers of tokens to be expressed, which makes the formalism Turing complete and implies existence of a universal net.^{[14]}

In a standard Petri net, tokens are indistinguishable. In a Coloured Petri net, every token has a value.^{[15]} In popular tools for coloured Petri nets such as CPN Tools, the values of tokens are typed, and can be tested (using guard expressions) and manipulated with a functional programming language. A subsidiary of coloured Petri nets are the wellformed Petri nets, where the arc and guard expressions are restricted to make it easier to analyse the net.

Another popular extension of Petri nets is hierarchy; this in the form of different views supporting levels of refinement and abstraction was studied by Fehling. Another form of hierarchy is found in socalled object Petri nets or object systems where a Petri net can contain Petri nets as its tokens inducing a hierarchy of nested Petri nets that communicate by synchronisation of transitions on different levels. See^{[16]} for an informal introduction to object Petri nets.

A vector addition system with states (VASS) is an equivalent formalism to Petri nets. However, it can be superficially viewed as a generalisation of Petri nets. Consider a finite state automaton where each transition is labelled by a transition from the Petri net. The Petri net is then synchronised with the finite state automaton, i.e., a transition in the automaton is taken at the same time as the corresponding transition in the Petri net. It is only possible to take a transition in the automaton if the corresponding transition in the Petri net is enabled, and it is only possible to fire a transition in the Petri net if there is a transition from the current state in the automaton labelled by it. (The definition of VASS is usually formulated slightly differently.)

Prioritised Petri nets add priorities to transitions, whereby a transition cannot fire, if a higherpriority transition is enabled (i.e. can fire). Thus, transitions are in priority groups, and e.g. priority group 3 can only fire if all transitions are disabled in groups 1 and 2. Within a priority group, firing is still nondeterministic.

The nondeterministic property has been a very valuable one, as it lets the user abstract a large number of properties (depending on what the net is used for). In certain cases, however, the need arises to also model the timing, not only the structure of a model. For these cases, timed Petri nets have evolved, where there are transitions that are timed, and possibly transitions which are not timed (if there are, transitions that are not timed have a higher priority than timed ones). A subsidiary of timed Petri nets are the stochastic Petri nets that add nondeterministic time through adjustable randomness of the transitions. The exponential random distribution is usually used to 'time' these nets. In this case, the nets' reachability graph can be used as a Markov chain.

Dualistic Petri Nets (dPNets) is a Petri Net extension developed by E. Dawis, et al.^{[17]} to better represent realworld process. dPNets balance the duality of change/nochange, action/passivity, (transformation) time/space, etc., between the bipartite Petri Net constructs of transformation and place resulting in the unique characteristic of transformation marking, i.e., when the transformation is "working" it is marked. This allows for the transformation to fire (or be marked) multiple times representing the realworld behavior of process throughput. Marking of the transformation assumes that transformation time must be greater than zero. A zero transformation time used in many typical Petri Nets may be mathematically appealing but impractical in representing realworld processes. dPNets also exploit the power of Petri Nets' hierarchical abstraction to depict Process architecture. Complex process systems are modeled as a series of simpler nets interconnected through various levels of hierarchical abstraction. The process architecture of a packet switch is demonstrated in,^{[18]} where development requirements are organized around the structure of the designed system. dPNets allow any realworld process, such as computer systems, business processes, traffic flow, etc., to be modeled, studied, and improved.
There are many more extensions to Petri nets, however, it is important to keep in mind, that as the complexity of the net increases in terms of extended properties, the harder it is to use standard tools to evaluate certain properties of the net. For this reason, it is a good idea to use the most simple net type possible for a given modelling task.
Restrictions
Petri net types graphically
Instead of extending the Petri net formalism, we can also look at restricting it, and look at particular types of Petri nets, obtained by restricting the syntax in a particular way. Ordinary Petri nets are the nets where all arc weights are 1. Restricting further, the following types of ordinary Petri nets are commonly used and studied:

In a state machine (SM), every transition has one incoming arc, and one outgoing arc, and all markings have exactly one token. As a consequence, there can not be concurrency, but there can be conflict (i.e. nondeterminism). Mathematically: \forall t\in T: t^\bullet={}^\bullet t=1

In a marked graph (MG), every place has one incoming arc, and one outgoing arc. This means, that there can not be conflict, but there can be concurrency. Mathematically: \forall s\in S: s^\bullet={}^\bullet s=1

In a free choice net (FC),  every arc from a place to a transition is either the only arc from that place or the only arc to that transition. I.e. there can be both concurrency and conflict, but not at the same time. Mathematically: \forall s\in S: (s^\bullet\leq 1) \vee ({}^\bullet (s^\bullet)=\{s\})

Extended free choice (EFC)  a Petri net that can be transformed into an FC.

In an asymmetric choice net (AC), concurrency and conflict (in sum, confusion) may occur, but not symmetrically. Mathematically: \forall s_1,s_2\in S: (s_1{}^\bullet \cap s_2{}^\bullet\neq \emptyset) \to [(s_1{}^\bullet\subseteq s_2{}^\bullet) \vee (s_2{}^\bullet\subseteq s_1{}^\bullet)]
Workflow nets
Workflow nets (WFnets) are a subclass of Petri nets intending to model the workflow of process activities.^{[19]} The WFnet transitions are assigned to tasks or activities, and places are assigned to the pre/post conditions. The WFnets have additional structural and operational requirements, mainly the addition of a single input (source) place with no previous transitions, and output place (sink) with no following transitions. Accordingly start and termination markings can be defined that represent the process status.
WFnets have the soundness property,^{[19]} indicating that a process with a start marking of k tokens in its sink place, can reach the termination state marking with k tokens in its sink place (defined as Ksound WFnet). Additionally, all the transitions in the process could fire (i.e., for each transition there is a reachable state in which the transition is enabled). A general sound (Gsound) WFnet is defined as being Ksound for every k>0.^{[20]}
A directed path in the Petri net is defined as the sequence of nodes (places and transitions) linked by the directed arcs. An elementary path includes every node in the sequence only once.
A Wellhandled Petri net is a net in which there are no fully distinct elementary paths between a place and a transition (or transition and a place), i.e., if there are two paths between the pair of node then these paths share a node. An acyclic wellhandled WFnet is sound (Gsound).^{[21]}
Extended WFnet is a Petri net that is composed of a WFnet with additional transition t (feedback transition). The sink place is connected as the input place of transition t and the source place as its output place. Firing of the transition causes iteration of the process (Note: the extended WFnet is not a WFnet).^{[19]}
WRI (Wellhandled with Regular Iteration) WFnet, is an extended acyclic wellhandled WFnet. WRIWFnet can be built as composition of nets, i.e., replacing a transition within a WRIWFnet with a subnet which is a WRIWFnet. The result is also WRIWFnet. WRIWFnets are Gsound,^{[21]} therefore by using only WRIWFnet building blocks, one can get WFnets that are Gsound by construction.
The Design structure matrix (DSM) can model process relations, and be utilized for process planning. The DSMnets are realization of DSMbased plans into workflow processes by Petri nets, and are equivalent to WRIWFnets. The DSMnet construction process ensures the soundness property of the resulting net.
Other models of concurrency
Other ways of modelling concurrent computation have been proposed, including process algebra, the actor model, and trace theory.^{[22]} Different models provide tradeoffs of concepts such as compositionality, modularity, and locality.
An approach to relating some of these models of concurrency is proposed in the chapter by Winskel and Nielsen.^{[23]}
Application areas
See also
References

^ Petri, Carl Adam; Reisig, Wolfgang (2008). "Petri net".

^ Rozenburg, G.; Engelfriet, J. (1998). "Elementary Net Systems". In Reisig, W.; Rozenberg, G. Lectures on Petri Nets I: Basic Models  Advances in Petri Nets. Lecture Notes in Computer Science 1491. Springer. pp. 12–121.

^ Reisig, Wolfgang (1991). "Petri Nets and Algebraic Specifications". Theoretical Computer Science 80 (1): 1–34.

^ Desel, Jörg; Juhás, Gabriel (2001). "What Is a Petri Net? Informal Answers for the Informed Reader". In Ehrig, Hartmut; et al. Unifying Petri Nets. LNCS 2128. Springerlink.com. pp. 1–25. Retrieved 20140514.

^ Esparza, Javier; Nielsen, Mogens (1995) [1994]. "Decidability issues for Petri nets  a survey". Bulletin of the EATCS (Revised ed.). Retrieved 20140514.

^ Lipton, R. (1976). "The Reachability Problem Requires Exponential Space". Technical Report 62 (Yale University).

^ Küngas, P. (July 26–29, 2005). Petri Net Reachability Checking Is Polynomial with Optimal Abstraction Hierarchies. Proceedings of the 6th International Symposium on Abstraction, Reformulation and Approximation—SARA 2005. Airth Castle, Scotland, UK.

^ Murata, Tadao (April 1989). "Petri Nets: Properties, Analysis and Applications". Proceedings of the IEEE 77 (4): 541–558.

^ "Petri Nets". www.techfak.unibielefeld.de.

^ David, René; Alla, Hassane (2005). Discrete, continuous, and hybrid Petri Nets. Springer.

^ Jensen, Kurt. "A brief introduction to colored Petri nets" (PDF).

^ Araki, T.; Kasami, T. (1977). "Some Decision Problems Related to the Reachability Problem for Petri Nets". Theoretical Computer Science 3 (1): 85–104.

^ Dufourd, C.; Finkel, A.; Schnoebelen, Ph. (1998). "Reset Nets Between Decidability and Undecidability". Proceedings of the 25th International Colloquium on Automata, Languages and Programming.

^ Zaitsev, D. A. (2013). "Toward the Minimal Universal Petri Net". IEEE Transactions on Systems, Man, and Cybernetics: Systems 44: 1–12.

^ "Very Brief Introduction to CPnets". Department of Computer Science, University of Aarhus, Denmark.

^ http://llpn.com/OPNs.html

^ Dawis, E. P.; Dawis, J. F.; Koo, WeiPin (2001). Architecture of Computerbased Systems using Dualistic Petri Nets. 2001 IEEE International Conference on Systems, Man, and Cybernetics 3. pp. 1554–1558.

^ Dawis, E. P. (2001). Architecture of an SS7 Protocol Stack on a Broadband Switch Platform using Dualistic Petri Nets. 2001 IEEE Pacific Rim Conference on Communications, Computers and signal Processing 1. pp. 323–326.

^ ^{a} ^{b} ^{c} van der Aalst, W. M. P. (1998). "The application of Petri nets to workflow management" (PDF). J of Circuits, Sys and Comput 8 (1): 21–66.

^ van Hee, K.; Sidorova, N.; Voorhoeve, M. (2003). "Soundness and separability of workflow nets in the stepwise refinement approach" (PDF). In van der Aalst, W. M. P.; Best, E. Application and Theory of Petri Nets 2003. Lect Notes in Comput Sci 2678. Springer. pp. 337–356.

^ ^{a} ^{b} Ping, L.; Hao, H.; Jian, L. (2004). Moldt, Daniel, ed. On 1soundness and soundness of workflow nets. Proc of the 3rd Workshop on Modelling of Objects, Components, and Agents 571. Aarhus, Denmark: DAIMI PB. pp. 21–36.

^ Mazurkiewicz, Antoni (1995). "Introduction to Trace Theory". In Diekert, V.; Rozenberg, G. The Book of Traces. Singapore: World Scientific. pp. 3–67.

^ Winskel, G.; Nielsen, M. "Models for Concurrency" (PDF). Handbook of Logic and the Foundations of Computer Science 4. OUP. pp. 1–148.
Further reading

Cardoso, Janette; Camargo, Heloisa (1999). Fuzziness in Petri Nets. PhysicaVerlag.

Grobelna, Iwona (2011). "Formal verification of embedded logic controller specification with computer deduction in temporal logic". Przeglad Elektrotechniczny 87 (12a): 47–50.

Jensen, Kurt (1997). Coloured Petri Nets. Springer Verlag.

Котов, Вадим (1984). Сети Петри (Petri Nets, in Russian). Наука, Москва.

Pataricza, András (2004). Formális módszerek az informatikában (Formal methods in informatics). TYPOTEX Kiadó.

Peterson, James L. (1977). "Petri Nets". ACM Computing Surveys 9 (3): 223–252.

Peterson, James Lyle (1981). "Petri Net Theory and the Modeling of Systems". Prentice Hall.

Petri, Carl A. (1962). Kommunikation mit Automaten (Ph. D. thesis). University of Bonn.

Petri, Carl Adam; Reisig, Wolfgang. "Petri net". Scholarpedia 3 (4): 6477.

Reisig, Wolfgang (1992). A Primer in Petri Net Design. SpringerVerlag.

Riemann, RobertChristoph (1999). Modelling of Concurrent Systems: Structural and Semantical Methods in the High Level Petri Net Calculus. Herbert Utz Verlag.

Störrle, Harald (2000). Models of Software Architecture  Design and Analysis with UML and PetriNets (PDF). Books on Demand.

Zhou, Mengchu; Dicesare, Frank (1993). Petri Net Synthesis for Discrete Event Control of Manufacturing Systems. Kluwer Academic Publishers.

Zhou, Mengchu; Venkatesh, Kurapati (1998). Modeling, Simulation, & Control of Flexible Manufacturing Systems: A Petri Net Approach. World Scientific Publishing.

Zaitsev, Dmitry (2013). Clans of Petri Nets: Verification of protocols and performance evaluation of networks. LAP LAMBERT Academic Publishing.
External links

Petri Nets World

Petri Net Markup Language

Java implementation of Petri nets in the jBPT library (see jbptpetri module)

Java Petri net simulator

Petia Wohed's Flashbased tutorial introduction to Workflow Technology with Petri Nets

List of Petri net tools

"Presentation: On 1soundness and Soundness of Workflow Nets".
This article was sourced from Creative Commons AttributionShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, EGovernment Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a nonprofit organization.