We are modeling our process using a colored Petri net. One of the limitations we have is that when multiple transitions depend on one place, only one of those transitions will fire because then the token and data is consumed.

How can we model our process, or what type of Petri net property can we use, to facilitate the fact that multiple transitions can depend on one place and all have to be able to consume the same token?


I do not know if there is a variant of Petri nets that captures your intent exactly -- there probably is, there are so many -- but the feature can be expressed with regular Petri nets.

Just add a transition that creates tokens in multiple places, one per original transitions. Then, all three follow-up transitions can fire after the preceding one is done.

enter image description here

Introduce whatever syntax you want to express this neatly, and implement it using multiple places in the backend.


Another way to model your situation with Petri Nets would be to use an arc with weight as shown below. A Petri Net with Three Enabled Transitions

However in the "traditional way" of interpreting a Petri Net, only one enabled transition will be chosen for firing at a time. Thus you must include in your model the method of interpreting your Petri Net when there is more than one enabled transition. In this case if each of the transition fires "at the same time" using a different processor then you must also consider the problem of updating the place by three different processor. In Raphael's Petri Net this is not a problem.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.