A Petri Net is a kind of graph which can be used to simulate discrete processes. There are two kinds of nodes: (1) places, aka states, and (2) transitions. First we will explain the concept using the “place” metaphor. Think of each place as a tray that can hold a finite number of “tokens.” Each transition node is connected to a set of input place nodes, and a set of output place nodes. When the transition “fires,” it removes one token from each of its input places, and adds one token to each of its output places. So it is a kind of dataflow network, where there is just one datatype, the token.
Note that one transition may take multiple inputs from the same place, and have multiple outputs to the same place. For example, suppose transition t takes two inputs from p, and sends to outputs to q. Then when it fires, it will remove 2 tokens from p, and add two tokens to q.
The state of the network as a whole is given by a mapping from the set of place nodes to the natural numbers N. This is called a marking.
The state metaphor comes from applications such as chemical reaction networks. Picture a fixed collection of atoms, that are assembled into various types of molecules. Each state refers to a type of molecule. The number of tokens associated with a state (place) indicates how many of that type of molecule are in the system. So, taking the H2O example from the main Petri Net page, we have states for H, O and H2O, and a single transition with inputs at H and O, and an output at H2O. The firing of the transition corresponds to the formation of one H2O molecule.
Note that the transition structure of the net is non-deterministic. In any given configuration, there will be a subset of the transitions that are enabled to fire: namely, all those transitions for which every input place contains at least one token. So there are multiple ways to order the firings of the transition rules.
The representation can be enriched with probabilistic parameters to control the firing of the transitions. Then you could imagine the problem of finding equilibrirum states of the net.
Here $1$ denotes the tensor product of no objects.
tensor product symbol is written ‘$+$’ rather than ‘$\otimes$’.
For more on this, see:
Peter J. E. Goss and Jean Peccoud, Quantitative modeling of stochastic systems in molecular biology by using stochastic Petri nets, Proc. Natl. Acad. Sci. USA 95 (June 1998), 6750-6755.
Peter J. Haas, Stochastic Petri Nets: Modelling, Stability, Simulation, Springer, Berlin, 2002.
Darren James Wilkinson, Stochastic Modelling for Systems Biology, Taylor & Francis, New York, 2006.
If we use $x_1$ to denote “rabbit” and $x_2$ to denote “fox”, the transitions are:
in which one rabbit becomes two,
in which a fox eats a rabbit and reproduces, resulting in two foxes, and
in which one fox dies. Of course this model is ridiculous — it would be slightly less silly if we replaced ‘fox’ and ‘rabbit’ by asexual micro-organisms, one
Let $[x_1]$ denote the concentration of rabbits (say, in rabbits per hectare) and let $[x_2]$ the concentration of
The standard procedure works as follows:
Chemical reaction networks are diagrams widely used in chemistry. They are quite similar to Petri nets (see below), but in some sense more primitive and less expressive:
below, $A, B$ and $C$ are three molecular species, and we have four reactions between them:
and then try:
Martin Feinberg, Lectures on reaction networks.
F. Horn and R. Jackson, General mass action kinetics, Archive for Rational Mechanics and Analysis 47 (1972), 81–116.
The formal kineticist, on the other hand, takes a macroscopic viewpoint and his primitive concept is the elementary reaction. This is defined by a set of stoichiometric coefficients, together with a rule relating The abstract is also useful:
Abstract: The familiar idea of mass action kinetics is extended to embrace situations more general than chemically reacting mixtures in closed vessels. Thus, for
Abstract: Abstract bifurcation theory is one of the most widely used approaches for analysis of dynamical
There is an interesting relation between chemical reaction networks (or, better, Petri nets) and toric varieties. See:
Craciun, Dickenstein, Shiu and Sturmfels, Toric dynamical systems.
Leonard Adleman, Manoj Gopalkrishnan, Ming-Deh Huang, Pablo Moisset and Dustin Reishus, On the mathematics of the law of mass action.
Besides the works listed above, some good general starting-points include:
For a detailed introduction to stochastic Petri nets, see:
code/stub gen (if i remember correctly. These are also other types of Open source packages on wikipedia: