Condition Event Nets
Condition event nets are the fundamental class of Petri nets. In condition event
nets, at each point in time, each place can have at most one token. Tokens are
unstructured; they have no identity and can therefore not be distinguished
from one another. The rationale for the denomination of this Petri net class
is as follows. If a token is on a place p, then the condition p is met. When a
transition fires, an event occurs and changes the state of the condition event
Definition 4.4 A Petri net (P, T, F) is a condition event net if M(p) 1 for
all places p 2 P and for all states M.
• A transition t is enabled in a state M if M(p) = 1 for all input places p
of t and M(q) = 0 for all output places q of t that are not input places at
the same time.
• The firing of a transition t in a state M results in state M0, where
(8p 2 •t)M0(p) = M(p) − 1 ^ (8p 2 t•)M0(p) = M(p) + 1.
Since, by definition, M(p) = 1 for all input places p of t and M(q) = 0 for all
output places q of t, it follows for the state M0 reached by this firing (assuming
output places and input places are disjoint),
(8p 2 •t)M0(p) = 0 ^ (8p 2 t•)M0(p) = 1.
t1 is enabled if and only if all input places have one token and all output places
have no tokens (a). This means that the conditions represented by the input
places of the transition are met and the conditions reflected by the output
places of the transition are not met.
The firing of t1 withdraws a token from each input place and puts a token
on each output place (b). Transition t1 is not enabled if there is a token in
one of its output places (c) or if not all input places of t1 have a token (d).
Since tokens in condition event nets are un-typed and cannot be distinguished
from each other, and due to the fact that the number of tokens are
limited to one in each place, condition event nets are not well suited to modelling
business processes. The reason for this is discussed in the context of
place transition nets that face the same problem.
Place Transition Nets
Place transition nets are an extension of condition event nets, because in any
state of the Petri net an arbitrary number of tokens can reside in any place.
Therefore, places can, for instance, serve as counters. However, tokens are still
unstructured objects that can not be distinguished from one another.
To account for multiple tokens in each place, transition enabling needs to
be reconsidered. In addition, multiple tokens can be consumed and withdrawn
from an input place when a transition fires, and multiple tokens can be produced
when a transition fires, according to the weights associated with the
arcs connected to the transition. This extension can be represented graphically
by multiple arcs from an input place to a transition or by arcs labelled
with natural numbers marking their weight.
Definition 4.5 (P, T, F, !) is a place transition net if (P, T, F) is a Petri net
and ! : F ! N is a weighting function that assigns a natural number to each
arc, the weight of the arc.
The dynamic behaviour of place transition is defined as follows:
• A transition t of a place transition net is enabled if each input place p
of t contains at least the number of tokens defined as the weight of the
connecting arc, i.e., if M(p) !((p, t)).
• When a transition t fires, the number of tokens withdrawn from its input
places and the number of tokens added to its output places are determined
by the weights of the respective arcs. From each input place p of t, !((p, t))
tokens are withdrawn, and !((t, q)) tokens are added to each output place
q of t.
• The firing of a transition t in a state M results in a state M0, where
(8p 2 •t)M0(p) = M(p) − !((p, t)) ^ (8p 2 t•)M0(p) = M(p) + !((t, p))
The firing of t1 consumes the token from
p1 and adds a token to p2, so that two tokens reside in p2. Notice, however,
that t5 is not enabled, since p5 does not contain a token. In the example, each
arc has weight one.
While place transition nets allow multiple tokens in each place, they are
still not very useful for representing business processes, since the tokens cannot
be distinguished from each other. By closely looking
at the Petri net and its token distribution, one can detect which tokens
belong to which process instances.
There are three process instances active. One process instance is represented
by a token in place p1, while the second process instance has already
performed the receive order activity and is therefore represented by the token
in p2. The process order activity spawns two concurrent threads. Therefore,
the tokens in p3 and p6 must belong to the same process instance. When the
send order activity has been completed, a token is put in p5, and the complete
order activity can be performed, completing the third process instance.
In this case it is far from clear which tokens belong to the specific process
instance. The firing rule of place transition nets defines that the complete
order transition can fire as soon as there is a token in place p5 and a token in
This is a severe problem, because the complete order activity could potentially
be conducted for two different process instances! If the first process
instance orders books A and B while the second process instance orders books
C and D, then a situation could occur in which the sending of books A and
B and the update of the inventory for books C and D could be joined, clearly
an unacceptable behaviour.
Therefore, the tokens need to carry values, so that in each state of the Petri
net it is clear which token belong to which process instance. This limitation
of condition event nets and of place transition nets will be lifted by coloured
Petri nets, discussed next.