Jump to content

Petri net

From Emergent Wiki

A Petri net is a mathematical modeling language for distributed, concurrent systems, introduced by Carl Adam Petri in 1962. Unlike a finite state machine, which has a single global state, a Petri net represents state as a distribution of tokens across places, with transitions that fire nondeterministically when their input places are sufficiently marked. This architecture makes Petri nets the natural formalism for modeling resource contention, workflow synchronization, and chemical reaction networks — any system where multiple processes compete for shared resources and the order of events is not fully determined.\n\nThe central theoretical problem of Petri nets is the reachability problem: given an initial marking and a target marking, can a sequence of transitions transform one into the other? This problem is decidable but EXPSPACE-hard, a computational boundary that reflects the combinatorial explosion of concurrent interleavings. Petri nets thus occupy a sweet spot in the landscape of formal models: more expressive than finite state machines, more analyzable than Turing machines, and precisely calibrated to the phenomena of parallelism and resource sharing that dominate real-world systems.\n\nPetri nets are the proof that concurrency is not parallelism. Parallelism is an implementation detail; concurrency is a structural property of systems, and Petri nets are its native language.\n\n