Petri nets refresher Prof.dr.ir. Wil van der Aalst Eindhoven University of Technology, Faculty of Technology Management, Department of Information and Technology, P.O.Box 513, NL-5600 MB, Eindhoven, The Netherlands.
Elements
Modeling problem
Modeling problem (1): Zero testing Transition t should fire if place p is empty. ? t p
Initially there are N tokens Solution Only works if place is N-bounded t Initially there are N tokens N input and output arcs p’ p
Modeling problem (2): Priority Transition t1 has priority over t2 t1 ? t2 Hint: similar to Zero testing!
A bit of theory Extensions have been proposed to tackle these problems, e.g., inhibitor arcs. These extensions extend the modeling power (Turing completeness*). Without such an extension not Turing complete. Still certain questions are difficult/expensive to answer or even undecidable (e.g., equivalence of two nets). * Turing completeness corresponds to the ability to execute any computation.
High level Petri nets Extending classical Petri nets with color, time and hierarchy (informal introduction)
Limitations of classical Petri nets Inability to test for zero tokens in a place. Models tend to become large. Models cannot reflect temporal aspects No support for structuring large models, cf. top-down and bottom-up design
Inability to test for zero tokens in a place ? t p “Tricks” only work if p is bounded
Models tend to become (too) large Size linear in the number of products.
Models tend to become (too) large (2) Size linear in the number of tracks.
Models cannot reflect temporal aspects Duration of each phase is highly relevant.
No support for structuring large models
High-level Petri nets To tackle the problems identified. Petri nets extended with: Color (i.e., data) Time Hierarchy For the time being be do not choose a concrete language but focus on the main concepts. Later we focus on a concrete language: CPN. These concepts are supported by many variants of CPN including ExSpect, CPN AMI, etc.
Running example: Making punch cards free desk employees waiting patients served patients patient/ employees
Extension with color (1) Tokens have a color (i.e., a data value)
Extension with color (2) Places are typed (also referred to as color set). record Brand:string * RegistrationNo:string * Year:int * Color:string * Owner:string
Extension with color (3) The relation between production and consumption needs to be specified, i.e., the value of a produced token needs to be related to the values of consumed tokens. The value of the token produced for place sum is the sum of the values of the consumed tokens.
Running example: Tokens are colored
Running example: Places are typed
Running example: Initial state start is enabled
Running example: Transition start fired New value is created by simply merging the two records. stop is enabled
Running example: Transition stop fired New values are created by simply spliting the record into two parts.