Petri Nets

History

  • Originally developed to model periodic chemical reactions
  • Named for the creator - Carl Adam Petri
  • Formally Characterised in 1962

Definition 

A Petri net is a directed bipartite graph, in which the nodes represent transitions (i.e. events that may occur, represented by bars) and places (i.e. conditions, represented by circles). The directed arcs describe which places are pre- and/or postconditions for which transitions (signified by arrows).

What They Aren't

  • Flow Charts
  • A Diagramming Standard
  • Related to Computer Networks
  • Just Place/Transition Nets*

*Wikipedia is wrong about this

UML Activity Diagrams

BPMN

Definition 2

A Petri net is a tuple 〈P,T〉where:

  • P is the (finite) set of places
  • T is the (finite) set of transitions. Each transition t is a tuple 〈I, O〉where:
    • I: is a function s.t. t consumes I(p) tokens in each place p
    • O: is a function s.t. t produces O(p) tokens in each place p

Definition 3

A Petri net is actually a way of presenting a symmetric monoidal category: one that is freely generated by some set S of objects and some set T of morphisms!*

*Emphasis in the original source. Not all of us are that excited about morphisms

Definition 4

A Petri net is a way of drawing a finite set S of species, a finite set T of transitions, and maps s,t : T → N S saying how many times each species appears in the source (input) and target (output) of each transition:

Example

External Slides

References

deck

By Matt Sprague