库所—变迁结构 ​
普通 place/transition Petri 网写作
其中
给出输入、输出弧权重,
变迁
触发后得到
记作
生产者—消费者轨迹 ​
容量一缓冲区可用库所 empty、full 表示,初态在 empty 有一个 token。变迁 produce 消耗 empty 并产生 full;consume 反向移动 token。
状态轨迹为
在 (0,1) 中 produce 不使能,因此容量一约束由 token 守恒直接表达。若错误地让 produce 不消耗 empty,连续触发会在 full 累积多个 token,模型已不再表示单槽缓冲区。
多个生产者可共享 empty token,竞争同一资源;谁先触发由非确定性选择,不隐含概率或公平调度。
若要允许容量 empty 初始有
带身份的数据不能由普通无色 token 区分。若需要知道哪个消息或进程持有资源,应扩展为 colored Petri net,或把有限身份展开成多个库所;前一种扩展的高层语法最终仍需给出精确 firing semantics。
并发、冲突与 step ​
若两个变迁的输入资源互不冲突,它们可以独立触发;在合适 marking 下,先
若
并发不等于“图上没有路径相连”。两个变迁可能通过其他库所间接共享守恒资源,局部外观独立却无法同时发生。
place invariant 与 token 守恒 ​
令 incidence matrix
则任意触发保持
这类线性不变量给出不可达性的充分证据,却通常不能刻画全部可达 marking。满足所有已知守恒方程的 marking 仍可能因触发顺序约束而不可达。
transition invariant
对任意触发序列
成立。它遗忘顺序,适合快速排除目标:若不存在非负整数向量解,目标必不可达;有解却可能因中间 token 不足而无法排成合法 firing sequence。
例如两个变迁的净效应相互抵消,状态方程允许各触发一次,但第一个所需 token 只有第二个先产生,而第二个又依赖第一个,初态下二者均未使能。线性方程没有捕捉这个循环依赖。
可达、有界与活性边界 ​
reachability 问是否存在触发序列从
dead marking 没有使能变迁。它可能是正常完成,也可能是死锁,取决于规格。liveness 的多种定义还会要求某变迁从任意可达 marking 未来仍可能触发,不能从“当前使能”直接推出。
普通 P/T 网没有 inhibitor arcs、优先级、时间或概率。加入这些扩展会改变使能规则和可判定性,不能把彩色、时间或随机 Petri 网的结论无条件搬回基础模型。
覆盖性(coverability)问是否能到达某个
结构 bounded 还要相对于初始 marking;同一网图从不同
参考资料
- Tadao Murata, “Petri Nets: Properties, Analysis and Applications,” Proceedings of the IEEE 77(4), 1989, pp. 541–580。
- Wolfgang Reisig, Understanding Petri Nets, Springer, 2013, Chs. 1–6。
- Javier Esparza and Mogens Nielsen, “Decidability Issues for Petri Nets,” BRICS Report Series 1(8), 1994。