Skip to content

模型Model

Petri 网

施工中 · 内容逐步修订

Petri net · Place-transition net · P/T net

以库所、变迁和 token 多重集建模资源、同步与真正并发,并研究可达标识。

形式陈述 ​

库所—变迁结构 ​

普通 place/transition Petri 网写作

N=(P,T,Pre,Post,M0),

其中 P,T 是有限且不交的集合,分别称库所与变迁;

Pre,Post:P×T→N

给出输入、输出弧权重,M0:P→N 是初始 marking。自然数 M(p) 表示库所 p 当前拥有多少 token。

变迁 t 在 marking M 使能,当且仅当

∀p∈P,M(p)≥Pre(p,t).

触发后得到

M′(p)=M(p)−Pre(p,t)+Post(p,t),

记作 M→tM′。所有 marking 与触发边构成标号转移系统,但网结构比展开后的状态图显式保留资源局部性。

直觉

生产者—消费者轨迹 ​

容量一缓冲区可用库所 empty、full 表示,初态在 empty 有一个 token。变迁 produce 消耗 empty 并产生 full;consume 反向移动 token。

状态轨迹为

(1,0)→produce(0,1)→consume(1,0).

在 (0,1) 中 produce 不使能,因此容量一约束由 token 守恒直接表达。若错误地让 produce 不消耗 empty,连续触发会在 full 累积多个 token,模型已不再表示单槽缓冲区。

多个生产者可共享 empty token,竞争同一资源;谁先触发由非确定性选择,不隐含概率或公平调度。

若要允许容量 k,可让 empty 初始有 k 个 token。每次 produce 消耗一个空槽 token、consume 归还一个,守恒式变为 M(empty)+M(full)=k。这与把 full 库所弧权重改成 k 不同;后者要求一次变迁成批消费或产生 k 个 token,改变了单次操作语义。

带身份的数据不能由普通无色 token 区分。若需要知道哪个消息或进程持有资源,应扩展为 colored Petri net,或把有限身份展开成多个库所;前一种扩展的高层语法最终仍需给出精确 firing semantics。

Petri 网并发与冲突
例子与边界

并发、冲突与 step ​

若两个变迁的输入资源互不冲突,它们可以独立触发;在合适 marking 下,先 t1 后 t2 与反向顺序到达同一 marking。Petri 网可把二者视为一个并发 step,而不仅是两条交错路径。

若 t1,t2 竞争同一个单 token 库所,则只能选一个,形成 conflict。结构上的共享输入提示冲突,但若库所有两个 token,两者仍可同时使能;判断要结合 marking 和弧权重。

并发不等于“图上没有路径相连”。两个变迁可能通过其他库所间接共享守恒资源,局部外观独立却无法同时发生。

推论与应用

place invariant 与 token 守恒 ​

令 incidence matrix C=Post−Pre。列向量 y∈Z|P| 若满足

yTC=0,

则任意触发保持 yTM。对缓冲区,M(empty)+M(full)=1 是 place invariant,证明任意可达 marking 都恰有一个容量 token。

这类线性不变量给出不可达性的充分证据,却通常不能刻画全部可达 marking。满足所有已知守恒方程的 marking 仍可能因触发顺序约束而不可达。

transition invariant Cx=0 则描述一组变迁计数净效应为零;它表示潜在循环的代数必要条件,不自动保证这些变迁可按某顺序从给定初态触发。

对任意触发序列 σ=t1⋯tn,令 Parikh 向量 σ→(t) 统计每个变迁出现次数,则状态方程

Mn=M0+Cσ→

成立。它遗忘顺序,适合快速排除目标:若不存在非负整数向量解,目标必不可达;有解却可能因中间 token 不足而无法排成合法 firing sequence。

例如两个变迁的净效应相互抵消,状态方程允许各触发一次,但第一个所需 token 只有第二个先产生,而第二个又依赖第一个,初态下二者均未使能。线性方程没有捕捉这个循环依赖。

可达、有界与活性边界 ​

reachability 问是否存在触发序列从 M0 到目标 M。boundedness 问每个库所 token 是否在全部可达 marking 上有有限上界;safe net 是每库所至多一个 token 的特例。

dead marking 没有使能变迁。它可能是正常完成,也可能是死锁,取决于规格。liveness 的多种定义还会要求某变迁从任意可达 marking 未来仍可能触发,不能从“当前使能”直接推出。

普通 P/T 网没有 inhibitor arcs、优先级、时间或概率。加入这些扩展会改变使能规则和可判定性,不能把彩色、时间或随机 Petri 网的结论无条件搬回基础模型。

覆盖性(coverability)问是否能到达某个 M′≥M,比精确可达性更适合表达“某库所至少积累若干 token”。Karp–Miller tree 用 ω 概括无界增长,但它证明覆盖和有界性,不直接给任意目标 marking 的精确可达序列。把 coverable 误写成 reachable 会把“至少这些资源”与“恰好这个全局配置”混为一谈。

给定初始标识的有界性要求存在有限 K,使从这个 M0 可达的每个 M、每个库所 p 都满足 M(p)≤K。结构有界性则要求对每个有限初始标识 M0 都有这样的界 KM0;界可随初始标识变化。例如单库所变迁消费一个 token、产生两个,从零初始标识出发没有动作且有界,从一个 token 出发则可无限增长,所以该网不是结构有界的。仅检查弧权重有限不能推出任何这类全运行上界。

逐坐标比较 token 向量时,Dickson 引理保证这个顺序是良拟序;普通变迁的使能和更新公式又保证增加资源不会阻止同一变迁。两项合起来使网成为良结构转移系统。添加零测试可能破坏后一项,即使自然数向量的良拟序性质仍未改变。

参考资料
  • 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。
关系图谱11 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系

使用的工具