In 1962, a German mathematician named Carl Adam Petri invented a formalism to describe processes where many things happen at the same time. His idea was elegantly simple: draw circles (called places) to represent conditions or resources, draw rectangles (called transitions) to represent events or actions, connect them with arrows, and drop small black dots called tokens into the places.
A token sitting in a place means that condition is currently true. A transition fires whenever every input place has at least one token — it consumes a token from each input and deposits a token into each output. Watch a handful of transitions fire in sequence and you have just simulated a concurrent program, a manufacturing pipeline, a network protocol, or a biological pathway.
The appeal is twofold: Petri nets are visual (you can draw them on a whiteboard and reason about them at a glance) and mathematical (every firing step is a precise algebraic operation on a vector of token counts). That combination made them the dominant tool for reasoning about concurrent systems for decades.
The central question is reachability: given an initial distribution of tokens (the initial marking), can the net ever reach a specific target marking? Answering it turns out to be surprisingly hard — and the story of how hard is one of the great sagas of theoretical computer science.
Comments
Loading comments...